Skip to main content

Secrets Management

Ori attentive

Securely store and manage API keys, tokens, and other sensitive configuration.

Overview

Orient's Secrets Manager provides a secure way to store sensitive values like:

  • API keys for AI providers (OpenAI, Anthropic, etc.)
  • Slack and WhatsApp tokens
  • OAuth credentials for Google, GitHub, JIRA
  • Webhook secrets
  • Database credentials

Secrets are encrypted at rest and can be managed through the Dashboard.


Accessing Secrets

Via Dashboard

  1. Navigate to Dashboard, then the Secrets tab
  2. You will see a list of all configured secrets
Secrets Dashboard

Secret Categories

Secrets are organized by category:

CategoryExamples
AI ProvidersANTHROPIC_API_KEY, OPENAI_API_KEY
SlackSLACK_BOT_TOKEN, SLACK_APP_TOKEN, SLACK_SIGNING_SECRET
WhatsAppWHATSAPP_ACCESS_TOKEN
GoogleGOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET
GitHubGITHUB_TOKEN, GITHUB_APP_PRIVATE_KEY
JIRAJIRA_API_TOKEN

Adding a Secret

Step 1: Open Secrets Panel

Navigate to Dashboard, then Secrets tab.

Step 2: Add New Secret

  1. Click Add Secret or find an existing empty slot
  2. Enter the secret key (e.g., ANTHROPIC_API_KEY)
  3. Enter the value
  4. Optionally add a description
  5. Click Save
Add Secret Form

Step 3: Apply Changes

Some secrets require a restart to take effect. The Dashboard will indicate if a restart is needed.


AI Provider Keys

Orient supports multiple AI providers. Configure their API keys in the Secrets panel:

Anthropic (Claude)

ANTHROPIC_API_KEY=sk-ant-...

OpenAI

OPENAI_API_KEY=sk-...

Google AI (Gemini)

GOOGLE_AI_API_KEY=...

Provider Defaults

You can set default providers for different use cases in the Providers tab:

  • Chat: Which model to use for conversations
  • Code: Which model to use for code generation
  • Summary: Which model to use for summarization
AI Providers Configuration

Integration Secrets

Slack

SecretDescription
SLACK_BOT_TOKENBot User OAuth Token (starts with xoxb-)
SLACK_SIGNING_SECRETFor verifying Slack requests
SLACK_APP_TOKENApp-level token for Socket Mode (starts with xapp-)
SLACK_USER_TOKENOptional user token (starts with xoxp-)

Google OAuth

SecretDescription
GOOGLE_OAUTH_CLIENT_IDOAuth 2.0 Client ID
GOOGLE_OAUTH_CLIENT_SECRETOAuth 2.0 Client Secret

GitHub

SecretDescription
GITHUB_TOKENPersonal access token for API calls
GITHUB_APP_IDGitHub App ID (for app authentication)
GITHUB_APP_PRIVATE_KEYGitHub App private key

JIRA

SecretDescription
JIRA_API_TOKENAPI token for JIRA Cloud
JIRA_EMAILEmail associated with the token
JIRA_BASE_URLYour JIRA instance URL

Environment Variables vs Secrets

You can configure values in two ways:

MethodStorageBest For
Secrets (Database)Encrypted in PostgreSQLProduction, sensitive values
Environment (.env)Plain text fileDevelopment, non-sensitive values

Priority Order

  1. Secrets from database (highest priority)
  2. Environment variables
  3. Config file defaults

Security Best Practices

Do

  • Use the Secrets panel for all sensitive values
  • Rotate tokens regularly
  • Use scoped tokens with minimal permissions
  • Review secret access logs

Don't

  • Commit secrets to version control
  • Share secrets in chat or email
  • Use the same token for dev and production
  • Store secrets in plain text files

Audit Log

All secret changes are logged:

  1. Who made the change
  2. When it was made
  3. What was changed (key only, not value)

Troubleshooting

ProblemSolution
Secret not taking effectRestart Orient after adding secrets
"Invalid API key" errorsVerify the key is correct and has proper permissions
Cannot see secretsEnsure you are authenticated as admin
Secret accidentally exposedRotate the token immediately

Next Steps