Apparence
19. Scripts, tâches & outillage
👔 Page technique — rien à valider côté métier
Cette page décrit les outils de travail de l'équipe : comment on met à jour la base, comment on sauvegarde et restaure un environnement, comment on injecte un jeu de données de démonstration.
Deux points ont une portée projet :
- il n'existe aucune tâche automatique planifiée aujourd'hui — c'est ce qui bloque le rapport hebdomadaire automatique proposé en A1 ;
- les opérations destructives (vider une base, réécrire en masse) sont volontairement inaccessibles depuis l'application et réservées aux environnements de test.
Passez en mode Technique (en haut de page) pour lire le détail.
v2. Plus de scripts
.mjsmaison branchés sur Supabase ni de migrations SQL exécutées à la main : l'outillage s'appuie sur la CLI Convex, le dashboard Convex et le monorepo Turbo/pnpm. Toujours aucune tâche planifiée / cron dans le périmètre (les scheduled functions et crons Convex existent mais ne sont pas requis à ce stade).
Outillage de développement (Convex)
| Outil | Rôle | Équivalent v1 |
|---|---|---|
convex dev | Dev local + codegen (_generated/) + push du schéma/fonctions | — |
convex codegen | Génère les types de l'API (pnpm --filter @recette/backend codegen) | — |
| Dashboard Convex | Inspecter les données, les logs, les fonctions | inspect-table.mjs |
convex export / convex import | Sauvegarde / restauration / copie d'environnement | sync-prod-to-dev.mjs |
Composant migrations (@convex-dev/migrations) | Backfills & réécritures de schéma versionnés | migrations SQL manuelles |
Seed via internalMutation dédiée | Injecter un jeu de données de démonstration | seed-tests.mjs |
Purge via internalMutation (env. dev) | Vider une base de dev | clear-db.mjs, *_wipe.sql |
Tâches monorepo (Turbo / pnpm)
pnpm build · pnpm lint · pnpm typecheck · pnpm format (voir turbo.json). La frontière entre packages est vérifiée en lint (eslint-plugin-boundaries).
⚠️ Les opérations destructives (purge, réécriture massive) doivent rester des
internalMutation/actions réservées aux environnements de dev et jamais exposées au client ni pointées sur un déploiement de production.