> ## 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.

# Variáveis de ambiente

> Liste, adicione, substitua e remova variáveis de ambiente de uma aplicação.

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

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

As variáveis de ambiente são modeladas como `squarecloud.EnvVars`, um simples `map[string]string`. Todos os métodos retornam o conjunto completo de variáveis após a operação — você sempre recebe um mapa atualizado de volta.

<Note>
  Limites: até 256 variáveis por aplicação, chaves com até 1024 caracteres e valores com até 4096 caracteres.
</Note>

## Listando as variáveis

```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)
}
```

## Adicionando ou atualizando variáveis

`api.SetApplicationEnvs(appID, envs)` **mescla** novas variáveis ao conjunto existente. Chaves não mencionadas na chamada são preservadas.

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

## Substituindo o conjunto inteiro

`api.ReplaceApplicationEnvs(appID, envs)` sobrescreve todas as variáveis.

<Warning>
  Tudo que não estiver na chamada é **removido**. Use `SetApplicationEnvs` quando quiser apenas adicionar ou atualizar — `ReplaceApplicationEnvs` apaga todas as variáveis que você deixar de fora.
</Warning>

```go theme={null}
envs, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
	"DATABASE_URL": "postgres://novo-host...",
})
if err != nil {
	panic(err)
}
// FEATURE_FLAG não existe mais
```

Passe um mapa vazio para apagar todas as variáveis:

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

## Removendo variáveis

`api.DeleteApplicationEnvs(appID, keys)` remove as chaves listadas. Chaves desconhecidas são ignoradas silenciosamente.

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