Skip to content

Registre des décisions ​

Chaque décision d'architecture, de produit ou d'exploitation y est inscrite avec sa justification, au moment où elle est prise. Une décision n'est jamais effacée : si elle change, on ajoute une nouvelle entrée qui la remplace et l'on passe l'ancienne à « remplacée par Dxx ».

Format d'une entrée : contexte, décision, justification, conséquences, statut, date, qui a décidé, références. Les agents qui prennent une décision dans une PR l'ajoutent ici dans la même PR (ou la signalent au coordinateur).

N°DécisionDomaineStatutDate
D01Les comptes utilisateurs restent dans notre Postgres en UE, pas d'IdP tiers (Firebase, Authentik)sécuritéadoptée2026-11-07
D02Authentik reste l'IdP du staff uniquementsécuritéadoptée2026-11-07
D03Une route = un contrat defineRoute dont dérivent garde, quota, validation, OpenAPI, doc, clientAPIadoptée2026-11-07
D04Passerelle : acteur unique, politique d'accès obligatoire sur chaque routeAPIadoptée, en service sur staging2026-11-07
D05Migrations suivies (schema_migrations), appliquées par le Job api-migrate, jamais modifiées après applicationdonnéesadoptée, en service sur staging2026-11-07
D06Migrations additives seulement (expand / contract) pendant la migrationdonnéesadoptée2026-11-07
D07DNS sur Cloudflare ; api.* hors proxy ; snag-app.io/api conservé pour l'app mobileréseauadoptée, en service2026-11-07
D08Abonnements : tiers en table, RevenueCat source de vérité, webhook authentifié par jeton de serviceproduitadoptée2026-11-07
D09Le profil (persona) règle l'affichage, le tier règle les droitsproduitadoptée2026-11-07
D10Journaux pseudonymisés (user_hash journalier, IP tronquée)vie privéeadoptée, en service sur staging2026-11-07
D11Accès web par QR et passkey ; révocation vérifiée à chaque requête ; SSE plutôt que WebSocketsécuritéadoptée2026-11-07
D12Gemini retiré du scan, modèles maisonMLadoptée2026-11-07
D13Webhook eBay public dans l'API jusqu'au service eBayconformitéadoptée2026-11-07
D14Une source de marché = un service isolé ; bus d'événements à évaluer, Kafka en dernierarchitecturereportée post-migration2026-11-07
D15Images construites sur le laptop pendant la migration ; build sans GitHub Actions ensuiteCIadoptée / suite reportée2026-11-07
D16Pas de Nx ni de monorepooutillageadoptée2026-11-07
D17Documentation interne Docusaurus derrière Authentik, routes générées depuis OpenAPIdocumentationadoptée2026-11-07
D18Volet jeu : règles en données versionnées, deck sur la carte de jeu, recommandation déterministe d'abordproduitadoptée2026-11-07
D19Publicité : Google Ad Manager comme serveur d'annonces, ventes directes d'abord, programmatique en complémentmonétisationsuspendue par D20 (pas de pub pour l'instant)2026-11-07
D20Matrice des offres validée par les experts : 30 scans/jour en free, prix, transactions, alertes, export et étagères ouverts, aucune publicitéproduitadoptée2026-11-07
D21Un seul S3 (celui de snag-prod) ; le staging y a ses buckets et ses identités, sans écriture sur un bucket prodinfrastructureadoptée2026-11-07

Spécifications de la session : ~/Projects/Snag/specs/2026-11-07-plateforme-v2/ (cahier des charges, décomposition, volet jeu, architecture API, suivi).