Dossier d’Architecture Logicielle (DAL)
Conception du système, flux CI/CD et résilience infrastructurelle
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
- Commit & Push : Envoi des sources depuis l’environnement local ou mobile vers la branche
developde GitHub. - Orchestration (GitHub Actions) : Déclenchement d’un runner Ubuntu qui installe l’environnement Quarto.
- Validation (Linting) : Exécution de
markdownlintpour vérifier la conformité aux standardsEDPI-STD. - Génération (Rendering) : Compilation des fichiers
.qmden artefacts HTML5 et PDF via le moteur Typst. - 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
ForketPull 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