e45c4af91d
Claude-Session: https://claude.ai/code/session_013L3XdmVii9i5sY4FChU8pB
133 lines
3.0 KiB
JSON
133 lines
3.0 KiB
JSON
{
|
|
"planPath": "docs/plans/2026-09-02-inbound-api-key-shared-store.md",
|
|
"tasks": [
|
|
{
|
|
"id": 1,
|
|
"subject": "Task 1: IApiKeyStoreMigrator abstraction + SQLite implements it (scadaproj)",
|
|
"status": "completed",
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"subject": "Task 2: ZB.MOM.WW.Auth.ApiKeys.SqlServer skeleton + options + connection factory",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
1
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"subject": "Task 3: zbauth schema + concurrent-boot-safe migrator",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
2
|
|
],
|
|
"model": "opus"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"subject": "Task 4: SqlServerApiKeyStore / AdminStore / AuditStore (contract tests live)",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
3
|
|
],
|
|
"model": "opus"
|
|
},
|
|
{
|
|
"id": 5,
|
|
"subject": "Task 5: SqliteApiKeyStoreImporter (idempotent union)",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
4
|
|
],
|
|
"model": "opus"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"subject": "Task 6: AddZbApiKeyAuthSqlServer DI + README/changelog + version 0.3.0",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
4
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 7,
|
|
"subject": "Task 7: Publish 0.3.0 to the Gitea feed + umbrella index (user confirms push)",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
5,
|
|
6
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 8,
|
|
"subject": "Task 8: ScadaBridge pins 0.3.0 + InboundApiKeyStoreOptions (Provider)",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
7
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 9,
|
|
"subject": "Task 9: Program.cs provider composition + InboundApiKeyStoreImportService",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
8
|
|
],
|
|
"model": "opus"
|
|
},
|
|
{
|
|
"id": 10,
|
|
"subject": "Task 10: StartupValidator warning for clustered central on SQLite keys",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
9
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"subject": "Task 11: Docker rigs on the shared store; delete sync-inbound-api-keys.sh; drill without copying",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
9
|
|
],
|
|
"model": "opus"
|
|
},
|
|
{
|
|
"id": 12,
|
|
"subject": "Task 12: Docs, runbook, DBA SQL, env inventory, CLAUDE.md, register row 108, umbrella index",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
9
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 13,
|
|
"subject": "Task 13: Planned deployment record for QA vq03/vq04 and prod vd03",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
12
|
|
],
|
|
"model": "sonnet"
|
|
},
|
|
{
|
|
"id": 14,
|
|
"subject": "Task 14: Final cross-repo review (fable)",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
10,
|
|
11,
|
|
12,
|
|
13
|
|
],
|
|
"model": "fable"
|
|
}
|
|
],
|
|
"lastUpdated": "2026-09-02T18:40:27Z"
|
|
} |