# Settings and secrets

The values an app reads when it starts: settings, secrets, connection URLs and signing keys.

| Page | What it covers |
|---|---|
| [Settings: config.jadpo](/docs/settings-config-jadpo.md) | A setting is a value that can differ between deployments, such as the database's address or the address emails are sent from. |
| [Secrets](/docs/secrets.md) | A secret is a setting that must never leave the server, such as a password or an API key. |
| [Database and other connection URLs](/docs/database-and-other-connection-urls.md) | A database or a cache takes its address from a setting. |
| [Values on your machine and in production](/docs/values-on-your-machine-and-in-production.md) | In production, values come from the platform's environment, or from its secret manager, which sets the same variables. |
| [Signing keys](/docs/signing-keys.md) | A `SigningKey` is a built-in secret type for the key that sessions and tokens are signed with: at least 32 characters, with no spaces. |
| [Client addresses](/docs/client-addresses.md) | By default a native app takes the client's address from the connection, and an app on Workers from Cloudflare's `CF-Connecting-IP` header. |
| [Checking values before the app starts](/docs/checking-values-before-the-app-starts.md) | Your app reads only the variables its settings declare. |
| [Retention periods](/docs/retention-periods.md) | How long your app keeps deleted records is an ordinary setting, such as `soft_delete_retention: Duration`. |
