Skip to main content

Zu sandbox backends and event sinks: local-docker, sqlite

Project description

zu-backends

Infrastructure adapters: the SandboxBackend port (provision and run a tier's environment) and the EventSink port (persist and query the event log). These are the durable/isolation seams the core defers behind a port.

Registered plugins

Sandbox backends (zu.backends)

Name Class Notes
local-docker LocalDockerBackend Runs a tier's container via the local Docker daemon. Network is disabled by default and enabled only for the render tier; scoped egress (allowlist / DNS-pinned) is the deferred egress-policy work. Needs the [docker] extra.

Event sinks (zu.sinks)

Name Class Notes
sqlite SqliteSink The durable canonical store: WAL, synchronous=FULL, busy_timeout, single writer, keyset streaming, idempotent append.
jsonl JsonlSink One JSON object per line — a greppable secondary/trace sink that log shippers tail.

The payload codec seam (zu_core.codec) lets a sink encrypt payloads at rest; an AES-256-GCM codec ships behind the optional [encryption] extra (zu_backends.encryption). Every sink links each event into its trace's tamper-evidence hash chain (zu_core.chain, ZU-AUDIT-1).

Upstream-conformance reference plugins

Dependency-light reference implementations of the conformance ports (spec: zu-upstream-conformance.md, trusted base: docs/TCB.md):

Kind Name Class Notes
zu.channels credential-broker broker:CredentialBroker A harness-owned Channel (ZU-NET-2): secret read inside the adapter, narrow verbs (mint/introspect) return a derived token, never the secret.
zu.backends oop-launcher oop_launcher:OutOfProcessLauncher Runs a plugin (e.g. the broker) in a separate process/uid over the zu_core.rpc socket contract (ZU-NET-3 / ZU-CORE-3): a harness compromise yields the socket, not the secret.
zu.workload_identity static identity:StaticIdentity Attestable identity (ZU-NET-4/5): HMAC-signed principal + optional attestation measurement; stdlib-only. mTLS/SPIFFE are follow-ons behind the same port.
zu.egress_enforcement docker-internal-net, nftables egress_enforce:* Pluggable default-deny + DNS gating port (ZU-NET-1). The SandboxLauncher routes through it: pin the proxy by IP + gate the embedded resolver so DNS isn't a covert channel. ScriptedEnforcement proves swappability offline; nftables is the Linux-native mechanism; live behavior is validated under --run-docker.

broker.py's narrow verbs are the worked example for ZU-EXT-3 (many narrow typed ports, not one wide "send this request" proxy).

Extend

Implement the SandboxBackend or EventSink shape, register under zu.backends / zu.sinks, and add a deterministic test (inject a fake Docker client / use a temp DB path — no real daemon needed offline).

Tests

uv run pytest packages/zu-backends — offline.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zu_backends-0.2.4.tar.gz (59.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zu_backends-0.2.4-py3-none-any.whl (50.2 kB view details)

Uploaded Python 3

File details

Details for the file zu_backends-0.2.4.tar.gz.

File metadata

  • Download URL: zu_backends-0.2.4.tar.gz
  • Upload date:
  • Size: 59.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for zu_backends-0.2.4.tar.gz
Algorithm Hash digest
SHA256 70bdabc072d6223e11ebaeffe54c8e987ab2eb550b62c17b13fbfafc6cc51041
MD5 9c888ead9d9e288152ebf868693b36fa
BLAKE2b-256 afdafb2e09547d57fde15c6246773a1c4e6d9ecea7eb39eedea093616f0f9627

See more details on using hashes here.

File details

Details for the file zu_backends-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: zu_backends-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 50.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for zu_backends-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 793d6e3dc2d9cf614c450ab11e7e987b61ba10f07eff51ec0216417b5ab0a15c
MD5 a30b0bced8580e3f15c4366c898074d3
BLAKE2b-256 551b567a77ea87a4064fffc63c6a1c3488285450c388767cd64605cf2ce7f07f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page