Files
tessera-ctl/.gitleaks.toml
T
schalli 3d00be8292 ci(quick-261009-p0m): Sicherheitspruefung als reiner Bericht in der Pipeline
- Skript .gitea/scripts/security-scan.sh: gitleaks, pnpm audit, osv-scanner, Semgrep, Trivy (Quellstand und Abbilder), angepinnt und per SHA256 geprueft, Exit immer 0
- Job security nach publish (nur main und Tags v*, continue-on-error, Zeitlimit 30 Minuten, kein Secret)
- Ausnahmelisten .gitleaks.toml und .semgrepignore fuer geprueft harmlose Treffer
- docs/ci-cd-setup.md beschreibt den Job

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 19:20:58 +02:00

48 lines
2.4 KiB
TOML

# gitleaks-Einstellungen fuer Tessera (quick-261009-p0m).
# Die Standardregeln bleiben vollstaendig aktiv; unten stehen nur Ausnahmen fuer
# Treffer, die einzeln geprueft wurden und keine echten Zugangsdaten sind.
# Grundsatz: so eng wie moeglich -- ein Ordner nur dort, wo er allein Testschluessel
# enthaelt, alles andere als einzelne Datei mit Regel (und bei produktivem Code
# zusaetzlich mit der geprueften Zeile). Ein neuer Treffer wird nie vorsorglich
# freigegeben, sondern erst geprueft.
title = "Tessera gitleaks"
[extend]
useDefault = true
[[allowlists]]
description = "Testschluessel des Zertifikatsmanagers: Der Ordner existiert nur, um Schluesseldateien fuer Tests bereitzuhalten (zufaellig erzeugt, nirgends verwendet)."
paths = ['''^apps/api/src/cert-manager/__fixtures__/''']
[[allowlists]]
description = "Schluessel-Ausschnitte (-----BEGIN ...) in den Tests des Zertifikatsmanagers und in einer Recherche-Notiz: Testdaten bzw. Beschreibungstext, keine echten Schluessel."
targetRules = ["private-key"]
paths = [
'''^apps/api/src/cert-manager/cert-keys\.spec\.ts$''',
'''^apps/api/src/cert-manager/cert-output\.spec\.ts$''',
'''^apps/api/src/cert-manager/cert-templates\.spec\.ts$''',
'''^\.planning/quick/261009-ikt-cert-manager-umbau-mehrere-dateien-zip-f/261009-ikt-RESEARCH\.md$''',
]
[[allowlists]]
description = "Testwert 'Benutzer/Passwort' im Formular-Test des Proxmox-Moduls und Tabellenzeile im Pruefplan der Ausschreibungs-Benachrichtigungen: Beschriftungen, keine Zugangsdaten."
targetRules = ["generic-api-key"]
paths = [
'''^apps/web/src/app/\(portal\)/modules/proxmox/settings/components/ServerForm\.test\.tsx$''',
'''^\.planning/phases/12-tender-notifications/12-VALIDATION\.md$''',
]
[[allowlists]]
description = "Beschriftung der Anmeldemethode in der deutschen Oberflaechen-Textdatei (Zeile 'authMethodPassword': 'Benutzer/Passwort'): nur diese eine gepruefte Zeile."
condition = "AND"
targetRules = ["generic-api-key"]
paths = ['''^apps/web/src/messages/de\.json$''']
regexTarget = "line"
regexes = ['''"authMethodPassword"\s*:\s*"Benutzer/Passwort"''']
[[allowlists]]
description = "curl-Beispiel gegen den lokalen Wegwerf-Nextcloud-Testcontainer in einer Recherche-Notiz (Platzhalter statt Zugangsdaten)."
targetRules = ["curl-auth-user"]
paths = ['''^\.planning/quick/261008-mzu-modul-nextcloud-dateien-eigenstaendiger-/261008-mzu-RESEARCH\.md$''']