Repository navigation
feat(moduleauthority): expose gateway transport and audit declarations - #32
Conversation
|
@gael-obin — heads-up: I'm taking this PR to merge. obin-ai/module-record-store#115 needs moduleauthority's audit emission (#28) and declarations (#32) in an upstream commit Go can fetch; today it pins 278a7a6, which exists only on your fork. A worker will review this PR, merge main into its branch (no rebase or force-push), fix what the review finds, and post the review here. I'll merge once CI is green. If you'd rather land it yourself, or something here shouldn't go upstream, say so on this PR. |
Maintainer review of saas-sdk-go PR #32Reviewed head: Phase 1 was completed before changing the PR branch, in a full, non-shallow clone at the exact head. Diagnostic mutations were confined to that scratch clone and restored. The open work inventory was checked; PR #28 remains separate and is not included in these fixes.
The production declaration method correctly reuses A scratch consumer using the v0.0.2 accounts facade ( Buf 1.73.0 regenerated the recorded Not verified in Phase 1: a deployed host gateway bridge or downstream application integration. The source pinned by this SDK does not itself establish gateway-bridge support; the explicit constructor's host-support precondition must remain documented. The full local walk stops at the API-boundary failure above, so a complete race pass is still required after the fix. The added code and fixtures contain no downstream product-specific vocabulary; the PR body will be rewritten around the generic SDK contract.
Hosted CI update: the approved original run subsequently passed both jobs. Its logs show Go 1.27.0 on Linux; the independently reproduced export-reader failure in finding 1 is on local Go 1.27.2. A green original hosted run does not cover that local toolchain failure. Proceeding to fix all four findings on the existing fork branch, merge origin/main without rebasing, and obtain green local and hosted checks. The coordinator retains merge and release authority. |
|
The initial green handoff was reopened when PR #28 landed on main. The conflict is resolved by merging main into this branch; all checks passed again. The final reviewed head is |
Maintainer review result for saas-sdk-go PR #32Ready for the coordinator to merge at head All four findings in the maintainer review are resolved. Antoine's coordinator worker pushed the fixes normally to PR #28 landed externally while the first green handoff was being published. This worker then merged the new origin/main into this branch, resolved the conflicts, and repeated the complete verification. Merge commit
All four intentional mutations were repeated against the final merged tree and restored; the moduleauthority suite passed afterward. The implementation remains generic: examples use Validation on the final change:
Not verified: a deployed gateway bridge or downstream application integration. The selected host must expose each requested bridge procedure; the existing direct authority endpoint supports declarations independently. The representative tag consumer check does not reverse unrelated generated-API removals already documented on main. The fork-only head is not yet fetchable under the upstream module path. Coordinator: merge PR #32 at the reviewed head above, verify Go can fetch the resulting upstream commit (a squash may change its SHA), and provide that upstream pin to the waiting consumer. PR #28 is already on main and its work is preserved. This worker has not merged any GitHub PR, tagged, released, opened issues, or changed PR #28. |
|
Merged at 0e4e6e7 (reviewed head bec5e5a, CI green). Go fetches it: |
|
lazybox has finished working on this. claim detail |
Summary
Expose
Client.DeclareAuditEventTypesthrough the existing authenticated module-authority RPC, with public aliases for its declaration types and enum constants. Existing direct Accounts authority clients can declare without changing transports.NewGatewayAuthorityseparately opts into a host-provided binary-protobuf Connect bridge, rejects simultaneous direct configuration, blocks redirects and has no fallback.Declarations use
Credentials.Prefix, the existing cached module capability and the existing refresh-once helper. The host retains namespace ownership and schema-compatibility decisions; the SDK preserves the complete schema and wrapped errors. Existing direct and mint-only constructor behavior is unchanged. No generated bindings or SOURCE.txt pins change. Main now contains PR #28; its emission implementation and tests are preserved unchanged, with declarations in separate files.Maintainer-side review and fixes were done by Antoine's coordinator worker.
Fix or hack
Fixes at the SDK owner: declaration/transport facades and contract tests, including full schema/PII/enum preservation over both transports, cached proof reuse, bounded refresh, refusal codes/details, broker failure, mint-only rejection, absent-bridge behavior and a valid ambiguous-transport rejection fixture. Main's
golang.org/x/tools v0.52.0fixes Go 1.27.2 export-data loading in the API-boundary gate; its walker and negative fixtures remain intact. No stopgap or second declaration mechanism is introduced.Documentation updated in
README.md(startup example, transport selection and errors),AGENTS.md(authority surface; retained main's tooling guidance) andCHANGELOG.md(new public APIs).Validation
go build ./...,go vet ./...,go test ./...,go test -race ./...and the repository's gofmt gate pass, including API-boundary and agent-context tests. There is no separate lint/Makefile target.origin/mainat7fe05b85970956d74fa3b7122ac1874d30a37f7dis merged into this branch bybec5e5a97382616845a97bda7edffc794f095461. Conflicts were resolved without changing main's emission implementation/tests or downgrading its tooling. No rebase or force-push.testandgen-driftpassed onbec5e5a97382616845a97bda7edffc794f095461. The complete local walk and all four mutation checks also passed again after merging main.Review and mutation evidence: #32 (comment)
Not verified
No deployed gateway bridge or downstream application integration was exercised. The explicitly selected host must expose each requested bridge procedure; generated clients do not establish host support. The tag compatibility check covers the existing accounts facade, not unrelated generated-API removals already documented on main. No GitHub PR merge, tag or release was performed by this worker; the coordinator owns the upstream merge and downstream pin handoff.
Final review and coordinator handoff: #32 (comment)
The fork-only head currently returns
unknown revisionthrough the upstream Go module path, including with a fresh cache and GOPROXY=direct. After merging, the coordinator must verify and hand downstream the resulting upstream commit.