Production parity for every agent
Give your agents a copy of production on every branch: your services, Postgres, Redis, S3, SMTP and Auth, isolated from everything else. Staging and production run on the same platform, from the same configuration.
Get early access- urlown hostname
- https://web--team-invites--acme.env.parity.ninja
- postgresnon-superuser
- 16.4 · migrated to 0042 · seeded
- redisown instance
- 7.4 · 1,204 keys
- s3per-sandbox key
- acme-team-invites-7f3a
- smtpSMTP sink
- “Ana invited you to Acme” → bob@acme.test
- authOIDC issuer
- ana@acme.test · bob@acme.test · eve@acme.test
- secretsOpenBao · write-only
- 6 keys · ••••••••
- egressSNI allowlist
- upload.exfil-drop.net · blocked
- tokeninherited RBAC
- hugo@acme.com · scope: claude-1
Your agents test their work end to end
Every console action is also a parity CLI command and an MCP tool. Your agents sign in as test users, read the email your app sends, and hand you work that has already run against your full stack.
The whole stack, per agent
Each of your agents runs your entire application with its own copy of every built-in, in its own namespace, with no network route to other agents or to production. Data comes from your seed job, never from production.
- Postgresnon-superuser · pgvectorDATABASE_URL
- Redis7.4 · own instanceREDIS_URL
- S3S3 API · bucket per sandboxAWS_ENDPOINT_URL_S3
- ClickHouse26.8 · own instanceCLICKHOUSE_URL
- SMTPSMTP sink · inbox APISMTP_URL
- AuthOIDC issuer · test personasOIDC_ISSUER
Beyond preview deploys and database branches
Database branches and preview deploys give an agent one part of your stack. Per‑PR environments run all of it, with your team's network access and credentials. A Parity sandbox runs all of it behind an egress allowlist, with a token scoped to the sandbox and a promote review before production.
Typical setups; capabilities vary by provider.
Kubernetes underneath, one file on top
You describe your application once in parity.yaml. Parity runs it on Kubernetes, with every environment in its own namespace behind a default-deny network policy, and supplies the right values for sandbox, staging and production. Sandbox Postgres matches production's version, extensions and role, so a migration that would fail in production fails in the sandbox first.
version: 1project: shopmanaged:db: { type: postgres }cache: { type: redis }mail: { type: email }externals:stripe: { hosts: [api.stripe.com] }env_groups:common:APP_URL: ${web.public_url}services:web:build: .env_from: [common]depends_on: [db, cache, mail]externals: [stripe]worker:build: { from: web }command: npm run workerjobs:migrate:service: webcommand: npm run migrateon: deploy
- sandbox
- postgres://app@db:5432/shop
- staging
- postgres://app@shop-staging.db.internal:5432/shop
- production
- postgres://app@shop.db.internal:5432/shop
- sandbox
- https://web--team-invites--acme.env.parity.ninja
- staging
- https://staging.shop.example.com
- production
- https://shop.example.com
- Namespace per environment
- Each sandbox, staging and production get their own namespace, workloads and credentials.
- Default-deny network
- Traffic between environments is denied unless you route it.
- Service discovery
- Services reach each other and the built-ins by name. Parity sets each environment's connection strings.
- Certificates and DNS
- Every service you route gets a hostname and a TLS certificate, from sandbox to production.
From branch to production
Every merge to main ships to staging. When you promote a service, production runs exactly what staging ran, and a rollback redeploys the previous release.
- 01branchparity up
- 02sandboxper agent
- 03stagingon merge
- 04productionon promote

- Configuration
- Every parity.yaml change, by file and by service, including the files it includes.
- Database
- Migrations already applied on staging, with the tables they change.
- Checks
- A secret missing in production blocks the promote. New egress hosts are flagged for review.
Security and access control
- 01
Scoped credentials
Sandbox tokens are short-lived and reach only their own sandbox: they can't promote, change staging or production, or widen the egress allowlist. Agents can't read secret values, connect to the production database or exec into production.
- 02
Secrets management
Encrypted at rest in OpenBao and injected at runtime. Staging and production values never reach a sandbox, and the API never returns a secret value to an agent.
- 03
Egress control
Outbound traffic passes an egress proxy that allows only the host names in your reviewed parity.yaml; network policy drops everything else. Every request by host name is logged by service, host and verdict, and new hosts are flagged in the promote review.
- 04
Audit logging
Every API and MCP call is recorded with the person and, for agents, the agent acting for them. If the record can't be written, the change is refused.
- 05
Single sign-on
SAML and OIDC with any identity provider. SCIM keeps users and groups in sync.
- 06
Role-based access control
Granular permissions per project and environment, mapped from identity provider groups. An agent never exceeds the permissions of the person it acts for.
Get started with Parity
Parity is in early access. Leave your details and we'll schedule a technical walkthrough and set up your organization.