Identity infrastructure,
reimagined.
Vaultaris is a self-hosted IAM server built in Rust. OAuth 2.0 & OIDC compliant, multi-tenant, fine-grained RBAC + ABAC, WebAuthn, device fingerprinting, per-tenant email templates, and a full audit trail — in a single binary under 50 MB.
Sits where Stripe sits. Not where Keycloak sat.
LEGACY IAM 2008–present
Bolted-on auth. JVM under the hood. Config via UI. Latency a liability.
- JVM runtime · 2 GB min per nodememory
- Shared HMAC secrets over the wirekeys
- Policy latency grows with org sizeeval
- Best-effort JSON logs, no replayaudit
- Hardcoded email templates per provideremail
- Device sessions tracked by user-agent onlydevices
- Billing hooks require custom middlewarebilling
- XML config, WAR deploys, quarterliesops
VAULTARIS v0.1.7 · today
Infrastructure auth. Rust binary. Config as code. Latency a guarantee.
- Static Rust binary · small footprintmemory
- Asymmetric keypairs + DPoP (RFC 9449), continuous rotationkeys
- Constant-time policy graph evaluationeval
- Every decision replayable, versioned, time-seriesaudit
- Per-tenant & per-app email templates, UI-editableemail
- Full device fingerprinting — trust/revoke from dashboarddevices
- Built-in cloud billing · auto-provision on paymentbilling
- TOML config · live plan sync · ship in hoursops
Platform primitives. No opinions you didn't ask for.
Signed by construction. Not by convention.
Every JWT is signed with ed25519 at issue and verified locally in ~1μs. No shared secrets. DPoP sender-constrained tokens (RFC 9449) ship out of the box. Keys rotate every 6h with zero downtime — old tokens keep verifying across the boundary.
Roles as a graph. Policies as logic.
Users & groups inherit roles. ABAC policies overlay with deny-override. Evaluated per-tenant at request time.
Predictable under load.
No GC pauses. No JVM warm-up. Granular time-series built in. Rust's async runtime keeps p99 flat at any scale.
Branded emails. Per tenant. Per app.
Every transactional email — reset, MFA, invite, freeze — is a template you own. Override per-tenant or per-application directly from the dashboard.
Every device, fingerprinted.
Browser fingerprint + UA tracking. Trust, revoke, inspect session history per device. Anomalous access surfaces instantly.
Every decision, replayable.
Every action — login, token issue, permission check, role change, freeze event — is written to an immutable audit log with tenant, user, IP, and latency. Compliance becomes a GET /audit, not an archaeology dig.
Pay once. Provisioned instantly.
Built-in cloud billing. On payment, your tenant is provisioned automatically and your plan limits sync live. Non-payment triggers a grace period with email reminders before any feature is paused.
REST API-first. Your CI is a first-class user.
Every action in the admin console is also an API call. Manage tenants, roles, users, email templates, and OAuth clients programmatically. OpenAPI spec and interactive Scalar UI included at /api/v1/docs.
Production-ready. From boot.
Prometheus metrics, k8s-shape health probes, structured JSON logs, and a Scalar-rendered OpenAPI spec — wired in, not bolted on.
/metricsPrometheus/health · /ready · /livek8s probes/api/v1/docsOpenAPIFour surfaces. One deterministic binary.
Delivered. In production.
DPoP sender-constrained tokens
Tokens cryptographically bound to the client key pair via a proof-of-possession header. Replay attacks become structurally impossible.
Email templates per-tenant & per-app
Every transactional email — reset, MFA, invite, freeze — overridable from the dashboard. Five providers. Variables auto-completed in the editor.
Device fingerprinting
Browser fingerprint + user-agent stored per device. Trust, revoke, and inspect session history per device from the admin dashboard.
Cloud auto-provisioning
On the first successful payment your tenant is created and configured automatically — no manual setup, no waiting on support. Plan limits sync live and update the moment you upgrade.
Freeze/Unfreeze with notifications
Graceful downgrade on license change or non-payment — paid features pause but your data is preserved. Grace-period and cancellation emails go out automatically. Everything restores on upgrade.
Granular time-series analytics
Auth events, session stats, security events — queryable with configurable granularity and time ranges. Dashboard shows real trends, not just totals.
Spin up a private sandbox.
Yours for an hour.
Drop your email, verify a one-time code, and we provision a real Vaultaris tenant — seeded with users, groups, OAuth clients and an audit trail you can poke at. The sandbox self-destructs after 60 minutes. No credit card, no commitment.
- Real backend — same binary you'd self-host
- Seeded with users, groups, roles and 2 OAuth clients
- Disposable domains blocked · rate-limited per IP
- Auto-purged after the session expires — no data retained
Two ways to run Vaultaris. Pick one.
Hosted Cloud is the fastest path — we run everything for you and your tenant provisions on payment. Self-host runs the same Rust binary on your infrastructure with a lower per-month license — you bring the servers, we bring the IAM.
Cloud
We host everything. You log in, configure your tenant, ship. Cancel any time from the account portal.
- Fully managed · 99.9% uptime target
- Auto-provisioned tenant on first payment
- OAuth 2.0 · OIDC · RBAC · ABAC · MFA · WebAuthn
- Per-tenant email templates · 5 providers
- Device fingerprinting + trust management
- Audit log · time-series statistics · CSV export
- Invoices & portal access from
/account - Email support · Discord community
Self-host
Single static Rust binary on your infrastructure — no data leaves your network. Same features as Cloud at a lower monthly license cost. You bring the servers.
- Single binary · ~50 MB · zero runtime dependencies
- OAuth 2.0 · OIDC · SAML 2.0 · WebAuthn · Passkeys
- Native plugin runtime (Rust dynamic libraries)
- Multi-tenant · multi-application · K8s webhooks
- Custom branding · per-tenant email templates
- Online license sync · or perpetual key for air-gap
- Private security advisories before public disclosure
- Priority support · dedicated contact
Auth shouldn't be the hard part.
Plug it in and move on.
A single static Rust binary, a hosted Cloud option for teams that don't want to run their own infra, and a REST API your CI can drive. Replace your auth server in an afternoon — or migrate one policy at a time.
