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

> Leia, adicione, substitua e remova as variáveis de ambiente de uma aplicação com client.apps.envs.

As variáveis de ambiente ficam em `client.apps.envs`. Todo método recebe o id da aplicação primeiro e retorna as variáveis da aplicação como um `dict[str, str]` simples.

<Note>
  Aplicações estáticas não têm variáveis de ambiente: todos os métodos respondem 400 `STATIC_APP_ENV_NOT_SUPPORTED`. Uma alteração entra em vigor no próximo [reinício](/pt-br/sdks/py/managing_application#iniciar-parar-e-reiniciar).
</Note>

## Lendo as variáveis

```python theme={"system"}
envs = client.apps.envs.get(app_id)

print(envs.get("NODE_ENV"))
```

## Adicionando ou atualizando variáveis

`envs.set(app_id, envs)` adiciona as chaves informadas e sobrescreve as que já existem. As outras variáveis são mantidas. Retorna todas as variáveis após a alteração.

```python theme={"system"}
envs = client.apps.envs.set(app_id, {
    "NODE_ENV": "production",
    "LOG_LEVEL": "info",
})
```

## Substituindo todas as variáveis

`envs.replace(app_id, envs)` substitui **todas** as variáveis pelo conjunto informado. As chaves que não estão no dict são removidas. `{}` remove todas.

```python theme={"system"}
client.apps.envs.replace(app_id, {"NODE_ENV": "production"})
```

## Removendo variáveis

`envs.delete(app_id, keys)` remove as chaves informadas e retorna as variáveis restantes. `keys` é uma lista (qualquer iterável de strings) ou uma única chave.

```python theme={"system"}
remaining = client.apps.envs.delete(app_id, ["LOG_LEVEL"])

# A single key also works
remaining = client.apps.envs.delete(app_id, "LOG_LEVEL")
```

## Limites e erros

| Status | Código                         | Quando                                                                     |
| ------ | ------------------------------ | -------------------------------------------------------------------------- |
| 400    | `STATIC_APP_ENV_NOT_SUPPORTED` | A aplicação é estática                                                     |
| 400    | `INVALID_ENV_CONTENT`          | As variáveis não são um objeto válido (ou, para `delete`, uma lista vazia) |
| 400    | `TOO_MANY_ENV_VARS`            | O resultado teria mais de 256 variáveis                                    |
| 400    | `ENV_NAME_TOO_LONG`            | Uma chave tem mais de 1024 caracteres                                      |
| 400    | `ENV_CONTENT_TOO_LONG`         | Um valor tem mais de 4096 caracteres                                       |
| 400    | `READ_FAILED`                  | O cluster não conseguiu ler as variáveis                                   |
