<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="A Collection of Technical Documentations Related to the Self-Data Grandlyon Projects."> <meta name="author" content="Métropole de Lyon"> <link rel="icon" href="img/self_data_grdlyon.png"> <meta name="generator" content="mkdocs-1.3.0, mkdocs-material-8.2.11"> <title>Getting started - Self-Data Grandlyon - Technical Docs</title> <link rel="stylesheet" href="assets/stylesheets/main.8c5ef100.min.css"> <link rel="stylesheet" href="assets/stylesheets/palette.9647289d.min.css"> <meta name="theme-color" content="#ffffff"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> <link rel="stylesheet" href="stylesheets/extra.css"> <script>__md_scope=new URL(".",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script> </head> <body dir="ltr" data-md-color-scheme="dracula" data-md-color-primary="white" data-md-color-accent="red"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#_1" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <header class="md-header" data-md-component="header"> <nav class="md-header__inner md-grid" aria-label="Header"> <a href="." title="Self-Data Grandlyon - Technical Docs" class="md-header__button md-logo" aria-label="Self-Data Grandlyon - Technical Docs" data-md-component="logo"> <img src="img/self_data_grdlyon.png" alt="logo"> </a> <label class="md-header__button md-icon" for="__drawer"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class="md-header__title" data-md-component="header-title"> <div class="md-header__ellipsis"> <div class="md-header__topic"> <span class="md-ellipsis"> Self-Data Grandlyon - Technical Docs </span> </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> Getting started </span> </div> </div> </div> <label class="md-header__button md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class="md-search" data-md-component="search" role="dialog"> <label class="md-search__overlay" for="__search"></label> <div class="md-search__inner" role="search"> <form class="md-search__form" name="search"> <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> <label class="md-search__icon md-icon" for="__search"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class="md-search__options" aria-label="Search"> <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> </form> <div class="md-search__output"> <div class="md-search__scrollwrap" data-md-scrollfix> <div class="md-search-result" data-md-component="search-result"> <div class="md-search-result__meta"> Initializing search </div> <ol class="md-search-result__list"></ol> </div> </div> </div> </div> </div> <div class="md-header__source"> <a href="https://forge.grandlyon.com/web-et-numerique/llle_project/self-data-technical-doc" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class="md-source__repository"> Clone the Project </div> </a> </div> </nav> </header> <div class="md-container" data-md-component="container"> <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> <div class="md-tabs__inner md-grid"> <ul class="md-tabs__list"> <li class="md-tabs__item"> <a href="." class="md-tabs__link md-tabs__link--active"> Home </a> </li> <li class="md-tabs__item"> <a href="easycozy/" class="md-tabs__link"> Easy Cozy </a> </li> <li class="md-tabs__item"> <a href="ecolyo/" class="md-tabs__link"> Ecolyo </a> </li> <li class="md-tabs__item"> <a href="pilote/" class="md-tabs__link"> Pilote </a> </li> <li class="md-tabs__item"> <a href="konnectors/" class="md-tabs__link"> Konnectors </a> </li> <li class="md-tabs__item"> <a href="proxy/description/" class="md-tabs__link"> Proxy </a> </li> </ul> </div> </nav> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="." title="Self-Data Grandlyon - Technical Docs" class="md-nav__button md-logo" aria-label="Self-Data Grandlyon - Technical Docs" data-md-component="logo"> <img src="img/self_data_grdlyon.png" alt="logo"> </a> Self-Data Grandlyon - Technical Docs </label> <div class="md-nav__source"> <a href="https://forge.grandlyon.com/web-et-numerique/llle_project/self-data-technical-doc" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class="md-source__repository"> Clone the Project </div> </a> </div> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_1" type="checkbox" id="__nav_1" checked> <label class="md-nav__link" for="__nav_1"> Home <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Home" data-md-level="1"> <label class="md-nav__title" for="__nav_1"> <span class="md-nav__icon md-icon"></span> Home </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> Getting started <span class="md-nav__icon md-icon"></span> </label> <a href="." class="md-nav__link md-nav__link--active"> Getting started </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#installing-prerequisites" class="md-nav__link"> Installing prerequisites </a> </li> <li class="md-nav__item"> <a href="#usage" class="md-nav__link"> Usage </a> <nav class="md-nav" aria-label="Usage"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#node-nvm" class="md-nav__link"> Node NVM </a> </li> <li class="md-nav__item"> <a href="#wsl" class="md-nav__link"> WSL </a> <nav class="md-nav" aria-label="WSL"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#upgrade-to-wsl-2" class="md-nav__link"> Upgrade to WSL 2 </a> </li> <li class="md-nav__item"> <a href="#install-your-linux-distribution" class="md-nav__link"> Install your Linux distribution </a> </li> <li class="md-nav__item"> <a href="#setup-your-distribution" class="md-nav__link"> Setup your distribution </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#contributing-to-the-documentation" class="md-nav__link"> Contributing to the documentation </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="external_doc/" class="md-nav__link"> Additional Ressources </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" > <label class="md-nav__link" for="__nav_2"> Easy Cozy <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Easy Cozy" data-md-level="1"> <label class="md-nav__title" for="__nav_2"> <span class="md-nav__icon md-icon"></span> Easy Cozy </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="easycozy/" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item"> <a href="easycozy/config/" class="md-nav__link"> Configuration </a> </li> <li class="md-nav__item"> <a href="easycozy/commands/" class="md-nav__link"> Commands </a> </li> <li class="md-nav__item"> <a href="easycozy/known_errors/" class="md-nav__link"> Known errors </a> </li> <li class="md-nav__item"> <a href="easycozy/scripts/" class="md-nav__link"> Scripts </a> </li> <li class="md-nav__item"> <a href="easycozy/tips/" class="md-nav__link"> Tips </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" > <label class="md-nav__link" for="__nav_3"> Ecolyo <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Ecolyo" data-md-level="1"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> Ecolyo </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_2" type="checkbox" id="__nav_3_2" > <label class="md-nav__link" for="__nav_3_2"> Getting started <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Getting started" data-md-level="2"> <label class="md-nav__title" for="__nav_3_2"> <span class="md-nav__icon md-icon"></span> Getting started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/getting_started/launch_local_application/" class="md-nav__link"> Launch the application on local </a> </li> <li class="md-nav__item"> <a href="ecolyo/getting_started/launch_local_konnector/" class="md-nav__link"> Launch a konnector on local </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" > <label class="md-nav__link" for="__nav_3_3"> Project Architecture <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Project Architecture" data-md-level="2"> <label class="md-nav__title" for="__nav_3_3"> <span class="md-nav__icon md-icon"></span> Project Architecture </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/project_architecture/architecture/" class="md-nav__link"> Architecture </a> </li> <li class="md-nav__item"> <a href="ecolyo/project_architecture/libraries/" class="md-nav__link"> Libraries </a> </li> <li class="md-nav__item"> <a href="ecolyo/project_architecture/environments/" class="md-nav__link"> Environments </a> </li> <li class="md-nav__item"> <a href="ecolyo/project_architecture/doctypes/" class="md-nav__link"> Doctypes </a> </li> <li class="md-nav__item"> <a href="ecolyo/project_architecture/remote_doctypes/" class="md-nav__link"> Remote Doctypes </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_4" type="checkbox" id="__nav_3_4" > <label class="md-nav__link" for="__nav_3_4"> Application <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Application" data-md-level="2"> <label class="md-nav__title" for="__nav_3_4"> <span class="md-nav__icon md-icon"></span> Application </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/application/deploy/" class="md-nav__link"> Deploy </a> </li> <li class="md-nav__item"> <a href="ecolyo/application/description/" class="md-nav__link"> Description </a> </li> <li class="md-nav__item"> <a href="ecolyo/application/gitflow/" class="md-nav__link"> Gitflow </a> </li> <li class="md-nav__item"> <a href="ecolyo/application/mail/" class="md-nav__link"> Mail </a> </li> <li class="md-nav__item"> <a href="ecolyo/application/redux/" class="md-nav__link"> Redux </a> </li> <li class="md-nav__item"> <a href="ecolyo/application/release/" class="md-nav__link"> Release </a> </li> <li class="md-nav__item"> <a href="ecolyo/application/scaffolding/" class="md-nav__link"> Scaffolding </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_5" type="checkbox" id="__nav_3_5" > <label class="md-nav__link" for="__nav_3_5"> Services <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Services" data-md-level="2"> <label class="md-nav__title" for="__nav_3_5"> <span class="md-nav__icon md-icon"></span> Services </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/services/" class="md-nav__link"> Description </a> </li> <li class="md-nav__item"> <a href="ecolyo/services/monthly_report_notification/" class="md-nav__link"> Monthly report notification </a> </li> <li class="md-nav__item"> <a href="ecolyo/services/aggregator_usage_events/" class="md-nav__link"> Aggregator usage events </a> </li> <li class="md-nav__item"> <a href="ecolyo/services/consumption_alert/" class="md-nav__link"> Consumption Alert </a> </li> <li class="md-nav__item"> <a href="ecolyo/services/enedis_halfhour_monthly_analysis/" class="md-nav__link"> Enedis Halfhour Monthly Analysis </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_6" type="checkbox" id="__nav_3_6" > <label class="md-nav__link" for="__nav_3_6"> Functionalities <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Functionalities" data-md-level="2"> <label class="md-nav__title" for="__nav_3_6"> <span class="md-nav__icon md-icon"></span> Functionalities </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/functionalities/analysis/" class="md-nav__link"> Analysis </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/challenge/" class="md-nav__link"> Challenge </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/consumption/" class="md-nav__link"> Consumption </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/dacc/" class="md-nav__link"> Dacc </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/ecogesture/" class="md-nav__link"> Ecogesture </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/feedback/" class="md-nav__link"> Feedback </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/initialization/" class="md-nav__link"> Initialization </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/onboarding/" class="md-nav__link"> Onboarding </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/prices_calculation/" class="md-nav__link"> Price Calculation </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/profile_type/" class="md-nav__link"> Profile Type </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/terms/" class="md-nav__link"> Terms </a> </li> <li class="md-nav__item"> <a href="ecolyo/functionalities/usage_events_tracking/" class="md-nav__link"> Usage events tracking </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_7" type="checkbox" id="__nav_3_7" > <label class="md-nav__link" for="__nav_3_7"> Ecolyo-Agent <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Ecolyo-Agent" data-md-level="2"> <label class="md-nav__title" for="__nav_3_7"> <span class="md-nav__icon md-icon"></span> Ecolyo-Agent </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/introduction/" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_7_2" type="checkbox" id="__nav_3_7_2" > <label class="md-nav__link" for="__nav_3_7_2"> Getting started <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Getting started" data-md-level="3"> <label class="md-nav__title" for="__nav_3_7_2"> <span class="md-nav__icon md-icon"></span> Getting started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/getting_started/setup_your_environment/" class="md-nav__link"> Setup your environment </a> </li> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/getting_started/launch_local_application/" class="md-nav__link"> Launch the application on local </a> </li> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/getting_started/libraries/" class="md-nav__link"> Libraries </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_7_3" type="checkbox" id="__nav_3_7_3" > <label class="md-nav__link" for="__nav_3_7_3"> Functionalities <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Functionalities" data-md-level="3"> <label class="md-nav__title" for="__nav_3_7_3"> <span class="md-nav__icon md-icon"></span> Functionalities </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/functionalities/general/" class="md-nav__link"> General </a> </li> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/functionalities/authentication/" class="md-nav__link"> Authentication </a> </li> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/functionalities/routes/" class="md-nav__link"> Routes </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_7_4" type="checkbox" id="__nav_3_7_4" > <label class="md-nav__link" for="__nav_3_7_4"> Development <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Development" data-md-level="3"> <label class="md-nav__title" for="__nav_3_7_4"> <span class="md-nav__icon md-icon"></span> Development </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/development/deploy/" class="md-nav__link"> Deploy </a> </li> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/development/handle_assets/" class="md-nav__link"> Handle assets </a> </li> <li class="md-nav__item"> <a href="ecolyo/ecolyo-agent/development/backup/" class="md-nav__link"> Backup </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" > <label class="md-nav__link" for="__nav_4"> Pilote <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Pilote" data-md-level="1"> <label class="md-nav__title" for="__nav_4"> <span class="md-nav__icon md-icon"></span> Pilote </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" > <label class="md-nav__link" for="__nav_4_2"> Pilote - TS - Back <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Pilote - TS - Back" data-md-level="2"> <label class="md-nav__title" for="__nav_4_2"> <span class="md-nav__icon md-icon"></span> Pilote - TS - Back </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2_1" type="checkbox" id="__nav_4_2_1" > <label class="md-nav__link" for="__nav_4_2_1"> Application <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Application" data-md-level="3"> <label class="md-nav__title" for="__nav_4_2_1"> <span class="md-nav__icon md-icon"></span> Application </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Back/application/deploy/" class="md-nav__link"> Deploy </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2_2" type="checkbox" id="__nav_4_2_2" > <label class="md-nav__link" for="__nav_4_2_2"> Functionalities <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Functionalities" data-md-level="3"> <label class="md-nav__title" for="__nav_4_2_2"> <span class="md-nav__icon md-icon"></span> Functionalities </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Back/functionalities/routes/" class="md-nav__link"> Routes </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2_3" type="checkbox" id="__nav_4_2_3" > <label class="md-nav__link" for="__nav_4_2_3"> Getting Started <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Getting Started" data-md-level="3"> <label class="md-nav__title" for="__nav_4_2_3"> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Back/getting_started/launch_local_application/" class="md-nav__link"> Launch the application on local </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Back/getting_started/setup_your_environment/" class="md-nav__link"> Setup your environment </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Back/project_architecture/architecture/" class="md-nav__link"> Project Architecture </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" > <label class="md-nav__link" for="__nav_4_3"> Pilote - TS - Front <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Pilote - TS - Front" data-md-level="2"> <label class="md-nav__title" for="__nav_4_3"> <span class="md-nav__icon md-icon"></span> Pilote - TS - Front </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3_1" type="checkbox" id="__nav_4_3_1" > <label class="md-nav__link" for="__nav_4_3_1"> Application <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Application" data-md-level="3"> <label class="md-nav__title" for="__nav_4_3_1"> <span class="md-nav__icon md-icon"></span> Application </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Front/application/deploy/" class="md-nav__link"> Deploy </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3_2" type="checkbox" id="__nav_4_3_2" > <label class="md-nav__link" for="__nav_4_3_2"> Functionalities <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Functionalities" data-md-level="3"> <label class="md-nav__title" for="__nav_4_3_2"> <span class="md-nav__icon md-icon"></span> Functionalities </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Front/functionalities/functions/" class="md-nav__link"> Routes </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3_3" type="checkbox" id="__nav_4_3_3" > <label class="md-nav__link" for="__nav_4_3_3"> Getting Started <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Getting Started" data-md-level="3"> <label class="md-nav__title" for="__nav_4_3_3"> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20TS%20-%20Front/getting_started/launch_local_application/" class="md-nav__link"> Launch the application on local </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4" type="checkbox" id="__nav_4_4" > <label class="md-nav__link" for="__nav_4_4"> Pilote - Usager <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Pilote - Usager" data-md-level="2"> <label class="md-nav__title" for="__nav_4_4"> <span class="md-nav__icon md-icon"></span> Pilote - Usager </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4_1" type="checkbox" id="__nav_4_4_1" > <label class="md-nav__link" for="__nav_4_4_1"> Application <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Application" data-md-level="3"> <label class="md-nav__title" for="__nav_4_4_1"> <span class="md-nav__icon md-icon"></span> Application </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/application/deploy/" class="md-nav__link"> Deploy </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/application/doctypes/" class="md-nav__link"> Doctypes </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/application/gitflow/" class="md-nav__link"> Gitflow </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/application/scaffolding/" class="md-nav__link"> Scaffolding </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/application/services/" class="md-nav__link"> Services </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/application/store/" class="md-nav__link"> Store </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4_2" type="checkbox" id="__nav_4_4_2" > <label class="md-nav__link" for="__nav_4_4_2"> Functionalities <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Functionalities" data-md-level="3"> <label class="md-nav__title" for="__nav_4_4_2"> <span class="md-nav__icon md-icon"></span> Functionalities </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/functionalities/appointments/" class="md-nav__link"> Appointments </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/functionalities/contact/" class="md-nav__link"> Contact </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/functionalities/document/" class="md-nav__link"> Document </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/functionalities/setting/" class="md-nav__link"> Settings </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/functionalities/cozy-registry/" class="md-nav__link"> Cozy Registry </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4_3" type="checkbox" id="__nav_4_4_3" > <label class="md-nav__link" for="__nav_4_4_3"> Getting Started <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Getting Started" data-md-level="3"> <label class="md-nav__title" for="__nav_4_4_3"> <span class="md-nav__icon md-icon"></span> Getting Started </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/getting_started/launch_local_application/" class="md-nav__link"> Launch local application </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/getting_started/launch_local_doctypes/" class="md-nav__link"> Launch local doctypes </a> </li> <li class="md-nav__item"> <a href="pilote/Pilote%20-%20Usager/getting_started/launch_local_services/" class="md-nav__link"> Launch local services </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" > <label class="md-nav__link" for="__nav_5"> Konnectors <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Konnectors" data-md-level="1"> <label class="md-nav__title" for="__nav_5"> <span class="md-nav__icon md-icon"></span> Konnectors </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="konnectors/" class="md-nav__link"> Introduction </a> </li> <li class="md-nav__item"> <a href="konnectors/enedis/" class="md-nav__link"> Enedis </a> </li> <li class="md-nav__item"> <a href="konnectors/grdf/" class="md-nav__link"> GRDF </a> </li> <li class="md-nav__item"> <a href="konnectors/egl/" class="md-nav__link"> Eau du Grand Lyon </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" > <label class="md-nav__link" for="__nav_6"> Proxy <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Proxy" data-md-level="1"> <label class="md-nav__title" for="__nav_6"> <span class="md-nav__icon md-icon"></span> Proxy </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="proxy/description/" class="md-nav__link"> Description </a> </li> <li class="md-nav__item"> <a href="proxy/monitoring/" class="md-nav__link"> Monitoring </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6_3" type="checkbox" id="__nav_6_3" > <label class="md-nav__link" for="__nav_6_3"> Use cases <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" aria-label="Use cases" data-md-level="2"> <label class="md-nav__title" for="__nav_6_3"> <span class="md-nav__icon md-icon"></span> Use cases </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="proxy/use_cases/enedis/" class="md-nav__link"> Enedis </a> </li> <li class="md-nav__item"> <a href="proxy/use_cases/grdfadict/" class="md-nav__link"> Grdf Adict </a> </li> </ul> </nav> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#installing-prerequisites" class="md-nav__link"> Installing prerequisites </a> </li> <li class="md-nav__item"> <a href="#usage" class="md-nav__link"> Usage </a> <nav class="md-nav" aria-label="Usage"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#node-nvm" class="md-nav__link"> Node NVM </a> </li> <li class="md-nav__item"> <a href="#wsl" class="md-nav__link"> WSL </a> <nav class="md-nav" aria-label="WSL"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#upgrade-to-wsl-2" class="md-nav__link"> Upgrade to WSL 2 </a> </li> <li class="md-nav__item"> <a href="#install-your-linux-distribution" class="md-nav__link"> Install your Linux distribution </a> </li> <li class="md-nav__item"> <a href="#setup-your-distribution" class="md-nav__link"> Setup your distribution </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#contributing-to-the-documentation" class="md-nav__link"> Contributing to the documentation </a> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <h1 id="_1"></h1> <p><img alt="selfdata" class="center" src="/img/docshome.png" /></p> <p>This documentation covers the technical aspects of projects developed by the Grandlyon in cooperation with <a href="https://cozy.io/fr/">Cozy Cloud</a>.</p> <h2 id="installing-prerequisites">Installing prerequisites</h2> <p>In order to work with a self-data environment, there are a couple of prerequisites. Don't forget to take a look at our general development guidelines <a href="https://forge.grandlyon.com/web-et-numerique/wiki_web_num">wiki</a> first.</p> <table> <thead> <tr> <th>Name</th> <th>Required</th> <th>Details</th> </tr> </thead> <tbody> <tr> <td><a href="https://nodejs.org/en/download/">Node</a></td> <td>Yes</td> <td>Node 16 must be installed as it is the version that runs on the official cozystack.</td> </tr> <tr> <td><a href="https://classic.yarnpkg.com/en/docs/install">Yarn</a></td> <td>Yes</td> <td>Yarn is our projects package manager.</td> </tr> <tr> <td><a href="https://www.docker.com/get-started">Docker</a></td> <td>Yes</td> <td>See <a href="">cozystack</a> for more information.</td> </tr> <tr> <td><a href="https://docs.docker.com/compose/install/">Docker-compose</a></td> <td>Yes</td> <td></td> </tr> <tr> <td><a href=".#wsl">WSL</a></td> <td>No</td> <td>Required for windows users.</td> </tr> </tbody> </table> <h2 id="usage">Usage</h2> <h3 id="node-nvm">Node NVM</h3> <p>You might need to manage several NodeJS versions on the same computer when working on different projects. To manage it properly, you can use the <code>nvm</code> package on windows or <code>n</code> package on linux.</p> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>yarn global add nvm </code></pre></div> <div class="tabbed-set tabbed-alternate" data-tabs="1:4"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Install a version</label><label for="__tabbed_1_2">See installed node versions</label><label for="__tabbed_1_3">Switch to a specific version</label><label for="__tabbed_1_4">Check your current version</label></div> <div class="tabbed-content"> <div class="tabbed-block"> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>nvm install X.X.X </code></pre></div> </div> <div class="tabbed-block"> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>nvm list </code></pre></div> </div> <div class="tabbed-block"> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>nvm use X.X.X </code></pre></div> </div> <div class="tabbed-block"> <div class="highlight"><pre><span></span><code><span class="gp">$ </span>node -v </code></pre></div> </div> </div> </div> <h3 id="wsl">WSL</h3> <p>First open Powershell as administrator and launch the following command:</p> <div class="highlight"><pre><span></span><code><span class="n">dism</span><span class="p">.</span><span class="n">exe</span> <span class="p">/</span><span class="n">online</span> <span class="p">/</span><span class="nb">enable-feature</span> <span class="p">/</span><span class="n">featurename</span><span class="p">:</span><span class="n">Microsoft-Windows-Subsystem-Linux</span> <span class="p">/</span><span class="n">all</span> <span class="p">/</span><span class="n">norestart</span> </code></pre></div> <p>This command will install WSL on your computer. After this, you'll need to <mark><strong>reboot</strong></mark>.</p> <h4 id="upgrade-to-wsl-2">Upgrade to WSL 2</h4> <p>If you're on WSL 1 and want to upgrade to WSL 2, here is the process:</p> <ol> <li> <p>Open an elevated powershell and paste the following command: <div class="highlight"><pre><span></span><code><span class="n">dism</span><span class="p">.</span><span class="n">exe</span> <span class="p">/</span><span class="n">online</span> <span class="p">/</span><span class="nb">enable-feature</span> <span class="p">/</span><span class="n">featurename</span><span class="p">:</span><span class="n">Microsoft-Windows-Subsystem-Linux</span> <span class="p">/</span><span class="n">all</span> <span class="p">/</span><span class="n">norestart</span> </code></pre></div></p> </li> <li> <p>Then, enable the Virtual Machine Platform optional feature. <div class="highlight"><pre><span></span><code><span class="n">dism</span><span class="p">.</span><span class="n">exe</span> <span class="p">/</span><span class="n">online</span> <span class="p">/</span><span class="nb">enable-feature</span> <span class="p">/</span><span class="n">featurename</span><span class="p">:</span><span class="n">VirtualMachinePlatform</span> <span class="p">/</span><span class="n">all</span> <span class="p">/</span><span class="n">norestart</span> </code></pre></div></p> </li> <li> <p>Now restart your computer to apply these features. Once it's done, open an elevated powershell again and set the default wsl version to 2 <div class="highlight"><pre><span></span><code><span class="gp">$ </span>wsl --set-default-version <span class="m">2</span> </code></pre></div></p> </li> </ol> <div class="admonition warning"> <p class="admonition-title">You might see this message after running the command above</p> <p>WSL 2 requires an update to its kernel component. For information please visit <a href="https://aka.ms/wsl2kernel">wsl2kernel</a>.</p> </div> <p>If you install the MSI from <a href="https://aka.ms/wsl2kernel">wsl2kernel</a>. Once you have the kernel installed, please run <code>wsl --set-default-version 2</code> again and it should complete successfully without showing the message.</p> <h4 id="install-your-linux-distribution">Install your Linux distribution</h4> <p>After reboot, open the microsoft store and install the distribution of your choice, for instance: <mark>Ubuntu 20.04 lts</mark>. Once it's done, open it and after a few minutes you'll be prompted for the creation of a user account.</p> <p>To make sure it's correctly installed and working, you can open Powershell and paste the following command :</p> <div class="highlight"><pre><span></span><code><span class="n">wsl</span><span class="p">.</span><span class="n">exe</span> <span class="p">-</span><span class="n">-list</span> <span class="p">-</span><span class="n">-running</span> </code></pre></div> <p>Now you should see the name of your distribution in the list.</p> <h4 id="setup-your-distribution">Setup your distribution</h4> <ol> <li> <p>Start updating the packages list by typing: <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo apt update </code></pre></div></p> </li> <li> <p>Install nodejs using the apt package manager <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo apt install </code></pre></div></p> </li> <li> <p>To verify the Installation execute the following command: <div class="highlight"><pre><span></span><code><span class="gp">$ </span>nodejs --version </code></pre></div></p> </li> <li> <p>To be able to download npm package, you need to install the npm, the Node.js package manager. To do so type: <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo apt install npm </code></pre></div></p> </li> <li> <p>To verify the npm Install check using the command: <div class="highlight"><pre><span></span><code><span class="gp">$ </span>npm --version </code></pre></div></p> </li> <li> <p>To Download and Setup Yarn <div class="highlight"><pre><span></span><code><span class="gp">$ </span>sudo apt install yarn </code></pre></div></p> </li> <li> <p>To check the installed version of Yarn: <div class="highlight"><pre><span></span><code><span class="gp">$ </span>yarn --version </code></pre></div></p> </li> </ol> <p>Now you'll probably be in version 0.23+git, if so you'll have to upgrade to 1.22 to make everything work properly. In order to achieve this, you'll have to launch several commands:</p> <div class="highlight"><pre><span></span><code>sudo apt-get remove cmdtest sudo apt autoremove sudo apt-get update sudo apt install curl -y curl -o- -L https://yarnpkg.com/install.sh | bash source ~/.bashrc </code></pre></div> <p>Now you should be at least in version <mark>^1.22</mark> and ready to go on.</p> <h2 id="contributing-to-the-documentation">Contributing to the documentation</h2> <p>To install and run the documentation on your laptop, follow the steps in the <a href="https://forge.grandlyon.com/web-et-numerique/llle_project/self-data-technical-doc">README</a>. Then:</p> <ul> <li>Create a branch for your change</li> <li>Add documentation pages to <code>docs</code>, and supporting assets to <code>img</code>.</li> <li>Write some <a href="https://guides.github.com/features/mastering-markdown/">markdown</a></li> <li>Submit a merge request</li> </ul> <p><img alt="europe" class="inline-center-left" src="/img/partners/europe.png" /> <img alt="auvergne" src="/img/partners/auvergne.png" /></p> <hr> <div class="md-source-file"> <small> Last update: <span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">April 28, 2022</span> </small> </div> </article> </div> </div> <a href="#" class="md-top md-icon" data-md-component="top" data-md-state="hidden"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> Back to top </a> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer"> <a href="external_doc/" class="md-footer__link md-footer__link--next" aria-label="Next: Additional Ressources" rel="next"> <div class="md-footer__title"> <div class="md-ellipsis"> <span class="md-footer__direction"> Next </span> Additional Ressources </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": ".", "features": ["navigation.tabs", "navigation.top", "navigation.instant"], "search": "assets/javascripts/workers/search.2a1c317c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script> <script src="assets/javascripts/bundle.748e2769.min.js"></script> </body> </html>