Security & data handling

The design principle: Normik should know your standards, not your code.

The data path

  1. Your CI (or agent) sends the diff — never the whole repository.
  2. Normik builds a prompt from the diff and your applicable rules, and calls your AI provider with your key.
  3. The verdict comes back; the diff is discarded. It is never written to disk or database.
Your code transits through Normik in memory and through your own model provider — the same provider your team already sends code to when using AI assistants.

What Normik stores

StoredNot stored
Your playbook and skills · analysis outcomes (rules checked, violations with path/line/comment) · check reports from agents · token usage counts · the audit log · member and billing dataYour source code or diffs · your repository structure · anything from repositories not sent through the gate

Violations do quote the offending line reference (path, line number, reviewer comment) — that is the product. If a rule statement itself is sensitive, scope who can see the playbook via membership.

Keys and tokens

  • AI provider keys are encrypted at rest with AES-256-GCM and never displayed again after saving — only the last four characters are shown.
  • Workspace tokens (nmk_…) are stored as SHA-256 hashes; the plaintext is shown exactly once at creation. Revocation is immediate.
  • Multi-tenant isolation is enforced at the query layer: every domain query is scoped by the organization from the session — never from request parameters.

Fail-open, and why

If Normik or your model provider is unavailable, the CI gate passes with an explanation instead of blocking your merges. We consider availability incidents our problem, not a reason to stop your delivery. Blocking is strictly reserved for error-severity violations found in your code.

Billing data

Payments are processed by Stripe; Normik never sees card numbers. Subscriptions are attached to the organization.

Honest limits

  • Normik is not SOC 2 certified today and does not offer self-hosting. If those are hard requirements, we'd rather tell you now — see how we compare.
  • LLM judgment is probabilistic. Guardrails (only added lines, only existing rules, false-positive feedback) bound it, but no AI reviewer is infallible — that's why severity and fail-open exist.