infra : la clé de signature de l'API entre au coffre (#113) #171

Merged
gabriel merged 3 commits from lenaic/113-cle-signature-api into develop 2026-09-07 14:10:30 +00:00
Owner

main est protégée, la clé ne peut donc pas y être poussée directement. Elle passe par ici.

Ce que ça change

Une seule clé dans group_vars/all/vault.yml, vault_api_jwt_secret, en token_urlsafe(48), soit 64 caractères. Le fichier reste chiffré en AES256 ; seule sa taille change.

Pourquoi maintenant

Le déploiement du 07/09 à 13h52 est sorti en failed=0 et a sauté la pile api, comme le rôle est fait pour le faire :

vault_api_jwt_secret absente ou plus courte que 32 caractères : api.env n'est
pas écrit, la pile api sera sautée, et le reste du socle part quand même.

Cette pile porte deux conteneurs, ev-api et ev-dashboard-build. Sans cette clé, ni l'API ni la construction du tableau de bord ne démarrent : le serveur a la chaîne de données complète et rien à montrer.

Ce qui a été vérifié

La clé a été relue depuis le coffre après écriture, sans être affichée : 64 caractères, et l'en-tête $ANSIBLE_VAULT;1.1;AES256 intact. La valeur n'est passée ni par un terminal ni par un journal.

Ce qui suit

Une fois fusionnée vers develop puis vers main, le déploiement continu repart et la pile api n'est plus sautée. À surveiller : app_compose_wait_timeout est à 600 s parce que le premier passage construit l'environnement Python de l'API et fait un npm ci puis un vite build.

Le critère qui tranche : https://app.g2.enervision/api/v1/sites doit répondre 200 au lieu du 502 d'aujourd'hui.

`main` est protégée, la clé ne peut donc pas y être poussée directement. Elle passe par ici. ## Ce que ça change Une seule clé dans `group_vars/all/vault.yml`, `vault_api_jwt_secret`, en `token_urlsafe(48)`, soit 64 caractères. Le fichier reste chiffré en AES256 ; seule sa taille change. ## Pourquoi maintenant Le déploiement du 07/09 à 13h52 est sorti en `failed=0` et a sauté la pile `api`, comme le rôle est fait pour le faire : ``` vault_api_jwt_secret absente ou plus courte que 32 caractères : api.env n'est pas écrit, la pile api sera sautée, et le reste du socle part quand même. ``` Cette pile porte **deux** conteneurs, `ev-api` et `ev-dashboard-build`. Sans cette clé, ni l'API ni la construction du tableau de bord ne démarrent : le serveur a la chaîne de données complète et rien à montrer. ## Ce qui a été vérifié La clé a été relue depuis le coffre après écriture, sans être affichée : 64 caractères, et l'en-tête `$ANSIBLE_VAULT;1.1;AES256` intact. La valeur n'est passée ni par un terminal ni par un journal. ## Ce qui suit Une fois fusionnée vers `develop` puis vers `main`, le déploiement continu repart et la pile `api` n'est plus sautée. À surveiller : `app_compose_wait_timeout` est à 600 s parce que le premier passage construit l'environnement Python de l'API et fait un `npm ci` puis un `vite build`. Le critère qui tranche : `https://app.g2.enervision/api/v1/sites` doit répondre **200** au lieu du **502** d'aujourd'hui.
lenaic self-assigned this 2026-09-07 14:09:55 +00:00
Merge pull request 'Jalon : develop vers main, socle complet et déployé' (#129) from develop into main
Some checks failed
Intégration / Qualité du code Python (push) Successful in 48s
Intégration / Tests unitaires et couverture (push) Successful in 51s
Intégration / Dépendances du tableau de bord (push) Successful in 13s
Intégration / Images épinglées par version (push) Successful in 3s
Intégration / Tableau de bord (push) Successful in 18s
Intégration / Dépendances Python et inventaire applicatif (push) Successful in 1m19s
Intégration / Aucun secret commité (push) Successful in 2s
Infra Ansible / Playbooks Ansible valides (push) Successful in 1m29s
Déploiement continu / Déployer sur le serveur de la salle (push) Failing after 5m2s
4a78583f85
Reviewed-on: https://10.105.200.41/g2/enervision/pulls/129
Reviewed-by: gabriel <gabriel@noreply.10.105.200.41>
Merge pull request 'Jalon : develop vers main, la chaîne complète et l'application sur le serveur' (#170) from develop into main
All checks were successful
Intégration / Tableau de bord — dépendances, tests et construction (push) Successful in 39s
Intégration / Contrôles statiques du dépôt (push) Successful in 7s
Intégration / Workflows — lint et audit de sécurité (push) Successful in 19s
Infra Ansible / Playbooks Ansible valides (push) Successful in 1m6s
Intégration / Python — qualité, tests et dépendances (push) Successful in 5m19s
Déploiement continu / Déployer sur le serveur de la salle (push) Successful in 5m15s
dd7373070f
Reviewed-on: https://10.105.200.41/g2/enervision/pulls/170
Reviewed-by: gabriel <gabriel@noreply.10.105.200.41>
infra: la clé de signature de l'API entre au coffre (#113)
Some checks failed
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 7s
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 43s
Infra Ansible / Playbooks Ansible valides (pull_request) Has been cancelled
Intégration / Python — qualité, tests et dépendances (pull_request) Has been cancelled
Intégration / Workflows — lint et audit de sécurité (pull_request) Has been cancelled
683ef069fb
Sans vault_api_jwt_secret, le rôle app n'écrit pas api.env et la pile api est
sautée : ni ev-api ni ev-dashboard-build ne démarrent. Le déploiement du 07/09
à 13h52 l'a signalé et est sorti en failed=0, comme prévu.

token_urlsafe(48), 64 caractères. Le fichier reste chiffré en AES256.
gabriel approved these changes 2026-09-07 14:10:24 +00:00
gabriel merged commit 58f4c70645 into develop 2026-09-07 14:10:30 +00:00
gabriel deleted branch lenaic/113-cle-signature-api 2026-09-07 14:10:30 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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
g2/enervision!171
No description provided.