Changelog
Historique des changements de l'API REST et du serveur MCP Normi.
API REST v1 — 6 endpoints DVF
Lancement de l'API REST : GET /v1/transactions, GET /v1/transactions/:id, GET /v1/stats/market, GET /v1/stats/trends, GET /v1/comparables, GET /v1/heatmap. Authentification par header X-API-Key. Pagination offset sur /v1/transactions.
Tableau de bord Usage
Nouvelle section Usage dans le tableau de bord : stats des 7 derniers jours, graphique d'activité, tableau de répartition par outil, appels récents.
Abonnements mensuels (Agent / Pro / Enterprise)
Nouveaux plans d'abonnement avec recharge mensuelle automatique de crédits : Agent (55 000 crédits/mois, €49/mo), Pro (175 000 crédits/mois, €149/mo), Enterprise (500 000 crédits/mois, €399/mo). Gestion via Stripe Customer Portal.
Page Tarifs publique
Nouvelle page /pricing accessible sans connexion. Présente les abonnements, packs one-time, et tableau des coûts par outil.
Recharge gratuite mensuelle
Les comptes Free reçoivent automatiquement 100 crédits le 1er de chaque mois via un cron Vercel sécurisé (CRON_SECRET).
Performance get_market_stats : 8.5s → 468ms
Correction de la latence critique sur get_market_stats. Causes : fonction STABLE (empêchant les hints planner), index covering invalide (CREATE INDEX CONCURRENTLY annulé), indexes concurrents causant des full scans. Résultat : tous les endpoints de stats sous 500ms p95.
Correction auth : comparaison SHA-256 non-fonctionnelle
timingSafeEqual n'effectuait pas de comparaison réelle (key_hash absent du SELECT). Toute clé API valide était acceptée. Corrigé.
Réduction des round-trips DB par requête outil
4 round-trips DB → 2 par appel outil réussi : suppression du pré-vol SELECT crédits, suppression du getCredits() final, mémoïsation du client Supabase.
Lancement du serveur MCP Normi
Premier déploiement en production du serveur MCP avec 8 outils DVF : search_properties, get_market_stats, find_comparables, get_price_trends, compare_neighborhoods, get_market_activity, get_market_heatmap, get_property_history.
Pipeline DVF complet
Pipeline d'ingestion automatisé : clean → geocode → upload → migrate → finalize. 17M+ transactions géocodées et indexées.