Metadata-Version: 2.4
Name: infraveil
Version: 0.1.0
Summary: Open-source CLI to inspect and govern your runtime: a policy DSL you enforce free in CI, plus offline audit-ledger and Ed25519 signature verification.
Project-URL: Homepage, https://infraveil.com
Project-URL: Source, https://github.com/infraveilhq/infraveil
Author: Infraveil Corporation
License-Expression: AGPL-3.0-or-later
License-File: LICENSE
Keywords: ai-agents,audit,ci,devsecops,ed25519,governance,infraveil,policy
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.9
Provides-Extra: signatures
Requires-Dist: cryptography>=41; extra == 'signatures'
Description-Content-Type: text/markdown

# infraveil — open-source CLI for runtime governance

Inspect and govern what changes your production — **on your machine, trusting
nothing from us**. Write your governance rules in a small, readable policy DSL,
enforce them free in CI, and verify your audit ledger and release signatures
offline. The Infraveil control plane enforces the *same* policy centrally, so
your local checks and your production reality can't drift apart.

This is the open core. You can run it with no account. The paid control plane is
the part you can't self-host: the central authority graph, multi-tenant policy,
the tamper-evident evidence store, fleet ops, and break-glass.

```bash
pip install infraveil
```

## The policy DSL

A policy is the contract for what may change production and who must approve it.
Keep it in your repo:

```
# production.infraveil
policy "production" {
    version 1

    deploy {
        require_approval true
        block_paths ".env", "secrets/**", "**/id_rsa"
        max_files 50
    }

    agent "deployer" {
        allow restart, deploy, rollback
        deny  delete, db_migrate, drop_table
        blast_radius single_host
    }

    remediation {
        block_categories auth, crypto, billing
        require_approval true
    }
}
```

Lint it, read it back in plain language, and enforce it:

```bash
infraveil policy lint    production.infraveil
infraveil policy explain production.infraveil
infraveil policy check   deploy-action.json --policy production.infraveil
```

`policy check` evaluates a proposed action (JSON) and exits **0 = allowed**,
**1 = denied or needs approval** — drop it straight into a CI gate:

```yaml
# .github/workflows/deploy-gate.yml (excerpt)
- run: infraveil policy check action.json --policy production.infraveil
```

An action looks like:

```json
{ "type": "deploy", "paths": ["src/app.py"], "files_changed": 3 }
{ "type": "agent_action", "agent": "deployer", "action": "delete" }
{ "type": "remediation", "category": "auth" }
```

Use `--approval-ok` if your gate should pass when an action is permitted but
gated on human approval (exit 0 for `needs_approval`).

## Verify, offline

Confirm your agent's audit ledger has not been edited, deleted, reordered, or
gapped — re-hashing the chain yourself:

```bash
infraveil verify ledger /path/to/agent_audit_<id>.jsonl --head <anchor from dashboard>
```

Verify an Infraveil Ed25519 release/export attestation against the published
public key (requires `pip install "infraveil[signatures]"`):

```bash
infraveil verify signature --file release.bin --attestation attestation.json --pubkey <published hex key>
```

## Why open source this

Two reasons, both honest:

1. **It's the security pitch.** You should never trust a control plane you can't
   inspect. The code that has authority over your runtime, and the tools that
   verify us, are open so you can read and reimplement them.
2. **It's how good infrastructure spreads** — devs adopt what they can run for
   free and read top to bottom. We commit to AGPL up front and will not
   relicense it out from under you.

## License

[AGPL-3.0-or-later](LICENSE).
