You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please document the openshell.* labels that the Podman driver puts on sandbox containers as a stable, versioned interface, so that passive inventory and posture tools can list sandboxes without running the CLI or holding gateway credentials.
Context
I maintain a small local tool that inventories the AI software on a workstation and reports how each agent is confined. It lists OpenShell sandboxes read-only from the rootless Podman container listing (GET /libpod/containers/json?all=true, or podman ps -a --format json). It never runs an OpenShell binary, never contacts the gateway and never inspects containers. The documented interfaces (openshell sandbox list -o json and gRPC ListSandboxes) need a binary run or the mTLS client key, so labels are the only passive signal.
Today such a tool has to rely on keys that are not documented, so any release could silently break it.
What I observed (v0.1.1, Podman driver)
These are on both containers of one sandbox (the workload and its supervisor):
openshell.managed=true
openshell.ai/sandbox-id
openshell.ai/sandbox-name
openshell.ai/sandbox-workspace
openshell.ai/sandbox-namespace (empty)
openshell.ai/isolation-role (sandbox or supervisor)
openshell.ai/caller-driver-config-used
openshell.ai/runtime-binary-source (a host path)
The workload container also carries openshell.ai/resource-admission-identities.
As far as I can tell, only openshell.ai/managed-by, openshell.ai/gateway-id and openshell.ai/sandbox-workspace are documented, as reserved driver metadata, and the RFC 0011 draft adds sandbox-id, sandbox-name and managed-by. On Podman, openshell.ai/managed-by and openshell.ai/gateway-id are not set; openshell.managed=true is used instead. #2804 discussed aligning that label with Docker and Kubernetes, and was closed as stale.
What would help
A short documented list of the labels that identify a sandbox and its containers, with their meaning and stability. A small set would be enough: managed marker, sandbox id, name, workspace, and the container's role (workload or supervisor).
Request
Please document the
openshell.*labels that the Podman driver puts on sandbox containers as a stable, versioned interface, so that passive inventory and posture tools can list sandboxes without running the CLI or holding gateway credentials.Context
I maintain a small local tool that inventories the AI software on a workstation and reports how each agent is confined. It lists OpenShell sandboxes read-only from the rootless Podman container listing (
GET /libpod/containers/json?all=true, orpodman ps -a --format json). It never runs an OpenShell binary, never contacts the gateway and never inspects containers. The documented interfaces (openshell sandbox list -o jsonand gRPCListSandboxes) need a binary run or the mTLS client key, so labels are the only passive signal.Today such a tool has to rely on keys that are not documented, so any release could silently break it.
What I observed (v0.1.1, Podman driver)
These are on both containers of one sandbox (the workload and its supervisor):
openshell.managed=trueopenshell.ai/sandbox-idopenshell.ai/sandbox-nameopenshell.ai/sandbox-workspaceopenshell.ai/sandbox-namespace(empty)openshell.ai/isolation-role(sandboxorsupervisor)openshell.ai/caller-driver-config-usedopenshell.ai/runtime-binary-source(a host path)The workload container also carries
openshell.ai/resource-admission-identities.As far as I can tell, only
openshell.ai/managed-by,openshell.ai/gateway-idandopenshell.ai/sandbox-workspaceare documented, as reserved driver metadata, and the RFC 0011 draft addssandbox-id,sandbox-nameandmanaged-by. On Podman,openshell.ai/managed-byandopenshell.ai/gateway-idare not set;openshell.managed=trueis used instead. #2804 discussed aligning that label with Docker and Kubernetes, and was closed as stale.What would help
openshell.ai/managed-by=openshell, as feat(podman): align managed-container labels with Docker and Kubernetes #2804 proposed), or the Podman label documented as an alias.Keys such as
runtime-binary-sourcedo not need to be part of the contract. Inventory tools only need to find and pair a sandbox's containers.Thank you for OpenShell. It has been easy to install and study at user level with the Podman driver.
Written with Claude Code.