La beta publique de Nitro v3 continue de évoluer rapidement. La mise à jour du 15 avril (v3.0.260415-beta) apporte un ensemble de fonctionnalités axées sur l'expérience développeur et la production.
Canaux de Tracing Intégrés
L'ajout principal est le support expérimental des canaux de tracing (PR #4001). Nitro émet désormais des spans de trace structurés pour le cycle de vie des requêtes — correspondance de route, exécution de handler, cache hits/misses, timing des requêtes base de données — directement depuis le cœur du framework. Pas besoin de SDK OpenTelemetry ; le tracing est une fonctionnalité native de Nitro.
Détection Intelligente des Dépendances avec Full-trace
L'outil traceDeps de Nitro reçoit une amélioration importante (PR #4175). Le nouveau mode full-trace et les options de trace personnalisées donnent aux développeurs le contrôle sur la façon dont Nitro analyse le graphe de dépendances pendant le build.
L'amélioration clé : le tracer upstream nf3 inclut désormais une base de données de packages natifs en expansion et la détection automatique des dépendances optionnelles. Si votre projet utilise des packages avec des binaires natifs — sharp, canvas, better-sqlite3 — Nitro peut désormais les détecter automatiquement et éviter un bundling incorrect, source fréquente d'erreurs "ça marche en local, ça plante en prod".
Vercel Queues et Configuration par Route
Le preset de déploiement Vercel gagne deux fonctionnalités de production.
Vercel Queues : Les handlers de routes Nitro peuvent désormais enfiler du travail asynchrone via l'infrastructure queue de Vercel. Définissez des tâches avec nitro.tasks, déployez sur Vercel, et utilisez le SDK Vercel. Le preset gère la configuration automatiquement. Cela apporte une exécution asynchrone durable sans infrastructure queue séparée.
Override de config par route : Les routes individuelles peuvent désormais surcharger la configuration de fonction Vercel par défaut — limite mémoire, timeout, maxDuration. Pratique quand une route spécifique a besoin de plus de ressources que le reste de l'application.
Tencent EdgeOne Pages
Nitro ajoute Tencent EdgeOne Pages comme cible de déploiement. Le nouveau preset edgeone-pages utilise l'API v3 de EdgeOne Pages Build Output et est documenté sur nitro.build/deploy/providers/edgeone.
Correctifs de Sécurité H3 v2
H3 passe de rc.16 à rc.20 avec plusieurs corrections importantes :
- Protection path traversal : les doubles segments pointés encodés dans les URLs sont maintenant rejetés
- Protection open redirect :
redirectBack()valide que la cible n'utilise pas un chemin protocol-relative - Streaming body plus strict : applique les limites de taille quelque soit l'en-tête Content-Length
- Conformité cookie RFC 6265bis : parsing et sérialisation des cookies alignés avec le RFC actualisé
- Fix count cookie illimité : prévient un vecteur DoS via un nombre arbitraire de cookies
ocache et unstorage
ocache gagne l'invalidation de cache via handler.invalidate() et le support multi-tier. unstorage flush désormais proactivement les entrées mémoire expirées plutôt que d'attendre le prochain accès.
Documentation
Nitro.build introduit de nouvelles guides pour OpenAPI et WebSocket.
Cette mise à jour montre Nitro v3 se rapprochant de la GA avec des fonctionnalités d'infrastructure de production plutôt que du confort développeur.
