Repository navigation
Verify business-site release evidence before staging registration #5248
Description
🤖 Generated by the Agentic Engineer
Summary
Verify the business site's signed manifest publication through Platform's existing first-consumer tooling, without granting deployment authority.
Motivation
The public-only staging registration in #5247 needs verifiable first-publication evidence before Flux can supply an observed binding. Platform main 32e5761d3c2e785edb8bc62d58b6fdedc63420f7 currently binds its bootstrap verifier to the existing documentation consumer, the legacy publisher identity, a push event and a different caller. The actual business-site v1.0.2 publication uses a release event and its source-owned runtime caller. Copying a bare signer revision into the legacy approval format would misinterpret its authority.
Proposed Solution
Extend the existing tooling with one explicit, non-activating business-site verification profile. Bind the repository, caller, event, maintained publisher, source identity and manifest package to the reviewed consumer. Preserve the existing documentation-consumer path unchanged. Produce a distinct manifest-publication evidence receipt that is not accepted as a bootstrap approval, observed Flux binding or active consumer record.
The expected immutable inputs come from the independently verified v1.0.2 release recorded on #5247. This increment re-verifies manifest publication; it must not claim that it independently repeats paired-image/provenance verification or deploys the tenant.
Acceptance Criteria
- An explicit opt-in invokes only the named business-site profile; ordinary bootstrap behavior and existing refusal controls remain unchanged.
- The actual caller, successful release publication, immutable source/tag/digest and exact fully qualified maintained publisher are independently bound. Wrong or ambiguous product, event, caller, publisher, tag, source or digest refuses.
- Incomplete, malformed, trailing or failed dependency reads, including plausible output followed by failure, emit no success receipt.
- Verification writes no approval, matcher, tenant registration, policy, routing or cluster state. It cannot accidentally populate the legacy approval schema.
- Retained documentation-consumer tests and new behavioral controls pass. Exercise the real v1.0.2 manifest signature/publication path and record its boundary separately from static fixtures.
- Documentation explains the explicit command, receipt limitations and remaining Register the public-only business-site staging tenant #5247 registration/private-input/live-acceptance work.
Alternatives Considered
Do not add a guessed approval row, broaden a signer matcher, copy the legacy workload skeleton, or introduce a parallel publication system. Actual tenant registration and private-input ownership remain separate acceptance under #5247.
Planning
Priority High; Effort Medium; Standard service class. The outcome is a repeatable Platform-side verification path for the existing signed business artifact. Success is the real verified receipt plus retained negative controls during this delivery, with no runtime authority change. WIP capacity is explicitly waived by the maintainer for this session. This non-activating child does not require or claim the parent's private configuration value.
Part of #5247.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Start date
Target date
Effort
Projects
- StatusShow more project fields✅ Done
Activity
chore: agent-claim #5248 nonce=2b53956446e36c50e30ddee8bd2e9032
fix: bind business publication signatures to release runs
devantler commentedon Oct 23, 2026
Post-merge verification, 23 October: #5249 is MERGED as GitHub-valid signed
6e35658ee7d25aa45564d6331112d086bd6cd0e8. Fresh main840972ba426ed11e6ad5bf328335995464667af1retains byte-identical publication-reader code. From an atomically owned, clean isolated checkout of that merged descendant, the real documented business-site verify-only command completed successfully against the existing immutable v1.0.2 manifest publication.The actual receipt is
kind=manifest-publication-evidence,deploymentAuthorized=false, sourcee5eb256dcb5dbf3857257e9072937ab95f1ea6c3, manifest digestsha256:6adcb1794ebdf5de4e1b03f758d44d6f9061eee43b863b1b1f4955a1e1d2615e, exact maintained publisher467f07582436a26b62cf4aa756423512f85ba0c0, source-owned release caller and successful publication run 39869859801 attempt 1. The checkout remains clean. This repeats the real manifest-signature/publication path, not only fixtures; it does not independently repeat the paired-image verification or authorize an approval, tenant, route or cluster change.The complete
scripts/tests/test-bootstrap-tenant-source.shregression suite also passes on that merged descendant, retaining the ordinary bootstrap and business-publication refusal boundaries. The checkout remains clean after both executions.This closes the merged-reader verification checkpoint. #5247 remains OPEN for actual consumer/private-input/controller acceptance. Business-site #300/#301 add new input declarations and will require their own newly verified publication before consumption; the existing v1.0.2 evidence cannot be relabeled as containing them. No deployment, provider or portal activation is claimed.