
# Variables d'environnement

Déclarez les variables d'environnement dont vos automatisations ont besoin dans le tableau de premier niveau `app.env[]`. Chaque entrée documente une variable, indique si elle est requise, et fournit une valeur par défaut optionnelle. À l'exécution, référencez une valeur partout où une prop de gabarit ou de connexion est acceptée avec `$env.VAR_NAME`.

```yaml
env:
  - { key: SLACK_WEBHOOK_URL, description: Slack incoming webhook URL }
  - { key: STRIPE_SECRET, description: Stripe API secret, required: true }
  - { key: REGION, description: Default region, required: false, default: eu-west }
```

## Propriétés des variables d'environnement

| Propriété     | Description                                                                                                                                       |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `key`         | Nom de la variable en snake*case majuscule (`^[A-Z]A-Z0-9*]\*$`, par ex. `API_KEY`). **Requis.**                                                  |
| `description` | À quoi sert la variable.                                                                                                                          |
| `required`    | Indique si la variable doit être définie (par défaut `true`). Lorsqu'elle est requise et non définie, la validation échoue au démarrage.          |
| `default`     | Valeur de repli utilisée lorsque la variable n'est pas définie. Lorsque `required` et `default` sont tous deux présents, `default` sert de repli. |

Les clés doivent être uniques dans toute l'application.

## Référencer des secrets

Utilisez `$env.VAR_NAME` dans les props d'action, les props de connexion et l'authentification de webhook :

```yaml
connections:
  - name: openai-key
    type: bearer
    props: { token: $env.OPENAI_API_KEY }

automations:
  - name: notify
    trigger: { type: record, table: orders, events: [create] }
    actions:
      - name: ping
        type: http
        operator: post
        props:
          url: $env.SLACK_WEBHOOK_URL
          body: { text: 'New order {{trigger.data.id}}' }
```

:::callout
**Les secrets ne sont jamais journalisés.** Les valeurs résolues depuis `$env` sont masquées des journaux d'exécution, des sorties d'étape affichées dans l'interface d'administration, et de l'API des exécutions. Stockez les informations d'identification dans `$env` (ou une connexion) plutôt que de les incorporer en ligne dans les props d'action.
:::

## Variables d'environnement opérateur frugales par défaut

Au-delà de `app.env` (que l'auteur du schéma déclare), l'empreinte d'exécution de Sovrium est régie par des variables d'environnement `ECO_*` contrôlées par l'opérateur (par ex. `ECO_IMAGE_FORMAT`, `ECO_AI_PROVIDER_PRECEDENCE`). Celles-ci ne font **pas** partie du schéma d'application — les opérateurs se désengagent, jamais ne s'engagent. Les actions IA et les transformations d'images invoquées depuis les automatisations honorent ces valeurs par défaut automatiquement. Voir [Vue d'ensemble de l'IA](/fr/docs/ai-overview) et [Transformations d'images](/fr/docs/image-transforms).

## Pages connexes

- [Connexions](/fr/docs/automation-connections) — blocs d'identification qui consomment `$env`.
- [Vue d'ensemble des actions](/fr/docs/automation-actions-overview) — où `$env` est interpolé.
- [HTTP et webhooks](/fr/docs/automation-http-actions) — secrets dans les en-têtes de requête.
