Support declarative artifact delivery and stable endpoint for governed sandboxes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 8.7k
- Forks
- 1.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 253
Description
Problem
A control plane needs to deliver a digest-pinned bridge artifact to a sandbox and expose it through a stable, replacement-safe endpoint. The pinned SDK currently exposes a whole SandboxSpec.image, environment, labels, and providers, but no declarative artifact/sidecar delivery or endpoint lifecycle surface.
Using a controller-created Kubernetes Service selector or direct pod exec/copy is unsafe here: a sandbox replacement can reuse names while changing identity, and it bypasses the gateway lifecycle.
Requested capability
Please provide (or document a supported composition of) a gateway-owned API that lets a caller:
- Declare one or more immutable OCI artifacts by digest for a sandbox, without direct pod exec/copy.
- Attach a long-running artifact/process to the sandbox lifecycle with an observable readiness condition.
- Obtain a stable, authenticated endpoint that follows the currently active sandbox and fails closed while a replacement is not ready.
- Preserve sandbox identity/UID binding so a replaced sandbox cannot inherit the previous endpoint or authority.
The caller can supply only digest-pinned, independently provenance-verified artifact coordinates. OpenShell should remain responsible for artifact installation, process lifecycle, routing, and teardown.
Acceptance evidence
- A sandbox replacement changes the concrete target but retains the stable endpoint only after the new artifact is Ready.
- Stale artifact/process state is unreachable after replacement or teardown.
- No Kubernetes pod access or mutable caller-managed Service selector is required.
We can contribute a neutral integration test once a proposed API/contract is available.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the pinned SDK's SandboxSpec.image and the gateway lifecycle requirements described in the issue; no implementation files or tests are identified. Define the proposed API or contract first, then validate it against the replacement, readiness, stale-state, identity, and no-pod-access acceptance evidence.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, rust
- Domain
- backend-api-design, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100