{ "planPath": "docs/plans/2026-06-01-zb-mom-ww-auth-shared-library.md", "repo": "~/Desktop/scadaproj/ZB.MOM.WW.Auth", "tasks": [ {"id": 1, "nativeId": 6, "subject": "Task 1: Scaffold repo, solution, projects", "status": "completed", "blockedBy": []}, {"id": 2, "nativeId": 7, "subject": "Task 2: Abstractions — all contract types", "status": "completed", "blockedBy": [1]}, {"id": 3, "nativeId": 8, "subject": "Task 3: LDAP filter & DN escaping", "status": "completed", "blockedBy": [2]}, {"id": 4, "nativeId": 9, "subject": "Task 4: ILdapConnection seam + Novell adapter + fake", "status": "completed", "blockedBy": [2]}, {"id": 5, "nativeId": 10, "subject": "Task 5: LdapAuthService happy path + validation", "status": "completed", "blockedBy": [3, 4]}, {"id": 6, "nativeId": 11, "subject": "Task 6: LdapAuthService failure modes (fail-closed)", "status": "completed", "blockedBy": [5]}, {"id": 7, "nativeId": 12, "subject": "Task 7: GLAuth integration test (skippable)", "status": "completed", "blockedBy": [6]}, {"id": 8, "nativeId": 13, "subject": "Task 8: API-key token parser + secret generator", "status": "completed", "blockedBy": [2]}, {"id": 9, "nativeId": 14, "subject": "Task 9: Peppered HMAC hasher + constant-time compare", "status": "completed", "blockedBy": [2]}, {"id": 10, "nativeId": 15, "subject": "Task 10: SQLite schema + connection factory + migrator", "status": "completed", "blockedBy": [2]}, {"id": 11, "nativeId": 16, "subject": "Task 11: SqliteApiKeyStore (read + mark-used)", "status": "completed", "blockedBy": [10]}, {"id": 12, "nativeId": 17, "subject": "Task 12: SqliteApiKeyAdminStore + audit", "status": "completed", "blockedBy": [11]}, {"id": 13, "nativeId": 18, "subject": "Task 13: ApiKeyVerifier pipeline", "status": "completed", "blockedBy": [8, 9, 11]}, {"id": 14, "nativeId": 19, "subject": "Task 14: Reusable admin command set", "status": "completed", "blockedBy": [12]}, {"id": 15, "nativeId": 20, "subject": "Task 15: AspNetCore claim types, cookie defaults, DI", "status": "completed", "blockedBy": [5, 13]}, {"id": 16, "nativeId": 21, "subject": "Task 16: Packaging — nupkgs, push script, README", "status": "completed", "blockedBy": [7, 14, 15]} ], "sweepNote": "Retro-completed by the 2026-08-07 documentation truth sweep: the program this ledger tracks is recorded as shipped/complete in scadaproj CLAUDE.md (ZB.MOM.WW.Auth built (4 pkgs, feed 0.1.0-0.1.5, 215 tests) and adopted by all apps 2026-06-02); the ledger was never flipped when the work landed.", "lastUpdated": "2026-08-07T00:00:00Z" }