> ## Documentation Index
> Fetch the complete documentation index at: https://base39-release-notes-06-mar.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dependências

> Descreve o funcionamento de dependência entre as etapas da esteira.

As etapas dentro de uma esteira podem ser configuradas para depender de uma ou mais etapas anteriores. Por exemplo, a etapa de "Análise de Crédito" pode depender do sucesso das etapas de "Verificação de Documentos" e "Prova de Vida". Nesse cenário, a etapa de "Análise de Crédito" só será ativada se as etapas dependentes forem concluídas com sucesso.

Você pode configurar essas dependências tanto durante a criação inicial da etapa quanto editando uma etapa já existente.

<Tabs>
  <Tab title="Pela API">
    #### Dependência simples

    Para criar uma etapa com uma dependência, você deve utilizar o atributo `needs`, especificando a **chave** da etapa da qual ela depende.

    Veja abaixo um exemplo onde a etapa "Análise de Crédito" depende da etapa "Verificação de Documentos". A etapa de "Análise de Crédito" permanecerá com o status `pending` até que a etapa "Verificação de Documentos" seja finalizada com o status `done`.

    ```json
    {
      "settings": {
        "steps": {
          "etapa-1": {
            "name": "Verificação de documentos"
            // ...
          },
          "etapa-2": {
            "name": "Análise de crédito",
            "needs": [
              "etapa-1"
            ]
            // ...
          }
        }
      }
    }
    ```

    #### Múltiplas dependências

    É comum que existam etapas que dependam de mais de uma etapa anterior. Não existe um limite de dependências para uma etapa.

    <iframe src="https://mermaid.live/view#pako:eNqVksFKxDAQhl8ljBeFFna7xUMPgrjeFERhT7lMk-luoElKki4spQ8jHsTn6IuZ0l2tsiDmNJn_-2cmQzoQVhIUsHXY7NjDMzcsHt-WU4JN9_FQwAbT5SWHDTlVKYHD-_BmmSQmrWg1mWA9h6vfjlV0PDm7x5HcK4lfDBn5V7ssmm_N8ForT6NfuOFDqmD_UyOPNdbkSZe29mecx4exNL05dZ0L2UzI58LqpwAJaHIalYzr7EaQQ9iRJg5FDEv0MUpm-Q06hWVNfgS676k5NE5pdIc7W1s3uS-qqsqlPBY4cbUyNIcWi-V1ds9hYnpu-jgUtsG-HIyAIriWEmgbiYHWCuO6NBQV1j5madyqe5w-g7CmUlvoPwEmV6Yv" className="w-full" height="200" />

    Nesse exemplo, a etapa "Análise de Crédito" será ativada apenas quando a etapa "Verificação de Documentos" for concluída com sucesso.

    A etapa "Prova de Vida", apesar de estar listada após "Análise de Crédito", será executada em paralelo, pois não tem dependências configuradas.

    Já a etapa "Desembolso" depende tanto da "Análise de crédito" quanto da "Prova de Vida". Isso indica que a "Prova de vida" é importante apenas para o desembolso e não impede a "Análise de Crédito".

    A configuração desse fluxo pode ser feita da seguinte forma:

    ```json
    {
      "settings": {
        "steps": {
          "etapa-1": {
            "name": "Verificação de documentos"
            // ...
          },
          "etapa-2": {
            "name": "Análise de crédito",
            "needs": [
              "etapa-1"
            ]
            // ...
          },
          "etapa-3": {
            "name": "Prova de vida"
            // ...
          },
          "etapa-4": {
            "name": "Desembolso",
            "needs": [
              "etapa-1",
              "etapa-3"
            ]
            // ...
          }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Pelo Console">
    <Snippet file="console-not-available.mdx" />
  </Tab>
</Tabs>

Este recurso de dependência permite uma flexibilidade considerável na organização das etapas, possibilitando um fluxo de trabalho mais dinâmico e adaptável às necessidades específicas de cada caso.
