UI : vocabulaire unifié, comptes + mots de passe, choix par élément, clé AES auto

This commit is contained in:
claude Bot committed 2026-10-23 18:47:04 +02:00
1 parent ee8343c69f
commit 2ca2f87307
19 files changed
+377 -143

No files matched your search

+8 -11
View File
@@ -22,8 +22,8 @@ Testé contre un faux serveur PVE (API + SSH) ; **pas encore testé sur un vrai
| `sdn-vnet` | API `/cluster/sdn/vnets` | `sync` |
| `sdn-subnet` | API `/cluster/sdn/vnets/{vnet}/subnets` | `sync` |
Dépendances : un mot de passe exige son compte, un compte exige ses groupes ; le menu
« Éléments répliqués » les coche ensemble. Un parent absent de la cible et non répliqué
Les comptes du realm pve et leurs mots de passe forment un seul élément à répliquer ;
ils exigent leurs groupes, que le menu « Éléments répliqués » coche avec eux. Un parent absent de la cible et non répliqué
est une erreur bloquante.
Hors périmètre : EVPN (et les zones simple, QinQ, faucet, avec leurs VNets, ignorées
@@ -66,15 +66,10 @@ docker compose -f docker-compose.demo.yml up -d --build # même démo en conte
docker compose up -d # production : données dans le volume /data
```
Avant le premier `docker compose up`, créer la clé AES-256 des mots de passe en base
(secret docker, à sauvegarder : sans elle, les mots de passe enregistrés sont perdus) :
```sh
mkdir -p secrets
openssl rand -hex 32 > secrets/confsync_key # 64 caractères hex (32 octets)
chmod 600 secrets/confsync_key
sudo chown 10001 secrets/confsync_key # lisible par l'utilisateur du conteneur
```
La clé AES-256 des mots de passe en base est créée au premier démarrage dans
`/data/secret.key` (à sauvegarder : sans elle, les mots de passe enregistrés sont perdus).
En production, on peut la garder hors du volume en secret docker (`CONFSYNC_SECRET_KEY_FILE`,
voir les commentaires de `docker-compose.yml`). Port publié : `CONFSYNC_PORT` (`.env`, 8080 par défaut).
Le mode démo démarre un primaire PVE 9.1, deux cibles avec des écarts (dont un mapping
manquant, bloquant) et un cluster PVE 8 refusé. Comptes `admin`, `operateur` et `lecteur`,
@@ -97,6 +92,8 @@ devient administrateur** : ne pas l'exposer avant. Alternative : `CONFSYNC_ADMIN
chaque champ la politique, la valeur du primaire, le mapping, la valeur actuelle et
la valeur après réplication. Les hachés sont masqués (`<masqué xxxxxx>`).
- **Dry-run / Répliquer** par objet (avec ses parents à créer), par cible ou global.
Dans le dry-run, chaque élément peut être exclu de l'exécution (« Ne pas répliquer ») ;
le dry-run est alors relancé sans lui, sauf ce dont les autres ont besoin.
La réplication passe toujours par un dry-run : le serveur recalcule le plan et refuse
s'il a changé depuis (empreinte du plan). Avec des changements SDN, il faut taper le
nom de la cible (celui du primaire en global). Une seule réplication à la fois.