# Azion CLI waf-exceptions

Os comandos `waf-exceptions` da Azion CLI criam, listam, descrevem, atualizam e excluem as [exceções](/pt-br/documentacao/plataforma/firewall/waf/custom-allowed-rules/) de um Web Application Firewall (WAF). Uma exceção isenta uma parte de uma requisição de uma regra do WAF. Todo comando recebe o `--waf-id` do WAF que guarda as exceções. As opções que todo comando aceita, como `--format`, `--out` e `-y`, estão em [Opções globais](/pt-br/documentacao/devtools/cli/globals/).

---

## Criar

`azion create waf-exceptions` cria uma exceção em um WAF a partir de um arquivo JSON:

```bash
azion create waf-exceptions [flags]
```

| Flag           | Curta | Tipo   | Padrão   | Descrição                                                                                                                                                                                                                                                                                     |
| -------------- | ----- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--active`     | —     | string | `"true"` | Ativa (`true`) ou desativa (`false`) a exceção.                                                                                                                                                                                                                                               |
| `--conditions` | —     | string | —        | Condições da exceção, em formato JSON.                                                                                                                                                                                                                                                        |
| `--file`       | —     | string | —        | **Obrigatório.** Caminho de um arquivo JSON com os atributos da exceção. Use `-` para ler o JSON da entrada padrão. Sem ela, o comando falha com `Error: failed to create the WAF Exception: ["Ensure this field has at least 1 elements."]`, qualquer que seja o conteúdo de `--conditions`. |
| `--name`       | —     | string | —        | Nome da exceção.                                                                                                                                                                                                                                                                              |
| `--operator`   | —     | string | —        | Operador que compara as condições: `regex` ou `contains`.                                                                                                                                                                                                                                     |
| `--path`       | —     | string | —        | Caminho ao qual a exceção se aplica.                                                                                                                                                                                                                                                          |
| `--rule-id`    | —     | int    | —        | ID da regra do WAF à qual a exceção se aplica.                                                                                                                                                                                                                                                |
| `--waf-id`     | —     | int    | —        | ID do WAF que guarda a exceção.                                                                                                                                                                                                                                                               |

Este arquivo descreve uma exceção ativa chamada `my-exception`. Ela isenta o parâmetro de query string chamado `docs` da regra `1000` do WAF nas requisições cujo caminho contém `/my-path`:

```json
{
  "name": "my-exception",
  "rule_id": 1000,
  "path": "/my-path",
  "operator": "contains",
  "active": true,
  "conditions": [
    {
      "match": "specific_query_string_name",
      "name": "docs"
    }
  ]
}
```

Este comando cria a exceção a partir do arquivo `exception.json` no WAF com ID `12347`:

```bash
azion create waf-exceptions --waf-id 12347 --file exception.json
```

O comando imprime o ID da exceção:

```text
Created WAF Exception with ID 123486
```

---

## Listar

`azion list waf-exceptions` lista as exceções de um WAF, 50 por página:

```bash
azion list waf-exceptions [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                                                                  |
| ------------- | ----- | ------ | ------ | ---------------------------------------------------------------------------------------------------------- |
| `--details`   | —     | —      | —      | Adiciona as colunas `LAST EDITOR` e `LAST MODIFIED` às colunas `ID`, `NAME`, `RULE ID`, `PATH` e `ACTIVE`. |
| `--filter`    | —     | string | —      | Nome pelo qual filtrar a lista.                                                                            |
| `--order-by`  | —     | string | —      | Campo pelo qual ordenar a lista.                                                                           |
| `--page`      | —     | int    | `1`    | Número da página a retornar.                                                                               |
| `--page-size` | —     | int    | `50`   | Número de exceções em cada página.                                                                         |
| `--waf-id`    | —     | int    | —      | ID do WAF cujas exceções o comando lista.                                                                  |

Este comando lista as exceções do WAF com ID `12347`:

```bash
azion list waf-exceptions --waf-id 12347
```

O comando imprime uma linha por exceção:

```text
ID      NAME          RULE ID         PATH      ACTIVE
123486  my-exception  86463130383232  /my-path  true
```

---

## Descrever

`azion describe waf-exceptions` imprime as configurações de uma exceção:

```bash
azion describe waf-exceptions [flags]
```

| Flag             | Curta | Tipo | Padrão | Descrição                       |
| ---------------- | ----- | ---- | ------ | ------------------------------- |
| `--exception-id` | —     | int  | —      | ID da exceção a descrever.      |
| `--waf-id`       | —     | int  | —      | ID do WAF que guarda a exceção. |

Este comando descreve a exceção com ID `123486` no WAF com ID `12347`:

```bash
azion describe waf-exceptions --waf-id 12347 --exception-id 123486
```

O comando imprime a regra, o caminho, o operador e o estado da exceção:

```text
ID:              123486
Rule ID:         1000
Name:            my-exception
Path:            "/my-path"
Operator:        contains
Active:          true
Last Editor:     you@example.com
Last Modified:   "2026-01-01T12:00:00.490688Z"
```

Com `--format json`, o comando imprime o objeto completo: `active`, `conditions`, `id`, `last_editor`, `last_modified`, `name`, `operator`, `path` e `rule_id`. O array `conditions` aparece somente na saída JSON.

---

## Atualizar

`azion update waf-exceptions` altera o nome, a regra, o caminho, as condições ou o estado de uma exceção:

```bash
azion update waf-exceptions [flags]
```

| Flag             | Curta | Tipo   | Padrão   | Descrição                                                                                         |
| ---------------- | ----- | ------ | -------- | ------------------------------------------------------------------------------------------------- |
| `--active`       | —     | string | `"true"` | Ativa (`true`) ou desativa (`false`) a exceção.                                                   |
| `--conditions`   | —     | string | —        | Condições da exceção, em formato JSON.                                                            |
| `--exception-id` | —     | int    | —        | ID da exceção a atualizar.                                                                        |
| `--file`         | —     | string | —        | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão. |
| `--name`         | —     | string | —        | Novo nome da exceção.                                                                             |
| `--operator`     | —     | string | —        | Operador que compara as condições: `regex` ou `contains`.                                         |
| `--path`         | —     | string | —        | Caminho ao qual a exceção se aplica.                                                              |
| `--rule-id`      | —     | int    | —        | ID da regra do WAF à qual a exceção se aplica.                                                    |
| `--waf-id`       | —     | int    | —        | ID do WAF que guarda a exceção.                                                                   |

---

## Excluir

`azion delete waf-exceptions` exclui uma exceção de um WAF:

```bash
azion delete waf-exceptions [flags]
```

| Flag             | Curta | Tipo | Padrão | Descrição                       |
| ---------------- | ----- | ---- | ------ | ------------------------------- |
| `--exception-id` | —     | int  | —      | ID da exceção a excluir.        |
| `--waf-id`       | —     | int  | —      | ID do WAF que guarda a exceção. |

---

## Usar um arquivo JSON

`azion create waf-exceptions` lê os atributos de uma exceção de um arquivo JSON com `--file`. O arquivo carrega `name`, `rule_id`, `path`, `operator`, `active` e `conditions`, e o ID do WAF vai na linha de comando com `--waf-id`.

Cada entrada de `conditions` recebe um valor `match`, que nomeia a parte da requisição que a exceção cobre. O valor `specific_query_string_name` recebe também uma chave `name`, que guarda o nome do parâmetro de query string. Para cada valor que `match` aceita e as chaves que cada um recebe, consulte [Exceções](/pt-br/documentacao/plataforma/firewall/waf/custom-allowed-rules/#match-zones).

Quando a plataforma recusa uma condição, o erro que o comando imprime não nomeia o campo. Um valor `match` que a plataforma não aceita falha com este erro:

```text
Error: failed to create the WAF Exception: ["\"any_query_string\" is not a valid choice."]
```

Uma condição `specific_query_string_name` que carrega `value` no lugar de `name` falha com `Error: failed to create the WAF Exception: ["This field is required."]`. Para ver qual campo a plataforma recusou, adicione `--debug` e mantenha a linha que carrega o erro detalhado:

```bash
azion create waf-exceptions --waf-id 12347 --file exception.json --debug 2>&1 | grep 'Detailed error message'
```

A linha nomeia o campo pelo seu JSON pointer, depois de `Source:`:

```text
2026-01-01T12:00:00.320-0300	DEBUG		{"Detailed error message from API": "Error: Required Field - Source: /data/conditions/0/name - Message: This field is required.\n"}
```

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Exceções](/pt-br/documentacao/plataforma/firewall/waf/custom-allowed-rules.md): Os campos de uma exceção, as match zones que suas condições aceitam e os erros que a plataforma retorna.
- [Azion CLI waf](/pt-br/documentacao/devtools/cli/recursos/waf.md): Os comandos que criam e gerenciam o WAF ao qual uma exceção pertence.
- [Azion CLI firewall](/pt-br/documentacao/devtools/cli/recursos/firewall.md): Os comandos que criam e gerenciam o firewall no qual um WAF é executado.
