exlab_wizard.api.routers.config#

/config router. Backend Spec §4.6.1, §4.9.

Endpoints:

  • GET /config – return the current config.yaml (always available; secrets stripped).

  • PUT /config – validate + persist new config; re-evaluate setup state.

Both endpoints are exempt from the setup-state gate by design (Backend Spec §4.9.2: the operator needs a way to fix an incomplete config).

Functions

build_config_router()

Construct the /config router.

Classes

ConfigUpdateResponse(**data)

PUT /config response with the new setup state.

class exlab_wizard.api.routers.config.ConfigUpdateResponse(**data)[source]#

Bases: BaseModel

PUT /config response with the new setup state.

Parameters:

data (Any)

missing: list[dict[str, str]]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

next_action: str | None#
ready: bool#
state: str#
exlab_wizard.api.routers.config.build_config_router()[source]#

Construct the /config router. Routes are always available.

Return type:

APIRouter