Glossaire
Définitions concises des termes techniques utilisés dans la documentation. Quand un terme apparaît dans une page, il est défini sur place ou renvoie ici.
Organisation du dépôt
Section intitulée « Organisation du dépôt »| Terme | Définition |
|---|---|
| Git | Système de contrôle de version : il enregistre l’historique de tous les changements de code, permet de revenir en arrière et de travailler à plusieurs sans s’écraser. C’est le socle sur lequel reposent les commits, les branches et GitHub. |
| commit | Un enregistrement daté d’un ensemble de modifications, accompagné d’un message qui en explique l’intention. C’est l’unité de base de l’historique Git. |
| push | Action d’envoyer ses commits locaux vers le dépôt distant (GitHub), pour les partager et déclencher la CI. |
| fork | Copie personnelle d’un dépôt sur son propre compte GitHub. Un contributeur qui n’a pas le droit d’écrire directement sur le dépôt principal crée un fork, y travaille sur une branche, puis propose ses changements via une pull request. |
| monorepo | Un seul dépôt Git qui héberge plusieurs projets logiciels, avec des règles partagées (style, tests, CI). Atlas est organisé en huit catégories. |
| workspace | Sous-projet d’un monorepo géré comme une unité indépendante (avec son package.json, ses dépendances, ses scripts). Les workspaces d’Atlas sont listés dans pnpm-workspace.yaml. |
| pull request | Proposition de modification publiée sur GitHub. Permet la revue de code et déclenche la CI avant fusion dans main. |
| changeset | Fichier .changeset/*.md joint à une pull request pour décrire l’impact d’un changement (patch, minor, major) sur les paquets publiables. |
Langage et bibliothèques
Section intitulée « Langage et bibliothèques »| Terme | Définition |
|---|---|
| TypeScript | Langage qui ajoute des types statiques à JavaScript. Le compilateur refuse de compiler à la moindre incohérence de types quand le mode strict est activé. |
| Effect | Bibliothèque TypeScript de programmation fonctionnelle : les erreurs deviennent des valeurs typées, la composition remplace les exceptions. |
| SvelteKit | Framework web full-stack basé sur Svelte. Couvre rendu serveur (SSR) et rendu navigateur depuis un seul code source. Utilisé par toutes les apps d’Atlas. |
| Hono | Framework HTTP minimaliste et typé pour Node.js, Bun, Deno, Cloudflare Workers. Utilisé par les serveurs de la catégorie services/. |
| vitest | Exécuteur de tests rapide, compatible Jest, intégré à Vite. Utilisé pour tous les tests unitaires et d’intégration. |
| Playwright | Outil de test de bout en bout : pilote un vrai navigateur (Chromium, Firefox, WebKit) pour valider les parcours utilisateur. |
| Docker | Plateforme de conteneurs : elle isole une application (son code, ses dépendances, son environnement d’exécution) dans un « conteneur » reproductible à l’identique sur n’importe quelle machine. Atlas l’utilise pour faire tourner REDCap et Appwrite en local et pour les tests d’intégration. |
Outils du monorepo
Section intitulée « Outils du monorepo »| Terme | Définition |
|---|---|
| pnpm | Gestionnaire de paquets pour Node.js. Atlas l’utilise pour installer les dépendances et isoler chaque sous-projet via les workspaces. |
| turbo | Orchestrateur de tâches avec cache distribué. Parallélise build, test, lint à travers les sous-projets et ne refait pas ce qui n’a pas changé. |
| cache | Mémoire des résultats déjà calculés. Quand une commande (build, test, lint) est relancée sur du code inchangé, le cache renvoie le résultat précédent en quelques millisecondes au lieu de tout refaire. C’est ce qui rend la CI rapide ; ici le cache est géré par turbo. |
| Changesets | Outil de gestion des versions et changelogs pour monorepo. Découple l’expression de l’intention (par le contributeur) et la publication (par le bot). |
| Astro Starlight | Générateur de site de documentation basé sur Astro (framework web). Produit le site de documentation d’Atlas à partir des fichiers de docs/. |
Qualité du code
Section intitulée « Qualité du code »| Terme | Définition |
|---|---|
| lint | Analyse du code sans l’exécuter pour repérer les erreurs de style et les motifs dangereux (variables non utilisées, expressions régulières coûteuses, oublis). Dans Atlas, le lint combine Prettier (formatage) et ESLint (règles). |
| typecheck | Vérification que tous les types TypeScript sont cohérents (une variable déclarée comme texte n’est jamais utilisée comme nombre). Le compilateur refuse de compiler à la moindre incohérence quand le mode strict est actif. C’est un filet distinct du lint et des tests. |
| ESLint | Analyseur statique de code JavaScript/TypeScript. Applique des règles de style, de qualité et de sécurité. |
| Prettier | Formateur automatique de code. Pas d’options de style à négocier : la machine décide. |
| commitlint | Vérifie que chaque message de commit suit le format Conventional Commits (type(scope): description). |
| Conventional Commits | Convention de format de messages de commit qui rend l’historique parsable par des outils (Changesets, génération de changelog). |
| AST | Abstract Syntax Tree — arbre représentant la structure syntaxique d’un code source. Les analyseurs statiques (ESLint, CodeQL) opèrent sur l’AST. |
| knip | Outil de détection de code mort : exports, fichiers, dépendances jamais utilisés. |
| jscpd | JavaScript Copy/Paste Detector. Détecte les blocs de code dupliqués ; seuil à 5 % dans Atlas. |
| size-limit | Outil qui fixe un budget de taille (en KB) par paquet et fait échouer la CI si dépassé. |
| taze | Outil qui liste les versions de dépendances disponibles, regroupées par majeur/mineur/patch. |
| couverture de code | Proportion du code source exécutée par les tests, exprimée en lignes, branches, fonctions. Mesurée par @vitest/coverage-v8. |
| pyramide de tests | Répartition recommandée : beaucoup de tests unitaires (rapides, nombreux), peu de tests end-to-end (lents, ciblés). Atlas a cinq niveaux. |
| self-skipping | Test qui se désactive automatiquement si son environnement (REDCap, Appwrite, navigateur Playwright) n’est pas disponible. Évite de bloquer le contributeur. |
| run e2e | End-to-end — exécution complète du système dans des conditions réalistes (sur le banc), par opposition aux tests unitaires qui isolent un module. |
| drift | Écart entre comportement attendu et observé, révélé à l’exécution (run e2e) et invisible au lint comme aux tests unitaires. Catalogué dans le registre de drifts (ADR 0056). |
| piège de revue | Bug subtil identifié par revue de code (souvent adversariale), et non au run. Consigné au même registre de drifts que les drifts e2e. |
| test hermétique | Test dont le résultat ne dépend que de son code et d’entrées figées — ni du réseau, ni de l’horloge, ni de l’état de la machine, ni d’un service externe vivant (ADR 0057). |
| fixture | Jeu de données de test versionné et figé (sous fixtures/), synthétique ou échantillon réel capturé une fois — jamais une source live re-téléchargée à l’exécution. |
| déterminisme | Propriété d’un calcul qui, pour une même entrée, produit toujours la même sortie (à l’octet près). Rend vérifiable le sha256 du contrat de données et la ré-dérivabilité du mart. |
| author_id | Identifiant d’auteur du référentiel bibliométrique. Imparfait : une même personne peut en avoir plusieurs (clusters, homonymes), et un même author_id peut agréger des publications qui ne sont pas toutes d’elle. Clé d’ancrage du mart researchers (ADR 0059), faute d’une identité de personne désambiguïsée. |
| désambiguïsation | Consolidation de plusieurs author_id vers une personne réelle. Non implémentée dans le pipeline ; la fusion author_id → personne, si elle advient, est une couche au-dessus du mart, jamais une réécriture de sa clé. |
| provenance (grain publication) | Conservation, en couche curated, des contributions au grain (author_id, work_id) — vecteur et labels par publication — dont l’agrégat servi par author_id est dérivé. Rend la purge d’opposition chirurgicale (re-dériver sans recalcul d’embedding). |
| purge d’opposition | Retrait du mart et de l’index des données d’une personne qui exerce son droit d’opposition. Chirurgicale au grain (author_id, work_id) validé : ne retire que le périmètre revendiqué par la personne, jamais une publication non revendiquée ni un author_id en bloc (ADR 0059, 0030). |
CI/CD et collaboration
Section intitulée « CI/CD et collaboration »| Terme | Définition |
|---|---|
| CI | Continuous Integration. Ensemble des vérifications automatiques exécutées à chaque pull request et push. |
| GitHub Actions | Service intégré à GitHub qui exécute des workflows (suites de commandes) sur des machines virtuelles à chaque événement (push, PR, cron). |
| workflow | Fichier YAML dans .github/workflows/ qui décrit une suite de jobs à exécuter sur un événement déclencheur. |
| hook Git | Script lancé automatiquement par Git à un moment précis du cycle de commit (pre-commit, commit-msg, pre-push). Atlas utilise lefthook pour les orchestrer. |
| lefthook | Gestionnaire de hooks Git. Configuration dans lefthook.yml. Installé automatiquement à l’pnpm install. |
| Dependabot | Service GitHub qui crée automatiquement des PR pour mettre à jour les dépendances vulnérables ou obsolètes. |
Sécurité
Section intitulée « Sécurité »| Terme | Définition |
|---|---|
| DevSecOps | Approche qui intègre la sécurité à toutes les étapes du développement (code, tests, CI/CD, déploiement) plutôt que comme un contrôle final séparé. Dans Atlas, elle se traduit par l’analyse statique (CodeQL, Semgrep), la détection de secrets (gitleaks), l’audit des dépendances, des tests de sécurité en CI et des scans dynamiques (ZAP). |
| SLA | Service Level Agreement — engagement de délai. Ici, le délai maximum entre la détection d’un problème de sécurité et sa correction, différencié par sévérité (barème opposable dans Sécurité — SLA de remédiation). |
| SAST | Static Application Security Testing. Analyse le code source sans l’exécuter, à la recherche de patterns de vulnérabilités. |
| DAST | Dynamic Application Security Testing. Sonde une application en cours d’exécution. Atlas utilise OWASP ZAP en mode baseline. |
| CodeQL | Outil GitHub d’analyse statique (SAST). Représente le code en base de données interrogeable et détecte les vulnérabilités par requêtes. |
| OWASP ZAP | Outil open-source de scan de vulnérabilités web (DAST). Sonde une URL à la recherche de configurations défaillantes (headers manquants, cookies sans flags, etc.). |
| gitleaks | Outil de détection de secrets (tokens, clés API) accidentellement écrits dans le code. Lancé en hook pre-commit et en CI. |
| SBOM | Software Bill of Materials. Inventaire exhaustif des dépendances logicielles d’un projet, au format CycloneDX dans Atlas. |
| provenance npm (OIDC) | Attestation cryptographique liant un paquet npm publié à son code source et au workflow CI qui l’a construit. Vérifiable par npm audit signatures. |
| OIDC | OpenID Connect. Protocole d’authentification utilisé pour signer les publications npm sans token long-lived dans la CI. |
| CSP | Content Security Policy. En-tête HTTP qui restreint les sources autorisées (scripts, images, connexions) pour atténuer le XSS. |
| ReDoS | Regular expression Denial of Service. Attaque par expression régulière catastrophique qui consomme exponentiellement du CPU. |
| XSS | Cross-Site Scripting. Injection de code JavaScript malveillant dans une page rendue à un autre utilisateur. |
Authentification et données
Section intitulée « Authentification et données »| Terme | Définition |
|---|---|
| magic link | Lien à usage unique envoyé par email pour authentifier un utilisateur sans mot de passe. |
| Appwrite | Plateforme open-source de Backend-as-a-Service (auth, base de données, stockage, fonctions). Atlas s’en sert pour l’authentification et les métadonnées applicatives. |
| BaaS | Backend-as-a-Service. Service prêt-à-l’emploi qui remplace l’écriture d’un backend custom (auth, base de données, etc.). |
| REDCap | Research Electronic Data Capture. Plateforme de capture de données structurées par formulaires en ligne. Atlas s’en sert pour les formulaires métier. |
| CRF | Complex Reporting Form. Formulaire structuré et complexe de collecte de données (champs typés, validations, branchements conditionnels). Aucune donnée de santé. |
| OpenAlex | Base de données ouverte de la littérature académique (240M+ articles). Consommée en lecture par certaines apps d’Atlas. |
Outillage IA
Section intitulée « Outillage IA »| Terme | Définition |
|---|---|
| MCP | Model Context Protocol. Protocole qui permet à un assistant IA de récupérer de la documentation et d’invoquer des outils. Configuré dans .mcp.json. |
| CLAUDE.md | Fichier à la racine du dépôt contenant les instructions et conventions persistantes pour l’assistant de développement IA. |