githubEdit

Ferramentas do SDK de Cards

As ferramentas do Card SDK permitem criar, validar, testar e gerenciar cards de parceiros personalizados através do MCP. Os cards de parceiros estendem o DocFlow com lógica de negócios personalizada escrita em Python.

Ciclo de Vida do Card

Criar → Validar → Testar → Aprovar → Usar em Workflows
  1. Crie um card com sdk_create_card ou sdk_import_github

  2. Valide com sdk_validate_card (validação em 5 etapas)

  3. Teste com sdk_test_card (execução em sandbox)

  4. Aprove com sdk_approve_card (requer admin)

  5. O card agora está disponível em list_cards e pode ser usado em workflows

Ferramentas de Desenvolvimento

sdk_create_card

Cria um novo card de parceiro a partir de código-fonte e manifestos. Executa a validação completa em 5 etapas e armazena o card no banco de dados. O card começa em estado pendente e requer aprovação de administrador para ser ativado.

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

app_manifest

object

Sim

Manifesto do app com id, nome, versão, info do parceiro

card_manifest

object

Sim

Manifesto do card com id, título, entry_point, class_name, args

card_type

string

Sim

action ou condition

source_code

string

Sim

Código-fonte Python (deve estender PartnerCard)

test_code

string

Sim

Código de teste Pytest para o card

locales

object

Não

Traduções de idioma, ex.: {"en": {...}, "de": {...}}

Exemplo de Manifesto do App:

Exemplo de Manifesto do Card:

Exemplo de Código-Fonte:

Exemplo de Resposta:

sdk_validate_card

Executa a validação em 5 etapas em um card de parceiro sem salvar. Dois modos:

  • Modo A — Validar um card existente por ID

  • Modo B — Validar novo código-fonte inline

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

card_id

string

Não

UUID do card existente (Modo A)

app_manifest

object

Não

Manifesto do app (Modo B)

card_manifest

object

Não

Manifesto do card (Modo B)

card_type

string

Não

action ou condition (Modo B)

source_code

string

Não

Código-fonte Python (Modo B)

test_code

string

Não

Código de teste (Modo B)

circle-info

Forneça apenas card_id isolado (Modo A) ou app_manifest + card_manifest + source_code juntos (Modo B).

Etapas de Validação:

  1. Estrutura — Verifica layout de arquivos, esquema do manifesto, arquivos obrigatórios

  2. Análise AST — Verifica sintaxe Python, hierarquia de classes, assinaturas de métodos

  3. Dependências — Valida imports contra módulos permitidos

  4. Testes — Executa a suíte de testes do card

  5. Comportamental — Executa o card em sandbox para verificar comportamento em tempo de execução

sdk_test_card

Executa um card de parceiro em um ambiente isolado (sandbox) com um contexto simulado. Usa o mesmo modelo de segurança da produção (builtins restritos, lista de imports permitidos, timeout de 10 segundos).

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

card_id

string

Não

UUID do card existente (Modo A)

source_code

string

Não

Código-fonte para teste inline (Modo B)

class_name

string

Não

Nome da classe para teste inline (Modo B)

variables

object

Não

Variáveis para passar ao construtor do card

mock_context

object

Não

Contexto de execução simulado

Campos do Contexto Simulado:

Exemplo de Resposta:

sdk_import_github

Importa um app de parceiro de um repositório GitHub. Clona o repositório, lê o app.json e importa todos os cards encontrados no diretório .docflowcompose.

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

github_url

string

Sim

URL HTTPS do GitHub (ex.: https://github.com/org/repo)

branch

string

Não

Branch a ser clonado (padrão: main)

token

string

Não

Token do GitHub para repositórios privados

Estrutura Esperada do Repositório:

Exemplo de Resposta:

Ferramentas de Gerenciamento

sdk_list_submissions

Lista todas as submissões de cards de parceiros da organização atual.

Parâmetros: Nenhum

Exemplo de Resposta:

sdk_get_submission_status

Obtém o status de validação e o relatório de uma submissão específica de card de parceiro.

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

card_id

string

Sim

UUID do card de parceiro

Exemplo de Resposta:

sdk_approve_card

Aprova um card de parceiro validado e o ativa para uso em workflows. O card é registrado no registro de tempo de execução e fica disponível em list_cards.

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

card_id

string

Sim

UUID do card de parceiro

circle-exclamation

sdk_reject_card

Rejeita uma submissão de card de parceiro e o desativa.

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

card_id

string

Sim

UUID do card de parceiro

reason

string

Não

Motivo da rejeição

circle-exclamation

sdk_delete_submission

Desativa ou exclui uma submissão de card de parceiro. Cards rejeitados ou desabilitados são excluídos fisicamente do banco de dados. Cards ativos são desativados primeiro.

Parâmetros:

Parâmetro
Tipo
Obrigatório
Descrição

card_id

string

Sim

UUID do card de parceiro

circle-exclamation

sdk_list_cards_picker

Lista todos os cards habilitados e não obsoletos com flags de função. Útil para determinar quais cards podem ser usados em quais tipos de nó ao construir workflows.

Parâmetros: Nenhum

Exemplo de Resposta:

Last updated

Was this helpful?