# Base64

O **Base64** realiza a codificação e a decodificação de/para campos, *payloads* e arquivos no formato base64 *string*.

## Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por [expressões *Double Braces*](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Operation</strong></td><td>Define qual operação será executada: <em><strong>Encode Fields</strong></em>, <em><strong>Encode Payload</strong></em>, <em><strong>Encode File</strong></em>, <em><strong>Decode Fields</strong></em>, <em><strong>Decode Payload</strong></em> e <em><strong>Decode File</strong></em>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>JSON Fields</strong></td><td>Caminho do JSON a ser codificado ou decodificado. Os campos precisam ser separados por vírgula (exemplo: field1,field2). Essa opção é válida somente para as operações <em><strong>Encode Fields</strong></em> e <em><strong>Decode Fields</strong></em>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Preserve Original</strong></td><td>Se ativada, a opção preserva campos originais e modifica prefixos adicionando o caractere <em>underline</em> <code>(_)</code>.</td><td>N/A</td><td>Booleano</td></tr><tr><td><strong>Payload</strong></td><td>Campo para informar diretamente o <em>payload</em> que terá o seu conteúdo codificado/decodificado (exemplo: <code>body, data, {{ message.payload }}</code>). Essa opção é válida somente para as operações <em><strong>Encode Payload</strong></em> e <em><strong>Decode Payload</strong></em>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Result As File</strong></td><td>Se ativada, a opção salva o resultado da codificação ou da decodificação em um arquivo. Essa opção é válida somente para as operações <em><strong>Encode Payload</strong></em> e <em><strong>Decode Payload</strong></em>.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>File Name</strong></td><td>Nome do arquivo a ser comprimido.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Output File Name</strong></td><td>Nome do arquivo de saída após a codificação/decodificação de um arquivo. Essa opção é válida somente para as operações <em><strong>Encode File</strong></em> e <em><strong>Decode File</strong></em>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Is Binary</strong></td><td>Se ativada, a opção irá esperar o <em>payload</em> como um arquivo binário. Essa opção é válida somente para a operação <em><strong>Decode Payload</strong></em>.</td><td>N/A</td><td>Booleano</td></tr><tr><td><strong>Fail On Error</strong></td><td>Se a opção estiver ativada, a execução do <em>pipeline</em> com erro será interrompida; do contrário, a execução do <em>pipeline</em> continua, mas o resultado mostrará um valor falso para a propriedade "success".</td><td>N/A</td><td>Booleano</td></tr></tbody></table>

{% hint style="warning" %}
Os campos **File Name** e **Output File Name** devem receber valores diferentes. Caso os valores sejam iguais, um erro será produzido (uma exceção).
{% endhint %}

## Fluxo de mensagens

### Entrada

Para as operações ***Encode Fields*** e ***Decode Fields***, o componente espera receber um JSON contendo os campos configurados na propriedade **JSON Fields**.

**Exemplo:**

Configuração:

```
JSON Field = field1,field2
```

O JSON esperado deve conter pelo menos:

```
{   
   "field1": "SOMETHING",   
   "field2": "SOMETHING"
}
```

Para as operações ***Encode Payload*** e ***Decode Payload***, você deve configurar o campo **Payload** para poder codificar/decodificar.

**Exemplo:**

Configuração:

```
Payload = {{ message.field1 }}
```

O JSON esperado deve conter pelo menos:

```
{   
   "field1": "SOMETHING"
}
```

Para as operações ***Encode File*** e ***Decode File***, você deve configurar o arquivo que será codificado/decodificado e o arquivo resultante dessa operação.

**Exemplo:**

```
File Name = input.csv
Output File Name = outputfile.csv
```

### Saída

Para as operações ***Encode Fields*** e ***Decode Fields***:

```
{   
   "field1": "SOMETHING ENCODED/DECODED",   
   "field2": "SOMETHING ENCODED/DECODED",   
   "_field1": "ORIGINAL VALUE",   
   "_field2": "ORIGINAL VALUE"
}
```

Para as operações ***Encode Fields*** e ***Decode Fields***, caso a mensagem de entrada seja preservada:

```
{   
   "field1": "SOMETHING ENCODED/DECODED",   
   "field2": "SOMETHING ENCODED/DECODED",   
   "_field1": "ORIGINAL VALUE",   
   "_field2": "ORIGINAL VALUE",
}
```

Para as operações ***Encode Payload*** e ***Decode Payload***, caso a saída seja um arquivo:

```
{   
   "success": "true",   
   "fileName": "file.csv"
}
```

Para as operações ***Encode Payload*** e ***Decode Payload***, caso a saída seja uma *string*:

```
{   
   "success": "true",   
   "result": "SOMETHING ENCODED/DECODED"
}
```

Para as operações ***Encode File*** e ***Decode File***:

```
{   
   "success": "true",   
   "fileName": "file.csv",   
   "outputFileName": "file.csv"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/tools/base64.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
