sbom-nexus/workplans/SBOM-WP-0003-controlled-source-and-replay.md
tegwick 94c4435b66 workplans: record live SBOM canary
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02b22-9638-76d2-bbff-b7ea1770b118
2026-08-23 00:25:17 +02:00

100 lines
3.6 KiB
Markdown

---
id: SBOM-WP-0003
type: workplan
title: "Controlled Forgejo source ingestion and durable operation replay"
domain: infotech
repo: sbom-nexus
status: active
owner: codex
topic_slug: infotech
created: "2026-08-22"
updated: "2026-08-23"
quality_dor: DoR-Ok
quality_dor_at: "2026-08-22"
quality_dor_by: codex
quality_dor_note: "CUST-WP-0064 selected a full-SHA public Forgejo archive contract with bounded extraction, explicit provenance, owner handoffs, idempotency, failure semantics, acceptance evidence, and rollback."
parent_workplan: CUST-WP-0064
related:
- CUST-IN-0013
- ACTIVITY-WP-0033
- RMGR-WP-0011
state_hub_workstream_id: "dc07cc14-9a5d-568d-8e19-036661e52120"
---
# Controlled Forgejo source ingestion and durable operation replay
## Implement durable operation receipts
```task
id: SBOM-WP-0003-T01
status: done
priority: high
state_hub_task_id: "ad2b95fd-a7b1-5331-a8c3-1545fdb6db10"
```
Enforce supplied `Idempotency-Key` / `X-Activity-Core-Operation-ID` values on
repository ingest and skip. Persist a request fingerprint and snapshot link in
the same transaction, replay the original terminal outcome, and reject key
reuse for a different operation.
Completed with migration `0002`, transactional operation receipts, early
replay before source work, request-conflict HTTP 409 behavior, and ingest/skip
tests proving one snapshot across duplicate requests.
## Add controlled full-SHA source ingestion
```task
id: SBOM-WP-0003-T02
status: done
priority: high
state_hub_task_id: "3a8734f2-c00e-584f-b5ff-f22370a5ce02"
```
Consume the `forgejo-archive-v1` source reference selected in
`the-custodian/docs/sbom-controlled-scan-input-contract-v1.md`. Validate the
identity, stream and safely extract within fixed limits, pass the explicit
revision into the scanner, persist archive provenance, and always clean up.
Completed with strict Coulomb identity/full-SHA validation, same-host fetches,
streaming compressed limits, safe regular-file-only extraction, one scan slot,
subprocess scan timeout, explicit revision override, archive provenance, and
temporary-directory cleanup. A real Forgejo archive scan produced 33 entries
from one manifest with zero errors.
## Extend repository projection and outcomes
```task
id: SBOM-WP-0003-T03
status: done
priority: high
state_hub_task_id: "5be7b81e-0469-5d74-a28c-8802187a122a"
```
Store and return source references in repository/catch-up projections. Add
terminal `source-unavailable` and `source-rejected` outcomes without changing
oldest-N ranking or success-time semantics.
Completed in the repository projection, API model, storage schema, catch-up
response, and additive skip handling. Legacy checkout scanning remains
available for local/operator compatibility while the production flag is dark.
## Prove package integration and production behavior
```task
id: SBOM-WP-0003-T04
status: progress
priority: high
state_hub_task_id: "9c8a2b6c-2b99-5dd8-9c1c-b5ba4ad2367b"
```
Coordinate the schema migration, ephemeral volume, Forgejo-only egress, and
feature flag with `rapp-sbom-nexus`; then pass unit/integration tests and the
attended plus scheduled production proof owned by CUST-WP-0064.
The package promoted digest
`sha256:1da0f4f008643a0dec3f00bbad15f287103aa4b469577b78cfe1d67f8b3cbe31`
after migration `0002`. The attended `sbom-nexus` canary produced snapshot
`04f5c0ba-d073-4577-ba2d-0854346ac7be`: 33 entries, exact full-SHA revision,
archive SHA-256/byte provenance, zero errors, identical replay under the same
operation key, and an empty transient directory before and after. The feature
is dark again with snapshot history intact; scheduled proof remains.