> For the complete documentation index, see [llms.txt](https://cleyrop.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cleyrop.gitbook.io/docs/projet-data-and-ia/dataflow/creer-un-dataflow/ajouter-des-variables-denvironnement.md).

# Ajouter des variables d'environnement

Les **variables d’environnement** permettent de stocker des informations réutilisables dans vos Dataflows, comme des **URL**, **tokens**, ou **identifiants d’accès externes**. Elles facilitent la configuration de vos transformations sans exposer directement ces valeurs dans le code.

***

## Ajouter une variable d'environnement <a href="#ajouter-une-variable-denvironnement" id="ajouter-une-variable-denvironnement"></a>

Pour ajouter une variable d’environnement, cliquez sur *(x)* dans la barre d’actions de droit du Dataflow.

Une fenêtre s’ouvre vous permettant de :

* Créer une **variable globale** (commune à toutes les branches)
* Ou une **variable locale** (spécifique à la branche actuelle)

<figure><img src="/files/bmDvoAnPGWkARDjmhaxj" alt="" width="375"><figcaption></figcaption></figure>

Renseignez les champs suivants :

* **Nom** : identifiant unique de la variable
* **Description** : informations complémentaires
* **Valeur** : contenu de la variable

## Choisir le type de variables

#### Variables secrètes <a href="#variables-secretes" id="variables-secretes"></a>

* Certaines variables peuvent être marquées comme secrètes.
* Leur valeur est **chiffrée** et **non modifiable** après création

{% hint style="info" %}
Pour changer la valeur d’une variable secrète, il faut la **supprimer puis la recréer**.
{% endhint %}

#### Globale vs. Locale <a href="#variables-secretes" id="variables-secretes"></a>

**Variables globales**

* Créées dans la branche principale (main).
* Accessibles dynamiquement dans toutes les branches.
* La valeur de la variable est **copiée** à la création d’une nouvelle branche.
* Modifiables uniquement depuis la **branche** **main** (par le propriétaire du Dataflow).
* Si une variable locale porte le **même nom,** c’est la **valeur locale** qui sera utilisée lors de l’exécution.

**Variables locales**

* Créées dans une **branche spécifique** (y compris main).
* Visibles et modifiables uniquement dans leur branche.
* Peuvent avoir le **même nom** qu’une variable commune, ce sera la valeur locale qui sera utilisée
* Ne sont pas propagées vers d’autres branches.
* Peuvent être **modifiées ou supprimées** librement sans impacter les autres branches.

Lors de l’exécution d’un Dataflow :

1. Si une **variable locale** du même nom existe, elle est utilisée.
2. Sinon, la **variable globale** (définie dans main) est utilisée.\
   Aucune variable d’une autre branche n’est visible ni utilisée.

#### Exemple de comportement

Prenons deux **variables globales** définies :

* **dans la branche principale :**\
  Nom : API\_URL / Valeur : <https://api.production.exemple.com\\>
  Nom : REGION / Valeur : Occitanie<br>
* **dans une branche de travail (feature/test-api),** un utilisateur crée une variable locale du même nom\
  Nom : API\_URL / Valeur : <https://api.sandbox.exemple.com>

Lors de l’exécution de la branche de travail, :

* la variable API\_URL utilisée sera <https://api.sandbox.exemple.com>
* la variable REGION restera Occitanie

Si un utilisateur veut s'assurer que des **variables d'environnement de production ne seront pas utilisées** il peut les mettre en variable locale de la branche main.

## Modifier et supprimer

**Variables locales**

* Modifiables et supprimables à tout moment.
* Leur suppression **n’impacte pas** les autres branches.

**Variables globales**

* **Modifiables uniquement depuis la branche main**, par le **propriétaire du Dataflow**.
* Tout changement est **propagé immédiatement** à toutes les branches, sauf celles qui ont redéfini la variable localement.
* En cas de suppression :
  * La variable disparaît dans toutes les branches où elle n’a pas été redéfinie localement.
  * Une **alerte** est affichée pour signaler la suppression.
