Saltar para o conteúdo principal
DocsEcossistema de extensõesMercado

Mercado

Publique um workflow terminado como um modelo ou módulo e itere por versão; dependências resolvem automaticamente no download, pronto para instanciar uma vez instalado.

O mercado é a página "Marketplace" no console: modelos e módulos publicados pela comunidade e pela plataforma todos vivem aqui. Você pode baixar itens que outros publicaram em seu próprio modelo ou biblioteca de módulos, e publicar seus próprios workflows acabados e iterar neles por versão. Um modelo baixado é instanciado em seu próprio workflow; um módulo baixado pode ser referenciado diretamente por uma etapa sub workflow.

A lista pode ser filtrada por tipo (template / module), categoria e tags, e pesquisada pelo nome, descrição e tags. Há três visualizações no topo: Tudo, Enviado por mim, e Transferido por mim. Cada cartão mostra o autor, o último número de versão, e a contagem de download; itens enviados com a plataforma carregam uma marca "Oficial".

  • As opções do dropdown de categoria vêm das categorias reais dos itens listados atualmente, não de uma lista fixa; categorias e tags são mostradas em seu idioma de interface.
  • O mercado mostra apenas itens que estão listados e visíveis para você. Um editor pode definir um item para público, visível apenas para membros da equipe, ou visível apenas para usuários especificados; itens que você não pode ver não aparecem em sua lista.
  • Um item que você já baixou está marcado "Downloaded" no cartão; quando uma nova versão está disponível, o botão muda para "Atualizar"

Publique seu modelo ou módulo

O item de publicação está no editor de workflow. Apenas o proprietário do workflow pode publicá-lo no mercado — nem mesmo um administrador pode publicar a primeira versão para você.

  • Tipo: um workflow com um contrato de módulo pode ser publicado como um "módulo", caso contrário apenas como um "template". Para publicar como um módulo, primeiro "Promover ao módulo" no editor e salvar o contrato.
  • Você precisa preencher um título (necessário, até 200 caracteres), uma descrição (até 5000 caracteres), uma categoria, tags (até 20), um ícone, um número de versão e notas de lançamento.
  • O número da versão deve estar em formato semver, como 1.0.0 ou 1.0.0-beta.
  • Três níveis de visibilidade: visível para todos os usuários, visível apenas para membros de equipes a que pertenço (introduza IDs de equipe) e visível apenas para usuários especificados (introduza IDs de usuário). Ao escolher a visibilidade da equipe, você deve ser um membro de cada equipe listada.
  • Preço: somente a publicação gratuita (0 USD) é suportada hoje; a publicação paga ainda não está disponível.
  • A definição serializada de workflow é fechada em 2MB; qualquer coisa maior é rejeitada.
bash
curl -X POST https://braidrun.com/api/marketplace/items \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceWorkflowId": "<workflow-id>",
    "type": "TEMPLATE",
    "title": "竞品价格日报",
    "description": "每天拉取竞品价格并生成对比表",
    "category": "数据分析",
    "tags": ["监控", "报表"],
    "version": "1.0.0",
    "changelog": "首个版本",
    "visibility": "PUBLIC",
    "priceUsdCents": 0
  }'

Após o upload, o item entra em um estado de "revisão pendente" e só é listado uma vez que um administrador o aprova. Apenas os itens listados aparecem nas listas de mercado de outros usuários. Se ele for rejeitado, você pode ver a razão na visão "Carregado por mim".

Gestão de versões

O mesmo workflow não pode ser publicado como um novo item duas vezes — o editor reconhece que "este workflow já foi publicado" e muda a janela para "Upload new version"

  • Somente o autor original do item pode publicar uma nova versão; um administrador de plataforma pode publicar em seu nome, mas a atribuição do autor do item não muda. Para os itens do sistema incorporado, apenas os administradores podem publicar novas versões.
  • O novo número de versão deve ser válido semver e não inferior à versão mais recente atual. O mesmo número de versão não pode ser carregado duas vezes.
  • A nova versão também entra em revisão pendente; durante revisão o item permanece listado, e outros usuários ainda baixar a versão mais recente listada.
  • Usuários que baixaram o item veem um prompt de atualização no cartão de mercado e em "Downloaded by me"; re-downloading updates to the latest version.
  • A página de detalhes do item lista o histórico completo da versão e as notas de lançamento para cada versão.

Instalação: resolução automática de dependência

Clique em "Download" para armazenar o item em seu modelo ou biblioteca de módulos. Se o modelo ou módulo referencia outros módulos (via etapas sub workflow), a plataforma resolve o gráfico de dependência completo antes de baixar e marca o status de cada dependência:

Estadosignificado
TransferidoSua biblioteca já tem a versão mais recente deste módulo — pulou
Necessidade de actualizaçãoVocê baixou uma versão antiga — este passe também atualiza
DisponívelEstá no mercado e você não baixou o download — este passe também o baixa
FaltandoNenhum módulo do mesmo nome encontrado no mercado
EscondidoO módulo existe, mas é restrito a uma equipe ou usuários que você não faz parte

Depois de confirmar "Download with dependencies", a instalação prossegue em ordem de dependência: primeiro os módulos referenciados de nível mais baixo, camada por camada para cima, e finalmente o item que você clicou. Durante o download, o workflow id que as referências sub workflow em suas cópias são automaticamente reescritas para o ID da cópia correspondente em sua biblioteca - então, após a instalação, você não precisa corrigir nenhuma referência à mão: modelos podem ser instanciados e executados diretamente, e módulos podem ser referenciados diretamente.

bash
# 下载最新版,连同依赖一起(返回本次创建的全部下载记录)
curl -X POST "https://braidrun.com/api/marketplace/items/<item-id>/download?withDependencies=true" \
  -H "Authorization: Bearer <token>"

# 下载指定历史版本(只下载该条目本身,不做依赖级联)
curl -X POST "https://braidrun.com/api/marketplace/items/<item-id>/download?version=1.2.0" \
  -H "Authorization: Bearer <token>"
  • A resolução de dependência é executada somente quando se baixa a versão mais recente; baixar uma versão histórica específica baixa apenas esse item em si.
  • As referências circulares (A referências B e B referências A) são detectadas e tratadas corretamente, sem bloquear a instalação.
  • O download em si não conta contra sua quota de workflow; apenas a instanciação posterior conta.

Quando uma dependência mostra "Perdendo" ou "Não visível", o item pai ainda pode ser instalado em sua biblioteca, mas o passo correspondente sub workflow não pode ser executado até que esse módulo seja publicado ou se torne visível para você. A janela de confirmação da transferência define explicitamente estas lacunas.

Depois de baixar: instanciation

Baixando apenas coloca o item em sua biblioteca, e a cópia está bloqueada somente leitura por padrão. Existem dois caminhos para começar a usá-lo:

  • Modelo: na biblioteca de modelos, clique em "Usar" no item baixado para instanciar um workflow editável, chamado "Nome original (criado do modelo)" por padrão. Este passo é o que conta contra sua quota de workflow.
  • Módulo: uma vez baixado, ele pode ser referenciado pelo nome de seus workflows através de uma etapa sub workflow; você também pode instanciar uma cópia editável na biblioteca do módulo e modificá-la.

Um workflow instanciado é independente do item marketplace: uma nova versão do autor não mudará sua instância, e desinstalar um item de "Downloaded by me" não afeta workflows que você já tenha instanciado.

A cópia da biblioteca baixada pode ser desbloqueada: uma vez desbloqueada, você pode editá-la diretamente no editor. Mas note que atualizar o download substitui esta cópia da biblioteca por atacado com a nova versão, e suas alterações serão perdidas — para modificações de longo prazo, instance seu próprio workflow e edite isso.

Objetivos comuns

Ponto finalObjecto
GET /api/marketplace/itemsProcurar (paginado, com tipo / categoria / etiqueta / filtros de pesquisa)
GET /api/marketplace/items/{id}Detalhes do item + histórico da versão
GET /api/marketplace/categoriesTodas as categorias de itens atualmente visíveis
POST /api/marketplace/itemsPublicar um novo artigo
POST /api/marketplace/items/{id}/versionsPublicar uma nova versão
GET /api/marketplace/items/{id}/dependenciesVer a árvore de dependências
POST /api/marketplace/items/{id}/downloadDownload (Baixar a versão mais recente inclui dependências por padrão)
GET /api/marketplace/my-uploadsItens que publiquei
GET /api/marketplace/my-downloadsItens que baixei (com avisos de atualização)
POST /api/marketplace/downloads/{itemId}/instantiateInstalar um item baixado em um workflow editável
DELETE /api/marketplace/downloads/{itemId}Desinstale um item baixado (não afeta workflows instanciados)

Páginas relacionadas