River Logiceode docs
Reference

Secrets

Every secret eode uses: its name in Secrets Manager, its format, and who creates it.

Every secret lives in AWS Secrets Manager under eode/, as a JSON object. The secrets driver syncs them into the cluster; nothing secret is in the stack's parameters file, a template or a log.

SecretHoldsSet by
eode/dbApp database login (url)The stack
eode/db-ownerOwner database login (url), migration job onlyThe stack
eode/cacheRedis login (url)The stack
eode/llmLLM API key (apiKey)You: LlmApiKey
eode/signinapiKey, webhookSecretYou: sign-in fields
eode/signin-cookieSession cookie key (cookieSecret)The stack, once
eode/data-connectionsData-connection encryption key (key)The stack, once
eode/probeHealth-probe token (token)The stack
eode/db-owner-credentialsDatabase owner user name and password, the source of eode/db-ownerThe stack
eode/cache-authRedis AUTH token, the source of eode/cacheThe stack

The url values look like this:

eode/db, eode/db-owner   postgresql+psycopg://USER:PASSWORD@HOST:5432/DB?sslmode=require
eode/cache               rediss://:PASSWORD@HOST:6379/0

The two keys marked "once" are 44-character Fernet keys.

Rotate a secret

  1. Put the new value in Secrets Manager. For LlmApiKey or the sign-in fields, update the stack field instead.
  2. Change RestartToken on the stack (Settings) so eode restarts and reads it.
  3. Revoke the old value where it came from.

Don't rotate eode/data-connections: saved data-connection credentials are encrypted with it and can't be read after it changes. Rotating eode/signin-cookie signs everyone out.

Who can read what

WorkloadReads
eode-app, eode-mcpEverything except eode/db-owner
eode-migrateeode/db and eode/db-owner

Each has its own IAM role through EKS Pod Identity; with KmsKeyArn set, the secrets are encrypted with your key.

On this page