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 NameAccepted Variants
ConnectionStrings:DefaultConnectionConnectionStrings:DefaultConnection, ConnectionStrings:Default, CONNECTIONSTRINGS__DEFAULTCONNECTION, CONNECTIONSTRINGS__DEFAULT

Recommended settings (warn if missing, not fail):

SettingPurpose
Logging:LogLevel:DefaultDefault 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

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

See the Doctor reference for the full check catalog, CLI usage, and export bundles.