Skip to content

[roadmap] Polish regulatory review packs#41

Merged
ewilhelm1979-netizen merged 1 commit into
mainfrom
feature/regulatory-review-pack-polish-de
Jul 9, 2026
Merged

[roadmap] Polish regulatory review packs#41
ewilhelm1979-netizen merged 1 commit into
mainfrom
feature/regulatory-review-pack-polish-de

Conversation

@ewilhelm1979-netizen

Copy link
Copy Markdown
Owner

Problemstellung und Ziel

Die kontextuellen Regulatory Review-Pakete aus PR #40 waren funktional vorhanden, aber fuer den naechsten fachlichen Schritt noch zu grob in der Snapshot-Liste, in der Verantwortungsorientierung und in der deutschsprachigen Bedienung. Dieser PR polisht den bestehenden Review-Pack-Workflow ohne neue Engines, Migrationen oder Dependency-Upgrades.

Ziel ist ein fokussierter deutscher Review-Pack-Flow fuer NIS2, DORA und DSGVO: filterbare eingefrorene Snapshots, sichtbare Owner-/Verantwortlichkeits-Hinweise, pack-spezifische Gap-Gruppen und konsistente Dokumentation/Screenshots.

Geaenderte Funktionen

  • Regulatory Review-Pack-Snapshotlisten koennen nach Pack-Typ, Status, Zeitraum, offenen Gaps, kritischen Gaps und Limit gefiltert werden.
  • Review-Pack-Previews und Snapshots enthalten Owner-Hinweise, pack-spezifische Gap-Gruppen, Filterzusammenfassung und Datenvollstaendigkeit.
  • NIS2-, DORA- und DSGVO-Packs zeigen fachlich getrennte Gap-Gruppen statt nur einer generischen Gap-Liste.
  • Audit-Actions fuer regulatorische Preview-/Snapshot-/Export-Vorgaenge wurden fachlich als Regulatory-Review-Pack-Ereignisse benannt.
  • Die Weboberflaeche /regulatory-review-packs/ wurde deutschsprachig gepolished und mit Filterpanel, Owner-Hinweisen und Gap-Gruppen ergaenzt.
  • Review-Pack-Datumsfelder nutzen ein neutrales YYYY-MM-DD-Format, damit Browser-Locale-Platzhalter die deutsche UI nicht verwässern.

Betroffene Dateien

  • rust/iscy-backend/src/report_store.rs
  • rust/iscy-backend/src/lib.rs
  • rust/iscy-backend/tests/http_tests.rs
  • CHANGELOG.md
  • docs/ISCY_Handbuch.md
  • docs/ISCY_Handbuch.pdf
  • docs/ISCY_STRATEGIC_ROADMAP.md
  • docs/GUI_SCREENSHOTS.md
  • docs/assets/iscy-dashboard.png
  • docs/assets/iscy-regulatory-review-packs.png
  • docs/assets/iscy-regulatory-review-pack-nis2.png
  • docs/assets/iscy-regulatory-review-pack-dora.png
  • docs/assets/iscy-regulatory-review-pack-dsgvo.png

Datenbankmigrationen

Keine neuen Migrationen. Die Aenderung verwendet bestehende Management-Review-Snapshot- und Audit-Tabellen.

Neue oder geaenderte API-Endpunkte

  • GET /api/v1/regulatory/review-pack-snapshots
  • GET /api/v1/regulatory/review-packs/{pack_type}/snapshots

Beide Snapshot-Listen akzeptieren nun optionale Query-Filter:

  • pack_type
  • status
  • period_start
  • period_end
  • has_open_gaps
  • has_critical_gaps
  • limit

Ungueltige Filter liefern eine kontrollierte 400-Antwort mit invalid_regulatory_review_pack_filter; interne Datenbankdetails werden nicht offengelegt.

GUI-Aenderungen

  • /regulatory-review-packs/ zeigt deutsche Review-Pack-Bezeichnungen, Filter, Preview und Snapshotliste.
  • Preview-Seiten zeigen Filter-Zusammenfassung, Datenvollstaendigkeit, pack-spezifische Lueckengruppen und Owner-Hinweise.
  • Screenshots und Screenshot-Dokumentation wurden auf den neuen UI-Stand aktualisiert.

Tenant- und Berechtigungsgrenzen

  • Snapshot-Listen bleiben tenant-gescoped in der Datenbankabfrage.
  • Schreibende Aktionen bleiben an vorhandene authentifizierte Rollenpruefungen gebunden.
  • Read-only-Rollen duerfen lesen, aber keine Snapshots erzeugen.
  • Fremde Tenant-Daten werden weder durch Filter noch durch Gap-Auswertung sichtbar gemacht.

Security-Entscheidungen

  • Keine query-basierten Identity- oder Auth-Abkuerzungen.
  • Keine Evidence-Dateien, lokalen Pfade, Secrets oder Datenbankdetails in Fehlerantworten.
  • Filter werden serverseitig normalisiert und begrenzt.
  • Gap-Filter werden erst nach einer bounded tenant-scoped Query angewendet.
  • Keine Abschwaechung von cargo audit, cargo deny, CI, CodeQL oder Docker-Hardening.

Ausgefuehrte Tests

  • cargo fmt --manifest-path rust/iscy-backend/Cargo.toml -- --check
  • cargo clippy --locked --manifest-path rust/iscy-backend/Cargo.toml --all-targets -- -D warnings
  • cargo test --locked --manifest-path rust/iscy-backend/Cargo.toml
  • cargo audit --file rust/iscy-backend/Cargo.lock --ignore RUSTSEC-2023-0071
  • cargo deny --manifest-path rust/iscy-backend/Cargo.toml check advisories licenses sources
  • make rust-smoke
  • make rust-restore-smoke
  • lokaler nix run .#iscy-backend Smoke mit Review-Pack-Web- und API-Aufruf
  • Docker-Compose-Validierung fuer Base, LLM, Stage, Prod und Prod+LLM mit .env.example
  • make docs-pdf
  • git diff --check
  • Screenshot-Erzeugung und visuelle Pruefung fuer die Review-Pack-Oberflaeche

Der lokale hardened Docker-Build konnte nicht ausgefuehrt werden, weil auf dem Host kein Docker-Daemon-Socket unter /var/run/docker.sock verfuegbar ist. Der CI-Docker-Build bleibt unveraendert aktiv.

Bekannte Einschraenkungen

  • Keine neue Datenbankmigration.
  • Keine neue regulatorische Entscheidungs- oder Reporting-Engine.
  • Review-Pack-Inhalte bleiben Assistenz- und Management-Review-Unterstuetzung, keine Rechtsberatung, keine Zertifizierung und keine automatische Meldung.

Bewusst nicht umgesetzt

  • Keine Dependency-, Nix-, Docker-, Postgres-, nginx- oder Bot-PR-Arbeiten.
  • Keine S3-/Cloud-Ablage.
  • Keine echte Evidence-Loeschung.
  • Keine neuen Agent-, Supplier-, Product-Security- oder AI-Governance-Features.
  • Keine Aenderungen an offenen Dependabot-/Plattform-PRs.

AI Assistance

Prepared with Codex assistance. Human review remains required for correctness, security, licensing, provenance, and merge readiness.

@ewilhelm1979-netizen ewilhelm1979-netizen marked this pull request as ready for review July 9, 2026 15:27
@ewilhelm1979-netizen ewilhelm1979-netizen merged commit 259c9e8 into main Jul 9, 2026
7 checks passed
@ewilhelm1979-netizen ewilhelm1979-netizen deleted the feature/regulatory-review-pack-polish-de branch July 9, 2026 15:27

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2362d3b1c9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +1270 to +1271
builder.push(" ORDER BY created_at DESC, id DESC LIMIT ");
builder.push_bind(filters.limit);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Apply gap filters before limiting review-pack snapshots

When has_open_gaps or has_critical_gaps is set, this query still applies LIMIT before apply_regulatory_review_gap_filters_* loads details and discards nonmatching rows. In a tenant with more than limit snapshots, if the newest 50 do not have critical gaps but older snapshots do, /api/v1/regulatory/review-pack-snapshots?has_critical_gaps=true returns an empty or short page even though matching snapshots exist; the gap predicate needs to be applied before the limit, or the query needs to over-fetch/page after filtering.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant