Repository navigation
Conversation
Docker, Podman, and the VM driver hand the supervisor and the sandbox boundary a set of JSON documents whose only definition is Rust types in openshell-sandbox-backend and openshell-isolation-interface, which pull in openshell-core. Move those types into an openshell-driver-sdk module behind the legacy-contract feature, re-export them from their old paths, and repoint the three drivers. The module is documented as legacy: it describes the format that exists today, accepts no new fields, and is removed once a replacement ships. Golden JSON examples and a round-trip test pin the encoding. The drivers no longer depend on openshell-core, openshell-sandbox-backend, openshell-isolation-interface, or openshell-policy for normal builds. Signed-off-by: Evan Lezar <elezar@nvidia.com>
6 tasks
github-actions
Bot
requested review from
FrostGod,
drew,
mrunalp and
russellb
November 11, 2026 15:42
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Move the Rust types for the documents a compute driver hands to the supervisor and the sandbox boundary into
openshell-driver-sdk, so the Docker, Podman, and VM drivers no longer depend onopenshell-core,openshell-sandbox-backend, oropenshell-isolation-interface. This stacks on #5405, which carves out the SDK and deliberately left these types in place.Related Issue
Part of #5456. This PR covers one part of that issue: removing the driver crates' dependency on the core crates. It does not specify the documents in a language-neutral form, and it does not cover the shared-supervision registration; those remain open in #5456.
Stacked on #5405: the base branch is
refactor/5383-carve-out-driver-sdk/elezar, and this PR should merge after it.Changes
legacy_contractmodule toopenshell-driver-sdkbehind alegacy-contractfeature. It holdsBoundaryConfig,SandboxRuntimeDescriptor,SandboxTransport,BoundaryListener, the TLS types,GatewayVerificationKey,ResolvedWorkloadIdentity,ProvisioningEvidence,Sha256Digest,BackendError,BackendDescriptor,generate_sandbox_tls_material, the route handle check, and the backend name, resource claim, and supervisor CA path constants.openshell-sandbox-backendandopenshell-isolation-interfaceat its current path, so each item has one definition and existing callers are unchanged. TheFromimpl from the registered endpoint transport becametransport_from_registration, because the orphan rule forbids it in either crate.openshell-policy; it used only the sandbox UID range, which the SDK already defines.Testing
cargo check --workspace --all-targetsandcargo clippyon the touched crates are clean, and the pre-commit hooks pass.cargo treeshows the three drivers no longer depend onopenshell-core,openshell-sandbox-backend,openshell-isolation-interface, oropenshell-policyfor normal builds.openshell-driver-sdk,openshell-isolation-interface,openshell-sandbox-backend, and the Docker and Podman drivers pass. Six VM driver tests fail on a machine withoutmke2fs(e2fsprogs); they need that tool and I did not run them on the base branch.Checklist