One control layer. Your policy, your identity, your logs.
Set enforcement per failure class, bind restoration to the right user, and audit every decision without storing a single prompt.
Enforcement modes
Pick the posture per workflow, and per failure.
Block
Strict fail-closed. Nothing leaves unless it was transformed and approved.
For High-assurance and regulated workflowsAllow + Audit
Work continues when enforcement cannot complete, and an explicit security event is raised.
For Business continuity with accountabilityObserve
Measure AI usage and policy impact before you enforce anything.
For Discovery and rollout planningPolicy per failure class
# nymgate policy · v42 enforcement: default: block on_failure: detector_unavailable: block gateway_unavailable: block unknown_schema: allow_with_audit unverified_transport: block groups: research-pilot: observe
Fail-open behaviour is always explicit policy, never a silent fallback.
Identity and vault
Only the right user can turn a token back into data.
Refund for Ahmet Yılmaz is ready to approve.
Refund for ⟦PERSON:7F31:0001⟧ is ready to approve.
Refund for ⟦PERSON:7F31:0001⟧ is ready to approve.
Mapping scope
- Tenant
- User or application
- Conversation
- Encryption
- AES-256-GCM, per-conversation derived keys
- Storage
- Redis in your cluster, hashed identifiers
- Lifetime
- TTL per surface, sliding on use
- Browser users
- Enterprise SSO (Entra ID, OIDC)
- APIs and agents
- Managed application identity
- Sharing
- Opening a shared chat grants no restore rights
Policy
Centrally managed, versioned like code.
- Microsoft Entra ID and any OIDC provider
- Policy by user, group, application and provider
- Your own sensitive-data rules and dictionaries
- Versioned policy with staged rollout
- Controlled adapter versions, optionally signed
- Offline or manual update path
- Central health and status for every replica
policy.yaml
identity: provider: entra-id groups: finance: surfaces: [chatgpt, claude] entities: [PERSON, TCKN, IBAN, CARD] engineering: surfaces: [claude-code, codex, cursor] entities: [SECRET, HOST, CUSTOMER_ID] providers: allow: [openai, anthropic] custom: - name: POLICY_NO pattern: 'POL-\d{8}' mapping_ttl: { chat: 7d, api: 24h }
Audit
Audit the control, not the confidential conversation.
Recorded
- User or application identity
- Provider and surface
- Entity types and counts
- Policy and detector version
- Latency and enforcement outcome
- Failure class
Never recorded
- Raw prompts
- Raw responses
- Vault mappings
- Provider credentials
Deployment
Built for environments where “send it to our SaaS” is not an acceptable architecture.
- OCI images
- Helm
- Non-root
- CPU-only inference
- Redis
- Readiness and liveness
- Corporate HTTPS proxy
- Custom CA bundle
- Signed versions
- Docker for pilots
Compliance, stated carefully
Reduce the amount of sensitive data exposed to external AI services and support your organisation's data-minimisation and AI-governance controls.
NymGate does not make you KVKK compliant on its own, does not make an international transfer lawful, and does not anonymise all personal data.
Don't block AI. Control what leaves.
Give employees and developers the AI tools they already use, without treating every prompt as safe by default.