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
OpenShell already exposes the ingredients needed by external governance and compliance consumers: the effective sandbox policy, sandbox configuration and revision state, and OCSF audit events. Those ingredients are currently retrieved independently, however, so a consumer cannot establish that they describe the same sandbox state or determine whether the event interval is complete.
This is complementary to #1922 (portable, durable sandbox log collection) and #2640 (trace/span correlation). Durable logs and correlation fields are valuable inputs, but they do not bind the exact effective policy, sandbox/workload identity, event bytes, and completeness state into one authoritative export.
External adapters can hash and sign bytes they receive, but they should not invent authoritative associations or claim completeness that OpenShell itself has not established.
SHA-256 digest of the exact effective-policy.yaml bytes;
workload/image digest when available;
capture start and end times in epoch milliseconds;
an explicit complete boolean and, when false, a machine-readable reason;
OCSF schema version and event count;
SHA-256 digests of every exported file; and
trace/span identifiers when available.
Required invariants:
effective-policy.yaml is the policy OpenShell actually enforced, not the originally submitted input.
Every exported OCSF event's metadata.uid identifies the exported sandbox.
OCSF product metadata records the OpenShell version that produced the event.
complete: true is emitted only when OpenShell can account for the entire requested interval. Rotation, truncation, gateway restart, or unavailable history must produce complete: false with a reason.
File digests cover the exact exported bytes. Existing credential redaction guarantees remain in force.
The export stays vendor-neutral. OpenShell should provide authoritative evidence, not implement TRACE-specific signing or conformance logic.
Acceptance tests should cover:
allowed and denied events validating against the vendored OCSF schemas;
successful verification of all manifest digests;
rotation/truncation causing an explicitly incomplete export;
policy changes producing a new revision and digest;
rejection/detection of cross-sandbox file substitution; and
a credential-canary scan proving exported files preserve redaction.
This primitive would support SIEM ingestion, incident response, audit archives, and third-party governance formats without coupling OpenShell to any one consumer.
Problem Statement
OpenShell already exposes the ingredients needed by external governance and compliance consumers: the effective sandbox policy, sandbox configuration and revision state, and OCSF audit events. Those ingredients are currently retrieved independently, however, so a consumer cannot establish that they describe the same sandbox state or determine whether the event interval is complete.
This is complementary to #1922 (portable, durable sandbox log collection) and #2640 (trace/span correlation). Durable logs and correlation fields are valuable inputs, but they do not bind the exact effective policy, sandbox/workload identity, event bytes, and completeness state into one authoritative export.
External adapters can hash and sign bytes they receive, but they should not invent authoritative associations or claim completeness that OpenShell itself has not established.
Proposed Design
Add an atomic export command along these lines:
openshell sandbox evidence export <sandbox> --since <timestamp> --output <directory>The export would contain:
manifest.jsoneffective-policy.yamlevents.ocsf.jsonlmanifest.jsonshould include:effective-policy.yamlbytes;completeboolean and, when false, a machine-readable reason;Required invariants:
effective-policy.yamlis the policy OpenShell actually enforced, not the originally submitted input.metadata.uididentifies the exported sandbox.complete: trueis emitted only when OpenShell can account for the entire requested interval. Rotation, truncation, gateway restart, or unavailable history must producecomplete: falsewith a reason.Acceptance tests should cover:
This primitive would support SIEM ingestion, incident response, audit archives, and third-party governance formats without coupling OpenShell to any one consumer.
Alternatives Considered
Agent Investigation
Investigation was performed against OpenShell
v0.0.105(0f8fad23c4712afc1d4a7b07a06d635b030e9521):proto/sandbox.protoexposesGetSandboxConfigResponse.config_revision.proto/openshell.protoexposes sandbox policy status/revision APIs.openshell policy get <name> --fulland JSON sandbox retrieval.ocsf_json_enabledis enabled.crates/openshell-ocsfsupplies product identity and sandbox identity throughmetadata.uid.A released external consumer demonstrates the current integration boundary and the reason the authoritative association belongs in OpenShell:
Checklist