Skip to content

Admit business-site publication for source-only staging #5307

Open
1 of 1 issue completed
Open

Description

@devantler

🤖 Generated by the Agentic Engineer

Summary

Admit the business site's verified source-owned publisher and register its immutable source-only staging Tenant. Part of #5247. This is the concrete first adoption increment; it does not enable application reconciliation or the private portal.

Motivation

The signed application/image pair is published, but current admission assumes legacy publication history that this consumer never had. Binding verification and source-conservation checks also cannot recognize its maintained publisher and the actual typed Tenant source. Without completing that chain, a valid application release cannot be admitted for staging.

Proposed Solution

Extend the existing qualified approval/binding generator, writer, guard, report and bootstrap schema to support a canonical-only consumer while preserving legacy consumers. Join the complete consumer, artifact, source/tag/caller and immutable publisher identity; verification-only receipts continue to grant no deployment authority. Attribute only the already reviewed exact Tenant source constructor in conservation, retaining all unknown/altered/foreign constructor refusals. Regenerate governed matchers/tables using their reviewed tools.

Use an independently reverified published business-site manifest and declare exactly its production-provider source with reconcileApplication:false. Observe the signed source through the normal protected deployment/readback path. Keep application activation, staging hostname admission and its same-namespace private input as later acceptance under #5247.

Acceptance Criteria

  • Test-first controls prove a canonical-only full-identity approval/binding works without fabricated legacy history. Missing, substituted, duplicate and mismatched consumer/artifact/source/tag/caller/publisher inputs refuse. Existing legacy and legacy-plus-canonical consumers retain their behavior.
  • The exact reviewed Tenant source constructor is attributed to the one registered consumer; unknown/modified/cloned constructors, foreign GVK, ambiguous, missing or extra consumers still refuse through the real conservation path.
  • Reverify the actual immutable business-site manifest/image publication and source/caller provenance before recording approval. Regenerate approved source tables/matchers through their tools, never by hand or with a bare SHA substitute.
  • Register only the source-only typed staging Tenant through existing provider wiring. No WebApp reconciliation, route, disclosure value, customer database, identity deployment, social provider, payment or portal activation is enabled.
  • Actual registration renders, affected script/policy/graph checks, substantive current-head review, normal protected merge/deployment and fixed read-only signed-source/controller proof pass. Keep Register the public-only business-site staging tenant #5247 open for workload/private-input/HTTPS staging acceptance and its business-site parents open for full identity/customer acceptance.

Alternatives Considered

Invented legacy history or a bare publisher SHA would weaken the identity binding. A manually copied OCIRepository would evade the typed tenant contract. Another generic lifecycle abstraction is unnecessary because source-only reconciliation already exists. Enabling the application alongside the source would mix admission with private-input and route acceptance.

Planning

Feature; High priority, High effort, Standard service class. This removes the concrete staging admission blocker for the unified business application. Effort includes maintained generator propagation, refusal controls, protected deployment and independent readback. The session's WIP waiver leaves ownership, signing, security, review and merge gates unchanged. No new service enrollment, paid resource or secret-value operation.

Activity

  1. coderabbitai commented on Oct 25, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #5261 - feat(tenants): support verified source-only bootstrap [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. self-assigned this
    on Oct 25, 2026
  3. moved this to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Oct 25, 2026
  4. updated Priority High and Effort High on Oct 25, 2026
  5. added a commit that references this issue on Oct 25, 2026
  6. devantler commented on Oct 25, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    The current raw report/approval reader has a measured omission: a typed source can disappear beside the otherwise complete inventory. Native child #5309 and draft delivery PR #5311 isolate that correction. The final actual pre-fix report fails 22 controls; the repaired Bash 3.2 suite refuses them, including alternative YAML/JSON spellings, aliases, linked inputs and matching custom-schema instances. It joins complete source-producing schema identities across the tree and preserves unrelated group/version peers.

    The positive binding/projection experiment is not shipped in this PR. Full canonical-only admission still needs its generator/writer/report propagation, rendered-constructor proof and monotonic observed-state controls before the actual source-only registration. Existing publication verification is still evidence only. #5247 and this issue remain OPEN; no production Tenant, application reconciliation, private input, route or portal activation has been enabled.

  7. added a commit that references this issue on Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

Priority

High

Start date

None yet

Target date

None yet

Effort

High

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions