Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.1.0b5 instead.
Reason given by maintainers: install instruction in this release's README causes pre-release dependency resolution; use 0.1.0b2

Zabta Broker

A local credential-broker daemon that keeps API keys out of your AI agents' hands.

Instead of pasting secrets into agent configs and environment variables, you store them in an encrypted local vault. Agents request a credential at the moment of use; the Broker verifies the agent's identity, evaluates policy, checks budgets, and either issues a short-lived lease, denies the request, or escalates to a human for approval. Every decision is written to a local audit log.

Pre-release (0.1.0b1). This is an early beta: the wire protocol, CLI, and policy model may change without notice between releases. Evaluate it, but do not put production credentials behind it yet.

Install

pip install --pre zabta-broker

Requires Python 3.10+ on macOS or Linux.

Quickstart

# 1. Store a secret in the encrypted local vault
zabta-broker vault add --provider stripe --scopes charges:create

# 2. Start the daemon (binds to 127.0.0.1:9477 — loopback only)
zabta-broker start

# 3. Connect to the Zabta control plane (policies, approvals, dashboards)
zabta-broker register --api-key <your-zabta-api-key>

On the agent side, use the zabta SDK. Set ZABTA_AGENT_ID to your agent's id (shown in the Zabta dashboard) — the SDK derives the agent's identity from it (did:zabta:<agent id>), and the Broker learns the same identities from cloud sync, so nothing else needs configuring:

export ZABTA_AGENT_ID=<your agent id>
import zabta

with zabta.credential("stripe", ["charges:create"]) as key:
    ...  # `key` is a fresh checkout; use it now, don't store it

To run the Broker as a background service (launchd on macOS, systemd on Linux):

zabta-broker install-daemon

How a request is decided

Each credential request runs through a seven-step pipeline:

  1. Identity — unknown or unregistered agent DIDs are hard-denied.
  2. Policy load — applicable policies are read from the local policy cache.
  3. Evaluation — policies are evaluated locally (default deny when nothing matches).
  4. Budget — an allowed request that would exceed a spend budget is downgraded to a denial.
  5. Enforce or observe — policies in observe mode always issue the credential but record what would have happened, so you can trial a policy without breaking an agent.
  6. Issue or refuse — an allowed request gets a short-lived lease on the secret; a denial gets a reason.
  7. Audit — every path, including denials, writes an audit record. Redacted summaries (agent DID fingerprints, no secret material) sync to the Zabta cloud.

Scope — what the Broker does and does not do

We would rather you know exactly where the boundary is:

  • Enforcement happens at credential checkout. Policy is evaluated when an agent requests a credential. Once a secret has been handed to the agent process, the Broker does not intercept or mediate what that process does with it.
  • The lease TTL bounds the lease record, not the secret. When a lease expires, the agent must come back through policy to get the credential again — but expiry does not revoke, rotate, or invalidate the secret value already issued. Rotation remains your (or your provider's) responsibility.
  • Policies are managed in the Zabta cloud control plane. The Broker pulls policies from your Zabta account and enforces a locally cached copy; approval verdicts are decided in the cloud (by your team, in the dashboard) and polled by the Broker. Offline, the Broker keeps enforcing the last-synced policies. An unregistered Broker has no policies, and no policy means deny by default.
  • Loopback plus a session token, not a network service. The daemon refuses to bind to anything but 127.0.0.1, and requests must present a per-session token from a 0600 file. This protects against the network, not against other processes running as your own user — anything that can read your files can read that token.

Security model

  • The vault is encrypted at rest; the master key lives in your OS keychain (macOS Keychain / Secret Service), not on disk next to the data.
  • The session token file and vault database live in ~/.zabta-broker/, owner-readable only.
  • Audit records synced to the cloud are redacted: agent DIDs are fingerprinted, secret values never leave the machine.

License

MIT © Zainova Labs LLC

Download files

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

Source Distribution

zabta_broker-0.1.0b1.tar.gz (48.6 kB view details)

Uploaded Source

Built Distribution

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

zabta_broker-0.1.0b1-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file zabta_broker-0.1.0b1.tar.gz.

File metadata

  • Download URL: zabta_broker-0.1.0b1.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for zabta_broker-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 047bed5fb9c6db0cff101430981d2803eb043dbb9b5529cfe6b03e30206bc6fe
MD5 147370bf0fb32c8093162c3496079289
BLAKE2b-256 a95d529ef4b8766ddd014bff54dee60544ba09170842c52cbe2639c8de5d94b6

See more details on using hashes here.

File details

Details for the file zabta_broker-0.1.0b1-py3-none-any.whl.

File metadata

  • Download URL: zabta_broker-0.1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for zabta_broker-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 74fc4ebd412eac1b9415b70e737a0dec37f0a112052dea797e53e32ccc88c2fa
MD5 a4b3698a0a1ab95d897df34fce19b94a
BLAKE2b-256 187461ee8fb544aff2d900c311c05a34b5d18220f6b4fc7994d5fe91745b476a

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.0b4

2 files

This release

0.1.0b1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page