Skip to main content

Mizara — programmable authorization layer for AI actions

Project description

Mizara SDK — Python

PyPI Python License

Authorization layer for AI agents. Call authorize() before any consequential action. Sub-2ms evaluation, policy-as-data, cryptographic receipt on every decision.

Also available for TypeScript/Node.js: @mizara/sdk

Install

pip install mizara

Quickstart

Local policy file

from mizara import create_mizara_client

mizara = create_mizara_client(policy_path="./policy.json")

result = mizara.authorize(
    actor={"id": "agent_support_v4", "type": "autonomous_agent"},
    action={"name": "execute_refund"},
    resource={"type": "monetary_transaction", "id": "tx_99210",
              "attributes": {"amount": 75, "currency": "USD"}},
)

if result.status == "DENY":
    raise Exception(result.enforcement.user_facing_error)
# result.status                   -> 'ALLOW' | 'DENY' | 'REDACT' | 'RE_ROUTE'
# result.cryptographic_receipt.id -> 'rcpt_8f3c...'

Hosted API — sign up at mizara.ai/signup, skip the local file:

import os
from mizara import create_mizara_client

mizara = create_mizara_client(
    api_key=os.environ["MIZARA_API_KEY"],
    client_id="acme_corp",
)

result = mizara.authorize(
    actor={"id": "agent_1", "type": "autonomous_agent"},
    action={"name": "execute_refund"},
    resource={"type": "monetary_transaction", "id": "tx_1",
              "attributes": {"amount": 75}},
)

Policy format

Plain JSON. No Rego, no Cedar syntax.

{
  "policy_id": "pol_refund_v1",
  "client_id": "acme_corp",
  "rules": [
    {
      "id": "rule_max_refund",
      "target_action": "execute_refund",
      "condition": "resource.attributes.amount <= 50.00",
      "effect": "ALLOW",
      "fallback_effect": "DENY",
      "remediation_message": "Refund exceeds the $50 unapproved threshold."
    }
  ]
}

Condition expressions support comparisons, boolean logic, arithmetic, and .contains():

resource.attributes.amount <= 50.00
context.jurisdiction == 'EU' && context.data_classification.contains('PII')
context.session_total + resource.attributes.amount <= 500

Integrations

Framework Example
LangGraph examples/langgraph/
OpenAI Agents SDK examples/openai-agents/
Hosted API examples/hosted-api/

Design choices

Fail closed. No matching rule returns DENY, not ALLOW.

Policy as data. Rules live in a JSON file that non-engineers can edit without a deploy.

No Cedar or Rego. Conditions are plain boolean expressions. The engine compiles them safely without eval().

Receipt on every call. Even ALLOW decisions are signed and stored. The audit trail is part of the product, not an afterthought.

License

Apache-2.0

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

mizara-0.2.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

mizara-0.2.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file mizara-0.2.0.tar.gz.

File metadata

  • Download URL: mizara-0.2.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for mizara-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9083edc1bc25774021537c06691d7aff8321c482a5698e143f227a1e82ae36b1
MD5 662e45a4a090af6140985a2da4ee042c
BLAKE2b-256 82bbfb07f855aed1f7af0c6bbd881de0219a05a76a6b5cae052a9bb6b454d7f0

See more details on using hashes here.

File details

Details for the file mizara-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mizara-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for mizara-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97d426ebfac2ad2e838442bc89d1966163d869aa091d23ca5411155416c4f6ff
MD5 1aa103800486e307db0b249ad8e1a22e
BLAKE2b-256 2c1bb07ad9f78bb1f7354d8ae3b25deed6fa12d7b943d3eeb0562fd58c96f300

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