refactor(mf): API Key longue durée au lieu d OAuth2 client_credentials
Some checks are pending
Deploy info-canicule / deploy (push) Waiting to run
Some checks are pending
Deploy info-canicule / deploy (push) Waiting to run
Le portail Météo France ne propose pas le flow client_credentials gratuit (seulement token OAuth2 court 1h, pas viable, ou API Key longue durée). On simplifie : un seul env METEOFRANCE_API_KEY → Authorization: Bearer. - lib/meteofrance-auth.ts : suppression du cache token + flow refresh - .env.tmpl : ref unique vers vault Infra/Météo France API/api_key - vault item recréé avec api_key (hidden) + created_at + expires_at - CLAUDE.md projet : section rotation API key L onglet 24 h n apparaît qu une fois api_key non vide dans le vault. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a78726076f
commit
a849977fcc
4 changed files with 39 additions and 91 deletions
|
|
@ -47,3 +47,12 @@ Le prefix `info-canicule:` est injecté par ioredis (`keyPrefix`), donc la clé
|
|||
Pattern Reteno : push main → CI Forgejo SSH au VPS → `git fetch && reset --hard && make env && docker compose up -d --build --wait`.
|
||||
|
||||
Le `.env.tmpl` est commit, le `.env` réel est matérialisé par `make env` (pass-cli, vault `Infra`).
|
||||
|
||||
## Météo France API — rotation API Key
|
||||
|
||||
- Vault item : `Infra/Météo France API`, field `api_key` (hidden) + `created_at` + `expires_at`.
|
||||
- Le portail (portail-api.meteofrance.fr) propose une **API Key longue durée** (durée choisie à la création, max ~10 ans). Pas de flow OAuth2 client_credentials dispo gratuitement → on n'utilise QUE l'API Key, pas de refresh automatique.
|
||||
- Code : `src/lib/meteofrance-auth.ts` — header `Authorization: Bearer ${METEOFRANCE_API_KEY}`.
|
||||
- Rotation : avant l'expiration notée dans le vault, regénérer côté portail, copier dans le vault, `make env` côté VPS, `docker compose up -d --force-recreate app`.
|
||||
- Si la clé expire / est révoquée : l'onglet « 24 h » sur les pages dept ne s'affiche plus (skip silencieux), pas d'impact sur le reste du site. Erreur loggée côté serveur uniquement.
|
||||
- Si on veut être alerté : prévoir un cron HC.io qui curl `/api/vigilance` non, qui curl un endpoint test `MF` (à coder). Pour l'instant : se reposer sur la date `expires_at` du vault item.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue