- /departement/[code] : Promise.allSettled sur les 3 fetches externes
(vigilance MF, climato data.gouv, hourly SYNOP). Avant : ~15-20s
sériel cold-fetch. Après : ~10s max (= temps du plus lent = climato).
- normales (3 ranges) : Promise.all aussi, économise ~30 ms.
- /api/health enrichi avec vigilance.productDatetime + ageSeconds
pour permettre au cron freshness de checker sans /api/vigilance
(qui a été supprimé en public).
Pré-requis pour le cron warmup côté infra repo (cf. scripts/cron-warmup-info-canicule.sh).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
API publique retirée :
- /api/vigilance et /api/vigilance/dept/[code] supprimés
- Mentions retirées dans footer, /mentions-legales, /embed
- /api/health garde, sans CORS (usage interne UptimeRobot + cron HC.io)
- Tests E2E mis à jour (vérifient 404 sur les endpoints retirés)
Pages :
- /dependances : entièrement mise à jour (Sentry, sharp, Playwright,
sitemap, typography ajoutés ; API MF officielle DPObs+DPVigilance,
normales 1991-2020 listées ; section Services tiers ajoutée pour
Opendatasoft en fallback ; section Infrastructure complétée avec
GlitchTip + CrowdSec).
- /soutenir : "~7€/mois mutualisés" → "~30€/mois", suppression du
détail VPS OVH (juste "infra"), suppression du bloc "Réutiliser
les données via API".
Vigilance Météo France load-balancing :
- lib/vigilance.ts : fetch parallèle x3 et garde la réponse au
update_time le plus récent. Constat 2026-05-26 : le gateway MF
load-balance entre instances désynchronisées (~60% renvoyaient
bulletin J-1, ~40% bulletin J). Cette mitigation atteint >95%
de probabilité d'avoir le bulletin frais.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Quick wins :
- public/og-image.png (1200x630, via sharp depuis le SVG, build via pnpm build)
SVG ne fonctionne pas pour Open Graph (Slack/Discord/X/FB).
- @sentry/astro intégré conditionnellement (skip si SENTRY_DSN absent → no-op).
GIT_COMMIT_SHA en var pour le release tag dans GlitchTip si voulu.
- /api/vigilance/dept/[code] : JSON enrichi (phenomenon label + color name)
pour J et J1, CORS *, Cache-Control 5min. 404 si code unknown.
- JSON-LD enrichi : @graph WebSite + Service avec isBasedOn Dataset + license LOv2.
- Lien retour vigilance.meteofrance.fr visible sous la carte.
DROM (97x / 976) :
- 5 entrées ajoutées dans departements.ts (région "DROM").
- /departement/[code] DROM : bannière "Vigilance Outre-mer non couverte par
cette source open data" + bouton vers vigilance.meteofrance.fr.
- Home : ligne sous la carte listant les 5 DROM + lien retour.
- L'API /api/vigilance/dept/<DROM> retourne quand même un JSON 200 (arrays vides).
Registre canicule :
- Page /conseils/registre-canicule : qui, quoi, comment s'inscrire au CCAS.
- Numéro vert 0 800 06 66 66.
- Bannière mise en avant en haut de /conseils.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Astro 5 SSR + ioredis cache Valkey, déployable sur shared-net.
- Vigilance temps réel via Opendatasoft (no-auth, LOv2)
- Carte SVG des 96 départements (gregoiredavid/france-geojson)
- Climato T° 30j par dept (CSV.GZ Météo France, cache 24h)
- Conseils officiels par phénomène (7 types Vigilance)
- /api/health (UptimeRobot) + /api/vigilance (JSON public CORS *)
- Dockerfile multi-stage, CI Forgejo deploy.yml (pattern Reteno)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>