Skip to content

Secrets Management

All secrets are stored in AWS SSM Parameter Store and never committed to git.

Terminal window
./scripts/generate-env.sh > backend/.env

This pulls all parameters from SSM and formats them as environment variables.

ParameterPurpose
OPENAI_API_KEYGPT-4o-mini and embeddings
ANTHROPIC_API_KEYClaude Sonnet (premium tier)
DATABASE_URLPostgreSQL connection string
AUTH_SECRETBetter-Auth signing secret
AWS_ACCESS_KEY_IDS3 access for meal images
  1. Never expose API keys — environment variables only
  2. Never expose str(e) to users — log server-side, return generic messages
  3. Always use parameterized SQL (SQLAlchemy ORM)
  4. Always validate JWT tokens