Pipelines

Os pipelines são as suas integrações. Para os endpoints em que é necessário o id da integração (pipeline_id), você pode buscá-los no nosso app, através da sua URL.

Nossas URLs de integrações possuem o formato abaixo:

https://app.kondado.com.br/pipelines/:pipeline_id

Executar integração

Esta rota não está disponível para clientes com planos com limitação de frequência

Descrição

Envia uma integração para a fila de execução – executa o mesmo procedimento que um usuário clicando em “EXECUTAR” no nosso app

Método

POST

Endpoint

/pipelines/:pipeline_id/run

Parâmetros da URL

Nenhum

Exemplo de resposta

{
    "success": true
}

Descrição do retorno

O retorno é apenas um “success” true ou false, explicando o status da operação. Caso success=false, haverá uma key de erro no JSON, explicando o que aconteceu.

Consultar status de uma integração

Descrição

Retorna o status de uma dada integração através do seu pipeline_id

Método

GET

Endpoint

/pipelines/:pipeline_id/status

Parâmetros da URL

Nenhum

Exemplo de resposta

{
     "2040": {
         "status": "active",
         "is_running": false,
         "is_active": true,
         "is_blocked": false,
         "raw_msg": null
     }
 }

Descrição do retorno

A resposta será um JSON com o id da integração como chave de um novo JSON com os campos explicados abaixo.

status

Descrição do status. Os valores possíveis são:

  • running: A integração está executando
  • scheduled: A integração está na fila de execução
  • active: A integração não está executando e nem na fila, mas está ativa
  • not_active: A integração não está executando e nem na fila e está desativada
  • building_tables: A integração está (re)criando as tabelas após criação ou edição avançada
  • error_building_tables: Ocorreu um erro durante a (re)criação da integração (consultar parâmetro raw_msg)
  • too_many_consecutive_failed_builds: A integração apresenta uma alta taxa de erros durante suas últimas execuções (consultar parâmetro raw_msg)
  • too_many_consecutive_failed_builds__blocked: A integração foi automaticamente desativada

raw_msg

Caso a integração apresente algum problema, este campo irá vir com a descrição do erro (por exemplo, não estamos conseguindo nos conectar com o seu conector/destino)

is_running

Booleano que indica se a integração está executando (status=running)

is_active

Booleano que indica se a integração está ativa (status=active) ou desativada (status = not_active)

is_blocked

Booleano que indica se a integração está bloqueada por algum motivo. Os motivos que causam um bloqueio da integração são:

  • Construíndo tabelas: status inicial (e que dura apenas alguns segundos) de qualquer integração que indica que a Kondado está construindo as tabelas no destino
  • Várias falhas consecutivas: Indica que a integração foi desabilitada após várias falhas consecutivas

Duplicar uma integração

Descrição

Permite que seja criada uma nova integração com base em uma integração existente.

  • A integração criada assumirá o mesmo savepoint e frequência da integração existente
  • Integrações criadas desta maneira não terão dias gratuitos de registros

Método

POST

Endpoint

/pipelines

Parâmetros da URL

Nenhum

Corpo da chamada (payload)

O corpo da chamada deve ser um JSON com os seguintes atributos:

pipeline_id

  • Descrição: id da integração base da duplicação
  • Obrigatório: Sim
  • Formato: número inteiro

dest_collection_id

  • Descrição: id do novo destino. Deve ser do mesmo tipo que o utilizado na integração base e estar ativo
  • Obrigatório: Sim
  • Formato: número inteiro

src_collection_id

  • Descrição: id do novo conector. Deve ser do mesmo tipo que o utilizado na integração base e estar ativo
  • Obrigatório: Sim
  • Formato: número inteiro

client_id

  • Descrição: id da conta onde irá ser criada a nova integração. Caso não informado, a integração será criada na mesma conta da integração base
  • Obrigatório: Não
  • Formato: número inteiro

full_tables

  • Descrição: JSON com os paths de tabelas como chaves e novos nomes destas tabelas como valores. Os paths referentes a cada tabela podem ser obtidos ao realizar uma edição avançada na integração, no momento de dar nome às tabelas (ver imagem abaixo). A tabela principal deve ser informado como path string vazia (“”). Todos os paths constantes na integração devem ser informados. A integração criada não ira fazer nenhuma verificação ou exibir aviso no caso de tabelas como os nomes informados já existirem no destino, estas serão apenas recriadas com a nova configuração
  • Obrigatório: Sim
  • Formato: JSON
Exemplo de como localizar paths das tabelas. Neste caso a aba principal possui o path “” e a segunda tabela possui o path “estoquedepositos”

deltas_tables

  • Descrição: JSON com os paths de tabelas como chaves e novos nomes das tabelas deltas como valores. Os paths referentes a cada tabela podem ser obtidos ao realizar uma edição avançada na integração, no momento de dar nome às tabelas (ver imagem abaixo). A tabela principal deve ser informado como path string vazia (“”). Caso seja informado, todos os paths constantes na integração devem ser informados. A integração criada não ira fazer nenhuma verificação ou exibir aviso no caso de tabelas como os nomes informados já existirem no destino, estas serão apenas recriadas com a nova configuração. Ao informar este
  • Obrigatório: Não
  • Formato: JSON

execute_immediately

  • Descrição: Indica se a integração deve ser executada logo após criada. Apenas valor Y para sim e N para não
  • Obrigatório: Sim
  • Formato: String “Y” ou “N”

name

  • Descrição: Nome da nova integração
  • Obrigatório: Não – se não provido, será utilizado o nome da integração original
  • Formato: String

Exemplo de body

{
    "pipeline_id":12345821,
    "dest_collection_id":678910,
    "src_collection_id": 877291,
    "client_id":732829,
    "full_tables":{
        "":"novo_bling_produtos_estoque",
        "estoquedepositos":"novo_produtos_estoque_depositos"
    },
    "deltas_tables":{
        "":"novo_bling_produtos_estoque",
        "estoquedepositos":"novo_produtos_estoque_depositos"
    },
    "execute_immediately":"Y",
    "name":"Nova integração"
}

Descrição do retorno

A resposta será um JSON com o id da integração criada

Exemplo de resposta

{
    "success": true,
    "data": {
        "success": true,
        "data": {
            "new_pipeline_id": 123456789
        }
    }
}