life-noc/docs/guides/admin-ui-optionnelle.md

125 lines
2.6 KiB
Markdown

# Interface web d'administration optionnelle — Life-NOC
## Objet
Ce document décrit l'interface web d'administration optionnelle ajoutée au service FastAPI existant de Life-NOC.
Elle permet de consulter et modifier `domains.yaml` depuis le web, en mode mobile-first, sans remplacer le flux opérationnel existant.
## Principes retenus
- `domains.yaml` demeure la **source de vérité opérationnelle**
- l'interface admin est **désactivée par défaut**
- si elle n'est pas activée, le comportement existant ne change pas
- l'API des intrants et les pages item continuent d'exister comme avant
- l'écriture vers `domains.yaml` est **atomique**
- une **copie de sauvegarde horodatée** de `domains.yaml` est produite avant chaque écriture
## Activation
Variable d'environnement utilisée par le service API :
```text
LIFE_NOC_ADMIN_UI_ENABLED=1
```
Côté Ansible, cette capacité est pilotée par :
```yaml
life_noc_admin_ui_enabled: true
```
Par défaut :
```yaml
life_noc_admin_ui_enabled: false
```
## Routes ajoutées
### Accueil admin
```text
GET /life-noc/admin
```
### Vue domaine
```text
GET /life-noc/admin/domain/<domaine>
```
### Création d'item
```text
GET /life-noc/admin/domain/<domaine>/new
POST /life-noc/admin/domain/<domaine>/new
```
### Fiche item admin
```text
GET /life-noc/admin/item/<domaine>/<item_key>
```
### Édition item
```text
GET /life-noc/admin/item/<domaine>/<item_key>/edit
POST /life-noc/admin/item/<domaine>/<item_key>/edit
```
### Réorganisation
```text
POST /life-noc/admin/domain/<domaine>/<item_key>/move
```
### Suppression
```text
POST /life-noc/admin/item/<domaine>/<item_key>/delete
```
## Champs éditables en v1
L'éditeur couvre les champs suivants :
- `name`
- `date`
- `title`
- `summary`
- `notes`
- `instructions`
- `notes_url`
- `instructions_url`
- `action_url`
- `probe.type`
- `probe.source.type`
- `probe.source.inputs_file`
- `probe.source.item_key`
- `metric.unit`
- `thresholds.*`
- `policy.on_error`
- `ui.form_mode`
- `ui.allow_complete`
- `ui.allow_manual_edit`
## Limites volontaires de cette tranche
- pas d'édition brute YAML
- pas de création de domaine
- pas d'import massif
- pas de validation métier avancée par type de sonde
- pas d'authentification applicative dédiée à ce stade
## Intégration retenue
L'interface admin est greffée au service FastAPI existant afin de :
- éviter un second service inutile
- réutiliser le point de déploiement déjà validé
- conserver une seule surface HTTP locale
L'interface admin ne devient pas le centre du système.
Elle n'est qu'une **surface d'édition facultative** du SSOT.