17. IAM & Secrets
Application Secrets
| Secret |
Env Variable |
Storage |
Rotation |
| Anthropic API key |
ANTHROPIC_API_KEY |
Environment variable |
Manual, restart required |
| JWT signing secret |
JWT_SECRET |
Environment variable |
Manual, invalidates all tokens |
| Session secret |
SESSION_SECRET |
Environment variable |
Manual, restart required |
| Postmark token |
POSTMARK_SERVER_TOKEN |
Environment variable |
Manual, restart required |
| GitHub token |
GITHUB_TOKEN |
Environment variable |
Manual |
| Sasha GitHub token |
SASHA_GITHUB_TOKEN |
Environment variable |
Manual |
Encrypted Secrets (In Database)
| Secret |
Table |
Encryption |
| AWS Bedrock API key |
bedrock_config.api_key_encrypted |
AES-256-GCM |
| Cloud OAuth refresh tokens |
cloud_credentials.refresh_token_encrypted |
AES-256-GCM |
| Cloud OAuth access tokens |
cloud_credentials.access_token_encrypted |
AES-256-GCM |
| Named secrets |
named_secrets.value_encrypted |
AES-256-GCM |
Encryption utility: server/utils/encryption.js
API Keys
| Key Type |
Format |
Storage |
Auth Method |
| User API keys |
sk_<random> |
bcrypt hash in api_keys.key_hash |
X-API-Key header |
| Signing secrets |
Random string |
Plaintext in api_keys.signing_secret |
HMAC callback verification |
Cloud Provider Identities
AWS (for Bedrock)
| Variable |
Purpose |
AWS_REGION |
AWS region (default us-east-1) |
AWS_ACCESS_KEY_ID |
IAM access key |
AWS_SECRET_ACCESS_KEY |
IAM secret key |
AWS_SESSION_TOKEN |
Session token (if using STS) |
AWS_BEARER_TOKEN_BEDROCK |
Service bearer token |
AWS (for ECS Deployment)
| Resource |
Account |
Details |
| ECS cluster |
748732838505 |
hirebest cluster in us-east-2 |
| ECR repository |
748732838505 |
sasha-aesop4 |
| EFS volumes |
748732838505 |
Persistent storage for /home/sasha and /app/data |
| ALB |
748732838505 |
HTTPS termination with ACM wildcard cert |
GitHub (for CI/CD)
| Secret |
Purpose |
GITHUB_TOKEN |
Package publishing to GHCR |
| Repository secrets |
Docker build, image push |
rclone (Cloud Drives)
| Variable |
Purpose |
RCLONE_RC_USER |
RC API authentication |
RCLONE_RC_PASS |
RC API authentication |
Complete Environment Variable Inventory
Critical (Required for Operation)
| Variable |
Default |
Purpose |
ANTHROPIC_API_KEY |
-- |
Claude API access |
PORT |
3005 |
Server port |
DB_PATH |
/app/data/sasha.db |
Database file location |
Security
| Variable |
Default |
Purpose |
JWT_SECRET |
Hardcoded dev value |
JWT signing |
SESSION_SECRET |
-- |
Session encryption |
HELMET_ENABLED |
true |
Security headers |
RATE_LIMIT_ENABLED |
true |
Rate limiting |
RATE_LIMIT_MAX |
100 |
Requests per window |
RATE_LIMIT_WINDOW_MS |
900000 |
Rate limit window (15 min) |
HEALTH_CHECK_SECRET |
-- |
Health check auth |
Paths
| Variable |
Default |
Purpose |
SHARED_ROOT |
Platform-dependent |
Base path for all derived paths |
DOCS_PATH |
Derived from SHARED_ROOT |
Knowledge base docs |
PROJECTS_PATH |
Derived from SHARED_ROOT |
Project directories |
CLAUDE_HOME |
-- |
Claude CLI config directory |
CLAUDE_MD_PATH |
-- |
CLAUDE.md file location |
CONFIG_DIR |
-- |
Configuration directory |
UPLOADS_PATH |
-- |
File uploads directory |
CLOUD_MOUNT_ROOT |
-- |
Cloud mount points |
CLOUD_CACHE_ROOT |
-- |
Cloud cache location |
AI Configuration
| Variable |
Default |
Purpose |
ANTHROPIC_CUSTOM_HEADERS |
-- |
Beta feature headers |
ANTHROPIC_BETAS |
-- |
Beta flag list |
CLAUDE_CODE_USE_BEDROCK |
-- |
Enable Bedrock backend |
CLAUDE_CODE_ACTIVE_MODEL |
-- |
Selected model |
CLAUDE_CODE_ACTIVE_PROVIDER |
-- |
Provider selection |
CLAUDE_CODE_MAX_OUTPUT_TOKENS |
-- |
Token limit |
MAX_THINKING_TOKENS |
-- |
Extended thinking limit |
BEDROCK_EXTENDED_CONTEXT |
-- |
1M context toggle |
BEDROCK_DEBUG |
-- |
Bedrock debug logging |
Email (Postmark)
| Variable |
Default |
Purpose |
POSTMARK_SERVER_TOKEN |
-- |
API authentication |
POSTMARK_FROM_EMAIL |
-- |
Sender address |
POSTMARK_FROM_NAME |
-- |
Sender display name |
POSTMARK_MESSAGE_STREAM |
-- |
Stream ID |
POSTMARK_RESET_TEMPLATE_ALIAS |
-- |
Password reset template |
POSTMARK_WELCOME_TEMPLATE_ALIAS |
-- |
Welcome template |
POSTMARK_SUPPORT_URL |
-- |
Support link in emails |
Git
| Variable |
Default |
Purpose |
GITHUB_TOKEN |
-- |
GitHub API |
SASHA_GITHUB_TOKEN |
-- |
Community skills |
GIT_USER |
-- |
Commit identity |
GIT_EMAIL |
-- |
Commit identity |
GIT_DEFAULT_BRANCH |
main |
Default branch |
GIT_REMOTE_URL |
-- |
Repository URL |
Logging & Debug
| Variable |
Default |
Purpose |
EXECUTION_LOG_FILE |
-- |
Execution log path |
SCHEDULER_LOG_FILE |
-- |
Scheduler log path |
DEBUG |
-- |
General debug |
DEBUG_HTTP |
-- |
HTTP request logging |
DEBUG_UPLOADS |
-- |
Upload diagnostics |
DEBUG_PASSWORD_RESET |
-- |
Password reset debug |
DEBUG_AUTH |
-- |
Auth middleware debug |
SASHA_TRACE |
0 |
Session tracing |
VERBOSE_LOGGING |
-- |
Verbose output |
BEDROCK_DEBUG |
-- |
Bedrock debug |
Docker & Deployment
| Variable |
Default |
Purpose |
NODE_ENV |
-- |
Environment type |
HOST |
0.0.0.0 |
Bind address |
RUNNING_IN_DOCKER |
-- |
Docker flag |
USE_DOCKER_WORKSPACE |
-- |
Docker workspace mode |
DEPLOYMENT_PLATFORM |
-- |
Platform type |
BUILD_DOCS_ON_STARTUP |
-- |
Build docs at start |
Feature Flags
| Variable |
Default |
Purpose |
ENABLE_MESSAGE_STREAMING |
true |
WebSocket streaming |
ENABLE_AUTO_SESSION_TITLES |
1 |
Auto-generate titles |
ENABLE_ACTIVITY_LOGGING |
enabled |
Activity logging |
ENABLE_HOOK_ANALYTICS |
enabled |
Hook event analytics |
DOCSIDECAR_ENABLED |
true |
DocSidecar service |
MAX_FILE_SIZE |
50MB |
Upload limit |
Retention
| Variable |
Default |
Purpose |
ACTIVITY_LOG_RETENTION_DAYS |
-- |
Activity log retention |
ACTIVITY_LOG_RETENTION_SWEEP_MS |
6 hours |
Cleanup interval |
QUALITY_RETENTION_DAYS |
90 |
Quality signals retention |
QUALITY_RETENTION_SWEEP_MS |
-- |
Cleanup interval |
Memory & Performance
| Variable |
Default |
Purpose |
NODE_OPTIONS |
--max-old-space-size=4096 |
Heap size |
CONTAINER_MEMORY_MB |
-- |
Container memory |
MEMORY_BUDGET_WARNING_PCT |
-- |
Warning threshold |
MEMORY_BUDGET_CRITICAL_PCT |
-- |
Critical threshold |
MEMORY_BUDGET_KILL_PCT |
-- |
Kill threshold |
EVENT_LOOP_WARNING_MS |
-- |
Event loop warning |
EVENT_LOOP_CRITICAL_MS |
-- |
Event loop critical |
Analytics
| Variable |
Default |
Purpose |
VITE_POSTHOG_KEY |
-- |
PostHog analytics key |
VITE_POSTHOG_HOST |
eu.i.posthog.com |
PostHog host |
Least-Privilege Boundaries
| Identity |
Access Level |
Scope |
| Regular user (JWT) |
Read/write own project files, chat, skills |
Per-deployment |
| Admin user (JWT) |
All of above + user mgmt, AI config, analytics |
Per-deployment |
| API key consumer |
External APIs only (meetings, projects, tasks) |
Per-key |
| Localhost (Claude CLI) |
Cron execution, MCP listing, internal APIs |
Container-local |
| GitHub Actions |
GHCR push, Docker build |
CI/CD only |
| AWS IAM (ECS) |
ECR pull, EFS mount, CloudWatch logs |
Per-service |
Local Developer Profiles
| Profile |
Purpose |
Config File |
| Local dev |
Development |
claudecodeui/.env.local |
| Docker dev |
Local Docker testing |
docker-compose.yml env section |
| Test |
Integration tests |
claudecodeui/.env.test |