Commit Graph
22 Commits
Author SHA1 Message Date
sysops e39fb6f237 Merge branch 'feature/ops-06-automatisiertes-schwachstellen-scanning-supply-chain' into feature/qa-05-abnahme-compliance-pruefung-core
# Conflicts:
#	DEVLOG.md
#	go.sum
2026-08-29 17:08:37 +02:00
sysops 53af28d928 Merge branch 'feature/ops-05-alerting-bei-schwellwert-ueberschreitung' into feature/qa-05-abnahme-compliance-pruefung-core
# Conflicts:
#	DEVLOG.md
#	go.mod
#	go.sum
#	scripts/reset-test-env.sh
#	scripts/run-checks.sh
2026-08-29 17:06:55 +02:00
sysops 98944b1412 Merge branch 'feature/cfg-04-benachrichtigungs-einstellungen-oberflaeche' into feature/qa-09-barrierefreiheits-audit
# Conflicts:
#	DEVLOG.md
#	scripts/reset-test-env.sh
#	scripts/run-checks.sh
2026-08-29 10:01:48 +02:00
sysops 8a779531e1 Merge branch 'feature/rbac-05-rechte-administrationsoberflaeche' into feature/qa-09-barrierefreiheits-audit
# Conflicts:
#	DEVLOG.md
2026-08-29 09:58:58 +02:00
sysops 6d288732c6 Merge branch 'feature/ten-05-tenant-verwaltungsoberflaeche' into feature/qa-02-pruefgate-identitaet-mandanten
# Conflicts:
#	internal/tenant/registry.go
2026-08-29 00:09:28 +02:00
sysops 2147b4c7fd DEVLOG: Sessionlog-Eintrag (Auto-Hook) 2026-08-29 00:08:45 +02:00
sysops 55872c96da DEVLOG: Sessionlog-Eintrag (Auto-Hook) 2026-08-29 00:08:05 +02:00
sysops 5fcae51aac OPS-05: fix — go.mod auf go 1.25.0 (prometheus/client_golang benoetigt es), sql-typfehler in shouldFire (interval-multiplikation statt string-konkatenation) 2026-08-29 00:02:11 +02:00
sysops b1601c578a DEVLOG: Sessionlog-Eintrag (Auto-Hook) 2026-08-28 23:54:01 +02:00
sysops 81ff8c18c3 Merge branch 'feature/shl-01-ui-shell-design-system-zentral' into feature/cfg-04-benachrichtigungs-einstellungen-oberflaeche
# Conflicts:
#	DEVLOG.md
2026-08-28 23:48:23 +02:00
sysops e65625841c DEVLOG: Sessionlog-Eintrag (Auto-Hook) 2026-08-28 23:45:51 +02:00
sysops bd80f0cb16 Merge branch 'feature/shl-01-ui-shell-design-system-zentral' into feature/rbac-05-rechte-administrationsoberflaeche
# Conflicts:
#	DEVLOG.md
2026-08-28 23:41:36 +02:00
sysops bf8f905767 DEVLOG: Sessionlog-Eintrag (Auto-Hook)
Supply-Chain-Scan (Go) / govulncheck (push) Has been cancelled
2026-08-28 23:07:16 +02:00
sysops 9de84f6994 OPS-06: fix — fehlendes fail=1 im govulncheck-unavailable-zweig, govulncheck-version gepinnt statt @latest (Go-Versionskonflikt auf 131 gefunden) 2026-08-28 23:04:49 +02:00
sysops 77ecf42365 OPS-06: fix — verify-supply-chain-gate.sh unterscheidet jetzt echten Fund von Werkzeugfehler (pruefte vorher nur exit-code, 'command not found' galt faelschlich als bestanden) 2026-08-28 23:03:05 +02:00
sysops 12b1978ae1 Merge branch 'feature/shl-01-ui-shell-design-system-zentral' into feature/ten-05-tenant-verwaltungsoberflaeche 2026-08-28 22:02:02 +02:00
sysops bfa5c61db5 SHL-01: fix — Test-Cleanup zwischen Dialog-Tests (afterEach(cleanup), sonst stapeln sich gerenderte DOM-Bäume) 2026-08-28 22:01:56 +02:00
sysops 49404c5fa4 Merge branch 'feature/shl-01-ui-shell-design-system-zentral' into feature/ten-05-tenant-verwaltungsoberflaeche
# Conflicts:
#	DEVLOG.md
2026-08-28 21:46:07 +02:00
sysops 584cefa388 DEVLOG: Sessionlog-Eintrag (Auto-Hook) 2026-08-28 21:45:55 +02:00
sysopsandClaude Sonnet 5 5915a4e7b1 TEN-02: tenant-onboarding-api-self-service
OnboardingService.Onboard: ein API-Aufruf legt Tenant (via bestehendem
Provisioner) UND ersten Administrator-Account (via IAM-01 TenantUserStore)
an. CREATE DATABASE erlaubt keine echte cross-database Transaktion, daher
Saga-Kompensation: schlaegt die Admin-Anlage nach erfolgreichem Provisioning
fehl, wird der Tenant per neuem Provisioner.Deprovision wieder vollstaendig
entfernt (Registry.Delete + DB-Drop).

Provisioner.Provision mappt Duplikat-Faelle (42P04 duplicate_database und
den bei echt parallelen CREATE DATABASE moeglichen 23505-Unique-Konflikt auf
pg_database) jetzt auf ErrTenantExists statt einer rohen Postgres-Fehlermeldung.

Pruefungen (ausgefuehrt auf root@192.168.1.131, go build/vet/test PASS):
1. Onboarding-Vorgang zweimal parallel mit gleichem Slug ausgeloest —
   TestOnboarding_RejectsDuplicateSlugConcurrently: genau ein Erfolg, kein
   Doppel-Tenant, zweiter Aufruf bekommt ErrTenantExists. PASS.
2. Fehleingaben (leere Pflichtfelder, ungueltige E-Mail, ungueltiger Slug) —
   TestOnboarding_ValidationErrors deckt alle vier Faelle mit klaren Fehlern
   ab, bevor irgendein DB-Zugriff stattfindet. PASS.
3. Erfolgreicher Durchlauf von zweiter Person end-to-end nachvollzogen —
   NICHT durchgefuehrt (keine zweite Person in dieser Session verfuegbar).
   Offen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 18:16:54 +02:00
sysopsandClaude Sonnet 5 8da9c67d08 TEN-01: tenant-registry-datenbank-provisioning
Registry-DB (nur Tenant-Metadaten), Provisioning-Routine legt pro Mandant
eine physisch isolierte Postgres-DB an und registriert sie transaktional
(Rollback der DB bei fehlgeschlagener Registrierung). Schlanker HTTP-Handler
als Schnittstellen-Vorbereitung fuer API-01/TEN-02, kein eigenes REST-Grundgerüst.

Pruefungen:
1. Migration up/down geschrieben (0001_tenant_registry.{up,down}.sql) — nicht
   gegen echte DB ausgefuehrt, da auf dieser Maschine kein Go/Postgres-Test-
   Setup verfuegbar ist. Offen zur Ausfuehrung.
2. Integrationstest TestProvision_CreatesIsolatedDatabases geschrieben (zwei
   Mandanten, prueft unterschiedliche db_name und current_database()) —
   ebenfalls nicht ausgefuehrt, guarded per TEST_ADMIN_DSN env var. Offen.
3. Slug-Validierung (unit test TestValidateSlug) deckt SQL-Injection-Versuch
   im Datenbanknamen ab — ebenfalls nicht lokal ausgefuehrt, da kein Go
   Compiler auf dieser Maschine vorhanden ist. Offen.

Alle drei Pruefungen sind vorbereitet, aber NICHT durchgefuehrt worden —
zaehlen laut Vorgabe als offen bis auf einer Maschine mit Go+Postgres verifiziert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 17:40:35 +02:00
sysops c895a67c4b core: initial Go module skeleton (config, db pool, tenant registry migration) 2026-08-27 17:27:59 +02:00