checkId: check.core.config.required plugin: stellaops.doctor.core severity: fail tags: [quick, configuration, startup]
Required Settings
Doctor check
check.core.config.required— for operators verifying that a Stella Ops service has the settings it cannot start without, above all the database connection string.
What It Checks
Verifies that required configuration settings are present and have non-empty values. The check supports multiple key variants to accommodate both appsettings.json (colon-separated) and environment variable (double-underscore-separated) configuration styles.
Required settings (at least one variant must be present):
| Canonical Name | Accepted Variants |
|---|---|
ConnectionStrings:DefaultConnection | ConnectionStrings:DefaultConnection, ConnectionStrings:Default, CONNECTIONSTRINGS__DEFAULTCONNECTION, CONNECTIONSTRINGS__DEFAULT |
Recommended settings (warn if missing, not fail):
| Setting | Purpose |
|---|---|
Logging:LogLevel:Default | Default log level |
The check also reads PluginConfig:RequiredSettings for additional plugin-specific required settings configured at runtime. For each required setting, it checks both the IConfiguration value and the direct environment variable (converting : to __).
Why It Matters
The database connection string is the most critical setting for any Stella Ops service. Without it, the service cannot connect to PostgreSQL, auto-migration cannot run, and every database-dependent operation will fail with a 500 error. This check catches the most common deployment mistake: forgetting to set the connection string.
Common Causes
- Database connection string not configured in environment variables or appsettings
- Environment variables not set (check Docker compose
.envor service environment section) - Typo in the environment variable name (e.g.,
CONNECTIONSTRINGinstead ofCONNECTIONSTRINGS) - Config file present but missing the
ConnectionStringssection
How to Fix
Docker Compose
Add the connection string to your .env file or directly in docker-compose.yml:
# In .env file
CONNECTIONSTRINGS__DEFAULTCONNECTION=Host=127.1.1.1;Port=5432;Database=stellaops_platform;Username=stellaops;Password=stellaops
Or in the service environment section:
services:
platform:
environment:
ConnectionStrings__DefaultConnection: "Host=postgres;Port=5432;Database=stellaops_platform;Username=stellaops;Password=stellaops"
Bare Metal / systemd
Add to appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=stellaops_platform;Username=stellaops;Password=stellaops"
},
"Logging": {
"LogLevel": {
"Default": "Information"
}
}
}
Or set as an environment variable in the systemd unit:
[Service]
Environment=CONNECTIONSTRINGS__DEFAULTCONNECTION=Host=localhost;Port=5432;Database=stellaops_platform;Username=stellaops;Password=stellaops
Kubernetes / Helm
Set connection string via a Kubernetes Secret:
kubectl create secret generic stellaops-db \
--from-literal=connection-string="Host=postgres;Port=5432;Database=stellaops_platform;Username=stellaops;Password=stellaops"
Reference in Helm values:
env:
- name: ConnectionStrings__DefaultConnection
valueFrom:
secretKeyRef:
name: stellaops-db
key: connection-string
Verification
stella doctor run --check check.core.config.required
Related Checks
check.core.config.loaded— verifies the configuration system itself is loadedcheck.core.env.variables— verifies environment variables are setcheck.core.services.health— database health checks will fail if the connection string is missing
See the Doctor reference for the full check catalog, CLI usage, and export bundles.
