TECH: Settings UI — supprimer le CRUD clé/valeur, configuration visuelle par composants dédiés #79

Closed
opened 2026-08-12 09:59:03 +02:00 by nonobis · 0 comments
Owner

Contexte

L'exigence produit : plus de CRUD clé/valeur brut dans l'UI des paramètres. Chaque domaine doit avoir une configuration visuelle dédiée (champs typés, sélecteurs, toggles, sections), pas une table générique de clés/valeurs à éditer à la main.

État actuel (vérifié)

  • SettingsPage.razor : tableau générique avec recherche + bouton « Nouveau » (clé/valeur/description/catégorie/allowedValues) — exactement ce qu'il faut retirer
  • Les vrais réglages d'intégration vivent en env vars (S3, Ollama, Email, ntfy) → invisibles et non éditables en UI
  • AgentDetail.razor a une section overrides par agent mais reste un formulaire clé/valeur générique

À faire

  1. Refonte de SettingsPage : supprimer le mode « créer une clé arbitraire » et l'édition clé/valeur générique
  2. Créer des composants de section typés (pattern SectionCard + champs MudBlazor dédiés) :
    • StorageSettingsSection (ticket stockage) : provider Local/S3 + champs conditionnels

    • NotificationSettingsSection : ntfy serveur/topic/token (global), Email SMTP (host/port/user/pass/TLS), template par défaut

    • AgentDefaultsSection : paramètres communs aux agents (intervalles capture, logs, heartbeat, discovery) appliqués comme défauts globaux

    • LogsSettingsSection : rétention logs agents, niveau global, DSN Sentry

  3. Garder l'API settings actuelle (AppSettings/AgentSettings en base) mais pilotée par les formulaires ; l'admin ne voit plus jamais une clé brute
  4. Migration douce : les clés existantes restent lisibles mais éditées via leur section

Critères d'acceptation

  • Plus aucun champ « Clé » libre dans l'UI
  • Chaque domaine a sa carte de configuration avec des contrôles adaptés (toggle, select, numeric, secret)
  • Modifier une valeur dans une section → même effet qu'avant (broadcast agents, reload)
  • Tests bUnit : chaque section rend ses contrôles et appelle l'API avec la bonne clé/valeur

Fichiers concernés

  • src/Heimdall.Web/Components/Pages/SettingsPage.razor (refonte)
  • src/Heimdall.Web/Components/Settings/ (nouvelles sections)
  • src/Heimdall.Application/Settings/ (validations + valeurs typées)
## Contexte L'exigence produit : **plus de CRUD clé/valeur brut dans l'UI des paramètres**. Chaque domaine doit avoir une **configuration visuelle dédiée** (champs typés, sélecteurs, toggles, sections), pas une table générique de clés/valeurs à éditer à la main. ## État actuel (vérifié) - `SettingsPage.razor` : tableau générique avec recherche + bouton « Nouveau » (clé/valeur/description/catégorie/allowedValues) — exactement ce qu'il faut retirer - Les vrais réglages d'intégration vivent en env vars (S3, Ollama, Email, ntfy) → invisibles et non éditables en UI - `AgentDetail.razor` a une section overrides par agent mais reste un formulaire clé/valeur générique ## À faire 1. **Refonte de SettingsPage** : supprimer le mode « créer une clé arbitraire » et l'édition clé/valeur générique 2. Créer des **composants de section typés** (pattern `SectionCard` + champs MudBlazor dédiés) : - `StorageSettingsSection` (ticket stockage) : provider Local/S3 + champs conditionnels - `NotificationSettingsSection` : ntfy serveur/topic/token (global), Email SMTP (host/port/user/pass/TLS), template par défaut - `AgentDefaultsSection` : paramètres communs aux agents (intervalles capture, logs, heartbeat, discovery) appliqués comme défauts globaux - `LogsSettingsSection` : rétention logs agents, niveau global, DSN Sentry 3. Garder l'API settings actuelle (AppSettings/AgentSettings en base) mais pilotée par les formulaires ; l'admin ne voit plus jamais une clé brute 4. Migration douce : les clés existantes restent lisibles mais éditées via leur section ## Critères d'acceptation - Plus aucun champ « Clé » libre dans l'UI - Chaque domaine a sa carte de configuration avec des contrôles adaptés (toggle, select, numeric, secret) - Modifier une valeur dans une section → même effet qu'avant (broadcast agents, reload) - Tests bUnit : chaque section rend ses contrôles et appelle l'API avec la bonne clé/valeur ## Fichiers concernés - `src/Heimdall.Web/Components/Pages/SettingsPage.razor` (refonte) - `src/Heimdall.Web/Components/Settings/` (nouvelles sections) - `src/Heimdall.Application/Settings/` (validations + valeurs typées)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#79
No description provided.