Skip to main content

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 description

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.

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:

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:

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

An action looks like:

{ "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:

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]"):

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.

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

infraveil-0.1.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

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

infraveil-0.1.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file infraveil-0.1.0.tar.gz.

File metadata

  • Download URL: infraveil-0.1.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for infraveil-0.1.0.tar.gz
Algorithm Hash digest
SHA256 07c90fe8f7f39111b69e318a5b0b39e35f44bc070b5122460ffe1c09fb15480e
MD5 18bae8ba4d0d5077fb0922ac22c799a8
BLAKE2b-256 8246d374c71990c7b2ec6d3c084bc0d6a04d9411c034c01bc0eef55c1023ce80

See more details on using hashes here.

Provenance

The following attestation bundles were made for infraveil-0.1.0.tar.gz:

Publisher: publish.yml on infraveilhq/infraveil

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infraveil-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: infraveil-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for infraveil-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 340a8b012f7c0e40b89aaf87a982074d283983656eb68a170d8a30063369abd1
MD5 fed4c60c3b4599d6b84ca77a64dce528
BLAKE2b-256 06c7fdd05e1d4f07f6fa6839c7d0e04f25225d7a9eccb1d131f64a454e74ec1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for infraveil-0.1.0-py3-none-any.whl:

Publisher: publish.yml on infraveilhq/infraveil

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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