Skip to content

feat(server): fail-fast configuration validation on boot #1382

Description

@FelixTJDietrich

Priority

P0 — public 1.0 gate. Part of #1378 and a server-side dependency of #1547.

Problem

Known production misconfiguration still risks surfacing as late runtime failures or one-error-at-a-time startup attempts. A stranger needs one complete, redacted diagnosis, and the readiness UI needs stable facts without exposing raw configuration.

Scope

  • In the production profile, aggregate every applicable missing/invalid required setting before refusing startup.
  • Cover at least credential-encryption key, webhook secrets, database, NATS and runtime-role consistency, external base URL, login/provider configuration needed by the active role, LLM configuration, and agent image/runtime contract.
  • Distinguish required, recommended, optional, and not-applicable-by-role checks.
  • Each diagnostic has a stable identifier, configuration key or capability name, affected role, human explanation, and exact documentation link.
  • Never include a secret value, length/hash useful for fingerprinting, connection string, token, or raw exception/configuration object.
  • Dev/test profiles remain deliberately usable; exemptions are explicit and tested rather than broad validation disablement.
  • Where the process can safely run, expose the same redacted readiness facts through an admin-authorized API consumed by feat(server,webapp): guide the first operator from installation to a safe shadow run #1547. Do not create a second validation implementation in the webapp.

Done when

  • A fixture with several independent defects reports all applicable defects in one startup attempt.
  • Every supported runtime role has positive, negative, and not-applicable tests.
  • Planted credentials/config values cannot appear in startup output or the readiness DTO.
  • A check cannot silently discover zero expected configuration/source inputs and report success.
  • Documentation links are stable and validated by the docs link checker.
  • feat(server,webapp): guide the first operator from installation to a safe shadow run #1547 can consume structured facts while startup remains the authority for boot-fatal requirements.

Non-goals

  • Raw Actuator environment/configprops, Spring bean/property-source browsing, arbitrary deployment topology validation, or automatically repairing configuration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions