Skip to content

feat(api)!: use sandbox names as canonical RPC references - #3272

Draft
drew wants to merge 2 commits into
mainfrom
codex/3050-use-sandbox-names
Draft

feat(api)!: use sandbox names as canonical RPC references#3272
drew wants to merge 2 commits into
mainfrom
codex/3050-use-sandbox-names

Conversation

@drew

@drew drew commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Standardize public sandbox references on the human-readable sandbox name. Every sandbox-scoped gateway RPC now accepts a string sandbox with workspace selection carried separately, while canonical sandbox IDs remain internal metadata for authentication, persistence, and compute-driver boundaries.

Related Issue

Closes #3050

Changes

  • Replace the temporary SandboxReference wrapper and public ID references with sandbox strings.
  • Resolve names at the gateway and authorize the persisted sandbox workspace without exposing cross-workspace existence.
  • Reserve removed protobuf ID fields and preserve existing name-field wire tags where possible.
  • Update the CLI, TUI, Rust core and SDK, gateway interceptors, Python SDK, Go SDK, TypeScript SDK, examples, generated bindings, tests, and documentation.
  • Carry sandbox names through SSH and TCP forwarding while retaining IDs only for internal lifecycle metadata.

Testing

  • mise run pre-commit passes
  • Unit tests added/updated
  • E2E tests added/updated (not applicable; no running gateway environment was used)
  • cargo test -p openshell-server with an isolated system gateway directory (1,463 tests)
  • cargo test -p openshell-cli -p openshell-tui
  • mise run sdk:ts:ci (105 tests)
  • uv run --frozen pytest python/openshell/sandbox_test.py (130 tests)
  • Relevant Go SDK packages pass, and build, lint, formatting, docs, and protobuf checks pass
  • Full mise run go:ci (three unrelated gateway-discovery tests observe /etc/openshell/gateways/default on this development host)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

Signed-off-by: Drew Newberry <anewberry@nvidia.com>
@github-actions

Copy link
Copy Markdown

@drew
drew marked this pull request as draft September 11, 2026 05:56
@copy-pr-bot

copy-pr-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown

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.

Signed-off-by: Drew Newberry <anewberry@nvidia.com>
@drew drew changed the title feat(api)!: use sandbox names across gateway RPCs feat(api)!: use sandbox names as canonical RPC references Sep 11, 2026
Comment thread architecture/gateway.md
persisted sandbox record and authorizes that record's workspace. Missing and
unauthorized references use the same response within each principal class so
the resolver does not expose an object-existence oracle. Sandbox, sandbox
template, provider, and service list RPCs also accept an all-workspaces marker

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that the workspace, sandbox name are the unique identifier for the sandbox? (If I recall correctly, I saw an issue where users in different workspaces can delete / access a sandbox if they create one with the same name. Does this solve that?).

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.

feat(api)!: unify sandbox references across gateway RPCs

2 participants