# Como criar um pipeline

Os pipelines são criados no ambiente do Canvas. Siga os passos abaixo para aprender a criar, configurar e construir seu pipeline.

## **Criando o pipeline**

Siga estes passos para criar um pipeline:

1. Na página Build, clique na aba **Pipeline**.
2. Clique em **Criar novo** no canto superior direito.&#x20;
3. Selecione a opção **Pipeline**.

O pipeline é criado automaticamente no seu **projeto padrão**. Para criar um pipeline em um projeto específico, selecione o projeto desejado antes de clicar em **Criar**.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2F0MbiyL0O5fht83cHPMZr%2Fcriar-pipeline.png?alt=media&#x26;token=9e822bc3-6797-489b-9fc0-1e514e686285" alt=""><figcaption></figcaption></figure>

## **Configurando o pipeline**

1. Clique no ícone de engrenagem no canto superior direito da tela (ao lado do botão **Salvar**) para acessar as configurações do pipeline.

<figure><img src="https://2518718503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcO0A6g1dOsu8BiHYqO67%2Fuploads%2FPyhUbqMz6FVEnzYiGQ4y%2Fconfiguracao-pipeline.gif?alt=media&#x26;token=015b84fa-6058-490e-aa52-b6d79200ba2d" alt=""><figcaption></figcaption></figure>

2. Um painel de configuração será aberto no lado direito da tela. Preencha os campos conforme descrito abaixo:

* **Descrição:** Insira uma breve descrição do pipeline.
* **É multi-instância?:** Ative essa opção se o pipeline deve ser executado como multi-instância. Para mais informações, consulte a documentação sobre [Multi-Instância](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/multi-instance).
* **Campo sensível:** Defina os campos de dados que devem ser ofuscados nos logs do pipeline, que aparecerão como `***`. O caractere hífen (`-`) é permitido no nome do campo, mas outros caracteres especiais, acentos e a letra *ç* não são suportados.

{% hint style="info" %}
Os campos sensíveis definidos nessa configuração se aplicam apenas a este pipeline específico. Se precisar aplicar campos sensíveis a todos os pipelines do seu realm, consulte a [Política de Campos Sensíveis](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/governance/policies/security/sensitive-fields).
{% endhint %}

* **InSpec e OutSpec (opcional):** Use essas configurações para definir regras de validação estrutural para a entrada e a saída do pipeline em formato JSON.

#### **InSpec e OutSpec: Validando a estrutura do pipeline**

As configurações **InSpec** e **OutSpec** permitem validar a estrutura dos dados de entrada e saída em **formato JSON**. Elas garantem que o pipeline processe apenas payloads que atendam ao esquema esperado.

* **InSpec:** Valida a estrutura do payload de entrada do pipeline.
* **OutSpec:** Valida a estrutura do payload de saída final.

Essas configurações utilizam validadores JSON (semelhantes ao JSON Schema) para definir o formato esperado dos dados.

**Benefícios**

* Evita falhas de execução causadas por estruturas de dados inesperadas.
* Reduz retrabalho devido a incompatibilidades entre sistemas.
* Melhora a segurança e a previsibilidade do fluxo de dados.
* Simplifica o debug por meio da validação automática de schemas.
* Documenta claramente os contratos de entrada e saída.

**Como funciona**

* Tanto **InSpec** quanto **OutSpec** contêm um esquema de **validação JSON**.
* Se o payload violar a estrutura definida durante a execução, o pipeline é **interrompido**.

**Exemplo: InSpec**

```json
{
  "type": "object",
  "required": ["id", "name", "email"],
  "properties": {
    "id":    { "type": "string" },
    "name":  { "type": "string" },
    "email": { "type": "string", "format": "email" }
  }
}
```

Esse exemplo garante que o payload de entrada inclua `id`, `name` e `email`, com um formato de email válido.

**Observações importantes**

* Esses campos são **opcionais**. Os pipelines funcionam normalmente sem InSpec e OutSpec.
* Eles são recomendados para pipelines de alta criticidade, fluxos com múltiplos consumidores, integrações B2B e contratos internos entre equipes.
* Eles ajudam a melhorar a confiabilidade das integrações e a consistência dos dados.

## **Construindo o fluxo no pipeline**

Siga os passos abaixo para criar um fluxo em um pipeline:

1. Mova o ponteiro do mouse sobre o trigger já disponível no Canvas e clique no botão **Configuração** (representado por um ícone de engrenagem).
2. Selecione um [trigger](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/overview) das opções disponíveis. O gatilho inicia a execução do pipeline, como um [evento](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/messaging-and-events/event) ou um [email](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/email).
3. Configure o gatilho selecionado e clique em **Confirmar** para salvar suas alterações.
4. Após configurar o trigger, clique no botão **+** para começar a criar seu fluxo. Consulte a [documentação sobre o Smart Connector User Experience](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/smart-connector-user-experience) para mais detalhes sobre as opções de conexão disponíveis.
5. Enquanto constrói seu fluxo, use o [**Painel de Execução**](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/execution-panel) para testes e o [**Modo Debug**](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas/design-and-inspect-mode) para resolução de problemas.

{% hint style="warning" %}
Os pipelines não são salvos automaticamente. Você precisa clicar no botão **Salvar** sempre que quiser salvar suas alterações. Na primeira vez que salvar, forneça o **Nome**, **Descrição** e **Projeto** ao qual o pipeline pertence.
{% endhint %}

O Canvas, o ambiente onde os pipelines são construídos, oferece várias opções de navegação. Para saber mais, leia a [documentação do Canvas](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/canvas).

### Restrição de tamanho do pipeline

Cada pipeline tem um limite máximo de tamanho de 1 MB, incluindo todos os seus componentes: [conectores](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/overview), [triggers](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/overview), [contas](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/accounts), [globals](https://docs.digibee.com/documentation/developer-guide/pt-br/platform-administration/settings/globals) e outros. Se o tamanho total ultrapassar esse limite, a implantação não será possível. Antes de implantá-lo, certifique-se de que o tamanho do pipeline está dentro do limite permitido.

#### Como identificar o tamanho do seu pipeline?

**Passo 1:** Copie todos os conectores do pipeline usando um dos seguintes métodos:

* Pressione **Ctrl/Cmd + A** e depois **Ctrl/Cmd + C**.

Ou

* Mantenha pressionado **Ctrl/Cmd**, clique em cada conector e, em seguida, pressione **Ctrl/Cmd + C**.

**Passo 2:** Cole os conectores no [JSON Size Analyzer](https://www.debugbear.com/json-size-analyzer) pressionando **Ctrl/Cmd + V** e execute uma consulta para verificar o tamanho aproximado do pipeline.

Se o pipeline for menor que 1 MB, ele poderá ser implantado. Caso ultrapasse esse limite, reduza seu tamanho antes da implantação.
