Repository navigation
fix(accounts): authorize scoped source declaration reads - #1197
Merged
Merged
Conversation
…n-discovery-scope
lukazhupa
marked this pull request as ready for review
October 23, 2026 15:14
lukazhupa
enabled auto-merge
October 23, 2026 15:28
…n-discovery-scope
antoinetoussaint-byte
deleted the
codex/source-operation-discovery-scope
branch
October 25, 2026 17:07
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.
A module holding a narrowed source-read Work Context cannot currently read the source’s operation declarations:
ListSourceOperationsfalls through to interactive authentication. Adding only the source authentication ingress would widen that capability to its owner’s broader source access. This fix joins the existing ingress and exact source-read gate on the existing listing API.Related #1023 (bounded declaration discovery only; the broader integration issue remains open).
Classification: fix at the host owner. Reuses the existing signed Work Context verifier, current-authority/delegation checks, final-hop scope gate, membership check and business source/personal-owner/boundary authorization. It adds no RPC, registry, permission vocabulary, client protocol, execution loop or credential custody. The existing public Go client already exposes this listing; no generated contract or client change is needed.
A successful response retains the admitted declaration schemas, effect, output bound and digest. A listing grants no invocation authority and does not expose a model-facing tool automatically. The existing behavior documentation describes the supported read and limits.
Validation on candidate
d8e311e5ec28394c7d56e4cbea6ee92fd1fdf5adagainst baseline2cb00737ed56c79c823bc82f4055681a51919e7c, Go1.27.2:Qualification limits: storage, membership/boundary/authority facts, seals and workload attestation are controlled fixtures. The borrowed-source handler case authenticates through production code before replacing storage; it is not a real database/composed round trip. No live database/RLS, gateway composition, client release, full consuming application/model journey, cloud resource, deployment or release is claimed. Broader current-viewer/module admission, tool projection and invocation/result integration remain #1023. Fresh independent implementation review found no actionable issues on the exact candidate. The reviewer independently ran discovery, full adapter, source race and pure business regressions plus both source-overlay negative controls; see the local qualification limits above. Hosted qualification is not green (run39623196412). Accounts and gateway compilation pass; frontend dependency installation failed with npm
ECONNRESETbefore compilation. The first run has settled, and a targeted compile retry is running as attempt2. The first-party Accounts vulnerability gate also fails. Canonical localcodefly audit service accounts --outdated=false --jsonidentifies HIGHGO-2026-6809, standard library1.27.2, fixed in1.27.3, using govulncheck1.6.0. The existing owner issue is service-go-grpc#188; its builder toolchain/image must move at the owner and then be adopted through the supported generated recipe. This patch changes no compiler, dependency, agent or image pin and bypasses no audit gate. The first hosted attempt passed full tests, lint, generated drift, SDK boundary and build. The separate asking-viewer/module first-admission and source-call audit requirement is tracked in #1200; this listing change does not implement it. The PR remains draft.Reproduce the focused read proof from the repository root:
Update: current with
mainMerged current
maininto this branch (no rebase); it now sits on top of #1198, #1215 and #1218.module_actorsource child can read declarations for its own sources. Its single hop carriesdatasource.sourcesread(lookup) orinvoke, read(invoke) on exactly the source ids its installed binding names. So it passes this read's exact-source scope check for those sources and is refused for any other. The source surface stamps the owner as the request identity, so membership, personal ownership and source-boundary read stay the person's. feat(accounts): a module_actor binding names the exchanging module as the child's actor #1215'sTestModuleActorSourceCallIsThePersonsWithTheModuleActingalready exercises thereadaction on that path.GOWORK=off go test ./pkg/adapters ./pkg/businessandscripts/check-boundaries.shpass locally.Codefly supply chainandRelease gateschecks fail onmainas well (dependency audit findings and release gates), independent of this change.