3d00be8292
- 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>
48 lines
2.4 KiB
TOML
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$''']
|