Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a028f0-a42f-7582-89a8-ebaad7343834
2.8 KiB
PostgreSQL and State Hub history rehearsal — 2026-08-22
Scope
Evidence for SBOM-WP-0001-T05. No production SBOM authority or State Hub rows
were changed. PostgreSQL and Nexus history targets were disposable.
PostgreSQL migration/runtime proof
A disposable postgres:16-alpine instance received:
alembic upgrade headfrom an empty database;- the PostgreSQL API contract test (health, repository upsert, manual ingest, current view, and licence report); and
alembic downgrade base.
All three completed successfully. The container was stopped and removed after the test.
The production Containerfile also built as sbom-nexus:test; a disposable
container started as uid 10001 and returned a successful /state/health
response using its writable /data SQLite development default.
Live State Hub history baseline
Read-only source: workstation State Hub at 127.0.0.1:8000.
| Measure | Value |
|---|---|
| Repositories with history | 18 |
| Historical snapshots | 22 |
| Historical entries | 3,123 |
| Oldest snapshot | 2026-03-01T15:12:54.862697Z |
| Newest snapshot | 2026-07-08T20:37:48.255925Z |
Disposable import result
The first import created all 22 snapshots in a temporary Nexus SQLite database. Snapshot reconciliation succeeded immediately:
- expected/matched snapshots: 22/22;
- expected/target imported entries: 3,123/3,123;
- missing legacy ids: 0;
- snapshot field mismatches: 0.
The initial licence comparison reported a mismatch solely because the two APIs returned equal groups in different orders. Group ordering is not contractual; the importer was corrected to compare normalized groups keyed by licence.
The second run then proved both correctness and idempotence:
already_present: 22;- snapshot reconciliation: pass;
- licence groups: exact normalized match;
- source/target direct-production copyleft count: 4/4;
- overall result: pass.
Production gate retained
This is migration-mechanism evidence, not authority cutover approval. Production still requires a managed PostgreSQL service, backup/restore evidence, deployment health, State Hub façade and projection changes, Repo Manager retargeting, Activity Core bounded-ingest activation, and a stabilization window.
Consumer handoffs
State Hub coordination messages were sent from sbom-nexus with the cutover
plan and explicit ownership boundaries:
| Consumer | Message id | Requested child slice |
|---|---|---|
| State Hub | 5a28a4e8-476a-4766-8e11-9c8b4f4cf57a |
reversible compatibility façade and caller retargeting |
| Repo Manager | 62d3bd49-9050-458f-9aa9-b6af348f9eb0 |
retarget scanner/report interface and remove competing authority |
| Activity Core | 3420be55-d0ad-4eb7-93b2-42ac4281c61d |
unblock bounded ingest while retaining deployment gates |