Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a028f0-a42f-7582-89a8-ebaad7343834
95 lines
2.7 KiB
Markdown
95 lines
2.7 KiB
Markdown
---
|
|
id: SBOM-WP-0001
|
|
type: workplan
|
|
title: "Bootstrap SBOM Nexus and extract the State Hub SBOM product"
|
|
domain: infotech
|
|
repo: sbom-nexus
|
|
status: finished
|
|
owner: codex
|
|
topic_slug: infotech
|
|
created: "2026-08-22"
|
|
updated: "2026-08-22"
|
|
parent_workplan: CUST-WP-0062
|
|
related:
|
|
- CUST-WP-0062
|
|
- ACTIVITY-WP-0030
|
|
- STATE-WP-0079
|
|
- RMGR-WP-0008
|
|
state_hub_workstream_id: "cde7446f-42b1-54ad-9b22-fdc3d49f10a2"
|
|
---
|
|
|
|
# Bootstrap SBOM Nexus and extract the State Hub SBOM product
|
|
|
|
## Goal
|
|
|
|
Establish SBOM Nexus as a properly defined repository and deliver the first
|
|
working vertical slice of the State Hub extraction: source scanning, immutable
|
|
snapshot persistence, compatible queries and licence report, and bounded
|
|
oldest-stale catch-up behavior.
|
|
|
|
## Establish repository intent and conventions
|
|
|
|
```task
|
|
id: SBOM-WP-0001-T01
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "6c0cceb4-7572-5d9e-ad43-c0e0ef7022da"
|
|
```
|
|
|
|
Write the repository identity, intent, scope, classification, development
|
|
commands, and agent instructions; register and synchronize the repository.
|
|
|
|
## Define product requirements
|
|
|
|
```task
|
|
id: SBOM-WP-0001-T02
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "8922fbe0-b249-50fc-8c80-a0578235b94e"
|
|
```
|
|
|
|
Write an evidence-grounded PRD covering State Hub compatibility, snapshot
|
|
authority, bounded catch-up, skip semantics, migration, and production gates.
|
|
|
|
## Inventory and disposition the existing SBOM surface
|
|
|
|
```task
|
|
id: SBOM-WP-0001-T03
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "3657640a-26cc-5e31-a715-2d5df8867504"
|
|
```
|
|
|
|
Review State Hub, Repo Manager, Activity Core, dashboard, MCP, scripts, models,
|
|
and operational callers. Assign move, strangle, or retarget dispositions.
|
|
|
|
## Extract the first service slice
|
|
|
|
```task
|
|
id: SBOM-WP-0001-T04
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "c4263ec7-c234-53ac-9b64-b4198691f717"
|
|
```
|
|
|
|
Implement the scanner, persistence, HTTP API, legacy compatibility routes,
|
|
licence report, catch-up selection, and terminal skip behavior with tests.
|
|
|
|
## Prepare cutover and historical migration
|
|
|
|
```task
|
|
id: SBOM-WP-0001-T05
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "5e281ac9-400d-5a38-b82a-b3c2198a5e7c"
|
|
```
|
|
|
|
Add PostgreSQL migrations and the idempotent historical import/reconciliation
|
|
runbook. Open and coordinate State Hub/Repo Manager/Activity Core child changes
|
|
before any production authority switch.
|
|
|
|
Completed with a SQLAlchemy SQLite/PostgreSQL store, Alembic baseline and
|
|
disposable PostgreSQL upgrade/runtime/downgrade proof. A live disposable import
|
|
reconciled 22 snapshots, 3,123 entries, all licence groups, and copyleft count;
|
|
the second run was 22/22 idempotent. Production residuals moved to
|
|
`SBOM-WP-0002` and were routed to the three consumer owners.
|