Aller au contenu

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.

TermeDéfinition
GitSystè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.
commitUn 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.
pushAction d’envoyer ses commits locaux vers le dépôt distant (GitHub), pour les partager et déclencher la CI.
forkCopie 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.
monorepoUn 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.
workspaceSous-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 requestProposition de modification publiée sur GitHub. Permet la revue de code et déclenche la CI avant fusion dans main.
changesetFichier .changeset/*.md joint à une pull request pour décrire l’impact d’un changement (patch, minor, major) sur les paquets publiables.
TermeDéfinition
TypeScriptLangage qui ajoute des types statiques à JavaScript. Le compilateur refuse de compiler à la moindre incohérence de types quand le mode strict est activé.
EffectBibliothèque TypeScript de programmation fonctionnelle : les erreurs deviennent des valeurs typées, la composition remplace les exceptions.
SvelteKitFramework 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.
HonoFramework HTTP minimaliste et typé pour Node.js, Bun, Deno, Cloudflare Workers. Utilisé par les serveurs de la catégorie services/.
vitestExécuteur de tests rapide, compatible Jest, intégré à Vite. Utilisé pour tous les tests unitaires et d’intégration.
PlaywrightOutil de test de bout en bout : pilote un vrai navigateur (Chromium, Firefox, WebKit) pour valider les parcours utilisateur.
DockerPlateforme 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.
TermeDéfinition
pnpmGestionnaire de paquets pour Node.js. Atlas l’utilise pour installer les dépendances et isoler chaque sous-projet via les workspaces.
turboOrchestrateur 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é.
cacheMé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.
ChangesetsOutil 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 StarlightGénérateur de site de documentation basé sur Astro (framework web). Produit le site de documentation d’Atlas à partir des fichiers de docs/.
TermeDéfinition
lintAnalyse 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).
typecheckVé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.
ESLintAnalyseur statique de code JavaScript/TypeScript. Applique des règles de style, de qualité et de sécurité.
PrettierFormateur automatique de code. Pas d’options de style à négocier : la machine décide.
commitlintVérifie que chaque message de commit suit le format Conventional Commits (type(scope): description).
Conventional CommitsConvention de format de messages de commit qui rend l’historique parsable par des outils (Changesets, génération de changelog).
ASTAbstract Syntax Tree — arbre représentant la structure syntaxique d’un code source. Les analyseurs statiques (ESLint, CodeQL) opèrent sur l’AST.
knipOutil de détection de code mort : exports, fichiers, dépendances jamais utilisés.
jscpdJavaScript Copy/Paste Detector. Détecte les blocs de code dupliqués ; seuil à 5 % dans Atlas.
size-limitOutil qui fixe un budget de taille (en KB) par paquet et fait échouer la CI si dépassé.
tazeOutil qui liste les versions de dépendances disponibles, regroupées par majeur/mineur/patch.
couverture de codeProportion du code source exécutée par les tests, exprimée en lignes, branches, fonctions. Mesurée par @vitest/coverage-v8.
pyramide de testsRépartition recommandée : beaucoup de tests unitaires (rapides, nombreux), peu de tests end-to-end (lents, ciblés). Atlas a cinq niveaux.
self-skippingTest qui se désactive automatiquement si son environnement (REDCap, Appwrite, navigateur Playwright) n’est pas disponible. Évite de bloquer le contributeur.
run e2eEnd-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 revueBug 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étiqueTest 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).
fixtureJeu 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éterminismeProprié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_idIdentifiant 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ïsationConsolidation 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’oppositionRetrait 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).
TermeDéfinition
CIContinuous Integration. Ensemble des vérifications automatiques exécutées à chaque pull request et push.
GitHub ActionsService intégré à GitHub qui exécute des workflows (suites de commandes) sur des machines virtuelles à chaque événement (push, PR, cron).
workflowFichier YAML dans .github/workflows/ qui décrit une suite de jobs à exécuter sur un événement déclencheur.
hook GitScript lancé automatiquement par Git à un moment précis du cycle de commit (pre-commit, commit-msg, pre-push). Atlas utilise lefthook pour les orchestrer.
lefthookGestionnaire de hooks Git. Configuration dans lefthook.yml. Installé automatiquement à l’pnpm install.
DependabotService GitHub qui crée automatiquement des PR pour mettre à jour les dépendances vulnérables ou obsolètes.
TermeDéfinition
DevSecOpsApproche 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).
SLAService 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).
SASTStatic Application Security Testing. Analyse le code source sans l’exécuter, à la recherche de patterns de vulnérabilités.
DASTDynamic Application Security Testing. Sonde une application en cours d’exécution. Atlas utilise OWASP ZAP en mode baseline.
CodeQLOutil 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 ZAPOutil 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.).
gitleaksOutil de détection de secrets (tokens, clés API) accidentellement écrits dans le code. Lancé en hook pre-commit et en CI.
SBOMSoftware 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.
OIDCOpenID Connect. Protocole d’authentification utilisé pour signer les publications npm sans token long-lived dans la CI.
CSPContent Security Policy. En-tête HTTP qui restreint les sources autorisées (scripts, images, connexions) pour atténuer le XSS.
ReDoSRegular expression Denial of Service. Attaque par expression régulière catastrophique qui consomme exponentiellement du CPU.
XSSCross-Site Scripting. Injection de code JavaScript malveillant dans une page rendue à un autre utilisateur.
TermeDéfinition
magic linkLien à usage unique envoyé par email pour authentifier un utilisateur sans mot de passe.
AppwritePlateforme 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.
BaaSBackend-as-a-Service. Service prêt-à-l’emploi qui remplace l’écriture d’un backend custom (auth, base de données, etc.).
REDCapResearch Electronic Data Capture. Plateforme de capture de données structurées par formulaires en ligne. Atlas s’en sert pour les formulaires métier.
CRFComplex Reporting Form. Formulaire structuré et complexe de collecte de données (champs typés, validations, branchements conditionnels). Aucune donnée de santé.
OpenAlexBase de données ouverte de la littérature académique (240M+ articles). Consommée en lecture par certaines apps d’Atlas.
TermeDéfinition
MCPModel 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.mdFichier à la racine du dépôt contenant les instructions et conventions persistantes pour l’assistant de développement IA.