Skip to content

PROD-250 docs: sandbox OpenShell microVM provider (additional) - #160

Merged
salamisandwich77 merged 10 commits into
docs/constrain-temporal-python-integrationfrom
docs/sandbox-openshell-provider
Aug 26, 2026
Merged

PROD-250 docs: sandbox OpenShell microVM provider (additional)#160
salamisandwich77 merged 10 commits into
docs/constrain-temporal-python-integrationfrom
docs/sandbox-openshell-provider

Conversation

@salamisandwich77

Copy link
Copy Markdown
Contributor

OpenShell Provider (VM)

Documentation for the optional microVM sandbox provider.

openshell runs the admitted command inside a libkrun microVM, giving a guest-kernel boundary rather than the host-kernel isolation the default native provider applies. It uses Hypervisor.framework on macOS and KVM on Linux.

The page covers supported platforms and the assets published for each, the prepared VM cache that keeps warm-up to a cache hit, the OCI registry mode for development, registry CA trust per platform, and the security properties and limits.

Provider selection is explicit and fails closed; there is no fallback to native.

Stacked on #157. The base sandbox section must land first, since this page links to Provisioning, Native Provider, and Concept.

Adds the OpenShell provider page on top of the base sandbox section: the
supported platforms and their published assets, the prepared VM cache, the
OCI registry mode for development, registry CA trust on each platform, and
the security properties and limitations.

Restores the sidebar entry and the four cross-references from the native
provider, provisioning, configuration, and sandbox-execution pages.

The page states what this provider costs relative to the default: it needs a
prepared image cache and a hypervisor, and OpenBox publishes a complete asset
set only for Apple Silicon macOS and x86_64 glibc Linux.
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openbox-document Ready Ready Preview Aug 26, 2026 7:36am

Request Review

@salamisandwich77 salamisandwich77 changed the title docs: OpenShell microVM provider (additional) PROD-250 docs: sandbox OpenShell microVM provider (additional) Aug 24, 2026
configuration.md conflicted: the base corrected the provision command and
this branch added the OpenShell cross-reference. Both are kept.
The flag did nothing and has now been removed from the launcher, so a
command carrying it fails rather than being ignored. The page also
described it as accepting defaults and not bypassing the KVM, signing, and
CA-trust checks; provisioning never prompts, and those checks stand on
their own.
Four things stopped the page working as written.

The published SDK installs without error and does not contain
`openbox.sandbox`, so the example died at an import in step 4 with nothing
on the page explaining it. Step 3 now states that plainly and gives the
editable install that does work.

`temporal server start-dev` was a clause inside a sentence about other
requirements. It is a hard prerequisite for step 4, so it is a command
block of its own.

`uv init` writes a `main.py` that `uv run python .` ignores, which is
confusing next to an example made of two other files. The page says to
remove it.

Troubleshooting named an error the example cannot produce: it reads the
boundary values from the environment directly, so a missing one raises
`KeyError`, not the SDK's message. That entry is corrected, and entries for
the missing module and for a port still held by an earlier service are
added.
The page carried a caution that the published SDK lacks openbox.sandbox and
told the reader to install from a local checkout. The sandbox work is
treated as merged, so the documented install is the plain one.
Configuration listed seven environment variables and said parameters
override them. The package reads the process environment once, in
sandbox/deployment.py, and that read has nothing to do with plugin
configuration. Setting OPENBOX_GOVERNANCE_TIMEOUT, OPENBOX_ENABLED,
OPENBOX_GOVERNANCE_POLICY, OPENBOX_SEND_START_EVENT or
OPENBOX_SEND_ACTIVITY_START_EVENT changed nothing.

The plugin takes constructor parameters. OPENBOX_URL and OPENBOX_API_KEY
are conventional names that your own code reads and passes in, which is why
the example does exactly that.

The walkthrough's .env carried four of the inert variables, including
OPENBOX_GOVERNANCE_MAX_RETRIES, which is not a parameter either.

Also relabels a constructor signature in the SDK reference as text, since
it is an illustration rather than code that parses.
Saying the variables have no effect answered half the question. The SDK's
own README documents OPENBOX_GOVERNANCE_TIMEOUT and
OPENBOX_GOVERNANCE_POLICY as names an application reads and passes in, the
same way the examples already treat OPENBOX_URL and OPENBOX_API_KEY. The
page now shows that pattern.
@salamisandwich77
salamisandwich77 marked this pull request as ready for review August 26, 2026 07:55
@salamisandwich77
salamisandwich77 merged commit fef981b into develop Aug 26, 2026
2 checks passed
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.

1 participant