Suite du chantier ouvert le 09/09 : 20 des 21 actions de l'audit sont faites.
Depuis le dernier commit : pages /marches-publics, /borne-kiosk et
/visite-hors-ligne en 4 langues, blog /fr/ressources, comparatifs sourcés
Smartify et STQRY, pages légales passées sous /{lang}/, sharp en dépendance.
Deux arbitrages de Thomas consignés :
- témoignages clients écartés (il ne souhaite pas solliciter les clients) ;
- deux pages XR à prévoir, /lunettes-connectees ET /casque-vr, à écrire
seulement quand chaque module sera démontrable (nouvelle carte kanban 335).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Ouvre le chantier 5ter : actions 1 à 9 faites le 10/09 (titres, schema
Organization, llms.txt, prérendu statique rétabli, page /tarifs, page
/assistant-ia dans les 4 langues). Vitrine LinkedIn créée, série de
posts rédigée — en deux vagues, celle qui pousse à l'inscription
attend la prod et un onboarding testé.
Les CGU sont publiées, ce qui clôt le lien mort de la case de
consentement de /signup : ce fichier reste la source, la page de la
landing en est le rendu. Corrige au passage deux passages qui citaient
les plans abandonnés (Starter/Standard) et réservaient l'IA à
« Standard et Premium ». La validation juridique reste due — elle a
sa carte.
Frais de mise en place : arbitré, aucun montant affiché ; la note et
la FAQ disent que le chiffrage arrive avant signature.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Ni Google ni Mapbox ne donnent un fond hors ligne gratuit, et Mapbox
se facture au nombre de tuiles, pas à la surface. Pour un musée de
plein air comme le Fourneau Saint-Michel, la réponse est son propre
plan dessiné : les repères se posent sur l'image, le plan est une
Resource, donc embarqué par le pipeline hors ligne existant.
Conception seule, rien n'est implémenté. Mapbox est passé fournisseur
par défaut le 04/09.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
§21.1 bis — 9 cas ajoutés avec le portage du téléchargement dans le
bento (home_3.0.dart, 08/09), dont le piège du fetch qui échoue en
mode avion et laisse les visites téléchargées affichées en « ↓ ».
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Suivi de la session du 07/09 : scripts de dump dans manager-service,
bucket unov-myinfomate-backups en EU, versioning activé sur le bucket
des médias, 1,43 Go recopiés. rclone n'est pas installé sur le VPS :
rien ne part encore hors site, la case reste ouverte.
Clôt la carte « destination des sauvegardes », ouvre celle du
branchement de notify.sh sur un canal réel.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Clos : GET /api/Instance/{id} renvoyait 403 à l'app visiteur. Une clé API donne
maintenant accès à sa seule instance, en vue réduite — plan, quotas, TVA,
facturation et pinCode retirés. Déployé en version-3.1.3 et vérifié en préprod
sur cinq cas d'autorisation.
La carte close garde le piège qui vaut pour tout le projet : le test « est-ce un
utilisateur du manager » ne peut pas se baser sur un claim de permission, parce
qu'AuthorizationMiddleware peuple HttpContext.User depuis le schéma ApiKey avant
de court-circuiter sur [AllowAnonymous]. Et elle rectifie une affirmation fausse
de la première rédaction : StripeCustomerId n'est pas exposé par ToDTO.
Nouveau, en Urgent : GET /api/Configuration répond 200 sans aucune clé. Ce n'est
pas une clé mal vérifiée mais un [AllowAnonymous] explicite, probablement hérité
de la v2. Le périmètre exact reste à établir — les autres routes que consomment
les apps visiteur n'ont pas été passées en revue.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>