🤖 Generated by the Agentic Engineer
Evidence
platform#3677 moves the AS Coaching and Wedding tenant OCIRepository sources from a pinned tag to semver: ">=1.0.0". Its merge-group production deploy failed after 30 minutes because the AS Coaching source selected v1.13.5, signed by a newer immutable revision of the platform-owned publish-app.yaml workflow than the platform's exact two-revision matcher allowed.
The same release passed tenant CI and signature creation. The failure arose only because every shared-workflow revision change required a second platform PR before the tenant's already signed release could reconcile.
Problem
The platform was treating ordinary tenant release movement as an authorization change. That couples tenant delivery to platform signer-revision updates and makes an otherwise valid release fail closed until the platform repins it.
The security boundary belongs to the platform: exact GitHub OIDC issuer, organization, shared workflow path, immutable workflow commit shape, package source, namespace, RBAC, network policy, and admission policy. A tenant release that remains within those bounds does not add authority.
Model decision — 2026-09-12
Application release streams (ascoachingogvaner and wedding-app) trust any immutable 40-hex commit of the exact platform-owned devantler-tech/actions/.github/workflows/publish-app.yaml workflow. They do not carry a per-revision allow-list.
Infrastructure and configuration consumers (.github and aws) remain bound to their generated exact revision sets. The approved-revisions report remains evidence for all consumers, but regeneration must not repin trusted application release streams.
A tenant that needs authority outside the existing package, namespace, RBAC, network, or policy boundary still requires a reviewed platform change.
Acceptance criteria
Blocks platform#3677.
Evidence
platform#3677moves the AS Coaching and Wedding tenantOCIRepositorysources from a pinned tag tosemver: ">=1.0.0". Its merge-group production deploy failed after 30 minutes because the AS Coaching source selected v1.13.5, signed by a newer immutable revision of the platform-ownedpublish-app.yamlworkflow than the platform's exact two-revision matcher allowed.The same release passed tenant CI and signature creation. The failure arose only because every shared-workflow revision change required a second platform PR before the tenant's already signed release could reconcile.
Problem
The platform was treating ordinary tenant release movement as an authorization change. That couples tenant delivery to platform signer-revision updates and makes an otherwise valid release fail closed until the platform repins it.
The security boundary belongs to the platform: exact GitHub OIDC issuer, organization, shared workflow path, immutable workflow commit shape, package source, namespace, RBAC, network policy, and admission policy. A tenant release that remains within those bounds does not add authority.
Model decision — 2026-09-12
Application release streams (
ascoachingogvanerandwedding-app) trust any immutable 40-hex commit of the exact platform-owneddevantler-tech/actions/.github/workflows/publish-app.yamlworkflow. They do not carry a per-revision allow-list.Infrastructure and configuration consumers (
.githubandaws) remain bound to their generated exact revision sets. The approved-revisions report remains evidence for all consumers, but regeneration must not repin trusted application release streams.A tenant that needs authority outside the existing package, namespace, RBAC, network, or policy boundary still requires a reviewed platform change.
Acceptance criteria
@[0-9a-f]{40}workflow-commit pattern on each declared trusted application release stream..githubandawscontinue to require their exact generated revision sets.platform#3677can reconcile the newest signed AS Coaching and Wedding releases without a signer-revision platform update.Blocks
platform#3677.