[{"data":1,"prerenderedAt":534},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-03-le-comptoir-01-architecture-03-adapters-et-seeds-01-concept":307,"-fr-03-le-comptoir-01-architecture-03-adapters-et-seeds-01-concept-surround":529},[4,26,59,191,248,269,286],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Démarrage","\u002Ffr\u002F01-demarrage","fr\u002F01-demarrage",[9,13,17,21],{"title":10,"path":11,"stem":12},"Présentation","\u002Ffr\u002F01-demarrage\u002F01-presentation","fr\u002F01-demarrage\u002F01-presentation",{"title":14,"path":15,"stem":16},"Public cible","\u002Ffr\u002F01-demarrage\u002F02-public-cible","fr\u002F01-demarrage\u002F02-public-cible",{"title":18,"path":19,"stem":20},"Pourquoi ces outils","\u002Ffr\u002F01-demarrage\u002F03-pourquoi-ces-outils","fr\u002F01-demarrage\u002F03-pourquoi-ces-outils",{"title":22,"path":23,"stem":24},"Parcours recommandé","\u002Ffr\u002F01-demarrage\u002F04-parcours-recommande","fr\u002F01-demarrage\u002F04-parcours-recommande",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"DBT","\u002Ffr\u002F02-dbt","fr\u002F02-dbt",[31,35,39,43,47,51,55],{"title":32,"path":33,"stem":34},"Présentation DBT","\u002Ffr\u002F02-dbt\u002F01-presentation-dbt","fr\u002F02-dbt\u002F01-presentation-dbt",{"title":36,"path":37,"stem":38},"Profils, cibles et projets","\u002Ffr\u002F02-dbt\u002F02-profils-cibles-et-projets","fr\u002F02-dbt\u002F02-profils-cibles-et-projets",{"title":40,"path":41,"stem":42},"Commandes de base","\u002Ffr\u002F02-dbt\u002F03-commandes-de-base","fr\u002F02-dbt\u002F03-commandes-de-base",{"title":44,"path":45,"stem":46},"Seeds, models et tests","\u002Ffr\u002F02-dbt\u002F04-seeds-models-tests","fr\u002F02-dbt\u002F04-seeds-models-tests",{"title":48,"path":49,"stem":50},"Sélection, tags et dépendances","\u002Ffr\u002F02-dbt\u002F05-selection-tags-et-dependances","fr\u002F02-dbt\u002F05-selection-tags-et-dependances",{"title":52,"path":53,"stem":54},"Documentation dbt et lineage","\u002Ffr\u002F02-dbt\u002F06-documentation-dbt-et-lineage","fr\u002F02-dbt\u002F06-documentation-dbt-et-lineage",{"title":56,"path":57,"stem":58},"Orchestration","\u002Ffr\u002F02-dbt\u002F07-orchestration","fr\u002F02-dbt\u002F07-orchestration",{"title":60,"path":61,"stem":62,"children":63,"page":25},"Le comptoir","\u002Ffr\u002F03-le-comptoir","fr\u002F03-le-comptoir",[64,138,166],{"title":65,"path":66,"stem":67,"children":68,"page":25},"Architecture","\u002Ffr\u002F03-le-comptoir\u002F01-architecture","fr\u002F03-le-comptoir\u002F01-architecture",[69,93,97,114,118],{"title":65,"path":70,"stem":71,"children":72,"page":25},"\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture","fr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture",[73,77,81,85,89],{"title":74,"path":75,"stem":76},"Vue d'ensemble","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F01-vue-densemble","fr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F01-vue-densemble",{"title":78,"path":79,"stem":80},"Marts et couche reporting","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F02-marts-et-couche-reporting","fr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F02-marts-et-couche-reporting",{"title":82,"path":83,"stem":84},"Marts Kimball","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F03-marts-kimball","fr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F03-marts-kimball",{"title":86,"path":87,"stem":88},"Couche reporting Power BI","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F04-couche-reporting-power-bi","fr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F04-couche-reporting-power-bi",{"title":90,"path":91,"stem":92},"Tables de filtres par grain","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F05-tables-de-filtres-par-grain","fr\u002F03-le-comptoir\u002F01-architecture\u002F01-architecture\u002F05-tables-de-filtres-par-grain",{"title":94,"path":95,"stem":96},"Lier les bases de données","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F02-lier-les-bases-de-donnees","fr\u002F03-le-comptoir\u002F01-architecture\u002F02-lier-les-bases-de-donnees",{"title":98,"path":99,"stem":100,"children":101,"page":25},"Adapters et seeds","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds","fr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds",[102,106,110],{"title":103,"path":104,"stem":105},"Concept","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F01-concept","fr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F01-concept",{"title":107,"path":108,"stem":109},"Seeds de configuration","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F02-seeds-de-configuration","fr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F02-seeds-de-configuration",{"title":111,"path":112,"stem":113},"Adapters et points d'injection","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F03-adapters-et-points-dinjection","fr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F03-adapters-et-points-dinjection",{"title":115,"path":116,"stem":117},"Activer une ressource","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F04-activer-une-ressource","fr\u002F03-le-comptoir\u002F01-architecture\u002F04-activer-une-ressource",{"title":119,"path":120,"stem":121,"children":122,"page":25},"Overriding","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding","fr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding",[123,126,130,134],{"title":103,"path":124,"stem":125},"\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F01-concept","fr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F01-concept",{"title":127,"path":128,"stem":129},"Overrider un modèle","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F02-overrider-un-modele","fr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F02-overrider-un-modele",{"title":131,"path":132,"stem":133},"Règles d'affaires locales","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F03-regles-affaires-locales","fr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F03-regles-affaires-locales",{"title":135,"path":136,"stem":137},"Contrats de données","\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F04-contrats-de-donnees","fr\u002F03-le-comptoir\u002F01-architecture\u002F05-overriding\u002F04-contrats-de-donnees",{"title":139,"path":140,"stem":141,"children":142,"page":25},"Utilisation","\u002Ffr\u002F03-le-comptoir\u002F02-utilisation","fr\u002F03-le-comptoir\u002F02-utilisation",[143,147,151,155,158,162],{"title":144,"path":145,"stem":146},"Ajouter une interface","\u002Ffr\u002F03-le-comptoir\u002F02-utilisation\u002F01-ajouter-une-interface","fr\u002F03-le-comptoir\u002F02-utilisation\u002F01-ajouter-une-interface",{"title":148,"path":149,"stem":150},"Créer ou modifier un mart","\u002Ffr\u002F03-le-comptoir\u002F02-utilisation\u002F02-creer-ou-modifier-un-mart","fr\u002F03-le-comptoir\u002F02-utilisation\u002F02-creer-ou-modifier-un-mart",{"title":152,"path":153,"stem":154},"Encoder une règle avec un seed","\u002Ffr\u002F03-le-comptoir\u002F02-utilisation\u002F03-encoder-une-regle-affaires-avec-un-seed","fr\u002F03-le-comptoir\u002F02-utilisation\u002F03-encoder-une-regle-affaires-avec-un-seed",{"title":127,"path":156,"stem":157},"\u002Ffr\u002F03-le-comptoir\u002F02-utilisation\u002F04-overrider-un-modele","fr\u002F03-le-comptoir\u002F02-utilisation\u002F04-overrider-un-modele",{"title":159,"path":160,"stem":161},"Ajouter des tests","\u002Ffr\u002F03-le-comptoir\u002F02-utilisation\u002F05-ajouter-des-tests","fr\u002F03-le-comptoir\u002F02-utilisation\u002F05-ajouter-des-tests",{"title":163,"path":164,"stem":165},"Formatage et revue","\u002Ffr\u002F03-le-comptoir\u002F02-utilisation\u002F06-formatage-et-revue","fr\u002F03-le-comptoir\u002F02-utilisation\u002F06-formatage-et-revue",{"title":167,"path":168,"stem":169,"children":170,"page":25},"Créer un tableau de bord","\u002Ffr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord","fr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord",[171,175,179,183,187],{"title":172,"path":173,"stem":174},"Partir du gabarit","\u002Ffr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F01-partir-du-gabarit","fr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F01-partir-du-gabarit",{"title":176,"path":177,"stem":178},"Projet FP","\u002Ffr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F02-projet-fp","fr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F02-projet-fp",{"title":180,"path":181,"stem":182},"Rôle du stamper","\u002Ffr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F03-role-du-stamper","fr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F03-role-du-stamper",{"title":184,"path":185,"stem":186},"Publication Power BI","\u002Ffr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F04-publication-power-bi","fr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F04-publication-power-bi",{"title":188,"path":189,"stem":190},"Cycle de changement","\u002Ffr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F05-cycle-de-changement","fr\u002F03-le-comptoir\u002F03-creer-tableau-de-bord\u002F05-cycle-de-changement",{"title":192,"path":193,"stem":194,"children":195,"page":25},"Installation","\u002Ffr\u002F04-installation","fr\u002F04-installation",[196,200,204,208,212,216,220,224,228,232,236,240,244],{"title":197,"path":198,"stem":199},"Installer WSL2","\u002Ffr\u002F04-installation\u002F01-wsl2","fr\u002F04-installation\u002F01-wsl2",{"title":201,"path":202,"stem":203},"Installer Python et Poetry","\u002Ffr\u002F04-installation\u002F02-python-et-poetry","fr\u002F04-installation\u002F02-python-et-poetry",{"title":205,"path":206,"stem":207},"Cloner les dépôts","\u002Ffr\u002F04-installation\u002F03-cloner-les-depots","fr\u002F04-installation\u002F03-cloner-les-depots",{"title":209,"path":210,"stem":211},"Installer les dépendances","\u002Ffr\u002F04-installation\u002F04-installer-les-dependances","fr\u002F04-installation\u002F04-installer-les-dependances",{"title":213,"path":214,"stem":215},"Configurer profiles.yml","\u002Ffr\u002F04-installation\u002F05-configurer-profiles-yml","fr\u002F04-installation\u002F05-configurer-profiles-yml",{"title":217,"path":218,"stem":219},"Configurer externalbrowser dans WSL2","\u002Ffr\u002F04-installation\u002F06-configurer-external-browser-wsl","fr\u002F04-installation\u002F06-configurer-external-browser-wsl",{"title":221,"path":222,"stem":223},"Exécuter un premier modèle","\u002Ffr\u002F04-installation\u002F07-executer-un-premier-modele","fr\u002F04-installation\u002F07-executer-un-premier-modele",{"title":225,"path":226,"stem":227},"Problèmes courants","\u002Ffr\u002F04-installation\u002F08-problemes-courants","fr\u002F04-installation\u002F08-problemes-courants",{"title":229,"path":230,"stem":231},"Environnements Snowflake","\u002Ffr\u002F04-installation\u002F09-snowflake-environnements","fr\u002F04-installation\u002F09-snowflake-environnements",{"title":233,"path":234,"stem":235},"Rôles et entrepôts Snowflake","\u002Ffr\u002F04-installation\u002F10-snowflake-roles-et-entrepots","fr\u002F04-installation\u002F10-snowflake-roles-et-entrepots",{"title":237,"path":238,"stem":239},"Bases, schémas et droits Snowflake","\u002Ffr\u002F04-installation\u002F11-snowflake-bases-schemas-et-droits","fr\u002F04-installation\u002F11-snowflake-bases-schemas-et-droits",{"title":241,"path":242,"stem":243},"Authentification Snowflake et profils dbt","\u002Ffr\u002F04-installation\u002F12-snowflake-authentification-et-profils-dbt","fr\u002F04-installation\u002F12-snowflake-authentification-et-profils-dbt",{"title":245,"path":246,"stem":247},"Coûts et contrôles Snowflake","\u002Ffr\u002F04-installation\u002F13-snowflake-couts-et-controles","fr\u002F04-installation\u002F13-snowflake-couts-et-controles",{"title":249,"path":250,"stem":251,"children":252,"page":25},"Comment contribuer","\u002Ffr\u002F07-comment-contribuer","fr\u002F07-comment-contribuer",[253,257,261,265],{"title":254,"path":255,"stem":256},"Principes","\u002Ffr\u002F07-comment-contribuer\u002F01-principes","fr\u002F07-comment-contribuer\u002F01-principes",{"title":258,"path":259,"stem":260},"Faire une Pull Request","\u002Ffr\u002F07-comment-contribuer\u002F02-faire-une-pull-request","fr\u002F07-comment-contribuer\u002F02-faire-une-pull-request",{"title":262,"path":263,"stem":264},"Revue et collaboration","\u002Ffr\u002F07-comment-contribuer\u002F03-revue-et-collaboration","fr\u002F07-comment-contribuer\u002F03-revue-et-collaboration",{"title":266,"path":267,"stem":268},"Qualité et validation","\u002Ffr\u002F07-comment-contribuer\u002F04-qualite-et-validation","fr\u002F07-comment-contribuer\u002F04-qualite-et-validation",{"title":270,"path":271,"stem":272,"children":273,"page":25},"Aide AI","\u002Ffr\u002F08-aide-ia","fr\u002F08-aide-ia",[274,278,282],{"title":275,"path":276,"stem":277},"Se faire aider par une IA","\u002Ffr\u002F08-aide-ia\u002F01-se-faire-aider-par-une-ia","fr\u002F08-aide-ia\u002F01-se-faire-aider-par-une-ia",{"title":279,"path":280,"stem":281},"Utiliser llms.txt","\u002Ffr\u002F08-aide-ia\u002F02-utiliser-llms-txt","fr\u002F08-aide-ia\u002F02-utiliser-llms-txt",{"title":283,"path":284,"stem":285},"Connecter un client MCP","\u002Ffr\u002F08-aide-ia\u002F03-connecter-un-client-mcp","fr\u002F08-aide-ia\u002F03-connecter-un-client-mcp",{"title":287,"path":288,"stem":289,"children":290,"page":25},"09 Reference","\u002Ffr\u002F09-reference","fr\u002F09-reference",[291,295,299,303],{"title":292,"path":293,"stem":294},"Glossaire","\u002Ffr\u002F09-reference\u002F01-glossaire","fr\u002F09-reference\u002F01-glossaire",{"title":296,"path":297,"stem":298},"Commandes","\u002Ffr\u002F09-reference\u002F02-commandes","fr\u002F09-reference\u002F02-commandes",{"title":300,"path":301,"stem":302},"Conventions de nommage","\u002Ffr\u002F09-reference\u002F03-conventions-de-nommage","fr\u002F09-reference\u002F03-conventions-de-nommage",{"title":304,"path":305,"stem":306},"Checklists","\u002Ffr\u002F09-reference\u002F04-checklists","fr\u002F09-reference\u002F04-checklists",{"id":308,"title":103,"body":309,"description":520,"extension":521,"links":522,"meta":523,"navigation":526,"path":104,"seo":527,"stem":105,"__hash__":528},"docs_fr\u002Ffr\u002F03-le-comptoir\u002F01-architecture\u002F03-adapters-et-seeds\u002F01-concept.md",{"type":310,"value":311,"toc":513},"minimark",[312,315,319,333,346,354,359,410,413,417,420,423,445,448,451,461,464,468,471,491,494,498],[313,314],"page-metadata",{},[316,317,98],"h1",{"id":318},"adapters-et-seeds",[320,321,323,324,328,329,332],"alert",{"type":322},"warning","Les ",[325,326,327],"em",{},"seeds"," et les ",[325,330,331],{},"adapters"," sont des contrats définis par le core et implémentés par le dépôt local. S'ils sont requis par un mart ou un tableau de bord, ils doivent être fournis localement.",[334,335,323,336,339,340,342,343,345],"p",{},[325,337,338],{},"marts"," et les tableaux de bord peuvent utiliser des ",[325,341,331],{}," et des ",[325,344,327],{}," pour recevoir des règles propres à un centre de services scolaire.",[334,347,348,349,353],{},"Ces mécanismes servent à personnaliser le Store sans modifier directement ",[350,351,352],"code",{},"core.dashboards_store.snowflake",".",[355,356,358],"h2",{"id":357},"différence-entre-seed-adapter-et-override","Différence entre seed, adapter et override",[360,361,362,375],"table",{},[363,364,365],"thead",{},[366,367,368,372],"tr",{},[369,370,371],"th",{},"Besoin",[369,373,374],{},"Mécanisme",[376,377,378,390,400],"tbody",{},[366,379,380,384],{},[381,382,383],"td",{},"La règle est une liste simple.",[381,385,386],{},[387,388,389],"a",{"href":108},"Seed",[366,391,392,395],{},[381,393,394],{},"Le core attend une requête SQL locale.",[381,396,397],{},[387,398,399],{"href":112},"Adapter",[366,401,402,405],{},[381,403,404],{},"Le core fournit déjà une logique, mais elle ne convient pas.",[381,406,407],{},[387,408,409],{"href":124},"Override",[334,411,412],{},"Ces mécanismes servent tous la personnalisation, mais ils ne répondent pas au même besoin.",[355,414,416],{"id":415},"pourquoi-ils-existent","Pourquoi ils existent",[334,418,419],{},"Certaines règles ne peuvent pas être écrites une seule fois pour toutes les organisations.",[334,421,422],{},"Exemples:",[424,425,426,430,433,436,439,442],"ul",{},[427,428,429],"li",{},"identifier les élèves réguliers;",[427,431,432],{},"identifier une population locale;",[427,434,435],{},"regrouper des programmes;",[427,437,438],{},"inclure ou exclure des codes;",[427,440,441],{},"ajouter des libellés locaux;",[427,443,444],{},"préparer une table qui dépend d'une source propre au centre.",[334,446,447],{},"Sans ces points d'injection, le core devrait contenir des branches propres à chaque organisation.",[334,449,450],{},"Avec ces mécanismes:",[452,453,459],"pre",{"className":454,"code":456,"language":457,"meta":458},[455],"language-text","core\n  -> définit le besoin et le contrat\n\ndépôt local\n  -> fournit la règle réelle\n","text","",[350,460,456],{"__ignoreMap":458},[334,462,463],{},"Le core reste simple. Le dépôt local reste propriétaire de ses règles.",[355,465,467],{"id":466},"contrat-à-respecter","Contrat à respecter",[334,469,470],{},"Un contrat doit dire:",[424,472,473,476,479,482,485,488],{},[427,474,475],{},"le nom de la ressource;",[427,477,478],{},"le grain attendu;",[427,480,481],{},"les colonnes obligatoires;",[427,483,484],{},"les types importants;",[427,486,487],{},"les tests minimaux;",[427,489,490],{},"les modèles ou tableaux de bord qui consomment la sortie.",[334,492,493],{},"La règle locale peut changer. La sortie attendue doit rester stable.",[355,495,497],{"id":496},"point-de-contrôle","Point de contrôle",[334,499,500,501,504,505,508,509,512],{},"Utiliser un ",[325,502,503],{},"seed"," lorsque la règle tient dans un CSV. Utiliser un ",[325,506,507],{},"adapter"," lorsque le core attend une requête SQL locale. Utiliser un ",[325,510,511],{},"override"," lorsque la logique commune existe déjà mais doit être remplacée.",{"title":458,"searchDepth":514,"depth":514,"links":515},2,[516,517,518,519],{"id":357,"depth":514,"text":358},{"id":415,"depth":514,"text":416},{"id":466,"depth":514,"text":467},{"id":496,"depth":514,"text":497},"Choisir entre seed, adapter et override pour personnaliser localement.","md",null,{"author":524,"updatedAt":525},"hugo.juhel@sciance.ca","2026-06-01",true,{"title":103,"description":520},"bVXL3mW43Idr2m8CX2IGgWnba-yE2YYZC4laV75AaRk",[530,532],{"title":94,"path":95,"stem":96,"description":531,"children":-1},"Indiquer au dépôt local où lire les sources Snowflake.",{"title":107,"path":108,"stem":109,"description":533,"children":-1},"Utiliser des CSV versionnés pour encoder des règles simples.",1783953838215]