Marketplace
Publique los workflows terminados como plantillas o módulos e itere por versiones; al descargarlos, las dependencias se resuelven automáticamente y quedan listos para instanciarse tras la instalación.
El marketplace es la página «Marketplace» de la consola: aquí están tanto las plantillas y los módulos publicados por la comunidad como los oficiales. Puede descargar a su biblioteca de plantillas o de módulos las entradas que otros hayan publicado, y también publicar sus propios workflows e iterarlos por versiones. Las plantillas descargadas se instancian como workflows propios; los módulos descargados se pueden referenciar directamente con el step sub_workflow.
Explorar y categorizar
La lista admite filtrar por tipo (plantilla / módulo), categoría y etiqueta, así como buscar por nombre, descripción y etiqueta. Arriba hay tres vistas: Todo, Lo que he subido, Lo que he descargado. Cada tarjeta muestra el autor, el número de la última versión y el número de descargas; las entradas propias de la plataforma llevan la marca «Oficial».
- Las opciones del desplegable de categorías provienen de las categorías reales de las entradas actualmente publicadas, no de una lista fija; las categorías y etiquetas se muestran según el idioma de su interfaz.
- En el marketplace solo se muestran las entradas ya publicadas y visibles para usted. El publicador puede fijar una entrada como pública, visible solo para los miembros del equipo o visible solo para usuarios concretos; las entradas no visibles no aparecen en su lista.
- Las entradas que ya ha descargado se marcan directamente en la tarjeta con «Descargada»; cuando hay una nueva versión, el botón pasa a «Actualizar».
Publicar sus plantillas o módulos
El acceso para publicar está en el editor de workflows. Solo el propietario de un workflow puede publicarlo en el marketplace — ni siquiera un administrador puede publicar la primera versión por usted.
- Tipo: un workflow con contrato de módulo se puede publicar como «módulo»; de lo contrario, solo se puede publicar como «plantilla». Para publicarlo como módulo, primero «promociónelo a módulo» en el editor y guarde el contrato.
- Hay que rellenar el título (obligatorio, máximo 200 caracteres), la descripción (máximo 5000 caracteres), la categoría, las etiquetas (máximo 20), el icono, el número de versión y las notas de actualización.
- El número de versión debe tener formato semver, como 1.0.0 o 1.0.0-beta.
- Tres niveles de visibilidad: visible para todos los usuarios, visible solo para los miembros de los equipos a los que pertenezco (indicando el ID del equipo), visible solo para usuarios concretos (indicando el ID de usuario). Al elegir la visibilidad por equipo, debe ser miembro de cada equipo listado.
- Precio: por ahora solo se admite la publicación gratuita (0 USD); la funcionalidad de pago aún no está disponible.
- La definición de workflow serializada tiene un límite de 2 MB; si se supera, se rechaza.
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
}'Tras subirla, la entrada pasa al estado «Pendiente de aprobación» y solo se publica cuando un administrador la aprueba. Solo las entradas ya publicadas aparecen en el marketplace de otros usuarios. Si se rechaza, puede ver el motivo del rechazo en la vista «Lo que he subido».
Gestión de versiones
Un mismo workflow no se puede volver a publicar como una entrada nueva — el editor detecta automáticamente que «este workflow ya se ha publicado» y cambia el diálogo a «Subir nueva versión».
- Solo el autor original de una entrada puede publicar nuevas versiones; un administrador de la plataforma puede publicar en su nombre, pero la autoría de la entrada no cambia. Para las entradas integradas del sistema, solo un administrador puede publicar nuevas versiones.
- El número de la nueva versión debe ser un semver válido y no puede ser inferior a la versión más reciente actual. No se puede subir dos veces el mismo número de versión.
- La nueva versión también pasa a pendiente de aprobación; durante la revisión, la entrada en sí permanece publicada y lo que los demás usuarios descargan sigue siendo la última versión ya publicada.
- Los usuarios que ya hayan descargado la entrada verán un aviso de actualización en la tarjeta del marketplace y en «Lo que he descargado»; basta con volver a descargar para actualizar a la última versión.
- La página de detalle de la entrada lista el historial completo de versiones y las notas de actualización de cada versión.
Instalación: resolución automática de dependencias
Pulse «Descargar» para guardar la entrada en su biblioteca de plantillas o de módulos. Si esta plantilla o módulo referencia otros módulos (steps sub_workflow), antes de descargar la plataforma resuelve el grafo completo de dependencias y marca el estado de cada una:
| Estado | significado |
|---|---|
| Descargado | Su biblioteca ya tiene la última versión de este módulo, se omite |
| Necesito actualizar | Ha descargado una versión antigua; esta vez se actualizará también a la última versión |
| Disponible | Está en el marketplace y aún no lo ha descargado; esta vez se descargará también |
| Faltante | No se encuentra en el marketplace ningún módulo con ese nombre |
| Oculto | El módulo existe, pero está restringido a un equipo o usuarios de los que usted no forma parte |
Tras confirmar «descargar junto con las dependencias», la instalación se realiza en orden de dependencia: primero se instalan los módulos referenciados de más bajo nivel, subiendo capa a capa, y por último la propia entrada que ha pulsado. Durante la descarga, el workflow_id que referencian los sub_workflow de la copia se reescribe automáticamente al ID de la copia correspondiente en su biblioteca — una vez instalado no hace falta modificar ninguna referencia a mano; la plantilla se puede instanciar y ejecutar directamente, y el módulo se puede referenciar directamente.
# 下载最新版,连同依赖一起(返回本次创建的全部下载记录)
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>"- La resolución de dependencias solo se realiza al descargar la última versión; al descargar una versión histórica concreta, solo se descarga esa entrada en sí.
- Las referencias circulares (A referencia a B y B referencia a A) se detectan y se tratan con normalidad, sin bloquear la instalación.
- La descarga en sí no consume cuota de workflows; es la instanciación posterior la que sí la consume.
Cuando una dependencia aparece como «Falta» o «No visible», la entrada padre igualmente se puede instalar en la biblioteca, pero el step sub_workflow correspondiente no puede ejecutarse hasta que ese módulo se publique o se haga visible para usted. El cuadro de confirmación de descarga enumera claramente estas carencias.
Después de descargar: instanciación
La descarga solo coloca la entrada en su biblioteca, y la copia queda bloqueada como solo lectura por defecto. Para empezar a usarla de verdad hay dos caminos:
- Plantilla: en la biblioteca de plantillas, pulse «Usar» sobre la entrada descargada para instanciar un workflow editable, nombrado por defecto «Nombre original (creado a partir de plantilla)». Es este paso el que cuenta para la cuota de número de workflows.
- Módulo: una vez descargado, sus workflows pueden referenciarlo por nombre con un step sub_workflow; también puede instanciar una copia editable en la biblioteca de módulos y modificarla.
El workflow instanciado y la entrada del marketplace son independientes entre sí: que el autor publique una nueva versión no modifica su instancia; y desinstalar una entrada en «Lo que he descargado» tampoco afecta a los workflows que ya haya instanciado.
La copia de la biblioteca descargada admite desbloqueo: una vez desbloqueada, se puede editar directamente en el editor. Pero tenga en cuenta que actualizar la descarga reemplaza por completo esta copia de la biblioteca con la nueva versión, y sus cambios se perderán — si quiere modificarla a largo plazo, instancie su propio workflow y modifíquelo.
Endpoints habituales
| Endpoint | Función |
|---|---|
GET /api/marketplace/items | Explorar (paginado, admite filtros por tipo / categoría / etiqueta / búsqueda) |
GET /api/marketplace/items/{id} | Detalle de la entrada + historial de versiones |
GET /api/marketplace/categories | Todas las categorías de las entradas visibles actualmente |
POST /api/marketplace/items | Publicar una nueva entrada |
POST /api/marketplace/items/{id}/versions | Publicar una nueva versión |
GET /api/marketplace/items/{id}/dependencies | Ver el árbol de dependencias |
POST /api/marketplace/items/{id}/download | Descargar (al descargar la última versión, por defecto junto con las dependencias) |
GET /api/marketplace/my-uploads | Las entradas que he publicado |
GET /api/marketplace/my-downloads | Las entradas que he descargado (con aviso de actualización) |
POST /api/marketplace/downloads/{itemId}/instantiate | Instanciar una entrada descargada como un workflow editable |
DELETE /api/marketplace/downloads/{itemId} | Desinstalar una entrada descargada (no afecta a los workflows ya instanciados) |