Repository navigation
Closed
Labels
drop-cTarget: Drop C (Provider + Workspace)Target: Drop C (Provider + Workspace)proto-gapProto API surface not yet covered by SDKProto API surface not yet covered by SDK
Description
Proto Gap: Workspace Management
The upstream proto (openshell.proto lines 253-275) defines 7 workspace RPCs with no SDK implementation.
RPCs to implement
| RPC | Request/Response |
|---|---|
CreateWorkspace |
CreateWorkspaceRequest / CreateWorkspaceResponse |
GetWorkspace |
GetWorkspaceRequest / GetWorkspaceResponse |
ListWorkspaces |
ListWorkspacesRequest / ListWorkspacesResponse |
DeleteWorkspace |
DeleteWorkspaceRequest / DeleteWorkspaceResponse |
AddWorkspaceMember |
AddWorkspaceMemberRequest / AddWorkspaceMemberResponse |
RemoveWorkspaceMember |
RemoveWorkspaceMemberRequest / RemoveWorkspaceMemberResponse |
ListWorkspaceMembers |
ListWorkspaceMembersRequest / ListWorkspaceMembersResponse |
Proto types to map to SDK domain types
Workspace(indatamodel.proto):ObjectMeta+WorkspaceStatusWorkspaceStatus:phase(WorkspacePhase enum) +conditionsWorkspacePhaseenum:WORKSPACE_PHASE_UNSPECIFIED,WORKSPACE_PHASE_ACTIVE,WORKSPACE_PHASE_TERMINATINGWorkspaceMember:user_id,role(WorkspaceRole enum),added_at_msWorkspaceRoleenum:WORKSPACE_ROLE_UNSPECIFIED,WORKSPACE_ROLE_ADMIN,WORKSPACE_ROLE_MEMBER,WORKSPACE_ROLE_VIEWER
Implementation scope
- Add
WorkspaceInterfacetoClientInterfaceinclient.go - Create domain types in
types/workspace.go - Create
workspace_client.gowith gRPC client - Create converters in
internal/converter/workspace.go - Add coverage tests for workspace proto messages
- Add fake implementation in
fake/workspace.go - Unit tests for client, converter, and fake
Target drop
Drop C (Provider + Profile + Config + Refresh + Workspace)
References
- Upstream proto:
proto/openshell.protolines 253-275 - Feature commit: NVIDIA/OpenShell@5952a5a2
feat(workspace): add workspace resource model
Metadata
Metadata
Assignees
Labels
drop-cTarget: Drop C (Provider + Workspace)Target: Drop C (Provider + Workspace)proto-gapProto API surface not yet covered by SDKProto API surface not yet covered by SDK
Activity
rhuss commentedon Jul 29, 2026
Implementation Hints
This issue deserves a full spec (new sub-client, 7 RPCs, cross-cutting types).
Setup spex (if not already initialized)
Or use the Claude Code skill:
Recommended workflow
/spex:specwith a description of the workspace CRUD feature. This creates the spec in.specs/./spex:planto generate the implementation plan from the spec./spex:tasksto generate actionable tasks./spex:implementto execute the tasks./spex:verifyto run final checks.Key design decisions the spec should address
WorkspaceInterfaceshape: CRUD + membership as sub-interface or flat methods?WorkspaceMemberrelates toWorkspace(sub-resource pattern vs. standalone)WorkspacePhasevs. reusingPhasetypeSandboxFromProto/SandboxToProtoconventionRelated issues
Workspacetype definitionsopenshell.protolines 253-275,datamodel.protolines 47-69Proto Sync from Upstream PR #2445 (#40)