> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Variables d'environnement

> Listez, ajoutez, remplacez et supprimez les variables d'environnement d'une application.

```go theme={null}
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)
```

Les variables d'environnement sont modélisées par `squarecloud.EnvVars`, une simple `map[string]string`. Chaque méthode se résout avec l'ensemble complet des variables une fois l'opération terminée — vous récupérez donc toujours une map à jour.

<Note>
  Limites : jusqu'à 256 variables par application, clés jusqu'à 1024 caractères et valeurs jusqu'à 4096 caractères.
</Note>

## Lister les variables d'environnement

```go theme={null}
envs, err := api.GetApplicationEnvs("abc123def456abc123def456")
if err != nil {
	panic(err)
}

for key, value := range envs {
	fmt.Printf("%s=%s\n", key, value)
}
```

## Ajouter ou mettre à jour des variables

`api.SetApplicationEnvs(appID, envs)` **fusionne** les nouvelles variables dans l'ensemble existant. Les clés existantes absentes de l'appel sont conservées.

```go theme={null}
envs, err := api.SetApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://...",
	"FEATURE_FLAG": "true",
})
if err != nil {
	panic(err)
}
```

## Remplacer l'ensemble complet des variables

`api.ReplaceApplicationEnvs(appID, envs)` écrase toutes les variables.

<Warning>
  Tout ce qui n'est pas listé dans l'appel est **supprimé**. Utilisez `SetApplicationEnvs` lorsque vous voulez seulement ajouter ou mettre à jour — `ReplaceApplicationEnvs` supprime toutes les variables que vous omettez.
</Warning>

```go theme={null}
envs, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://new-host...",
})
if err != nil {
	panic(err)
}
// FEATURE_FLAG is now gone
```

Passez une map vide pour effacer toutes les variables :

```go theme={null}
_, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{})
```

## Supprimer des variables

`api.DeleteApplicationEnvs(appID, keys)` supprime les clés listées. Les clés inconnues sont ignorées silencieusement.

```go theme={null}
envs, err := api.DeleteApplicationEnvs("abc123def456abc123def456", []string{"FEATURE_FLAG"})
if err != nil {
	panic(err)
}
```
