Security
Security isn't a feature. It's the architecture.
Operate runs inside your own infrastructure and connects to your systems in read-only mode. Your logs, records, and code never leave your environment, and nothing changes without a human approving it. That posture is by design — not a setting you have to turn on.
Self-hosted · read-only · human-gated · bring your own AI provider
The foundation
Four guarantees built into how Operate works.
Runs in your infrastructure
Operate runs alongside your own app, inside your infrastructure. No new cloud accounts, and none of your data is routed through us. Your logs, records, and code stay put.
Read-only, always
Everything Operate connects to is read-only, and every action is logged. It can't change your production systems — the one thing it creates is a draft change for a human to approve.
Fully auditable
Every step Operate takes is recorded. Logins, key changes, and investigations all land in an activity log you can export anytime.
Your AI provider, your keys
Bring your own AI — Claude, Codex, an enterprise model, or one you host yourself, using your own keys. You decide which model runs and where.
Security controls
How we keep your data safe.
Five promises, and the engineering that backs each one.
Your data stays yours
Operate touches three kinds of data: the data in your systems, the credentials you connect them with, and a usage record for billing. Here's where each one lives and how it's protected.
Your logs, records, and code never leave your environment
Operate is self-hosted: it runs as a Docker image inside your infrastructure and reads your systems in place, using read-only credentials you provide.
The only thing sent to us is how much you used, for billing
Exactly five things: an interaction ID, start and end times, token counts, the model name, and the task type — sent over an encrypted connection. Never log lines, records, code, credentials, or findings.
Credentials you connect are encrypted before they're stored
Stored in your database only in encrypted form — using AES-256-GCM, the same encryption standard banks rely on — and decrypted only in memory at the moment they're used. You can revoke them at your provider at any time.
Everything Operate stores lives in your own database
Passwords and API keys are never stored as-is — only as one-way fingerprints (bcrypt hashes) that can't be reversed to reveal the original. Disk and at-rest encryption stay under your control, in your infrastructure.
You decide who gets in
Access is limited to who needs it, and can be shut off instantly.
Signing in takes more than a password
Two-factor authentication with time-based one-time codes (TOTP) from an authenticator app.
People see only what their role allows
Role-based access control separates administrator abilities from member accounts.
API keys expire on their own and can be revoked instantly
Keys are time-limited and shut off automatically when they lapse; revocation takes effect immediately.
Every action leaves a trace
Every action Operate takes — and every person who signs in — leaves a record you control.
Every sign-in, change, and agent run is logged
The audit log records every security-relevant event — sign-ins, settings changes, key management, and each step of an investigation.
You can export the log anytime
Exportable as JSON Lines, ready for your own review tooling.
Kept for a full year by default
365-day retention, configurable to your policy; older entries expire automatically.
Attackers hit a wall
The app hardens itself against common web threats out of the box.
Browsers are held on secure connections
HSTS and a Content-Security-Policy header are sent on every response.
Only web origins you approve can call it
A deny-by-default CORS allowlist — never a wildcard.
Repeated failed logins are blocked
Login attempts are rate-limited to stop password guessing.
Proven before it reaches you
Every update must pass automated security and quality checks before it reaches you.
Scanned for known security flaws
Trivy vulnerability scanning runs on every change in CI.
Passwords and keys can't slip into the code
Gitleaks scans every change for leaked secrets before it can merge.
Gated on code quality
A blocking SonarQube quality gate on every pull request.
Dependencies kept patched and up to date
Automated updates via Dependabot, with build actions pinned to fixed versions.
Your data
You keep your data — we never hold it.
Operate runs entirely inside your own infrastructure, so your logs, records, and code never leave your control. You're not trusting us to keep your data safe — you're keeping it yourself.
Have a question, or need details for a security review? We're happy to walk you through exactly how it works.
What actually leaves your environment
Almost nothing. The only thing Operate sends back to us is a small usage record for billing — an app ID, token counts, the model name, the task type, and how long it ran. Your logs, your records, your code, and everything Operate finds stay inside your own infrastructure.
Questions
What security reviewers ask first.
Inside your own infrastructure. Operate runs alongside your own app — no new cloud accounts, and nothing routed through us. Your logs, records, and code stay in your environment, and you stay in full control of where everything lives.
Your logs, records, and code stay inside your infrastructure. The only thing Operate sends back to us is a small usage record for billing: an app ID, token counts, the model name, the task type, and how long it ran. No customer data or anything Operate finds ever leaves your environment.
No. Everything Operate connects to is read-only, and every action it takes is logged. The one thing it can create is a draft change for a human to review and approve — nothing goes live on its own.
Whichever AI you choose. You bring your own provider — Anthropic Claude, OpenAI, an enterprise model, or a private model you host yourself — using your own keys. If your data is sensitive, you can keep the AI running entirely inside your own network.
Email us at security@operatex.dev. We welcome reports from security researchers, reply to every one within 72 hours, and follow a clear, documented process to assess and fix issues quickly.
Have a question about security?
Email our security team and we'll get you what you need — architecture details, our incident-response plan, or anything else.