Dossier d’Architecture Logicielle (DAL)

Conception du système, flux CI/CD et résilience infrastructurelle

DAL

Introduction

L’architecture EDPI-Docs repose sur le paradigme “Decoupled Docs-as-Code”. Ce dossier détaille la structure modulaire du système, garantissant que le contenu reste agnostique vis-à-vis des outils de rendu et hautement disponible grâce à une distribution Edge.

1. Vision de l’Architecture (Vue d’Ensemble)

Le système adopte une architecture JAMstack (JavaScript, APIs, Markup), éliminant le besoin de serveurs d’application complexes et de bases de données dynamiques.

1.1 Architecture Multi-Niveaux

  • Niveau Acquisition (Édition) : Utilisation de formats texte brut (Markdown/QMD) permettant une édition sur PC (VS Code) ou Mobile (Obsidian/Zettel Notes).
  • Niveau Transformation (Build) : Moteur Quarto CLI utilisant Typst pour une compilation PDF ultra-rapide (alternative légère à LaTeX).
  • Niveau Distribution (Edge) : Hébergement statique sur Cloudflare Pages pour une latence minimale et une sécurité accrue.

2. Flux de Données et Pipeline CI/CD

Le cycle de vie d’un document suit un pipeline unidirectionnel automatisé pour garantir l’intégrité du savoir.

2.1 Étapes du Pipeline

  1. Commit & Push : Envoi des sources depuis l’environnement local ou mobile vers la branche develop de GitHub.
  2. Orchestration (GitHub Actions) : Déclenchement d’un runner Ubuntu qui installe l’environnement Quarto.
  3. Validation (Linting) : Exécution de markdownlint pour vérifier la conformité aux standards EDPI-STD.
  4. Génération (Rendering) : Compilation des fichiers .qmd en artefacts HTML5 et PDF via le moteur Typst.
  5. Déploiement (Deployment) : Transfert atomique des artefacts vers les serveurs Edge de Cloudflare.

3. Architecture de Sécurité (Security by Design)

  • Gestion des Accès (RBAC) : Accès administrateur restreint au responsable (Lorein) ; les contributeurs externes utilisent exclusivement le mécanisme de Fork et Pull Request.
  • Protection des Flux : Chiffrement TLS 1.3 systématique pour la consultation et le transport Git.
  • Isolement des Secrets : Utilisation exclusive de GitHub Secrets pour les clés d’API Cloudflare, interdisant toute présence de tokens en clair dans le code source.

4. Environnements et Résilience

Environnement Stack Technique Rôle Critique
PC (Expert) VS Code + Quarto + Git Édition de précision, exécution de code (R/Py), gestion des profils et validation finale.
Mobile (Nomade) Obsidian + Zettel Notes Capture rapide, mode Offline-First, résilience en déplacement.
Infrastructure GitHub Actions Automatisation, validation et déploiement mondial.
Staging Cloudflare Preview Validation visuelle des PR avant fusion.
Production Cloudflare Pages (Main) Diffusion publique officielle à haute disponibilité.

Note d’Expert sur l’Anti-fragilité : Cette conception garantit qu’en cas de panne d’un service tiers (GitHub ou Cloudflare), les sources restent intactes, versionnées et compilables sur n’importe quel terminal local disposant de Quarto CLI.

5. Matrice de Traçabilité (RTM)

ID Exigence (STB) Composant DAL associé Vecteur de Validation
REQ-01 (Typst) Quarto Engine / Typst Binary Génération du PDF en moins de 10s.
REQ-03 (Mobile) Obsidian + Git Plugin Synchronisation réussie entre Android et GitHub.
ENF-01 (Performance) Cloudflare Edge Caching Audit Lighthouse (FCP < 0.8s).

Approuvé pour implémentation par : Lorein Du Perron