docs(16-01): complete AD group import tracer plan

This commit is contained in:
2026-08-06 15:49:26 +02:00
parent b4844557af
commit 1b19876c32
3 changed files with 29 additions and 18 deletions
+2 -2
View File
@@ -562,12 +562,12 @@ Plans:
**Offen für die Planung**: ob ein Admin eine automatisch angelegte Gruppe in Tessera umbenennen darf (würde beim nächsten Sync überschrieben), und wie sich die Auswahl-Oberfläche zur bestehenden AD-Gruppenauswahl in `/admin/groups` verhält.
**Plans**: 5 plans
**Plans**: 1/5 plans executed
Plans:
**Wave 1**
- [ ] 16-01-PLAN.md — Tracer: Schema-Erweiterung (internalName, ldapObjectGuid) + AD-Gruppen-Import end-to-end (D-01, D-02, D-04)
- [x] 16-01-PLAN.md — Tracer: Schema-Erweiterung (internalName, ldapObjectGuid) + AD-Gruppen-Import end-to-end (D-01, D-02, D-04)
**Wave 2** *(blocked on Wave 1 completion)*
+18 -15
View File
@@ -2,18 +2,18 @@
gsd_state_version: 1.0
milestone: v1.1
milestone_name: Ausschreibungs-Radar
current_phase: 15
current_phase_name: modul-berechtigungen-gruppen-user-grants
current_phase: 16
current_phase_name: AD-Gruppen-Synchronisation
status: executing
stopped_at: Phase 16 UI-SPEC approved
last_updated: "2026-08-06T12:42:37.667Z"
last_activity: 2026-08-04
last_activity_desc: Phase 15 execution started
stopped_at: Completed 16-01-PLAN.md
last_updated: "2026-08-06T13:48:07.306Z"
last_activity: 2026-08-06
last_activity_desc: Phase 16 execution started
progress:
total_phases: 16
completed_phases: 13
total_plans: 80
completed_plans: 73
completed_plans: 74
---
# Project State
@@ -23,16 +23,16 @@ progress:
See: .planning/PROJECT.md (updated 2026-07-17)
**Core value:** Eine zentrale Plattform, in der beliebige Workflow-Tools als Module lizenziert, aktiviert und genutzt werden koennen -- ohne zwischen verschiedenen Anwendungen wechseln zu muessen.
**Current focus:** Phase 15 — modul-berechtigungen-gruppen-user-grants
**Current focus:** Phase 16 — AD-Gruppen-Synchronisation
## Current Position
Phase: 15 (modul-berechtigungen-gruppen-user-grants) — EXECUTING
Plan: 8 of 8
Phase: 16 (AD-Gruppen-Synchronisation) — EXECUTING
Plan: 2 of 5
Status: Ready to execute
Last activity: 2026-08-04 — Phase 15 execution started
Last activity: 2026-08-06 — Phase 16 execution started
Progress: [██████████] 97%
Progress: [█████████░] 93%
## Performance Metrics
@@ -107,6 +107,7 @@ Progress: [██████████] 97%
| Phase 15 P06 | 35min | 3 tasks | 8 files |
| Phase 15 P07 | 30min | 3 tasks | 7 files |
| Phase 15 P08 | 30min | 2 tasks | 12 files |
| Phase 16 P01 | 34min | 3 tasks | 10 files |
## Accumulated Context
@@ -255,6 +256,8 @@ Recent decisions affecting current work:
- [Phase ?]: [15-08]: isAdmin-Gate auf /marketplace und /marketplace/[slug] entfernt (D-08: Katalog bleibt Schaufenster fuer jeden authentifizierten Benutzer) — isAdmin gated jetzt nur noch die Aktivieren/Deaktivieren-Aktion (canManage-Prop)
- [Phase ?]: [15-08]: MarketplaceCard-Klick delegiert an getrennte onOpenDetail/onLockedClick-Callback-Props statt eigener Router-Logik in der Karte — bleibt praesentational und ueber vi.fn() testbar
- [Phase ?]: [quick-260805-fok]: ensureDefaultGroup-Waechter prueft ausschliesslich group.count === 0, nie die fehlende isDefault-Markierung (D-13); Reparatur laeuft als zweiter sequenzieller await-Schritt in AdminSeedService.onApplicationBootstrap statt als eigener Hook in GroupsModule (Ordering-Falle wie in tender-scheduler.service.ts)
- [Phase ?]: Checkpoint 1 (16-01 Task 1): approve-both — Group.internalName + ldapObjectGuid + Unique-Index in einer Migration, freigegeben 2026-08-06
- [Phase ?]: Migrationsverfahren angepasst: prisma migrate dev verweigert nicht-interaktive Shell — Ersatz via migrate diff + Handdatei + migrate deploy, inkl. Baseline der 24 Altmigrationen per migrate resolve --applied
### Pending Todos
@@ -299,7 +302,7 @@ Items acknowledged and carried forward from previous milestone close:
## Session Continuity
Last session: 2026-08-06T11:52:33.849Z
Stopped at: Phase 16 UI-SPEC approved
Resume file: .planning/phases/16-ad-gruppen-synchronisation/16-UI-SPEC.md
Last session: 2026-08-06T13:48:07.273Z
Stopped at: Completed 16-01-PLAN.md
Resume file: None
Last activity: 2026-07-14 - Built LDAP per-user exclude/denylist filter (9d1323f), migration applied on live DB, verified via Playwright: sync deactivated 4 excluded service accounts (administrator/krbtgt/guest/dns-ldap), 2 real LDAP users stay active, 0 wrongly created
@@ -175,9 +175,17 @@ Each task was committed atomically:
- **Verification:** `grep -ci 'row level security' migration.sql` = 0; `npx vitest run src/groups/migration-sql.spec.ts` grün (14 Tests)
- **Committed in:** 626e296
**4. [Rule 1 - Bug] `requirements mark-complete PERM-02` hätte den Requirement-Status verfälscht — Checkbox zurückgesetzt**
- **Found during:** State-Update-Schritt nach Task 3
- **Issue:** Die Plan-Frontmatter listet `requirements: [PERM-02]`, und der Standard-State-Update-Schritt hakt daraufhin PERM-02 in REQUIREMENTS.md als erledigt ab. PERM-02 beschreibt aber die vollständige AD-Sync-Kette (Umbenennung folgt nach, Verschwinden löscht kaskadierend, `memberOf` pflegt Mitgliedschaften) — dieser Plan liefert nur den selektiven Import (den Anfang der Kette). Die verbleibenden vier Pläne der Phase 16 liefern Rekonziliation, Anzeige-Fallback und Dialog-Umbau erst noch. Ein Abhaken jetzt hätte Requirements-Tracking und spätere Audit-/Ship-Gates fälschlich glauben lassen, PERM-02 sei vollständig erfüllt.
- **Fix:** Checkbox in REQUIREMENTS.md Zeile 67 manuell auf `[ ]` zurückgesetzt, nachdem der Standard-Befehl sie automatisch gesetzt hatte. `requirements-completed` im Frontmatter dieses Summarys bleibt trotzdem `[PERM-02]` (Plan-Frontmatter-Vertrag), aber die eigentliche Traceability-Tabelle bleibt korrekt „Pending", bis der letzte Plan der Phase liefert.
- **Files modified:** .planning/REQUIREMENTS.md
- **Verification:** `grep -n 'PERM-02' .planning/REQUIREMENTS.md` zeigt weiterhin `[ ]` und Traceability-Zeile „Pending"
- **Committed in:** wird mit dem abschließenden Metadaten-Commit dieses Plans committet
---
**Total deviations:** 3 auto-fixed (2 blocking / Migrationsverfahren, 1 Bug in eigenem Kommentartext)
**Total deviations:** 4 auto-fixed (2 blocking / Migrationsverfahren, 1 Bug in eigenem Kommentartext, 1 Bug in Requirements-Tracking)
**Impact on plan:** Alle drei Anpassungen waren notwendig, um Task 3 überhaupt abzuschließen bzw. um die eigenen Acceptance-Kriterien zu erfüllen. Kein Scope Creep — die Migration selbst entspricht exakt dem im Plan vorgesehenen Inhalt (zwei nullable Spalten, ein Unique-Index, keine RLS-Anweisung).
## Issues Encountered