diff --git a/.gitignore b/.gitignore index cf841490..b543ce14 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ web/*/.next/ web/*/next-env.d.ts web/*/tsconfig.tsbuildinfo web/pdf-viewer/public/pdf.worker.min.mjs +__pycache__/ diff --git a/dms/docs/BETRIEB-UMGEBUNGSVARIABLEN.md b/dms/docs/BETRIEB-UMGEBUNGSVARIABLEN.md index 3444e81c..3106c824 100644 --- a/dms/docs/BETRIEB-UMGEBUNGSVARIABLEN.md +++ b/dms/docs/BETRIEB-UMGEBUNGSVARIABLEN.md @@ -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 | diff --git a/scripts/__pycache__/fdn19_smoke.cpython-313.pyc b/scripts/__pycache__/fdn19_smoke.cpython-313.pyc deleted file mode 100644 index 1d3e77d1..00000000 Binary files a/scripts/__pycache__/fdn19_smoke.cpython-313.pyc and /dev/null differ diff --git a/scripts/__pycache__/gesamt_token_smoke.cpython-313.pyc b/scripts/__pycache__/gesamt_token_smoke.cpython-313.pyc deleted file mode 100644 index c0a123c9..00000000 Binary files a/scripts/__pycache__/gesamt_token_smoke.cpython-313.pyc and /dev/null differ diff --git a/scripts/fdn19_smoke.py b/scripts/fdn19_smoke.py index c4d0b5f2..81e19a9b 100755 --- a/scripts/fdn19_smoke.py +++ b/scripts/fdn19_smoke.py @@ -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: diff --git a/scripts/gesamt-token-smoke.sh b/scripts/gesamt-token-smoke.sh index fd5a0191..406dd6c9 100755 --- a/scripts/gesamt-token-smoke.sh +++ b/scripts/gesamt-token-smoke.sh @@ -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