Repository navigation
feat(accounts): consume owner-projected managed key services - #1234
Open
crisfiorini-oss wants to merge 12 commits into
Open
crisfiorini-oss wants to merge 12 commits into
crisfiorini-oss wants to merge 12 commits into
Conversation
Reuse the Azure identity and container registry SDKs for token exchange and renewal, and the existing repository transport and bundle verifier for scoped reads. Preserve the existing labelled workload-reader adapter until Codefly owns cloud identity resolution.
Only go.sum conflicted; resolved by go mod tidy in accounts and auth-gateway. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GehdohoEWY15W4Vj1EBoox
crisfiorini-oss
marked this pull request as ready for review
October 28, 2026 16:51
crisfiorini-oss
marked this pull request as draft
October 28, 2026 16:57
crisfiorini-oss
marked this pull request as ready for review
October 28, 2026 17:16
Reuse the Azure SDK blob reader and existing bundle verification. Admit only HTTPS data endpoints of the same registry, strip bearer credentials on redirects, and refuse foreign hosts and credentialed data requests. A regression test fails against the original transport and passes with this fix.
crisfiorini-oss
marked this pull request as draft
October 28, 2026 17:39
…st header Azure storage redirects need not repeat registry-specific digest headers. Retain rejection of an explicitly mismatched header and the existing complete signed-byte digest and size verification. Extend the SDK redirect regression to omit the header and reject tampered payload bytes.
crisfiorini-oss
marked this pull request as ready for review
October 28, 2026 21:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A hosted environment can now supply an owner-produced managed key-service binding while retaining the existing
kmsandkms-wrappedcustody selections. Accounts delegates provider operations to the existing key-service owner's runtime client instead of adding another cloud driver inside the Host.The frontend payload reader now also supports Azure Container Registry using the pod's federated identity. Accounts and auth-gateway use the same shared reader.
Changes
Classification: fix at the existing Host adapter boundary. The existing GCP stopgap and Vault implementation remain unchanged; provider SDK calls live below the consumer.
Classification of the registry change: extend the existing labelled workload-reader stopgap until the shared identity dependency in CLI #924 owns cloud credential resolution. The Azure SDK owns token exchange and renewal; the shared repository transport still restricts reads to the configured HTTPS registry, and the bundle verifier checks the admitted digest. Both services explicitly pin this development candidate; no release qualification is claimed.
Current-main compatibility
Reuse Authority's
HeldInstallationsservice for the missingListHeldhandler instead of implementing another role/storage query. Adopt the current Authority contracts and fixture lifecycle, reuseSessionDisplayNamesfor fixture organization names, and regenerate the canonical protobuf/Connect/TypeScript, contract, runnable, catalog and source SDK outputs through their owning generators. The frontend SDK dependency and lockfile remain synchronized at 0.3.41.Testing
dc873643435ff1bb2994f94cff40ee53c254695a. The current candidate1e5f30a16e093a496c3e0a3b4fb29675d7761e11also passes all applicable GitHub CI lanes, including Naming records. Release-only publication, notification and landed-identity lanes are skipped on the pull request.Deployment qualification
The managed-key dependency remains the explicitly identified development candidate from service-vault #86, including the corrected Managed HSM GCM nonce behavior. Adopt an owner-reviewed release and qualify the projected binding, workload grants and recovery behavior before promotion. No live managed backend, complete hosted application acceptance or module release is claimed. The shared dependency-kind work in codefly-dev/cli#924 remains open.
Azure frontend download correction
Accounts was withholding Wiki and Proposals because the Azure frontend reader rejected ACR redirects to the same registry’s dedicated regional data endpoint. The reader now admits HTTPS downloads from that endpoint with no bearer credentials, while refusing foreign registries, ports, methods and credentialed download requests. Both consumers pin the patched library candidate.
Build or reuse: extend the existing Azure SDK BlobClient and shared frontend payload verifier; no second downloader or authentication implementation. The regression test fails against the original transport, and the frontendpayload tests pass with the fix. Live rollout evidence is recorded separately.
Redirected storage response headers
Extend the same shared Azure SDK reader to accept a redirected storage response that omits the registry-specific Docker-Content-Digest header. A supplied conflicting digest remains refused, and preparation still verifies the entire downloaded archive against the signed digest and its existing size bounds. Both host consumers pin immutable reader candidate d67666b.
Validation: frontendpayload package tests pass. The header-absent regression fails before this correction and succeeds after it; tampered payload bytes remain rejected. Live deployment acceptance: Accounts and auth-gateway rolled out successfully; the consuming solution frontend manifest and its 122454-byte remote entry both returned HTTP 200 after previously returning 404. Fresh bounded runtime logs contain no frontend-preparation refusal. Authenticated organization catalogue, document upload and chat were not exercised.
Source review (2026-10-28)
Independent source review of
1e5f30a16e093a496c3e0a3b4fb29675d7761e11found no new actionable code defects. The review checked existing provider-owner and shared payload-reader reuse; it did not exercise live key-service federation, registry access or deployment. Development-candidate release requirements above still apply.