Plan Directeur — Projet n8n Grainerie
Date de création : 2026-02-25
Périmètre : Refactoring, optimisation et sécurisation de l’écosystème Baserow + n8n + Docker
Statut : Document de référence consolidé (fusion des plans et analyses existants)
Décisions tranchées : 42 décisions de migration tranchées par QCM le 2026-04-16 → (Redis, Borg, debounce, locks, cibles, rollback, tests). Plan entièrement automatisable sauf validation métier champs Baserow (V7-1) et Go initial (TX-4).
Mise à jour de l’état actuel : Le plan directeur doit refléter l’état réel de l’infrastructure et des services. Pour collecter les données et mettre à jour toutes les analyses, suivre .
1. Vision et objectifs
1.1 Vision
Transformer l’infrastructure actuelle en un système modulaire, sécurisé, maintenable et performant, avec une architecture claire et une documentation complète. Calibrage courant 2026-04-25 : 134 workflows n8n, 2 168 nodes, 89 webhooks Baserow, 159 tables, 3 259 champs, 48 conteneurs Docker. Les métriques 63 workflows / 996 nodes restent la baseline historique 2026-04-16 pour comparer la progression. Priorité : optimiser et simplifier sans breaking changes (migration progressive).
1.2 Objectifs stratégiques
| Objectif | Indicateur cible | Référence |
|---|---|---|
| Sécurité | 0 credential en clair, secrets centralisés | Phase 1, Phase 7.5 |
| Performance | −90 % appels Baserow sync, −95 % temps traitement | Phase 2.6, VALIDATION_FINALE_PLAN |
| Simplicité | 89 → ~20–30 webhooks, 315 nodes Code runtime 2026-04-25 → cible progressive à recalibrer, 6 WF « lignes » → 1 paramétrique | Phase 2.5, Phase 3, V4.3, ROADMAP_OPERATIONNELLE |
| Maintenabilité | 100 % workflows/nodes documentés, nommage standardisé, 0 duplication code | Phase 6, TEMPLATES_DOCUMENTATION |
| Données | Champs peu utilisés (liste corrigée 694 → <100 après validation métier), formules alertées 68 → <10 (sur 616 champs formule) | Phase 5.5, baserow-analysis, METHODOLOGIE_CHAMPS_INUTILISES_BASEROW, ANALYSE_FORMULES_BASEROW_DETAILLEE |
1.3 Principes directeurs
- Optimiser et simplifier sans rupture : priorité aux gains rapides et aux simplifications progressives ; aucun changement qui casse les workflows ou Baserow en production .
- Migration progressive : pas de big bang ; tests et rollback possibles à chaque étape.
- Documentation obligatoire : tout nouveau workflow, node, script suit les templates .
- Services réutilisables : logique commune dans des workflows de type Service, pas de duplication.
- Sécurité par défaut : credentials n8n, Docker Secrets, validation des webhooks.
1.4 Faits mesurés — croisement Baserow × n8n (2026-04-16)
Données consolidées dans (export Baserow 2026-04-16T21:06:15 + backup n8n du même jour).
- Volume : ~38 179 lignes déclarées (somme des
row_countpar table) ; tables à fort enjeu listées dans l’analyse croisée (§2 et §9). - Webhooks : 89 webhooks sur 40 tables ; 27 URLs distinctes côté Baserow vs 25 URLs n8n repérées dans les workflows — à réconcilier lors de la vague 6 et de la mise à jour de . Heuristique : 89 sans en-tête — cohérent avec la décision confiance par réseau Docker (en-tête optionnel) — voir §0.
- Champs peu utilisés : 694 signalés ; 516 concernent une table qui a déjà des webhooks → revue et croisement n8n obligatoires avant toute suppression (vague 7).
- n8n : 50 workflows référencent l’hôte Baserow ; 13 workflows inactifs parmi eux à auditer (archivage / credentials résiduels) — vague 4.
- Schéma : noms de tables dupliqués entre bases (ex.
MATRICES,LIEUX,ACTIVITES) — toujours qualifier pardatabase_id/ base dans les specs et le code. - Limite export : le graphe complet
link_row/lookupn’est pas encore sérialisé dans le JSON — évolution prévue de Script Python (analyze baserow) (voir analyse croisée §6). - Cadre d’exécution : pas de staging ; fenêtre de maintenance 22h–6h + dimanche toute la journée (interruptions acceptables) ; 6h–22h lun–sam : aucune interruption Baserow ni agenda (agenda-ics / agenda-qwik) ; workflows n8n : source de vérité Git + sync instance — . Sécurité supplémentaire : tous les utilisateurs Baserow (sauf admins) basculés en Éditeur dès V1.0 (restauration V9.5).
2. Axes du plan (fusionnés et classés)
Les documents existants sont regroupés en six axes : Sécurité, Architecture n8n/Baserow, Données Baserow, Infrastructure (Docker/PostgreSQL/Cron), Services externes, Documentation et qualité.
Axe A — Sécurité
Priorité : CRITIQUE
Documents sources : PLAN_ACTION_REFACTORING (Phase 1), DECISIONS_ARCHITECTURE, docker/PLAN_AUTHENTIFICATION_CENTRALISEE, ANALYSE_DOCKER_COMPOSE.
| Action | Détail | Phase / Référence |
|---|---|---|
| Credentials n8n | Migrer tous les credentials en clair vers credentials n8n (Baserow, Redis, Carbone, Sync-in, BookStack) | Phase 1 (Semaine 1) |
| Mots de passe exposés | Changer immédiatement tout mot de passe présent dans les backups / configs | Phase 1 |
| Validation webhooks | Workflow « Service - Validation Webhook Baserow » (event_type, origine). Décision projet : confiance Baserow → n8n par réseau Docker (IP / conteneur source) ; en-têtes secrets optionnels en complément. Heuristique rapport : 89 webhooks sans en-tête explicite — voir §4 et | Phase 1, Phase 2 |
| Secrets Docker | .env + secrets/ + Docker Secrets ; aucun secret en clair dans docker-compose | Phase 7.5 (Semaine 16–17) |
| Auth centralisée | Authentik / SSO si prévu (voir docker/PLAN_AUTHENTIFICATION_CENTRALISEE) | Optionnel, docker |
Axe B — Architecture n8n et Baserow
Priorité : HAUTE
Documents sources : PLAN_ACTION_REFACTORING (Phases 2, 2.5, 2.6, 3, 4), SYNTHESE_ARCHITECTURE_ACTUELLE, DECISIONS_ARCHITECTURE, ANALYSE_WEBHOOKS_SYNCHRONISATION, UTILITE_WEBHOOKS_DETAILLEE.
| Bloc | Contenu | Phases |
|---|---|---|
| Router central | « Router - Baserow Events » : point d’entrée unique, validation, routage par event_type / table_id | Phase 2 (S2–S3) |
| Services de base | Authentification Baserow, Validation Données, Gestion Erreurs, Logging, Cache Redis | Phase 2 |
| Services spécialisés | Sync champs, Sync tables, Google Calendar, Templates, Vues, Contacts (réduction 89 → ~20–30 webhooks) | Phase 2.5 (S3–S4) |
| Sync (critique) | Debounce + cache + flag anti-boucle → Queue Redis + batch → Sync différentielle (old_items vs items) | Phase 2.6 (S4–S5) |
| Nodes Code | Audit complet (147 nodes, 18 groupes dupliqués, 9 bugs, 1 alerte sécu) → 13 microservices + 3 process fusionnés → migration progressive 147 → ~27 | Phase 3 (S4–S6), AUDIT_NODES_CODE_N8N |
| Patterns répétitifs | 48 séquences de nodes récurrentes, 24 HTTP Baserow dupliquées, 16 WF avec auth manuelle → centralisation via services (Auth, CRUD, Debounce, Config) | Phase 2.5–3, ANALYSE_PATTERNS_REPETITIFS_N8N |
| Migration workflows | Par domaine : Baserow, Contacts, Événements, Planning, Fichiers, Config/Templates | Phase 4 (S7–S10) |
| Documentation | Livrable majeur : descriptions n8n (templates), API CONTRACTS, SPECS TECHNIQUES WEBHOOKS, registre REGISTRE RESTRUCTURATION N8N — voir ORGANISATION_N8N_MICRO_WORKFLOWS § 2 | Transversal (vagues 4–8) |
Conventions (obligatoires) :
- Workflows :
[Type] - [Domaine] - [Fonction](Router, Service, Process, Utility). - Nodes :
[Action] - [Objet] - [Détail](Get, Create, Update, Validate, Transform, etc.). - Documentation : même poids que le comportement fonctionnel — Definition of Done dans (§ 2) ; templates .
Référence : DECISIONS_ARCHITECTURE, TEMPLATES_DOCUMENTATION, REGISTRE_RESTRUCTURATION_N8N.
Spécifications techniques webhooks : Chaque endpoint webhook Baserow et son (ou ses) workflow(s) n8n associé(s) sont décrits dans (rôle, événements, tables, ID workflow, entrée/sortie, améliorations prévues). Ce document alimente les migrations Router et services (Phase 2.5) et le plan d’action.
Specs ciblées n8n & Baserow : Specs courtes et actionnables (credentials, workflows inactifs, nommage, service pilote, debounce sync, nodes Code ; revalidation base, champs inutilisés, formules, schéma dépendances) dans . Tableau de synthèse et références croisées vers les autres specs.
Axe C — Données et optimisation Baserow
Priorité : MOYENNE
Documents sources : baserow-analysis , PLAN_ACTION_REFACTORING (Phase 5.5).
| Action | Détail | Référence |
|---|---|---|
| Champs inutilisés | Archiver >95 % nulles ; documenter 90–95 % ; supprimer obsolètes après validation ; 516 / 694 champs signalés sont sur des tables sous webhook — priorité absolue au croisement n8n (ANALYSE_CROISEE §5) | Phase 5.5 (S11–S12) |
| Formules | Optimiser les 68 formules signalées (heuristiques) sur 616 ; champs calculés si pertinent — voir ANALYSE FORMULES BASEROW DETAILLEE | Phase 5.5 |
| Cible | Champs inutilisés <100, formules problématiques <10 | VALIDATION_FINALE_PLAN |
Spécifications techniques formules et structure Baserow : Chaque action (formules, champs inutilisés, schéma) est détaillée dans . Pour chaque spec : revalidation de l’état de la base avant toute implémentation, références croisées vers les autres specs et vers SPECS_TECHNIQUES_WEBHOOKS (tables utilisées par les workflows n8n).
Specs ciblées Baserow : Specs courtes (revalidation base, documenter champs inutilisés, prioriser formules, optimiser 5–10 formules, schéma dépendances) dans (specs B1–B5).
Axe D — Infrastructure (Docker, PostgreSQL, Cron)
Priorité : HAUTE pour Docker/Redis ; MOYENNE pour Cron
Documents sources : docker/PLAN_MISE_A_NIVEAU_DOCKER, docker/PLAN_REMPLACEMENT_MONITORING, ANALYSE_SERVEUR_REEL, ANALYSE_SERVEUR_MATERIEL, AJUSTEMENTS_MATERIEL, postgresql/, ANALYSE_TACHES_CRON, WORKFLOWS_CRON_MIGRATION, cron/.
| Domaine | Contenu | Référence |
|---|---|---|
| Redis | redis-n8n en production (healthcheck ; volume de données optionnel souvent commenté) ; à distinguer des cibles redis-cache / redis-queue (Phase 2.6 : persistance, maxmemory, DLQ) | PLAN_MISE_A_NIVEAU_DOCKER, Semaine 16 |
| Monitoring | Beszel, Beszel-agent et Dozzle déjà déployés sur Serveur Outils Grainerie` ; Prometheus/Grafana, exporters Redis, Loki/Promtail : compléter ou substituer selon besoin, en évitant le double emploi | PLAN_REMPLACEMENT_MONITORING, MIGRATION_DOZZLE_BESZEL | |
| Logging | Beszel / Dozzle opérationnels ; Loki + Promtail ou consolidation : phase ultérieure si lacune mesurée | PLAN_MISE_A_NIVEAU_DOCKER, Semaine 17 |
| PostgreSQL Baserow | Configuration équilibrée (shared_buffers, work_mem, autovacuum) ; respect contraintes serveur (64 cores, 251 Go RAM) | postgresql/ANALYSE_EQUILIBRE_SERVEUR, RESUME_EQUILIBRE, GUIDE_APPLICATION |
| Cron → n8n | Remplacer crons par workflows n8n (Schedule) : backup Baserow, Pretix, etc. ; résolution permissions Syncthing ; intégration Borg | ANALYSE_TACHES_CRON, WORKFLOWS_CRON_MIGRATION, cron/RESOLUTION_PERMISSIONS_SYNCTHING |
| Docker | .env, secrets/, healthchecks, resource limits, services.old.yml pour commentés | PLAN_MISE_A_NIVEAU_DOCKER, ANALYSE_DOCKER_COMPOSE |
État d’exécution constaté sur Serveur Outils Grainerie (lecture seule, 2026-04-16)
| Thème | Détail |
|---|---|
| Fichiers | Compose principal volumineux ; Configuration (traefik), Configuration (dynamic), .env, secrets type fichiers (db_password.txt, …) ; nombreux sous-répertoires applicatifs (n8n, baserow, agenda, sync-in, …). |
| n8n | Image n8n curl avec build ./n8n ; runners externes (n8n-task-runners, build ./n8n/runner`) ; montages vers données, scripts, sauvegardes, NAS et socket Docker — à cadrer sous l’axe A (surface d’attaque, principe du moindre privilège). |
| Baserow | Build depuis baserow (Dockerfile et sources locales) ; affinité CPU (cpuset) ; réglages Postgres via variables d’environnement ; montage de la config hôte postgresql et volume d’échange data. |
| Observabilité | Beszel, Beszel-agent, Dozzle présents dans la stack déployée. |
Correctifs à prioriser (alignement plan) :
- Secrets
: le compose surServeur Outils Grainerie` contient encore des identifiants et tokens en clair (ex. messagerie applicative, authentification des runners n8n) — Phase 1 et Phase 7.5 : migration vers secrets Docker / variables hors dépôt, rotation des valeurs exposées. - Cohérence dépôt ↔ serveur : comparer ou importer régulièrement Configuration (docker compose) et les fichiers Traefik depuis
Serveur Outils Grainerieavant de figer les analyses dans docker. - Redis
redis-n8n: valider la stratégie de persistance (volume souvent désactivé) ; pour la Phase 2.6, prévoir des instances cache/queue explicites sans confusion avec ce service. Montagedocker.sock` sur n8n : réévaluer le besoin métier et restreindre si possible.
Axe E — Services externes
Priorité : MOYENNE
Documents sources : ANALYSE_SERVICES_EXTERNES, PLAN_ACTION_REFACTORING (Phase 7).
| Service | Action | Référence |
|---|---|---|
| Carbone | Service centralisé (cache templates, retry, credentials n8n) ; organiser templates (templates.json, catégories). Logique de gardes documentée : 5 conditions obligatoires (G1-G5) pour le pipeline de génération — voir §2.1 | Phase 7 (S15–S16) |
| Sync-in | Service centralisé SSH (cache connexion, scripts sécurisés) | Phase 7 |
| BookStack | Service API avec cache métadonnées | Phase 7 |
| Scripts shell | Framework commun (logging, validation, set -euo pipefail) ; remplacer le simple par workflows n8n si pertinent | TEMPLATES_DOCUMENTATION, Phase 7 |
Axe F — Documentation et qualité
Priorité : BASSE en calendrier, obligatoire en standard
Documents sources : TEMPLATES_DOCUMENTATION, TEMPLATE_DOCUMENTATION_WORKFLOW, API_CONTRACTS, CODE_FUNCTIONS_LIBRARY, PLAN_ACTION_REFACTORING (Phase 6).
| Livrable | Contenu | Référence |
|---|---|---|
| Templates | Workflow, node, node Code (JSDoc), script shell, script Python | TEMPLATES_DOCUMENTATION, TEMPLATE_DOCUMENTATION_WORKFLOW |
| Contrats | Signatures des points d’entrée, formats E/S (API_CONTRACTS) | API_CONTRACTS |
| Bibliothèque code | Fonctions réutilisables (CODE_FUNCTIONS_LIBRARY) | CODE_FUNCTIONS_LIBRARY |
| Architecture | , | Phase 6 (S13–S14) |
| Couverture | 100 % workflows et nodes documentés, nommage conforme | VALIDATION_FINALE_PLAN |
Parcours recommandé : migration par vagues sans régression
Le détail complet est dans (créé le 2026-04-16, basé sur la lecture directe de Serveur Outils Grainerie et les analyses actualisées). En résumé, 9 vagues incrémentales remplacent le calendrier linéaire S0–S18 :
| Vague | Objectif | Prérequis |
|---|---|---|
| V0 | Hygiène immédiate (YAML, healthchecks, docker.sock :ro, volume Redis) | — |
| V1 | Sécurisation des secrets (centralistion .env, rotation, credentials n8n) | V0 |
| V2 | Gouvernance images (épingler versions, resource limits) | V1 |
| V3 | Backup robuste (dumps PG Baserow + MariaDB Sync-in dans Borg) | V1 |
| V4 | Quick wins n8n : corrections 9 bugs, suppression 8 console.log, 1 alerte sécu, création 4 services fondamentaux (Debounce, Webhook Body, Sanitize, Auth), migration 82 nodes Code | V1, AUDIT_NODES_CODE_N8N |
| V5 | Redis structuré (cache + queue dédiés) + monitoring complet | V3, V4 |
| V6 | Router central, 12 services Baserow/métier (CRUD, Config, Status, Build Row, Merge, Sanitize Baserow Data, Document Generation Guard, Prepare Carbone Data, Parse Time, Compare Dir, Aggregate), 3 process fusionnés (lignes par défaut, contacts, dossiers), réduction webhooks 89 → ~20–30. Pipeline Carbone unifié avec 5 gardes (G1-G5). | V5, ANALYSE_PATTERNS_REPETITIFS_N8N, SPECS_TECHNIQUES_WEBHOOKS §2.1 |
| V7 | Nettoyage Baserow (champs inutilisés, formules) | V3 |
| V8 | Services externes centralisés + migration cron → n8n | V6 |
| V9 | Modularisation Docker (compose modulaire), socket-proxy, Authentik / Infisical isolés pour déploiement individuel | V8 |
Chaque vague produit un état stable ; on peut s'arrêter entre deux vagues sans dette supplémentaire. Aucune suppression de champs, aucun renommage massif de webhooks, aucune fusion de workflows actifs sans scénario de test et rollback.
Le parcours quick wins détaillé (priorisation et exemples) reste dans .
3. Calendrier consolidé
3.1 Plan par vagues (recommandé — 2026-04-16)
Le calendrier par vagues remplace la vision linéaire S0–S18 par des incréments autonomes, testables et réversibles :
| Vague | Durée estimée | Résumé | Axes |
|---|---|---|---|
| V0 | 1–2 j | Hygiène : YAML, healthchecks, socket :ro, volume Redis | D |
| V1 | 3–5 j | Secrets : centraliser .env, rotation, credentials n8n, durcir docker.sock | A, D |
| V2 | 2–3 j | Images épinglées, resource limits, procédure MAJ | D |
| V3 | 1–2 j | Backup robuste : dumps PG Baserow + MariaDB Sync-in, restore test | D |
| V4 | 2–3 sem | Quick wins n8n : 9 bugs corrigés, 4 services fondamentaux (Debounce, Webhook Body, Sanitize, Auth Baserow), migration ~82 nodes Code, fusion « Fusion contacts » (2→1) | B |
| V5 | 3–5 j | Redis cache + queue dédiés, monitoring/alertes | D, B |
| V6 | 3–4 sem | Router central, 12 services (CRUD, Config, Status, Build Row, Merge, Sanitize, Guard Carbone, Prepare Carbone Data, Parse Time, Compare Dir, Aggregate), 3 process fusionnés, réduction WH 89→~25. Pipeline Carbone unifié (5 gardes G1-G5) | B |
| V7 | 2–3 sem | Nettoyage Baserow : champs inutilisés, formules | C |
| V8 | 2 sem | Services externes centralisés, migration cron → n8n | E, D |
| V9 | 1–2 sem | Modularisation Docker (compose modulaire), socket-proxy, Authentik + Infisical isolés pour déploiement individuel | D |
3.2 Ancien calendrier linéaire (référence historique)
Calendrier initial fusionné à partir de PLAN_ACTION_REFACTORING et des plans Docker/Cron. Conservé pour référence ; les semaines sont remplacées fonctionnellement par les vagues ci-dessus.
| Semaine | Axe(s) | Résumé des actions |
|---|---|---|
| 0 | — | Analyse et préparation (terminée). |
| 1 | A | Phase 1 Sécurité → V1 |
| 2–3 | B | Phase 2 Architecture → V5 + V6 |
| 3–4 | B | Phase 2.5 Services spécialisés → V6 |
| 4–5 | B | Phase 2.6 Sync → V4 (debounce) + V6 (queue/diff) |
| 4–6 | B | Phase 3 Nodes Code → V4 |
| 7–10 | B | Phase 4 Migration domaines → V6 |
| 11–12 | B, C | Phase 5/5.5 Optimisation Baserow → V7 |
| 13–14 | F | Phase 6 Documentation → transversal à chaque vague |
| 15–16 | E | Phase 7 Services externes → V8 |
| 16–17 | D | Phase 7.5 Docker → V0 + V2 + V5 + V9 |
| 18 | D, B | Phase 7.6 Cron + nettoyage → V3 + V8 |
4. Index des documents du projet (classés)
Répertoire des documents existants, regroupés par type et thème. Architecture alignée sur le plan directeur : docs (documentation) et infrastructure (configurations opérationnelles).
4.1 Stratégie et planification
| Document | Rôle | Emplacement |
|---|---|---|
| Plan directeur consolidé (ce document) | Racine | |
| Plan d’action détaillé 18 semaines, phases, exemples techniques | docs/10-planification/ | |
| Collecte des données et mise à jour des analyses pour refléter l’état actuel | docs/10-planification/ | |
| Automatisation : écarts, script Script shell (run collecte etat complet), checklist infos à fournir | docs/10-planification/ | |
| Hub de lecture courant : horizons, gates runtime, priorités V5.5/V2.1/V6.3/V9.1, redécoupage documentaire proposé | docs/10-planification/ | |
| Propositions d’optimisation et de simplification sans breaking changes (chiffres 2026-04-16) | docs/10-planification/ | |
| Specs ciblées n8n et Baserow (N1–N6, B1–B5) : objectif, périmètre, livrable, références | docs/10-planification/ | |
| Validation cohérence, risques, métriques, checklist | docs/10-planification/ | |
| Décisions par phase, solutions retenues, standards doc/nommage | docs/10-planification/ | |
| 42 décisions tranchées par QCM : valeurs exactes Redis, Borg, debounce, cibles, rollback, tests — rend le plan entièrement automatisable | docs/10-planification/ | |
| 34 risques identifiés → tous ramenés à NUL (v2) : 3 principes (prévention structurelle, détection temps réel, réversibilité automatique), staging léger, CI bloquante, rollback auto, watchdog global, gates entre vagues | docs/10-planification/ | |
| Budget tokens historique pour l'exécution complète (V0–V9), à recalculer avant nouvelle exécution lourde | docs/90-archives/10-planification/ |
4.2 Architecture et synthèses
| Document | Rôle | Emplacement |
|---|---|---|
| Synthèse Baserow + n8n, 10 patterns webhooks, problèmes, cible | docs/20-architecture/ | |
| Proposition d’organisation n8n en micro-workflows (Router + Services), documentation comme pilier (§ 2), catalogue, parcours d’adoption sans rupture | docs/20-architecture/ | |
| Registre de suivi : doc n8n + dépôt par workflow / vague (restructuration) | docs/20-architecture/ | |
| Spécifications techniques de chaque webhook Baserow et du workflow n8n associé (entrée, sortie, tables, améliorations) | docs/20-architecture/ | |
| Webhooks sync/sync-table, performance, solutions | docs/20-architecture/ | |
| Utilité des webhooks Baserow, 10 catégories, améliorations | docs/20-architecture/ | |
| Backup historique 63 workflows, statistiques, patterns, sécurité | docs/20-architecture/ | |
| API n8n, types de nodes, exemples | docs/20-architecture/ | |
| Audit historique 147 nodes Code (2026-04-16) ; V4.3 courant recalibré via V4 3 CANDIDATS CODE VERS SET FILTER (315 Code nodes) | docs/20-architecture/ | |
| 48 séquences récurrentes, 24 HTTP dupliquées, 7 mega-patterns, 13 services + 3 process fusionnés proposés | docs/20-architecture/ | |
| Diagrammes Mermaid : Docker actuel/cible, micro-workflows n8n, flux webhooks, réseaux, Gantt vagues | docs/20-architecture/ |
4.3 Standards et templates
| Document | Rôle | Emplacement |
|---|---|---|
| Templates workflows, nodes Code, shell, Python | docs/80-standards/ | |
| Template standard pour documenter un workflow | docs/80-standards/templates/ | |
| Contrats d’API entre workflows, signatures, formats | docs/80-standards/ | |
| Bibliothèque de fonctions réutilisables (Code nodes) | docs/80-standards/ |
4.4 Baserow
| Document | Rôle | Emplacement |
|---|---|---|
| Méthode de détection des champs peu utilisés (correction faux positifs ~1 592 → 694) | docs/30-baserow/ | |
| Croisement instance Baserow × backup n8n : volume, webhooks, formules, hotspots migration, doublons de noms, workflows inactifs | docs/30-baserow/ | |
| Rapport analyse (champs inutilisés, formules) | docs/30-baserow/ | |
| Inventaire 616 formules, priorisation perf., restructuration — généré par Script Python (generate formulas detailed report) | docs/30-baserow/ | |
| Specs techniques formules et structure Baserow (revalidation base, audit formules, champs inutilisés, schéma) ; références croisées aux autres specs | docs/30-baserow/ | |
| Utilisation par utilisateur, répartition workspaces | docs/30-baserow/ | |
| Documentation analyse Baserow | docs/30-baserow/ | |
| Scripts Python et données JSON | Exécution des analyses | baserow-analysis/ (racine) |
4.5 Infrastructure (Docker, serveur, PostgreSQL)
| Document | Rôle | Emplacement |
|---|---|---|
| Mise à niveau stack Docker (Redis, monitoring, secrets) | docs/40-infrastructure/docker/ | |
| Remplacement monitoring (Prometheus, Grafana, etc.) | docs/40-infrastructure/docker/ | |
| Authentification centralisée (Authentik/SSO) | docs/40-infrastructure/docker/ | |
| Analyse docker-compose, sécurité, recommandations | docs/40-infrastructure/docker/ | |
| Stratégie sauvegarde | docs/40-infrastructure/docker/ | |
| Migration Dozzle → Beszel / logging | docs/40-infrastructure/docker/ | |
| Recommandations Docker | docs/40-infrastructure/docker/ | |
| Analyse serveur (mesures réelles) | docs/40-infrastructure/serveur/ | |
| Contraintes matérielles serveur | docs/40-infrastructure/serveur/ | |
| Ajustements selon matériel | docs/40-infrastructure/serveur/ | |
| Commandes d’analyse serveur | docs/40-infrastructure/serveur/ | |
| Configuration PostgreSQL | docs/40-infrastructure/postgresql/ | |
| Équilibre PostgreSQL / autres services | docs/40-infrastructure/postgresql/ | |
| Différences configurations PostgreSQL | docs/40-infrastructure/postgresql/ | |
| Résumé configuration équilibrée | docs/40-infrastructure/postgresql/ | |
| Guide d’application config PostgreSQL | docs/40-infrastructure/postgresql/ |
4.6 Cron et tâches planifiées
| Document | Rôle | Emplacement |
|---|---|---|
| Analyse tâches cron, problèmes, recommandations | docs/40-infrastructure/cron/ | |
| Workflows n8n pour remplacer les crons | docs/40-infrastructure/cron/ | |
| Résolution permissions Syncthing | docs/40-infrastructure/cron/ | |
| Résumé améliorations cron | docs/40-infrastructure/cron/ |
4.7 Services externes et scripts
| Document | Rôle | Emplacement |
|---|---|---|
| Carbone, Sync-in, BookStack, scripts shell | docs/50-services-externes/ |
4.8 Sauvegarde et Borg
| Document | Rôle | Emplacement |
|---|---|---|
| Borgmatic, usage | docs/40-infrastructure/docker/ | |
| Améliorations docker-compose pour Borg | docs/40-infrastructure/docker/ | |
| Guide migration rapide Borg | docs/40-infrastructure/docker/ | |
| Résumé améliorations Borg | docs/40-infrastructure/docker/ |
4.9 Référence rapide
| Besoin | Premier document à lire |
|---|---|
| Vue d’ensemble projet | (racine) |
| Plan global et calendrier | (ce document) |
| Structure des dossiers | |
| Détail des phases et tâches | |
| Décisions et justifications | |
| État actuel architecture | |
| Créer/documenter un workflow | , |
| Docker et infrastructure | , |
| Cron → n8n | , |
5. Métriques de succès (consolidées)
Tableau unique des objectifs quantitatifs, aligné avec VALIDATION_FINALE_PLAN et PLAN_ACTION_REFACTORING.
| Métrique | Avant | Cible | Priorité |
|---|---|---|---|
| Credentials en clair | >5 | 0 | CRITIQUE |
| Webhooks Baserow | 89 | ~20–30 | HAUTE |
| Nodes Code | 315 runtime 2026-04-25 (147 dans l'audit historique 2026-04-16) | cible à recalibrer par V4.3 | HAUTE |
| Appels Baserow / sync | ~100/jour | ~10/jour | CRITIQUE |
| Temps traitement sync | ~2 s/ligne | ~0,1 s/ligne | CRITIQUE |
| Champs inutilisés Baserow (heuristique corrigée) | 694 | <100 | MOYENNE |
| Formules problématiques (alertes script) | 68 | <10 | MOYENNE |
| Nodes moyens / workflow | 15,8 | <10 (cible 8) | MOYENNE |
| Documentation workflows/nodes | 0 % | 100 % | OBLIGATOIRE |
| Endpoints webhook-test en prod | 3 | 0 | HAUTE |
| Code JS dupliqué (groupes) | 18 (52 nodes) | 0 | HAUTE |
| HTTP Request Baserow dupliquées | 24 patterns | ~5 | HAUTE |
| Bugs dans nodes Code | 9 (dont 2 HAUTE) | 0 | HAUTE |
| Microservices n8n (sub-workflows) | 0 utilisés | 13 services + 3 process | HAUTE |
| WF « Création lignes » identiques | 6 | 1 paramétrique | MOYENNE |
6. Risques et mitigations — ZÉRO RISQUE
34/34 risques à NUL. Chaque risque est couvert par 3 principes : prévention structurelle, détection temps réel, réversibilité automatique. Détail exhaustif dans (v2).
| Risque | Avant | Après | Mesures clés |
|---|---|---|---|
| Secrets en clair | CRITIQUE | NUL | Purge historique Git + révocation + CI bloquante pre-receive |
| Clés Passbolt GPG/JWT | CRITIQUE | NUL | Borg + export offline + test restore hebdomadaire |
| Backup PG Baserow | CRITIQUE | NUL | Hook pg_dump + test restore auto + monitoring taille |
| Credentials ClearFlask | CRITIQUE | NUL | Purge code + purge historique + CI lint |
| Boucles webhooks | CRITIQUE | NUL | 9 couches : debounce + breaker + flag + rate limiter + kill switch + hard cap Baserow + watchdog + test pré-deploy + isolation réseau |
| Métriques critiques | CRITIQUE | NUL | Dashboard Grafana + alertes + gates bloquantes + métriques avant/après |
| docker.sock RW | ÉLEVÉ | NUL | Socket-proxy read-only + iptables + test pénétration auto |
| Perte données Baserow | ÉLEVÉ | NUL | Triple backup (Borg + snapshot API + CSV) + 0 suppression auto |
| Lockout rotation secrets | ÉLEVÉ | NUL | Dual-credential + rollback auto < 60s |
| Migration webhooks V6 | ÉLEVÉ | NUL | Shadow permanent + comparateur byte-level + bascule atomique/table |
| DELETE cascade | ÉLEVÉ | NUL | Hard delete interdit par code + soft delete + export avant |
| Trou sauvegarde (crons) | ÉLEVÉ | NUL | Watchdog Borg + réactivation auto anciens crons si défaillance |
| Absence de staging | Structurel | NUL | 7 mesures staging léger : worktree + conteneur éphémère + dry-run + shadow + snapshot + docker commit + fenêtre 48h |
| 21 autres risques moyens | MOYEN–ÉLEVÉ | NUL | Canary auto, blue-green Redis, test perf formules, audit cohérence hebdo, lint CI bloquant, gates entre vagues |
Bilan : CRITIQUE 6→0, ÉLEVÉ 10→0, MOYEN 18→0, FAIBLE 0→0, NUL 0→34.
Référence détaillée : VALIDATION_FINALE_PLAN, REDUCTION_RISQUES_MIGRATION (v2).
7. Prochaines étapes opérationnelles
- Valider ce plan directeur avec les parties prenantes.
- Démarrer Phase 1 (sécurité) dès que le feu vert est donné (audit credentials, migration n8n, changement MDP).
- Tenir à jour et au fil de l’avancement.
- Utiliser l’index de la section 4 pour retrouver rapidement le bon document (stratégie, architecture, Docker, cron, Baserow, templates).
- Tenir à jour l’état actuel : suivre pour collecter les données et mettre à jour les analyses (n8n, Baserow, Docker, cron, serveur) afin que le plan directeur reflète la réalité de l’infrastructure.
8. Architecture des dossiers du projet
Le projet est organisé autour de ce plan directeur :
| Dossier | Rôle |
|---|---|
| Racine | , .env.baserow |
| docs/ | Toute la documentation, classée par axe (00-meta, 10-planification, 20-architecture, 30-baserow, 40-infrastructure, 50-services-externes, 60-run, 70-migration, 80-standards, 90-archives) |
| docs/00-meta | Gouvernance : glossaire, conventions, garde-fous, onboarding, audits, snapshots |
| docs/10-planification | Plan d’action, validation, décisions d’architecture, suivi migration |
| docs/20-architecture | Synthèse, webhooks, backup workflows, API et nodes |
| docs/30-baserow | Rapports et analyses Baserow (scripts et JSON dans baserow-analysis/) |
| docs/40-infrastructure | Serveur, Docker, PostgreSQL, Cron, sécurité, réseau (documentation uniquement) |
| docs/50-services-externes | Carbone, Sync-in, BookStack |
| docs/60-run | PRA/PCA, incident playbook, matrice RACI, runbooks, procédures, incidents |
| docs/70-migration | Lots et journaux d'exécution (cible de découpage depuis 10-planification) |
| docs/80-standards | Templates, contrats API, bibliothèque de code |
| docs/90-archives | Documents historiques figés |
| infrastructure/ | Fichiers de configuration opérationnels (docker-compose, postgresql.conf, crontab) |
| utilitaires/ | Scripts de maintenance (export n8n, rapport backup, test API, collecte serveur) — non exécutés par n8n |
| baserow-analysis/ | Scripts Python et données JSON d'analyse Baserow |
| schemas/ | Schémas de tables |
| data/ | Données et backups (ex. backup workflows) |