Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jonwiggins/optio/llms.txt
Use this file to discover all available pages before exploring further.
Secrets management
Optio provides a built-in secrets store for values that agents need at runtime — such as API keys and tokens. Secrets are managed through the Secrets page in the UI. Encryption: All secret values are encrypted at rest using AES-256-GCM. The encryption key is set viaencryption.key in Helm values (or the OPTIO_ENCRYPTION_KEY environment variable) and must be generated before the first install:
GET /api/secrets endpoint returns only secret names and scopes. This means secrets cannot be read back through the UI or API after they are stored.
Scope: Secrets are workspace-scoped. Each workspace has its own isolated secrets store.
Common secrets to store:
| Secret name | Purpose |
|---|---|
ANTHROPIC_API_KEY | Anthropic API key for Claude Code (API key auth mode) |
CLAUDE_CODE_OAUTH_TOKEN | Claude Max/Pro OAuth token (OAuth token auth mode) |
GITHUB_TOKEN | GitHub personal access token for PR watching and issue sync |
Agent isolation
Each task runs in an isolated environment within a Kubernetes pod:- Pod-per-repo: A single long-lived pod is created per repository. Tasks run in separate git worktrees within that pod, keeping them isolated from each other’s working trees.
- Worktree isolation: Each task gets its own git worktree at
/workspace/tasks/{taskId}. Worktrees are created before the agent starts and removed after it finishes. - Non-root user: Agent processes run as the non-root
agentuser inside the container. - Namespace-scoped RBAC: The Optio service account has a namespace-scoped Kubernetes Role granting access only to pods, exec, secrets, PVCs, services, and events within the
optionamespace. A ClusterRole is used only for read access to nodes, namespaces, and metrics.
Resource quotas
Resource quotas are disabled by default. Enabling them is recommended for production deployments to prevent runaway agents from consuming all cluster resources.
ResourceQuota on the optio namespace to cap total resource consumption across all agent pods:
values.yaml
Access control
Optio uses multi-tenant workspaces with role-based access control. Authentication: All users authenticate via OAuth (GitHub, Google, or GitLab). There are no local username/password accounts. Workspace roles:| Role | Description |
|---|---|
admin | Full access to workspace settings, members, secrets, and all resources |
member | Can create and manage tasks, repositories, and sessions |
viewer | Read-only access to tasks and logs |
Production hardening checklist
Disable the auth bypass
Ensure
OPTIO_AUTH_DISABLED is not set, or is explicitly set to false. In Helm values, confirm auth.disabled: false.Enable TLS
Configure the Ingress with TLS. The Helm chart supports cert-manager for automatic certificate provisioning:
values.yaml
Use managed PostgreSQL and Redis
Replace the bundled in-cluster deployments with managed services to ensure persistence and high availability:
values.yaml
Generate and securely store the encryption key
Generate the encryption key before first install and store it in a secrets manager:Set it via
encryption.key in Helm values. Do not commit it to source control.Enable resource quotas
Add a
ResourceQuota on the optio namespace to limit cluster consumption by agent pods. See Resource quotas above.Configure agent image pull policy
For production, images should be pushed to a registry and pulled with
IfNotPresent or Always rather than using locally built images with Never:values.yaml
Set API_PUBLIC_URL and WEB_PUBLIC_URL
These must match the actual public URLs of your deployment. OAuth callbacks will fail if they point to the wrong host.
Configure at least one OAuth provider
At least one of GitHub, Google, or GitLab OAuth must be configured so users can log in. See Authentication.
