Sprint go-live publique : domaine .com, accessibilité, anti-bot, OpenAPI
Sprint majeur de préparation à l'ouverture publique : migration vers le domaine canonique www.inventoryobject.com, déclaration d'accessibilité WCAG 2.2 AA dans 5 langues, couche anti-bot complémentaire sur les routes IA, webhooks Brevo lifecycle pour la délivrabilité email, spec OpenAPI 3.1.0 publique, optimisations Lighthouse, et 100 % des tests passants (5 496 / 5 496).
- Domaine canonique www.inventoryobject.com — migration depuis .org sur 49 fichiers (159 occurrences) incluant 5 langues, tous les emails, robots.txt et sitemap. Le .org reste actif 6-12 mois pour les liens archivés
- Page /accessibility — déclaration W3C / RGAA 4.1 / EN 301 549 / EAA stricte avec 11 sections (engagement, standards, état conformité, méthode d'évaluation, fonctionnalités, limitations, voies de recours via Défenseur des droits) traduite dans les 5 langues
- Contrastes WCAG 2.2 AA — nouveau token --accent-solid pour les boutons CTA (5,17:1 vs blanc dans light + dark), 199 boutons migrés sur 107 fichiers, fix --text-muted (5,47:1 sur surface-tertiary), fix badge admin (5,78:1) et tableau comparison
- Couche anti-bot complémentaire sur /api/scan et /api/analyze — détecte UA suspects (curl, wget, python-requests, scrapy, headlesschrome, etc.), fingerprint SHA-256 + rate-limit Redis 10/min. Mode permissif au lancement, strict après observation. Ne bloque jamais les vrais utilisateurs
- Webhooks Brevo lifecycle (delivered, hard_bounce, spam, complaint, unsubscribed) — table email_events immuable RGPD Art. 30, idempotence event_id UNIQUE, auth HMAC. Permet de détecter les adresses email mortes et arrêter les envois (RGPD Art. 5.1.d exactitude)
- OpenAPI 3.1.0 publique sur /api/v1/openapi.json — spec standard importable Swagger UI / Postman / openapi-generator-cli, couvre les 6 endpoints v1 stables avec schemas réutilisables et schemes de sécurité
- Performance Lighthouse — content-visibility:auto sur DashboardMockup hero (-100 à 300 ms LCP), bf-cache activé sur les pages publiques (transitions Back/Next ~50 ms vs 200-500 ms), browserslist Chrome 93+ / Firefox 92+ / Safari 15.4+ (-22 Kio polyfills inutiles)
- Templates email Supabase Auth — 6 templates HTML complets prêts à coller (Confirm signup, Invite user, Magic link, Change email, Reset password, Reauthentication) avec charte alignée sur les emails Brevo applicatifs
- Documentation architecture — nouveau docs/architecture.md avec 7 schémas Mermaid (vue d'ensemble, multi-portails, flux scan IA, email pipeline, sécurité Defense in Depth, Property Decision Engine V1, cron jobs)
- Fix 3 crons critiques — close-expired-impersonation-sessions (mig 228 expires_at), ai-budget-alert (mig 229 RPC sum_ai_cost_global_since), helper formatErrorMessage qui sérialise correctement les PostgrestError (27 crons migrés)
- Pass rate tests 99,91 % → 100 % — 5 496 / 5 496 tests verts sur 338 suites, TypeScript 0 erreur, ESLint 0 warning. Score audit CTO : 4 880 / 5 000 (97,6 %)