Skip to main content
Five minutes. Five steps. (Plus a couple bonus steps.)

From brew install to your first AI-authored policy.

Install zift. Sign up. Connect your agent. Watch it write Rego, generate tests, deploy. Done.

  1. 01Install zift30s
  2. 02Scan a real codebase60s
  3. 03Sign up + get an API key60s
  4. 04Connect your AI agent60s
  5. 05Talk to your control plane90s
  6. 06Test the decision30s
  7. 07(Optional) Add Verdict
01

Install zift · 30 seconds

# macOS / Linux via Homebrew
brew install enforceauth/tap/zift

# Linux / Windows via pip
pip install zift

# Or download a binary from
# https://github.com/EnforceAuth/zift/releases

Verify:

zift --version
# zift 0.x.x
02

Scan a real codebase · 60 seconds

If you have an app:

cd ~/your-app
zift scan .

Otherwise, use our demo app:

git clone https://github.com/enforceauth/zift-demo-app
cd zift-demo-app && zift scan .

Expected output:

Scanning ./src ...
Found 7 authorization checks across 3 files:

  src/api/admin.ts:23  if (user.role === "admin")
  src/api/admin.ts:45  if (user.role === "admin" || user.role === "owner")
  src/api/users.ts:12  if (user.id !== params.id && !user.roles.includes("support"))
  ...

Generated Rego stubs in .zift/policies/
03

Sign up + get an API key · 60 seconds

Create your free account → (no card required)

Copy your API key from Settings → API Keys.

export EA_API_KEY="ea_..."
04

Connect your AI agent · 60 seconds

claude mcp add enforceauth https://api.enforceauth.com/t/<your-tenant>/mcp \
  --header "Authorization: Bearer $EA_API_KEY"

claude mcp list
# enforceauth — connected. 100+ tools available.
05

Talk to your control plane · 90 seconds

In your AI agent's chat:

> Show me the entity tree.

Calling ea_get_entity_tree...

  EA Financial Corp (tenant)
  ├── Retail API (entity, system)
  ├── Identity Provider (entity, system)
  └── Wealth Kubernetes (entity, system)
  56 active policies

Then try:

> Create a new system called Receipts API. Add a policy that allows GET /receipts/:id only for the receipt owner or anyone with role finance.viewer. Generate three test cases. Deploy to staging.

Calling ea_create_entity, ea_get_policy_draft, ea_trigger_deployment

✓ Bundle 54e2cc8cc81a deployed to staging-alpha

The Rego it generates:

receipts.regorego
package receipts.allow

import rego.v1

default allow := false

allow if {
    input.action == "GET"
    input.resource.type == "receipt"
    input.resource.owner == input.subject.id
}

allow if {
    input.action == "GET"
    input.resource.type == "receipt"
    "finance.viewer" in input.subject.roles
}

Plus three *_test.rego cases. Plus a deployment confirmation with the new bundle hash and PDP URL.

06

Test the decision · 30 seconds

Bundles run on standard OPA. Query against your OPA endpoint with the standard OPA request shape:

bash
curl -X POST http://your-opa-pdp/v1/data/receipts/allow \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "subject": {"id": "user-42", "roles": ["finance.viewer"]},
      "action": "GET",
      "resource": {"type": "receipt", "id": "rcpt-9001", "owner": "user-13"}
    }
  }'
# {"result": true}

This is the standard OPA Data API shape. Wherever your OPA fleet runs, your EnforceAuth-deployed bundles answer.

07

Add Verdict for AI-agent governance · optional

For governing AI-driven actions on sensitive resources, EnforceAuth builds Verdict — its own HITL agentic firewall. See the reference deployment for the architecture.