Changelog
All notable changes to Niyam are recorded here. Versions follow the one tested-together
train: a release pins one coherent set of every piece (run niyam bom to print it).
v0.1.0 - first release
The first self-hosted release. One product an enterprise installs once to govern every AI
call, action, and piece of data through a single central authority, with a tamper-proof,
post-quantum-signed record of everything.
What you get
- One
niyambinary, mode-selected. Run it as the control plane (the central brain,
with the embedded web console and admin API) or as a data-plane node (the enforcement:
gateway, safety, action gate). Data-plane nodes enroll to the control plane, pull policy,
push their signed record, and cannot weaken the rules locally. - Every model call goes through the gateway. Point your OpenAI-compatible traffic at
Niyam with one config line; each call is authenticated, checked against policy, recorded,
and forwarded. - Deterministic action gating and agent identity. Actions are allowed or denied by
policy in plain code, never by a model in the hot path. Agents carry capability tokens that
are holder-bound (no bare bearer token works) and can be revoked centrally. - Sensitive data is protected on the way in and out. Prompt-injection detection, PII/PHI
redaction, and output-safety moderation. Run the classifiers embedded on CPU, or move them
to a separatesafety-server(including a GPU one) that a fleet of gateways shares. - Everything is provable. Every decision is written to an append-only record signed with
a post-quantum hybrid signature (ML-DSA-65 with Ed25519), which the control plane
independently re-verifies. - One place to set the rules. Author policy once from a single source; the control plane
compiles it and distributes it (and the central gateway config) to every node. - Maps to the law by itself. Generate auditor-ready evidence bundles (ISO 42001, EU AI
Act, NIST) and signed model/agent evaluation evidence. - One unified SDK. Embed the same central gate directly in your own agent code from
Python (pip install niyam-sdk) or Node (npm install niyam-sdk).
Operating at scale
- Pluggable control store: SQLite by default (zero dependencies, a single file), or
Postgres for large fleets, HA, and your standard backups. One Niyam uses one Postgres. - High availability: an active plus a warm-standby control plane on shared Postgres; if
the centre goes down, gateways keep enforcing on cached policy and resume pushing their
record from where they left off once it returns. - Observability: a Prometheus metrics endpoint on both planes with first-class governance
signals (centre-verify failures, dark nodes, safety fail-closed, store errors, capability
rejections), plus ready-made alert rules and a Grafana dashboard. - Safe upgrades: the store carries a schema version and migrates forward on boot, refusing
to start against a store newer than the binary; the node-to-centre protocol is versioned.
Validated
Validated end to end on real cloud infrastructure at fleet scale: throughput and capacity,
a multi-gigabyte audit soak with flat control-plane memory, metrics under load, HA failover
with no lost records, and the GPU safety image running on a real GPU with decisions identical
to CPU. See docs/CAPACITY.md.
Artifacts
- Static
niyambinaries for macOS (Apple silicon), Linux (x86_64 and aarch64), and
Windows (x86_64). - Docker images on Docker Hub:
sarthiai/niyam(CPU) andsarthiai/niyam:0.1.0-gpu(the GPU
safety-server). Models are not baked in; a node fetches them at run time. - The unified SDK: the Python wheel and the Node addon, both published as
niyam-sdk.
Pinned pieces (this train)
Niyam assembles three independent libraries at pinned versions: Kavach 0.1.5 (the action
gate and post-quantum audit chain), Marg 0.1.5 (the model-traffic gateway), and Drishti
0.1.2 (content safety). The exact set is printed by niyam bom.