feat(api)!: use sandbox names as canonical RPC references - #3272
Conversation
|
🌿 Preview your docs: https://nvidia-preview-pr-3272.docs.buildwithfern.com/openshell |
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
c0b6f0d to
eb653d0
Compare
Findings
OverviewThe central design is sound: public RPCs use (workspace_scope, sandbox name), while immutable IDs remain internal for authentication, persistence, and driver boundaries. The resolver correctly authorizes before name lookup and binds sandbox principals through their authenticated The protobuf tag compaction is deliberately wire-incompatible—for example, CreateSandboxRequest.workspace_scope’s old tag becomes request_id. That is worth explicit maintainer approval because it prevents mixed-version operation, despite the PR’s breaking-change designation. |
eb653d0 to
a3c5878
Compare
|
Key findings:
|
a3c5878 to
90c5d02
Compare
|
Addressed findings 1–3 in commit 90c5d02:
On finding 4: the protobuf tag reuse is intentional and maintainer-directed. This PR explicitly breaks API and wire compatibility; mixed-version clients and servers are unsupported, and clients must regenerate from the new schema. We are therefore deliberately not reserving the removed tags or names solely for backward compatibility, so no code change is planned for that finding. |
90c5d02 to
bd37630
Compare
|
Label |
b5fda10 to
03c8aea
Compare
BlockedGator cannot begin the current-head code review because this PR has merge conflicts with Next action: @drew, please rebase or merge Gator metadata
|
91eb1f2 to
defae1d
Compare
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @drew. I checked your response to @mrunalp’s earlier review: the current head now conceals unauthorized DeleteSandbox lookups, scopes background forwards by workspace and immutable identity, and updates the affected architecture and user documentation. I also treated the deliberate protobuf tag reuse as maintainer-approved for this intentionally wire-incompatible change. The initial full-diff review found two remaining correctness blockers.
Action required: fix the two findings below and push an updated head for a focused follow-up review.
Blocking findings:
GATOR-defae1d4-01: durable sandbox mutations expose different authorization status semantics whenrequest_idis set.GATOR-defae1d4-02: DeleteService can remove a concurrently recreated endpoint instead of the instance it resolved.
Carried findings:
- None
Gator metadata
- Validation: Project-valid implementation of linked issue #3050, authored and directed by a maintainer.
- Docs: User-facing and architecture documentation are updated for the canonical-reference change.
- Checks: Current-head Branch Checks are failing and E2E is still running; review findings must be resolved before pipeline handoff.
- E2E:
test:e2eis applied and the current-head workflow is in progress. - Head SHA:
defae1d41352eac0633404148a350de5077980a0 - Base SHA:
50c5cf8ed0423f545fee7e0ccc7e7699eec9e290 - Merge base SHA:
50c5cf8ed0423f545fee7e0ccc7e7699eec9e290 - Patch ID:
75023ee424d6b7d00c1d866c61c877c18683b894 - Gator payload:
9 - Review mode:
initial - Previous reviewed SHA: none
- Review budget exhausted: no
- Maintainer decision required: no
- Next state:
gator:in-review
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
13d5570 to
e9f5325
Compare
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @drew. I reviewed the non-equivalent rebase, the removal of the protobuf convention checker, and the refreshed schema fingerprints against the previously reviewed author patch. The two prior Gator findings remain resolved, and the critical-only delta review found no newly introduced Critical security, data-loss, or correctness defects.
Blocking findings:
- No blocking findings remain
Carried findings:
- None
Gator metadata
- Validation: Project-valid implementation of linked issue #3050, authored and directed by a maintainer.
- Docs: User-facing, architecture, SDK, contributor, and protobuf convention documentation reflect the canonical-reference change.
- Checks: Current-head Branch Checks are running; Helm Lint, Trivy Changes, DCO, GPU E2E, and completed jobs are green.
- E2E:
test:e2eis applied and the current-head Branch E2E Checks workflow is queued or running. - Head SHA:
e9f532583c59bd6bd38ac073af662d6e563f5820 - Base SHA:
e38d7254e6099a42d6b80329b8e4ef6f0817931f - Merge base SHA:
e38d7254e6099a42d6b80329b8e4ef6f0817931f - Patch ID:
d15ecf549c3196f47a575d075fbfa459ca54714d - Gator payload:
9 - Review mode:
critical_only - Previous reviewed SHA:
ae926499c7c4e871460e04994d952f7496a4dd75 - Review budget exhausted: yes
- Maintainer decision required: no — prior findings remain resolved, the delta stays within the maintainer-authored API convention scope, and no new Critical was found.
- Next state:
gator:watch-pipeline
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @drew. I reviewed the provider-receipt JSON naming correction and its regression test against the previously reviewed patch. The two prior Gator findings remain resolved, and the critical-only delta review found no newly introduced Critical security, data-loss, or correctness defects.
Blocking findings:
- No blocking findings remain
Carried findings:
- None
Gator metadata
- Validation: Project-valid implementation of linked issue #3050, authored and directed by a maintainer.
- Docs: User-facing, architecture, SDK, contributor, and protobuf convention documentation reflect the canonical-reference change.
- Checks: Current-head Branch Checks are running; Helm Lint, Trivy Changes, DCO, GPU E2E, and completed jobs are green.
- E2E:
test:e2eis applied and the current-head Branch E2E Checks workflow is running. - Head SHA:
aa7134deb23565aa1cc5abe0039a0c50a64bcdcd - Base SHA:
e38d7254e6099a42d6b80329b8e4ef6f0817931f - Merge base SHA:
e38d7254e6099a42d6b80329b8e4ef6f0817931f - Patch ID:
f7566211bfc75f294be8bdaaaee51fc338e2e418 - Gator payload:
9 - Review mode:
critical_only - Previous reviewed SHA:
e9f532583c59bd6bd38ac073af662d6e563f5820 - Review budget exhausted: yes
- Maintainer decision required: no — prior findings remain resolved, the delta stays within the maintainer-authored canonical-reference scope, and no new Critical was found.
- Next state:
gator:watch-pipeline
Monitoring CompleteMonitoring is complete because this PR has merged. Final status: The current head completed Gator's critical-only review with no blocking findings remaining; the PR merged while the required E2E workflow was still being monitored. I removed the active |
Summary
Standardize public API references around canonical entity names. The primary resource targeted by an RPC uses
name; related resources use their role name such assandbox,provider,service, orrule. Public workspace-scoped requests declareworkspace_scope: WorkspaceSelectorfirst.Immutable IDs remain internal to authentication, persistence, compute-driver boundaries, and durable child-resource identity. This is an intentionally breaking API change.
Related Issue
Closes #3050
Changes
namefor the primary resource targeted by an RPC.*_namefields.workspace_scope: WorkspaceSelectoras the first field on public workspace-scoped requests.all_workspacesonly on supported sandbox, sandbox-template, provider, and service collection list requests.GetWorkspaceRequestas{ name }.Testing
mise run pre-commitmise run proto:conventionscargo check --workspace --all-targetscargo test -p openshell-server --lib(1,698 passed; 9 ignored)Checklist