feat(datasources): publish durable artifact outputs
Module Package Release / publish-packages (push) Successful in 12s

This commit is contained in:
2026-08-21 17:36:19 +02:00
parent f03497bdaf
commit 97ca670bfe
10 changed files with 639 additions and 38 deletions
+20
View File
@@ -96,6 +96,26 @@ This makes concurrent retries from separate API or worker nodes converge on the
same publication and materialization rather than relying on a late uniqueness
failure after output rows have already been persisted.
## Durable artifact publications
Outputs larger than the inline row and byte limits use an immutable artifact
reference. The reference pins its backend and locator together with SHA-256
checksum, schema, datasource fingerprint, row count, byte count, media type,
and optional resume checkpoint. Datasources persists that reference as the
materialization payload and asks the installed Core-contract artifact backend
to verify it before creating catalogue state. Reads remain bounded and are
re-authorized by Datasources before reaching the backend.
Schema rules are evaluated by Datasources. Content-level rules such as
uniqueness or range require producer evidence bound to the exact payload
checksum and current quality-policy hash, including all evaluated rule IDs.
Missing or explicitly deferred evidence produces a `review_required`
publication and an immutable, addressable materialization, but it does not
replace the Datasource's current state. Valid warnings produce
`published_with_warnings`; failed evidence blocks the publication without a
catalogue side effect. These terminal states are preserved for Dataflow and
Workflow handoffs instead of being collapsed into generic success.
Approval authority, approval expiry, and retention/deletion execution remain
separate work under `govoplan-datasources#2`. Until those contracts are added,
no JSON flag is treated as an approval and no stage is deleted automatically.