Repository navigation
Qualify the existing hosted authority path for CLI v0.1.202 and Host v0.0.105 #1221
Description
Concrete owner question
For an isolated, single-organization Azure playground, confirm the supported exact CLI/Core/Host/base selections and qualification evidence for signed module manifests plus the public platform-super-admin + fresh-MFA tenant-pinned authority write. Independent architecture review identified this as an existing valid alternative; no replacement issuer or delivery mechanism is requested. The member demonstration remains an ordinary-member workflow after installation.
Support and contract uncertainty
The documented hosted authority-delivery contract and the Core owner's stated direction disagree, while current CLI and Host implementations already consume that contract. A deployment engineer needs a supported combination before qualifying a new hosted module installation.
Supported-release qualification remains unresolved for the Robin playground Azure milestone, specifically its identity/delivery binding gate and publication gate. The consumer must retain shared Host authority, organization isolation, release custody and revocation. It should not implement a second issuer or grant delivery mechanism.
Evidence checked on 22 October 2026
- Accepted handbook proposal, the ADR at current handbook main, and SP-CELL-16 specify a second signed
codefly/module-envelope/v1document. - Core implementation is closed unmerged. Its owner closure comment says the second-document direction is discontinued in favor of one signed module-instance record. The handbook ADR remains unchanged on main
9724571ccf2b38af29f4cec7c29144e017c24540. - CLI publication implementation and Host admission implementation merged.
- The merged CLI dependency update explicitly records that Core main alone cannot build CLI because
SchemaOf,VerifyDeliveredEnvelopeandSchemaModuleEnvelopeV1exist only on the closed branch. Current CLI mainc6dfaf58736cfd8b7747bdac137dd93b0d84f3e5selects the combined Core revision5522c4dac804c76be5959eb9c08857906711af8a. - The separate Host installation/tenancy mint gap remains open. Any selected path must demonstrate tenant-scoped minting without widening all principals to
cross_tenant.
The existing PlatformAdminService/PutModuleEnvelope path with platform-super-admin authority and fresh MFA is explicitly preserved by both the ADR and Host guide, including organization pinning. It is a valid administrative alternative to assess; it is not a fixture or an authorization bypass. A closed PR alone does not prove runtime incompatibility. This issue requests reconciliation of authority and supported release provenance; no live authority delivery was attempted. A successful local backend image build does not answer it.
Required outcome
- Identify the currently supported hosted authority model and the human owner accountable for reconciling the conflicting statements. If direction changed, use the handbook proposal/decision/page process; do not silently rewrite the contract to match code.
- Reconcile Host module/AGENTS.md (candidate Core pseudo-versions are not release qualification; never ship on an untagged pseudo-version) with tagged Host v0.0.105, whose Accounts Core pin is 0a8d16c5. Name an exact compatible, owner-supported Core/CLI/Host/base release combination and its migration/compatibility obligations. Clarify whether the current branch-based Core selection is endorsed for hosted deployment, with evidence, or which release supersedes it.
- State the supported operator sequence for first installation, updates and revocation. Preserve the distinction between a module's request and the host's authority ceiling; no fixture issuer, embedded administrator credential or consumer-side grant writer.
- Link existing owner work for implementation gaps rather than duplicating it. Keep the tenancy/mint issue at Host, serialization/verification at Core, publication at CLI, installation selection at composition.
- Provide acceptance evidence for signed first admission, wrong domain/signer refusal, replay/narrowing/revocation, and tenant-scoped module use for an ordinary installed organization. Bind evidence to the same selected revisions.
- Update the relevant handbook contract/status and return the supported adoption path to the consuming deployment gate. Investigation completion alone does not establish deployment readiness.
Scope
A contract/release reconciliation at the shared owners. This issue authorizes investigation and a concrete owner decision; it is not an instruction to auto-implement either conflicting design. The full independent architecture review is attached in a comment. It accepts the existing MFA route conditionally, identifies release-support uncertainty, and does not qualify Azure deployment. The issue does not prescribe replacing the existing mechanism or waiting for all platform work. Existing local development issue supplies related configuration context but does not settle the closed Core design versus the still-stated delivery contract.
The review also found an API-key branch in requireModuleEnvelopeWrite that treats an exact scope as MFA replacement, while SP-CELL-16 names release custody or a second-factor administrator. Exclude this automation shortcut from the candidate. Disposition this against the existing Host security-posture audit; its existence does not invalidate the real MFA branch.
Activity
gael-obin commentedon Oct 23, 2026
Independent review: authority delivery for the hosted Robin playground
Reviewed 22 October 2026 local / 23 October UTC. Read-only investigation; no deployment authorization or readiness claim.
Verdict
An existing authority path was omitted from the blocking conclusion: signed module-manifest delivery plus the Host's real, MFA-gated administrator ceiling write. The accepted handbook explicitly permits this writer and explicitly reserves tenant pinning to it. Using that public operation, with an authorized administrator and narrowly reviewed grants, is not a fixture and is not an administrator bypass. It does not make the administrator the actor for the subsequent upload/chat demonstration: that journey must still use an ordinary member and the installed modules' bounded authority.
The closed Core proposal establishes an owner-direction conflict, not a demonstrated runtime incompatibility. CLI v0.1.202 deliberately includes the second-document implementation through its exact Core dependency; Host v0.0.105 includes its consumer. Platform-core v0.0.39 already selects that Host. The two selected Core revisions have no
solutionhost/changes between them. There is therefore existing producer/consumer source for the signed-envelope path as well. No end-to-end deployment qualification was established for it here.Design acceptance: accept the existing MFA administrator route as an ownership-correct alternative, conditional on installation isolation and narrow grants. Do not approve a replacement issuer, private owner patch, broad
cross_tenantgrant, warn-mode authority, or a new delivery document. The release-owner contradiction still needs disposition before calling the selected package combination supported for delivery.Implementation qualification: not qualified for Azure. The candidate does not yet declare an Azure environment; it has development frontend inputs and a known owner-version mismatch. The delivery/tenancy conflict is not proof that the intended outcome is impossible. Nor does identifying the operator route establish package readiness, release custody, installed state, or the member journey.
Scope, independence and revisions
I was the independent reviewer and read the complete architecture-bouncer reviewer instructions. The initial briefing and
delivery-owner-reconciliation.mdsupplied hypotheses and source locations, not an accepted design. During this review I sent preliminary findings to the caller; its response agreed to examine the administrator alternative and confirmed no draft issue had been published. I did not read an earlier review verdict or implementation discussion, delegate, modify reviewed source, start a runtime, inspect credentials, or operate Azure.I inspected workspace navigation, handbook README, boundaries/composition/glossary and the affected Host/security/delivery contracts; CLI/Core ownership instructions and manifest documentation; Host root/module/deployment/Accounts instructions and relevant gateway/source contracts; and Robin root/playground instructions plus the candidate declarations. Broad initial reads produced some truncated output; consequential instructions and code were subsequently read in bounded sections. This is a focused authority-delivery review, not a complete review of every service or the candidate UI.
Live GitHub reads used
ghafter tool discovery found no usable GitHub connector. No repository refs were fetched or changed.79b0c53922ce71476d96d1f2994943ef38fcbe09, clean9724571ccf2b38af29f4cec7c29144e017c24540; the envelope ADR is byte-identical to the checkout (SHA-25629ee87b790ae424eb250f1499cdf1a309188a9a18ee6f5b0416e5eecc47669ee)cadaa1e69c64b586163738aa8e9fc47386edeb1d, existing build/pin/docs changes present and preserved; those patches are not accepted by this reviewc6dfaf58736cfd8b7747bdac137dd93b0d84f3e5; Corev0.19.6-0.20261022093222-5522c4dac804b81d92e6feda56ba22f1c354ec1eed25bf1e71fc, clean; live main4c895ee5321580d8a8e7ca93d56d578b7fee31ed55563cda2450dc293beaaaa0392763701eb54be3, cleaneab3919f9139fa77cc3157025dfe853510ac57c0; Accounts Corev0.19.6-0.20261018171306-0a8d16c5e32d42d592a84742bc77b263f66299323ac1c92fe003; selects Host 0.0.105, Documents 0.1.12, Model 0.1.20, Robin 0.1.29daa50e1aad52ff10e6befe6255a859364c677127plus existing staged/unstaged hosted-playground changes;workspace.codefly.yamlimports platform-core 0.0.39 and declares onlylocalHost uses deploy-counter tags separately from GitHub Releases.
gh release listmisleadingly ends at v0.0.32; the tag API establishes v0.0.105. A tag demonstrates publication identity, not successful qualification.Findings and disposition
1. The real administrator route is a valid alternative, with concrete limits
The governing SP-CELL-16 permits either release-custody delivery or a platform administrator behind a second factor. The accepted ADR expressly says that pinning a principal to one organization remains an administrator's interactive write. The “emergency brake” description does not make initial writes invalid: the same public operation admits revision 1 over expected revision 0.
The public adapter checks authentication and
super_admin, then uses fresh MFA for a session. The business method independently requires the platform role, validates the complete envelope, requiresrevision == expected_revision + 1, and calls the shared writer. That writer preserves optimistic concurrency, transactional audit, installation revocation and witnessed narrowing. See adapter and business writer. The owner also shipped the administrator UI; I did not visually qualify it.This route still requires signed module manifests, pinned release custody, attested workload identity, actual organization installations and member access.
GetModuleEnvelopeexposes the applied manifests' requests; operators should review those owner-derived requests, not invent another grant resolver. BecausePutModuleEnvelopereplaces the whole host ceiling, the writer must preserve unrelated principals and re-read on conflict.Tenant pinning is suitable only where those principals legitimately serve that organization. Pinning shared Documents/Robin/Model principals on an existing multi-organization Host could revoke other installations. A dedicated authorized demo installation/Host or evidence that the affected principals are exclusive to this organization is therefore a prerequisite; no current Azure isolation fact was established here. Do not substitute a tenant-pinned demo for proving the general shared-module contract.
Classification: correct existing reuse, omitted from the evidence record's alternatives. Closure: identify the authorized operator and isolated target; review exact grants and revision; qualify the real member and refusal paths. No new delivery code is justified by this finding.
2. The signed-envelope path is implemented and packaged, but owner support is unresolved
Core's closure explicitly drops the second-document direction. It does not prove that the branch implementation cannot operate. CLI's producer and Host's consumer merged. The later CLI dependency change deliberately preserves those symbols; released CLI go.mod and tagged Host Accounts go.mod confirm actual pins. GitHub compare
0a8d16c5e32d...5522c4dac804reports two added commits and no changedsolutionhost/files. This is positive protocol-continuity evidence, not merely the absence of a failing test.However, Host's own tagged instructions call candidate Core dependencies development-only and explicitly prohibit shipping a Host release on an untagged pseudo-version. The tag contains one. The handbook also still describes the Core/Host implementation as unmerged, although Host merged and Core closed. Those are consequential support/release-policy inconsistencies, not findings of an invalid wire format.
The smallest remedy is a joint owner disposition of the extant release chain: identify the supported CLI/Core/Host combination and qualification evidence, and reconcile the Host release guidance and handbook status. If the existing signed-envelope path is retired, its owner must provide migration and consumer disposition; neither the playground nor this reviewer can replace it with a one-document design on the strength of a PR comment. For the MFA operator route, no second signed authority document is necessary, but the shipped Host dependency/support contradiction still needs an honest disposition before a readiness claim.
3. Tenantless delivered grants plus selectorless clients are a real conditional failure
Host v0.0.105 moduleMintOrganization has two accepted branches: a pinned tenant (an absent selector is allowed; a different selector is refused), or
cross_tenantwith an explicit canonical organization UUID. A tenantless grant lacking either required shared input fails before installation authorization. Delivered envelopes refuse tenant pins.Thus the existing tenancy issue identifies a real failure for that combination, but its “two choices” framing is incomplete: an interactive tenant pin is an accepted third path. It also does not establish that every relevant client lacks an organization selector. Current in-flight owner work explicitly corrects an earlier SDK diagnosis: released
saas-sdk-goalready supportsCredentials.OrganizationID; qualification/adoption is separate. The owner work remains open, and is not a released repair to assume available.The candidate itself delegates transport/authority to solution-runtime-go v0.0.14 and uses viewer bearer for Robin. Its source is not proof of how all selected Documents, Robin and Model module mints choose an organization. Do not infer a universal SDK gap or add an issuer/selector shim to the playground. For a shared deployment, trace each actual selected client's input and cache scope and qualify two organizations. For an isolated tenant-pinned deployment, prove the public pinned-tenant path and its refusal of another tenant.
Classification: source-established conditional incompatibility, not blanket delivery impossibility. The Host owns mint policy; clients own correct public-contract use; the composition owns intended tenancy. Existing owner work changes the assumptions of any proposed new mint fix and must be reconciled first.
4. A separate API-key writer conflicts with the stated two-writer guarantee
The same tagged adapter also admits
credentialKindAPIKeywith exactmodule_envelope:write, instead of recent MFA. Its comment calls that scope the second factor's replacement. Thesuper_admincheck remains, so this is not anonymous or unrestricted access. Nevertheless a scope is neither a second factor nor the release-signed delivery carrier required by SP-CELL-16. I found no corresponding accepted exception in the targeted handbook search.This is a pre-existing source-established contract conflict, relevant because it is an attractive automation alternative. Do not use it to close this task. The MFA session branch remains valid; this finding does not erase it. Host/handbook owners must either restore the declared writer restriction or obtain an accepted contract change and qualify it. This limits a whole-Host security-readiness claim; it is not a request to implement a local patch during this review.
Obligations and evidence coverage
PutModuleEnvelopemoduleMintOrganization, then installation authorizationminimum_revisionand prior-delivery settlementThe existing tests inspected are in Host
module_envelope_delivery_test.go,module_envelope_test.go, and adapter authorization tests, plus CLIpublish_envelope_test.go. They exercise real verifier logic with controlled in-memory collaborators. Their presence is enforcement evidence; it is not a new passing result from this review. No tests were executed because the narrow distinction is established by declarations, tagged source, dependency comparison and live owner records, and this task did not require starting dependencies.Smallest next owner action
Ask the Host/delivery owners for a bounded support disposition, not another mechanism:
That question is concrete because the public path, tagged implementations and divergent instructions are now identified. It does not require waiting for a redesigned Core document. If owners confirm this existing route, the next task is normal composition/release qualification with owner-published packages and approved Azure bindings. If they reject it, they must identify the missing guarantee and owner-supported replacement. Until then the correct status is existing compliant authority operation identified; release support and composed deployment qualification unresolved, not “no authority-delivery path exists.”
No issue was created, no message was sent outside this review team, and no source or deployed state was changed. The only new file is this report.
gael-obin commentedon Oct 23, 2026
Concrete release failure identified — 23 October 2026 UTC
The selected Host tag
v0.0.105ateab3919f9139fa77cc3157025dfe853510ac57c0did not complete its owner publication workflow. Release run failed both Codefly SDK boundary and Codefly CI plan at Install Codefly with:The mandatory release gate failed; both Publish immutable module package and Publish frontend kit to GitHub Packages were skipped. A Git tag therefore does not establish successful publication of these artifacts.
The installer at the selected revision defaults to source revision
5234ce248b092edf1138a16ec4140dfbc8745522and explicitly refuses source candidates for tag releases. Its source-candidate comment names lifecycle/artifact-cache qualification. The installer remains identical on current main55563cda2450dc293beaaaa0392763701eb54be3.The existing owner workflow already provides frontend publication, integrity-conflict checks, a clean registry consumer check and attestations. The next action is to qualify a released CLI with the required capabilities and repair the owner's normal release path, preserving its gates. Rerunning this unchanged tag, manually publishing from a consumer, or using a package-read token for publication does not resolve it. Git ancestry alone is insufficient to select a replacement after squash merges; capability and behavior checks are required. The existing Core adoption PR remains open and is related owner work to reconcile, not a completed fix for this installer.
Authenticated registry reads now work for the playground operator, but requested
@codefly-dev/saas-sdk@0.3.35and@codefly-dev/saas-ui@0.12.15are absent from the accessible package indexes. That observation agrees with this skipped publication; it is not proof about every principal or publication attempt. Three other exact shared kit artifacts were acquired and integrity-verified.This narrows one release-readiness gap in the existing issue. It does not settle the authority/support questions above or qualify the Azure composition. No owner source, workflow, tag or cloud workload was changed.
gael-obin commentedon Oct 23, 2026
Native qualification repair passes; release support remains unresolved
The bounded installer/dependency repair now passes normal native CI at candidate
55272644e11977dd584bec6d91248655811cda6b. Lint, compile, test and build each report nine passed with no skips or reused results. Sync-drift passes for six supported services, with three explicit unsupported-agent skips. Accounts and gateway audits are clean; frontend and marketing production audits each report zero vulnerabilities. Repository checks, quality and release-gates aggregates pass. The synthetic merge's tree equals the reviewed candidate tree. Publication jobs correctly did not execute on the PR.The repair preserves the complete existing owner security commit, including generated output and attribution. Independent source review verified the eight-file scope and found no introduced ownership violation or source defect. The draft explicitly records its overlap with the owner's existing CLI 0.1.197 transition and why it selects released 0.1.202.
The support question in this issue is still substantive. A fresh dependency review independently confirms that Accounts selects the initial envelope commit from Core's closed, unmerged proposal, while the accepted handbook still requires that design. Current Core main is not an API-compatible replacement. Gateway's manifest implementation and SDK's matching Work Context leaf are existing owner work to release/adopt; the older Core adoption proposal does not satisfy their newer API requirements. A numerically newer SDK root maintenance tag is not evidence of a matching Work Context leaf release. The existing session/MFA-gated administrative operation remains a valid design alternative, subject to exact supported selections and installed acceptance.
One additional pre-existing qualification gap was verified: candidate-wide tracked Go searches contain no call/import of the Core consumer conformance kit required by the selected revision. Host does use the real Core implementation and has substantive custom tests plus its real-handler SDK harness; this is a coverage obligation, not an observed runtime failure or a regression from the repair. Close it at Host by exercising the existing owner kit through the relevant public verification/inspection entrypoints, with the appropriate mode and error semantics. Preserve existing client-compatibility evidence and qualify the selected released client as well; do not create another verifier or general test framework.
No merge, tag, registry publication, supported complete release or deployed consumer is claimed. Keep this issue open for the owner contract/release disposition, compatible selections and consumer qualification. The normal CI obstacle repaired here is now evidenced separately from those remaining obligations.
gael-obin commentedon Oct 23, 2026
Consumer conformance needs contract reconciliation, not only test wiring
Follow-up to the qualification gap above: the bounded next step is more specific than adding the kit unchanged and expecting a pass. The gateway and Accounts Go trees are identical between the inspected checkout
076892833dad6df59d42ad8302cbf93c60eac26dand the qualification candidate at55272644e11977dd584bec6d91248655811cda6b; these findings are pre-existing.A controlled local diagnostic ran the selected Core's unchanged
conformance.RunInspectorthrough the actual gateway wrapper, using existing JWKS test helpers and its cache factory to inject only the kit's issuer, clock and fixture-key settings. Go 1.27.3,GOWORK=off, readonly modules, no integration tag; an overlay added the diagnostic without editing the checkout. It failed with 21 assertion reports: 20 lost Core error identities and one accepted missing-route presentation. This qualifies neither the production constructor nor a deployed request path.invalidWorkContextwraps the edge sentinel but formats the Core error with%v, losing its identity. Preserve the needed internal error semantics while retaining the existing static HTTP 401 response. Error privacy does not require dropping internalerrors.Isidentity.noApprovalGrantsbehavior is fail-closed. The full verifier kit expects fixture grant state and an explicit fixture-key opt-in. Test construction must exercise the actual consumer path with controlled dependencies and separately prove production defaults still refuse fixture keys and unsupported grants. Do not enable production grants, switch to weaker verification, or filter/reclassify kit fixtures to claim conformance. If no acceptable consumer test seam exists, the conformance-contract gap belongs with Core.The existing native-CI success remains valid for the bounded installer/security repair. It does not close these consumer contract obligations, the release-support decision, or installed acceptance. No production source, release, runtime or cloud state was changed by this diagnostic.
gael-obin commentedon Oct 23, 2026
The internal refusal-identity finding now has a bounded draft fix at
fc68431979319587d4e9fd627bd957d1bcba7197. It preserves Core and Host error identities using standard Go wrapping and retains the static HTTP 401 response. Independent actual-source architecture review closes that finding; quick and elegance reviews found no new issue.Local gateway race tests pass714 test/subtest results with one explicit public-client-harness helper skip; vet, naming and boundary gates pass. The unchanged Core Inspector diagnostic now has only the separate missing-route failure, down from21 assertions. It still fails overall. Native CI has started; no full pipeline or release pass is claimed.
The remaining route repair needs an owner-controlled audience declaration in the existing method-policy/catalog projection. Public source-operation calls consume authority at their declared audience; module exchanges authenticate projected workload tokens; issuer derivation parents are carried in request bodies, and internal read-back operations are not public catalog routes. Do not substitute one universal audience or copy a procedure list into the gateway. Trace SDK header behavior and preserve those legitimate callers when defining the change.
This PR contains only the wrapper/test correction and remains separate from the installer/security repair. Complete consumer conformance, supported releases and installed acceptance remain open.