Skip to content

feat(installation): expose authenticated current installation metadata - #34

Merged
antoinetoussaint-byte merged 5 commits into
mainfrom
feat/authored-content-foundations
Oct 27, 2026
Merged

antoinetoussaint-byte merged 5 commits into
mainfrom
feat/authored-content-foundations

Conversation

@antoinetoussaint-byte

@antoinetoussaint-byte antoinetoussaint-byte commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

An installed module cannot currently read the authored namespace that Authority already requires for artifact approval. Add InstallationService.Current, authenticated by the module's workload credential and a current parent Work Context. It returns only that module's installation identity, revision and namespace in the verified tenant, without an administrator session or caller-selected tenant/installation.

Reuse shared-core Check and installation lookup, the existing namespace function, generated clients and shared conformance. A child context's seal identifies its source actor: the destination installation is resolved by Authority from the authenticated module and verified tenant. No new issuer, namespace registry, approval mechanism or permission bypass is introduced.

The installation interface advances to 0.3.0; the in-repository edge accepts it. External consumers constrained below 0.3 need explicit adoption. Go/Python/TypeScript bindings were regenerated through Codefly. Docs updated: README.md and libraries/conformance/go/README.md.

Validation:

  • Shared-core race tests, local service race tests including public conformance, and edge race tests pass.
  • Generated Go client tests/vet pass; TypeScript 178 tests and Python 332 tests pass.
  • Audit fixed five stale installation binding hashes in tools/noproxygate/generated.json: Codefly regeneration produced identical bindings; the complete no-proxy race suite and vet pass. README now documents the reviewed digest refresh. No gate semantics or exemptions changed. All 15 PR checks passed on the prior corrected revision; CI is rerunning after integrating authority: ship the module's package, the hop's Version declares its policy, the hop declares authority 0.3.3 #33.
  • Independent review reproduced and verified the source-actor/destination fix, including an independently authored child-context probe.

This is a draft foundation, not deployed authoring qualification. The scoped contract is accepted in handbook #403 under the owner’s merge instruction; the broader Builder design remains conditional. The composed playground run is blocked by its existing Records REST endpoint reference while the selected owner exposes Connect/gRPC; even excluding the edge workspace group still fails in store initialization. Accounts must implement Current and pass the shared suite. Robin adoption follows its existing signed-hop PR obin-ai/module-robin#552; this PR does not duplicate it. Authority #33 is merged and integrated: Current is now listed in the served inventory and published by Codefly in the refreshed package contract. Package and no-proxy race gates pass. Authority #32 remains separate hardening work.

Contract proposal: https://github.com/obin-ai/handbook/pull/403
Companion Robin selection PR: https://github.com/obin-ai/module-robin/pull/555

@antoinetoussaint-byte
antoinetoussaint-byte marked this pull request as ready for review October 27, 2026 02:12
@antoinetoussaint-byte
antoinetoussaint-byte merged commit 256c469 into main Oct 27, 2026
16 checks passed
antoinetoussaint-byte added a commit that referenced this pull request Oct 27, 2026
Brings #34 into #35 so CI tests the resource-scope fix against main's
current_test.go, which the next commit corrects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
antoinetoussaint-byte added a commit that referenced this pull request Oct 27, 2026
…eaders hold

TestCurrentInstallationIsConfinedToTheAuthenticatedAudience (from main,
#34) issued rob and omar whole-kind read though their role reads store-x
alone: the escalation the previous commit closes. The test is about
installation confinement, so each asks for what they hold.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
antoinetoussaint-byte added a commit that referenced this pull request Oct 27, 2026
… harden/review-followups

Conflicts were only generated artefacts: the authority-client library's
contract.binpb, catalog digest and library.codefly.yaml digest. Each side
recorded the contract of its own proto tree; neither digest is right for the
merged tree, so none was hand-picked: both are regenerated.

Regenerated with codefly v0.1.216 (built from tag d3af5843, which carries
cli#1189):
- generate proto in services/local: no change, the auto-merged bindings
  (#32's authority/v1, #34's installation/v1) are what the merged protos give.
- generate contracts authority: the local grpc contract carries #32's
  RegisterAdmissionKeyRequest.proof and #34's InstallationService.Current;
  the catalog, module.package.codefly.yaml and the vendored authority.proto
  copy follow. --check is clean.
- generate client --no-facade for authority-client: contract, catalog and
  library digest; its bindings are unchanged. Its contract is byte-identical
  to the module's local grpc contract, as on main.

Kept from #33: the hop's range codefly.dev/authority@>=0.3.3 <0.4.0 (a 0.3.3
authority ignores the additive proof, so the floor still holds) and the
package version 0.1.0 (#34 moved the contract under it unreleased too).
Kept from #32: the authority interface at 0.3.4 and the module implementing it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant