125 lines
2.6 KiB
Markdown
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.
|