QA-Durchgang: pycache entfernt, Aufraeumen eingegrenzt, Doku zu Admin-Rolle und Pruefer
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-09-22 00:37:59 +02:00
1 parent 44608ff71f
commit 4d6acd19aa
6 files changed
+4 -5

No files matched your search

+1
View File
@@ -5,3 +5,4 @@ web/*/.next/
web/*/next-env.d.ts
web/*/tsconfig.tsbuildinfo
web/pdf-viewer/public/pdf.worker.min.mjs
__pycache__/
+2 -2
View File
@@ -12,7 +12,7 @@ Aus dem Code abgeleitet (`cmd/app`, `cmd/worker`, `cmd/migrate`, `internal/route
| `NEXARCH_DMS_APP_ROUTE_PREFIX` | `/api/dms/v1` | Präfix aller fachlichen Routen (FDN-14); `/healthz` und `/metrics` bleiben außerhalb |
| `NEXARCH_DMS_APP_TENANT_DSN` | Pflicht für Fachfunktionen | Tenant-Datenbank; ohne sie: keine API-Routen, kein Guard, keine Retention-Anbindung, keine Suche |
| `NEXARCH_DMS_APP_TENANT_SLUG` | Pflicht | Mandantenkennung |
| `NEXARCH_DMS_APP_ADMIN_USER_IDS` | leer | Kommagetrennte Nutzer-IDs mit Admin-Rechten im Guard |
| `NEXARCH_DMS_APP_ADMIN_USER_IDS` | leer | Kommagetrennte Nutzer-IDs mit Admin-Rechten im Guard. Im Token-Modus gilt zusätzlich die Rolle `tenant_admin` im verifizierten Modul-Token als Admin (die Rechteentscheidung von Core wird trotzdem erzwungen) |
| `NEXARCH_DMS_APP_CORE_JWKS_URL` | Pflicht (oder Übergangsschalter) | JWKS-Endpunkt von Core; Bearer-Token werden lokal gegen diesen Schlüsselsatz geprüft (INT-01, `docs/API.md`). Ohne sie und ohne Übergangsschalter startet dms-app mit DSN nicht |
| `NEXARCH_DMS_APP_JWKS_TTL_SECONDS` | 300 | Cache-Dauer des Schlüsselsatzes; bei Core-Ausfall gilt der letzte bekannte Satz weiter |
| `NEXARCH_DMS_APP_ALLOW_CALLER_IDENTITY` | `false` | Übergang: `true` lässt Anfragen ohne Token mit `caller`-Parameter als Identität zu (nicht authentifiziert, nur Entwicklung) |
@@ -22,7 +22,7 @@ Aus dem Code abgeleitet (`cmd/app`, `cmd/worker`, `cmd/migrate`, `internal/route
| `NEXARCH_DMS_APP_DOWNLOAD_SIGNING_SECRET` | Pflicht bei DSN | Schlüssel für Download-URLs (Secret) |
| `NEXARCH_DMS_APP_DOWNLOAD_URL_TTL_SECONDS` | 300 | Gültigkeit signierter Download-URLs |
| `NEXARCH_DMS_APP_TRASH_RETENTION_SECONDS` | 2592000 (30 Tage) | Papierkorb-Frist |
| `NEXARCH_DMS_APP_AUDITOR_USER_IDS` | leer | Nutzer-IDs mit Zugriff auf `/audit-log` |
| `NEXARCH_DMS_APP_AUDITOR_USER_IDS` | leer | Nutzer-IDs mit Zugriff auf `/audit-log`. Bewusst getrennt von Admin (Aufgabentrennung): auch ein `tenant_admin` mit dem Recht `dms.audit.read` braucht hier einen Eintrag |
| `NEXARCH_DMS_APP_STORAGE_DIR` | Pflicht | Lokales Storage-Verzeichnis |
| `NEXARCH_DMS_APP_STORAGE_SIGNING_SECRET` | Pflicht | Schlüssel für signierte URLs (Secret) |
| `NEXARCH_DMS_APP_STORAGE_PUBLIC_BASE_URL` | Pflicht | Basis-URL signierter Links |
Binary file not shown.
-1
View File
@@ -62,7 +62,6 @@ CORE_EMAIL = {}
def core_module_token(account, email):
"""Login am echten Core-Kontodienst und Modul-Token per POST /auth/module-token (nur fuer Modus core)."""
st, _ = 0, None
req = urllib.request.Request(account + "/auth/login", data=json.dumps({"email": email, "password": CORE_PASSWORD}).encode(),
method="POST", headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req, timeout=30) as r:
+1 -2
View File
@@ -52,12 +52,11 @@ snapshot /tmp/gesamt-smoke-vorher.txt
mkdir -p "$BASE"/{bin,env,data/storage,data/staging,log,corpus,gocache,gopath,results}
finish() {
[ "${GESAMT_KEEP:-}" = 1 ] && return
cp "$RES"/*.txt /tmp/ 2>/dev/null
teardown
snapshot /tmp/gesamt-smoke-nachher.txt
echo; echo "=== Rueckbau: Vorher-/Nachher-Snapshot (Diff; leer = identisch)"
diff /tmp/gesamt-smoke-vorher.txt /tmp/gesamt-smoke-nachher.txt && echo "IDENTISCH"
rm -f /tmp/gesamt-smoke-vorher.txt /tmp/gesamt-smoke-nachher.txt /tmp/[0-9][0-9]-*.txt
rm -f /tmp/gesamt-smoke-vorher.txt /tmp/gesamt-smoke-nachher.txt
}
trap finish EXIT