Skip to content

[roadmap] Add management regulatory templates#37

Merged
ewilhelm1979-netizen merged 1 commit into
mainfrom
feature/management-regulatory-templates
Jul 9, 2026
Merged

[roadmap] Add management regulatory templates#37
ewilhelm1979-netizen merged 1 commit into
mainfrom
feature/management-regulatory-templates

Conversation

@ewilhelm1979-netizen

Copy link
Copy Markdown
Owner

Problemstellung und Ziel

ISCY konnte Management-Review-Pakete bereits als eingefrorene Snapshots erzeugen, hatte aber noch keine wiederholbaren Management-/Regulatory-Templates fuer ISO 27001, NIS2, DORA, KRITIS und generische Security-Governance-Reviews.

Dieser PR ergaenzt eine additive Template-Schicht auf Basis bestehender ISCY-Daten, ohne neue Evidence-, Risk-, Control-, Notification-, Supplier- oder Product-Security-Engines einzufuehren.

Geaenderte Funktionen

  • Fuegt statische, versionierte Management-Review-Templates hinzu:
    • Generic Security Governance Review
    • ISO 27001 Management Review
    • NIS2 Management Summary
    • DORA ICT Risk, Supplier and Incident Summary
    • KRITIS Operational Resilience Summary
  • Erweitert Management-Review-Snapshots um:
    • template_type
    • template_version
    • regulatory_context_json
    • supplier_json
    • source_counts_json
    • gap_summary_json
    • decision_summary_json
  • Ergaenzt Template-Preview ohne Snapshot-Erzeugung.
  • Ergaenzt Audit-Events fuer Preview, Snapshot-Erzeugung, Statusaenderung und Export.
  • Erweitert Markdown-, HTML-, PDF- und JSON-Exports um Template- und Summary-Daten.

Betroffene Dateien

  • rust/iscy-backend/src/db_admin.rs
  • rust/iscy-backend/src/report_store.rs
  • rust/iscy-backend/src/lib.rs
  • rust/iscy-backend/tests/http_tests.rs
  • CHANGELOG.md
  • docs/AI_GOVERNANCE.md
  • docs/ISCY_STRATEGIC_ROADMAP.md
  • docs/ISCY_Handbuch.md
  • docs/ISCY_Handbuch.pdf

Datenbankmigrationen

  • Neue additive Migration: 0032_rust_management_regulatory_templates
  • SQLite:
    • ergaenzt fehlende Snapshot-Spalten ueber ensure_sqlite_column
    • legt management_review_audit_event und Indizes an
    • ist restartable und erhaelt bestehende Management-Review-Snapshots
  • PostgreSQL:
    • nutzt ALTER TABLE ... ADD COLUMN IF NOT EXISTS
    • legt management_review_audit_event und Indizes an

Neue oder geaenderte API-Endpunkte

  • Neu:
    • GET /api/v1/management/templates
    • GET /api/v1/management/templates/{template_type}
    • POST /api/v1/regulatory/templates/{template_type}/preview
  • Alias-Pfade:
    • GET /api/v1/management/reviews
    • POST /api/v1/management/reviews
    • GET /api/v1/management/reviews/{review_id}
    • PATCH /api/v1/management/reviews/{review_id}
    • GET /api/v1/management/reviews/{review_id}/export
  • Bestehende /api/v1/reports/management-reviews...-Pfade bleiben erhalten.

GUI-Aenderungen

  • /management-reviews/ zeigt Template-Karten.
  • Snapshot-Erzeugung hat eine Template-Auswahl.
  • Eine Template-Vorschau kann vor Snapshot-Erzeugung angezeigt werden.
  • Detailansicht zeigt Template, Quellen, Gap-Summary, Management-Hinweise, Supplier Review und regulatorischen Kontext.

Tenant- und Berechtigungsgrenzen

  • Alle Snapshot-Aggregationen bleiben tenant-scoped in den Datenbankabfragen.
  • Read-only Rollen koennen Templates lesen und Preview erzeugen.
  • Snapshot-Erzeugung und Statusaenderungen bleiben schreibenden Rollen vorbehalten.
  • Fremde Review-Pakete bleiben bei Detail, Update und Export verborgen.

Security-Entscheidungen

  • Preview erzeugt keinen persistierten Management-Review-Snapshot.
  • Audit-Events speichern nur Metadaten wie Template, Format und Zeitraum, keine Rohpayloads, Secrets oder vertraulichen Objekttexte.
  • API-Fehler fuer Datenbankpfade wurden fuer neue Template-Pfade bewusst generisch gehalten.
  • Regulatory-Unterstuetzung wird in Doku und Snapshot-Texten nicht als Rechtsberatung, Zertifizierung oder formale Konformitaetsentscheidung dargestellt.

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
  • nix flake check
  • Handbuch-PDF aus docs/ISCY_Handbuch.md neu erzeugt

Lokal blockierte Checks

  • docker compose ... config konnte lokal nicht ausgefuehrt werden, weil .env dem aktuellen User nicht lesbar ist (-rw------- nobody nogroup). Die Rechte wurden nicht eigenmaechtig geaendert, weil .env potentiell Secrets enthaelt.
  • docker build --file rust/iscy-backend/Dockerfile rust/iscy-backend konnte lokal nicht ausgefuehrt werden, weil kein Docker-Daemon unter /var/run/docker.sock erreichbar ist.

Bekannte Einschraenkungen

  • Die Templates sind bewusst statisch versioniert und noch kein CRUD-Modell.
  • Preview- und Snapshot-Texte sind Governance-Hilfen, keine Rechtsberatung, Zertifizierung oder formale regulatorische Meldung.
  • Feinere Board-, Quartals- oder interne Audit-Varianten koennen spaeter auf derselben Template-Schicht entstehen.

Bewusst nicht umgesetzt

  • Keine Dependency-Upgrades.
  • Keine Docker-, Postgres-, nginx-, Nixpkgs- oder Plattform-Upgrades.
  • Keine Evidence-Disposition, Legal-Hold, Re-Hash, S3/Object-Storage, PKI/CSR, Agent-Signing, Release-Provenance, HA-, Performance- oder Visual-Regression-Erweiterungen.
  • Keine neuen Evidence-, Risk-, Control-, Supplier-, Product-Security- oder Notification-Engines.

@ewilhelm1979-netizen ewilhelm1979-netizen marked this pull request as ready for review July 9, 2026 10:31
@ewilhelm1979-netizen ewilhelm1979-netizen merged commit 973b19c into main Jul 9, 2026
7 checks passed
@ewilhelm1979-netizen ewilhelm1979-netizen deleted the feature/management-regulatory-templates branch July 9, 2026 10:31

@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: 8161a3c1a7

ℹ️ 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".

Query(query): Query<WebContextQuery>,
Form(form): Form<WebManagementReviewPreviewForm>,
) -> Html<String> {
let Some(context) = web_context_from_request(&query, &headers, &state).await else {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Require authentication before previewing tenant snapshots

This new preview handler only calls web_context_from_request, which accepts the display context from query parameters or caller-controlled headers when no session is present, and then uses that tenant/user to build the management-review preview. In a deployed web route, a POST to /management-reviews/preview?tenant_id=<other>&user_id=<id> can therefore read aggregated risks, incidents, suppliers, product-security, AI-governance, and regulatory profile data for that tenant without first passing authenticated_tenant_context; mirror the API preview/generate handlers and derive the tenant from an authenticated session/token before calling the store.

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