For regulated teams


01

Run it yourself

The API talks to your git host, Postgres, and Redis. That is the entire dependency list. Nothing in the design assumes our servers.

02

Or run it without an LLM at all

Leave the API key unset and the deterministic engine still detects drift, proves contradictions, regenerates diagrams, scores repos, and gates CI. You lose the drafted prose, nothing else.

03

Every dismissal is authorised

Clearing a finding erases a compliance record, so it is gated: write access at minimum, or a named approver list when you want sign-off restricted to specific people.

04

The trail is exportable

What changed, which documents it affected, what happened to each finding, who approved the merge, and when. As CSV or JSON, bounded to whatever audit window you are being asked about.

Where DocParity runs

The engine never knew which host it was talking to. It asks for a diff, some files, and somewhere to leave a comment. Each host gets an adapter that speaks its own API and translates its vocabulary, so the rules, the confidence tiers and the audit trail are identical wherever your code lives.

the badge reflects this deployment's own configuration, read from the API, not a claim on a marketing page

SINGLE SIGN-ON

OIDC or SAML 2.0, against your own provider: Okta, Entra ID, Auth0, Google Workspace, Keycloak, AD FS. Restrict it to your email domains, and offboarding someone in the directory closes the door here too.

  • OIDC tokens verified against the provider's published keys: audience, issuer, expiry and nonce all checked
  • SAML assertions verified against your certificate, and refused unless addressed to us, in date, unreplayed, and answering a request we made
  • SCIM 2.0 provisioning: deactivate in the directory and the session already open is refused on its next request, not whenever it expires
  • Administrators come from a directory group, so granting one is a membership change rather than a redeploy
  • Repository visibility still comes from the git host: link once, see exactly what you already had
OIDC_ISSUER=https://acme.okta.com    # or SAML_IDP_SSO_URL + SAML_IDP_CERT
OIDC_CLIENT_ID=...
OIDC_CLIENT_SECRET=...
OIDC_ALLOWED_DOMAINS=acme.com         # applies to both protocols
SCIM_TOKEN=...                        # provisioning at /scim/v2/Users

BILLING

Plans are metered per pull request and charged through a hosted checkout. DocParity never sees a card, and a tier only moves when the payment provider confirms it over a signed webhook, never because a browser came back from a payment page.

  • Cancelling keeps the tier until the paid period ends
  • Over the free allowance, detection continues. Only drafted fixes pause, and the bot says so
  • Self-hosted with no provider configured is a supported state, not a broken one
See the plans

WHO MAY SIGN OFF

By default anyone with write access may dismiss a finding. Name approvers and write access stops being enough: only those people may clear a record, and each dismissal is stamped with who made it in the audit export.

# .docparity.yml
approvers:
  - alice
  - bob
check_mode: required    # drift blocks the merge until docs catch up


Register your own GitHub App, point it at your host, and run the API and worker from one image. Migrations apply themselves on boot, and every revision is guarded so upgrades are safe to re-run.

docker compose up -d

uvicorn app.main:app --host 0.0.0.0 --port 8000
arq app.worker.WorkerSettings

Listed plainly, because finding out during a trial is worse than reading it here.