Saltar a contenido

ADR 014: Settings registry

Estado

Aceptado — 2026-06

Contexto

Cada plugin debe poder aportar secciones a la configuración central del panel sin pantallas fijas en el framework. Históricamente existía pantalla fija panel-configuration en un host dedicado.

Decisión

  1. SettingsBuilder + hook register_settings(registry).
  2. SettingsRegistry fusiona secciones por panel_id.
  3. Pantalla canónica {panel}/settings generada en boot (merge_panel_infrastructure).

Leyenda: Evolución de settings en Python a manifest JSON declarativo (ADR 020). Actores: SettingsBuilder deprecado, configuration/manifest.json. Estado: Shim + manifest coexisten.

flowchart LR
  subgraph legacy [Antes ADR 020]
    SB[SettingsBuilder Python]
    RS[register_settings]
    SR[SettingsRegistry merge]
  end
  subgraph current [ADR 020 actual]
    MJ[configuration/manifest.json]
    Loader[loader auto-registro]
    Tree["groups segments widgets"]
  end
  SB --> RS --> SR
  MJ --> Loader --> Tree
  SR -->|shim si no hay manifest| Tree

Guía: Plugins — Configuración.

Consecuencias

  • Plugins registran secciones con validación de claves conocidas.
  • Persistencia de plataforma vía platform_settings (ADR 014 backend).