Aller au contenu

📦 Stack Technique Globale

Le projet Gallois Sisal articule deux forces technologiques majeures : 1. Un frontend vitrine Astro ultra-léger et accessible garantissant un score Lighthouse supérieur à 90. 2. Un moteur CMS & éditeur visuel Instatic permettant l'édition directe sur canevas, la connexion aux agents IA via MCP, et la publication instantanée.


🛠️ Composants de l'infrastructure

Composant Technologie Rôle
Runtime Serveur Bun (Bun.serve) Serveur haute performance, gestion des I/O asynchrones, worker threads natifs.
Frontend Public Astro 5.x / HTML sémantique Rendu côté serveur et pré-génération statique sans surcoût de framework côté client.
CMS & Éditeur Visuel Instatic SPA (React 19 + Vite) Interface d'administration modulaire, canevas d'édition visuelle multi-breakpoints.
Persistance de données SQLite (bun:sqlite) ou Postgres (Bun.sql) Modèle de données agnostique, migrations synchronisées par dialecte.
Moteur d'exécution Sandbox QuickJS-WASM dans Bun.Worker Exécution totalement sécurisée et isolée des plugins et scripts de modules.
Traitement d'images sharp + BlurHash (Bun.Worker pool) Génération non-bloquante de formats WebP et responsive images en tâche de fond.
Hébergement & CDN Cloudflare Pages & VPS Nginx Distribution globale, certificats SSL automatiques et haute disponibilité.

🔄 Flux de traitement des requêtes

┌─────────────────────────────────────────────────────────────┐
│                       Bun Process                           │
│                                                             │
│   server/index.ts          → Point d'entrée principal       │
│         ↓                                                   │
│   server/router.ts         → Routage strict TypeBox         │
│         ↓                                                   │
│   ┌──────────────────┬──────────────────┬───────────────┐   │
│   │ CMS API          │ Static SPA Admin │ Public Render │   │
│   │ /admin/api/*     │ /admin/*         │ / & routes    │   │
│   │                  │ → dist/          │ → uploads/    │   │
│   │ → Repositories   │                  │               │   │
│   │ → DB Client      │                  │               │   │
│   └──────────────────┴──────────────────┴───────────────┘   │
│         ↓                                                   │
│   server/db/client.ts      → Postgres / SQLite              │
│                                                             │
│   ├── Bun.Worker Pool: Image Variants (Sharp + BlurHash)    │
│   └── Bun.Worker: QuickJS-WASM Sandbox (Plugins & Code)     │
└─────────────────────────────────────────────────────────────┘

🔒 Sécurité et Typage aux frontières

  • TypeBox exclusif : Toutes les entrées HTTP, schémas de tools IA, manifestes de plugins et requêtes MCP sont validées via @sinclair/typebox.
  • Zéro Zod : Aucune dépendance runtime Zod n'est autorisée sur le périmètre afin de garantir des performances maximales et une empreinte mémoire minimale.
  • SSRF Guard & Sanitisation : Téléchargement distant d'images sous liste blanche IP stricte, re-validation à chaque redirection HTTP et assainissement SVG automatique.