# Boas práticas para a construção de um pipeline

Antes de publicar um pipeline, revise estes pontos-chave para proteger seus fluxos de integração:

## **Use chaves de API**

Se o seu pipeline incluir os triggers [**HTTP**](/documentation/connectors-and-triggers/pt-br/triggers/web-protocols/http.md), [**REST**](/documentation/connectors-and-triggers/pt-br/triggers/web-protocols/rest.md) ou [**HTTP File**](/documentation/connectors-and-triggers/pt-br/triggers/web-protocols/http-file.md), os serviços criados ficarão expostos à internet. Para aumentar a segurança, a Digibee Integration Platform exige que esses triggers sejam usados com uma chave de API por padrão. Saiba [como criar uma chave de API](/documentation/developer-guide/pt-br/platform-administration/settings/api-keys-consumers.md).

Use uma chave de API separada para cada sistema que consome uma API e restrinja o acesso apenas aos pipelines necessários.

Para maior segurança, recomendamos implementar a autenticação [JWT (JSON Web Token)](/documentation/connectors-and-triggers/pt-br/connectors/security/digibee-jwt/digibee-jwt-implementation.md).

{% hint style="danger" %}
**Exceção:** Se precisar publicar um pipeline com esses triggers sem uma chave de API (não recomendado), solicite via chat usando o seguinte modelo:

*Solicito a inclusão dos seguintes pipelines na whitelist para não exigir chave de API.*

* *Nome do realm*
* *Nomes dos pipelines a serem incluídos na whitelist do realm*
* *Motivo da solicitação*
  {% endhint %}

## **Armazene nomes de usuário e senhas com segurança**

Nunca exponha credenciais de login diretamente na configuração dos conectores. Em vez disso, armazene-as na página [**Contas**](/documentation/developer-guide/pt-br/development-cycle/build-overview/accounts.md) e faça referência a elas no formulário de configuração do conector.

## **Oculte campos sensíveis**

Configure os campos sensíveis nas [configurações do pipeline](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/how-to-create-a-pipeline.md) ou na [Política de Campos Sensíveis](/documentation/developer-guide/pt-br/platform-administration/governance/policies/security/sensitive-fields.md) para ocultá-los automaticamente nos logs e mensagens. Isso evita a exposição de dados durante a integração, reduzindo riscos de segurança. Os campos ocultados são substituídos por "\*\*\*".

<figure><img src="/files/C5sp2Os1v4NunDj9N0on" alt=""><figcaption></figcaption></figure>

## **Use HTTPS em vez de HTTP**

Sempre que possível, use **HTTPS** para chamadas a serviços externos para aumentar a segurança.

## **Criptografe e limpe os dados do Object Store**

* **Criptografe** dados sensíveis armazenados em um [**Object Store**](/documentation/connectors-and-triggers/pt-br/connectors/structured-data/object-store.md) usando conectores de criptografia.
* **Limpe** periodicamente o **Object Store**. Ele é um banco de dados auxiliar para o desenvolvimento de fluxos de integração e não deve armazenar grandes volumes de dados. Se não for limpo regularmente, pode causar falhas nos fluxos de integração.

## **Use o conector Script apenas quando necessário**

O conector [**Script (JavaScript)**](/documentation/connectors-and-triggers/pt-br/connectors/tools/script.md) roda em uma infraestrutura separada fora do pipeline. Isso pode tornar o processamento mais lento e, como essa infraestrutura é compartilhada, o uso excessivo pode causar atrasos em vários pipelines.

Para evitar esses problemas, sempre que possível utilize conectores dedicados, como [**Transformer (JOLT)**](/documentation/connectors-and-triggers/pt-br/connectors/tools/jolt-v2.md), [**JSLT**](/documentation/connectors-and-triggers/pt-br/connectors/tools/jslt.md), [**JSON Transformer**](/documentation/connectors-and-triggers/pt-br/connectors/tools/json-transformer.md) e [**JSON Generator (Mock)**](/documentation/connectors-and-triggers/pt-br/connectors/tools/json-generator.md) para transformação e mapeamento de dados. Esses conectores são incorporados ao pipeline e oferecem melhor desempenho. Utilize o **Script (JavaScript)** apenas quando for a única opção viável.

{% hint style="success" %}
Não tem certeza se precisa do conector **Script (JavaScript)**? [Fale com nosso time](/documentation/troubleshooting/pt-br/help-and-faq/support.md). Podemos ter uma solução melhor com outros conectores.
{% endhint %}

## **Valide as respostas de serviços externos**

Ao integrar com serviços externos, como APIs ou bancos de dados, sempre verifique se o tipo de resposta está dentro do esperado. Caso não esteja, tome as ações necessárias, como reprocessar ou tratar o erro.

Para mais detalhes, consulte nossa documentação sobre [arquitetura orientada a eventos](/documentation/resources/pt-br/use-cases/how-to-event-driven-architecture.md).


---

# 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/resources/pt-br/best-practices/building-a-pipeline.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.
