ENG-09: Workflow-Trigger nach Upload und Auto-Regel #221

Merged
patrick merged 1 commits from feature/eng-09-workflow-trigger-nach-upload-und-auto-regel into main 2026-09-27 10:10:49 +02:00
Owner

Zusammenfassung

  • Ereignisvertrag (versioniert, Tenant-Bindung, Dedupe-Key) in moduleadapter.PublishEvent//events; Ereignisse fremder Mandanten werden abgelehnt und protokolliert (RejectedEvents).
  • Neue Migration 0013_event_dispatch: module_events um Mandant/Dedupe/Verarbeitungsstatus erweitert, neue Tabellen event_task_rules (mandantenweite Zuordnung Ereignis -> Aufgabe/Genehmigung) und event_dispatch_log (Einmal-Verarbeitung).
  • Neues Paket internal/eventtrigger: RuleStore + Dispatcher.Dispatch, erzeugt aus einem Ereignis ueber die konfigurierte Regel genau eine Aufgabe oder einen Genehmigungslauf.

Pruefungen (siehe workflow/docs/ENG-09-PRUEFPROTOKOLL.md)

  1. Doppelzustellung -> genau eine Aufgabe: PASS (TestPublishEvent_DuplicateDedupeKeyIsIdempotent, TestDispatch_DuplicateDeliverySameEventCreatesOnlyOneTask)
  2. Ausfall/Wiederanlauf ohne Verlust/Dubletten: PASS (TestDispatch_SurvivesRestartWithoutLossOrDuplicates, TestDispatch_EventWithoutRuleStaysPending); bekanntes, dokumentiertes Restrisiko bei Absturz im schmalen Fenster zwischen Objekt-Anlage und Bestaetigung.
  3. Cross-Tenant negativ -> abgelehnt und protokolliert: PASS (TestPublishEvent_RejectsForeignTenantAndLogsIt)

Alle Tests real gegen Postgres 17 auf Testhost 192.168.1.204 ausgefuehrt (eigene Wegwerf-DB, zurueckgebaut). Voller Modul-Testlauf (go test ./... -p 1) und go vet ./... gruen, keine Regressionen.

🤖 Generated with Claude Code

## Zusammenfassung - Ereignisvertrag (versioniert, Tenant-Bindung, Dedupe-Key) in `moduleadapter.PublishEvent`/`/events`; Ereignisse fremder Mandanten werden abgelehnt und protokolliert (`RejectedEvents`). - Neue Migration `0013_event_dispatch`: `module_events` um Mandant/Dedupe/Verarbeitungsstatus erweitert, neue Tabellen `event_task_rules` (mandantenweite Zuordnung Ereignis -> Aufgabe/Genehmigung) und `event_dispatch_log` (Einmal-Verarbeitung). - Neues Paket `internal/eventtrigger`: `RuleStore` + `Dispatcher.Dispatch`, erzeugt aus einem Ereignis ueber die konfigurierte Regel genau eine Aufgabe oder einen Genehmigungslauf. ## Pruefungen (siehe workflow/docs/ENG-09-PRUEFPROTOKOLL.md) 1. Doppelzustellung -> genau eine Aufgabe: PASS (`TestPublishEvent_DuplicateDedupeKeyIsIdempotent`, `TestDispatch_DuplicateDeliverySameEventCreatesOnlyOneTask`) 2. Ausfall/Wiederanlauf ohne Verlust/Dubletten: PASS (`TestDispatch_SurvivesRestartWithoutLossOrDuplicates`, `TestDispatch_EventWithoutRuleStaysPending`); bekanntes, dokumentiertes Restrisiko bei Absturz im schmalen Fenster zwischen Objekt-Anlage und Bestaetigung. 3. Cross-Tenant negativ -> abgelehnt und protokolliert: PASS (`TestPublishEvent_RejectsForeignTenantAndLogsIt`) Alle Tests real gegen Postgres 17 auf Testhost 192.168.1.204 ausgefuehrt (eigene Wegwerf-DB, zurueckgebaut). Voller Modul-Testlauf (`go test ./... -p 1`) und `go vet ./...` gruen, keine Regressionen. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-09-27 09:34:41 +02:00
ENG-09: workflow-trigger nach upload und auto-regel
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) 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 / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / Web (dms-browser) (pull_request) 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
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
6e586b9087
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick merged commit 5f2dd49956 into main 2026-09-27 10:10:49 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#221