Pulsa / para buscar

Toda la documentación
docs Operar Marketplace

Se ejecuta enWrit Cloud

marketplace ▸ instalar ▸ enlazar ▸ ejecutar

Alguien ya lo construyó.

Un listado es un workflow o una automatización que alguien consiguió que funcionara, compartido como algo que puedes ejecutar. Lo instalas — gratis — enlazas tus propias credenciales y entradas a las ranuras que declara, y lo ejecutas: POST /api/marketplace/listings/{slug}/run. Ejecutas un listado; no lo lees.

Un creador nunca recibe tus credenciales, y tú nunca recibes sus pasos. Los enlaces son la costura que sostiene ambas cosas.

explorar ▸ filtros

Encuentra uno que ya funcione.

GET /api/marketplace/listings acepta los filtros de abajo, y GET /api/marketplace/listings/{slug} lee uno entero. Los resultados llevan rendimiento medido, no adjetivos.

FiltroValores
q · category · tagTexto libre, categoría, etiqueta.
asset_typeworkflow | automation
sortrank | fastest | success | on_time | newest | most_used
capability_key · target_siteQué hace, y en qué sitio lo hace.
min_success_rateSuelo de éxito medido.
max_p50_latency_ms · max_p95_latency_msTechos de latencia medida.
min_on_time_rateCon qué frecuencia termina dentro de la base prometida.
min_reputation_tierrising | trusted | top
verified_only · established_onlyLimitar a creadores verificados o veteranos.
limit · offsetlimit 1–100, 24 por defecto.

Qué te dice la ficha de un listado

Cada ficha lleva las mismas señales medidas, así que dos listados para el mismo trabajo se comparan directamente:

  • Latencia, tasa de éxito y tasa de puntualidad — medidas sobre ejecuciones reales.
  • Un aviso de pico de fallos cuando las ejecuciones recientes han empeorado.
  • El nivel de reputación del creador.
  • Su posición dentro del conjunto de capacidades en el que compite.

instalación ▸ gratis

Instalar es gratis, y es idempotente.

POST /api/marketplace/listings/{slug}/install pone el listado en tu cuenta. Llamarlo dos veces no lo instala dos veces — una instalación es idempotente por cuenta y listado. Lo que aterriza es una instantánea congelada y sin datos: los pasos más el manifest de ranuras que necesita, con las credenciales del creador retiradas al publicar.

En el marketplace no se vende nada. Instalar no cuesta nada, el creador no cobra nada, y una ejecución solo cuesta cómputo de la plataforma Writ — gratis y sin medir en tu propia máquina, medido por tiempo de ejecución en la flota cloud gestionada.

enlaces ▸ la costura

Enlazas tus propias credenciales. Ese es todo el diseño.

Un listado declara ranuras: el acceso que necesita, el secreto que necesita, las entradas que toma. No trae las del creador. Tú llenas las ranuras con cosas tuyas, y una ejecución las resuelve desde tus enlaces y desde ningún otro sitio. Lee las ranuras con GET /api/marketplace/installs/{slug}/manifest, antes o después de instalar.

slot_kindQué va dentro
personaUna identidad de acceso guardada. Instalaciones de workflow y de automation.
secretUna referencia a un secreto de tu bóveda, nunca el valor.
inputUn valor llano que el workflow toma.
monitor_urlInstalaciones de automatización: la página a vigilar.
notify_recipientInstalaciones de automatización: adónde va el aviso.

Poner y quitar uno

PUT /api/marketplace/installs/{slug}/bindings pone una ranura; DELETE con ?slot_kind= y ?slot_key= la limpia. El cuerpo son cinco campos:

slot_kind · slot_keyQué ranura. Ambos obligatorios, al poner y al quitar.
persona_idPara una ranura persona.
vault_secret_refPara una ranura secret — el nombre, no el secreto.
input_valuePara una ranura input, monitor_url o notify_recipient.

Un enlace de persona solo puede apuntar a una persona tuya. No hay forma de enlazar la identidad de acceso de otra persona, ni de que un listado llegue trayendo una.

Instalar, enlazar, ejecutar

Las cuatro llamadas en el orden en que las haces.

install-bind-run.sh

# 1. See what slots this listing needs before you install it.
curl https://api.usewrit.app/api/marketplace/installs/invoice-puller/manifest \
  -H "Authorization: Bearer $WRIT_API_KEY"

# 2. Install. Free, and idempotent per account + listing.
curl -X POST https://api.usewrit.app/api/marketplace/listings/invoice-puller/install \
  -H "Authorization: Bearer $WRIT_API_KEY"

# 3. Bind YOUR persona and YOUR secret into the slots it declared.
curl -X PUT https://api.usewrit.app/api/marketplace/installs/invoice-puller/bindings \
  -H "Authorization: Bearer $WRIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slot_kind": "persona", "slot_key": "login", "persona_id": 12}'

curl -X PUT https://api.usewrit.app/api/marketplace/installs/invoice-puller/bindings \
  -H "Authorization: Bearer $WRIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slot_kind": "input", "slot_key": "account_number", "input_value": "88213"}'

# 4. Run it. Everything it signs in with came from step 3.
curl -X POST https://api.usewrit.app/api/marketplace/listings/invoice-puller/run \
  -H "Authorization: Bearer $WRIT_API_KEY"

ejecución ▸ qué se garantiza

Qué promete una ejecución.

POST /api/marketplace/listings/{slug}/run ejecuta el listado en tu cuenta. Cuatro cosas se cumplen en cada ejecución:

  1. Usa tus enlaces, y solo tus enlaces — Personas, credenciales, secretos y entradas se resuelven desde lo que enlazaste. Nada llega del creador.
  2. Ejecuta la instantánea que instalaste — La instalación captura la receta tal como estaba ese día. Que el creador edite su workflow en vivo no cambia lo que tu instalación ejecuta.
  3. Una ranura obligatoria vacía la bloquea — La ejecución responde 422 en vez de arrancar y fallar a medio camino. Enlaza la ranura y vuelve a ejecutar.
  4. El listado en sí es gratis — No hay cargo por el listado ni comisión del creador en una ejecución. Lo que una ejecución puede costar es cómputo de la plataforma Writ: nada en tu propia máquina, tiempo de ejecución medido en la flota cloud gestionada.

El resto del ciclo de vida

Todo lo demás que puedes hacer con una instalación:

LlamadaQué hace
GET /api/marketplace/installsTodo lo que has instalado.
GET /api/marketplace/installs/{slug}/usagestatus y last_run_at, más los topes del creador con used, remaining y reset por ventana.
POST /api/marketplace/installs/{slug}/syncMover tu instalación a la receta más nueva del creador. Requiere tu consentimiento — nunca ocurre sola.
DELETE /api/marketplace/listings/{slug}/installDesinstalar. Arrastra tus enlaces.

Una instalación sigue funcionando aunque el listado se despublique después. Instalaste una instantánea, no un vínculo vivo al espacio del creador.

reseñas ▸ ejecuciones verificadas

Las reseñas vienen de quien lo ejecutó.

Solo quien instaló un listado y acumuló suficientes ejecuciones con éxito puede reseñarlo, y una organización tiene una reseña. Por eso las valoraciones siguen a las señales medidas en vez de separarse de ellas.

LlamadaQué hace
GET /api/marketplace/listings/{slug}/reviewsReseñas de cuentas que realmente lo ejecutaron, más el resumen de valoración.
GET /api/marketplace/listings/{slug}/reviews/eligibilitySi ya puedes reseñar, y qué falta.
POST /api/marketplace/listings/{slug}/reviewsDejar la tuya. Una por organización.
DELETE /api/marketplace/listings/{slug}/reviews/meRetirarla.

problemas ▸ reportes

Cuando no cumple.

Reporta la ejecución que salió mal. El creador y los administradores de la plataforma reciben aviso, y un listado que acumula reportes sin resolver se marca para revisión.

LlamadaQué hace
POST /api/marketplace/installs/{slug}/reportPlantear un problema con una instalación, opcionalmente atado a la ejecución que falló.
GET /api/marketplace/reportsTus propios reportes, cada uno con status: open | reviewing | resolved | dismissed.

publicar ▸ creadores

Publicar el tuyo.

POST /api/marketplace/publish necesita una cuenta verificada y accept_creator_agreement: true. Cualquier plan, Free incluido, puede publicar, y lo que publicas es una receta gratuita: tus personas, secretos y sesiones se retiran al publicar, así que lo que otros instalan nunca puede contenerlos. El cuerpo describe el activo y las barreras que quieres en cada ejecución.

CampoQué hace
asset_typeworkflow | automation.
workflow_id · automation_idLo que publicas.
title · summary · categorytitle hasta 140 caracteres.
keywords[] · tags[] · icon · cover_image_urlCómo se encuentra y cómo se ve.
intentHasta 60 caracteres — el trabajo que hace, en una línea.
visibilityQuién puede ver el listado.
baseline_duration_msLa velocidad que prometes. La tasa de puntualidad se mide contra ella.
marketplace_exec_policycustomer | cloud | local | creator — dónde puede ejecutarse.
usage_limitsTopes por instalación, globales y de concurrencia, cada uno con su ventana y su modo.
input_rulesUna regex por entrada, aplicada en cada ejecución de tu listado.

Publicar una receta

La llamada de publicación, y las barreras que van con ella.

publish.sh

curl -X POST https://api.usewrit.app/api/marketplace/publish \
  -H "Authorization: Bearer $WRIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accept_creator_agreement": true,
    "asset_type": "workflow",
    "workflow_id": 41,
    "title": "Invoice puller",
    "summary": "Signs in and pulls every invoice since a date you pass in.",
    "category": "finance",
    "keywords": ["invoices", "accounting"],
    "tags": ["billing"],
    "intent": "Pull invoices from a billing portal",
    "baseline_duration_ms": 18000,
    "marketplace_exec_policy": "cloud",
    "usage_limits": {
      "per_buyer": { "count": 200, "window": "day", "mode": "enforce" },
      "global": { "count": 20000, "window": "month", "mode": "enforce" },
      "max_concurrent_per_buyer": { "count": 4, "mode": "enforce" }
    },
    "input_rules": {
      "rules": {
        "account_number": { "pattern": "^[0-9]{4,8}$", "message": "4 to 8 digits" }
      }
    }
  }'

pi ▸ ejecutar, no leer

La gente ejecuta un listado. No lo lee.

Si publicas una receta que te costó semanas afinar, compartirla no debería ser regalarla. Es una restricción de diseño, no una promesa — así que esto es exactamente cómo está montado:

  1. La instalación captura una instantánea sin datos — Lo que aterriza en la cuenta de otra persona es la forma de la receta, sin los datos contra los que se construyó.
  2. Ningún endpoint de instalación devuelve los pasos — No hay vía de lectura de la receta. Ni en el listado, ni en la instalación, ni en una ejecución.
  3. La vía de escritorio recibe una receta sellada — Cuando una ejecución corre en una máquina, esa máquina recibe una forma que solo ella puede abrir.

faq

Preguntas de marketplace, respondidas.

¿El creador recibe mi acceso cuando instalo su listado?
No. Un listado declara ranuras — una ranura persona, una ranura secret, entradas — y tú las llenas con cosas tuyas. Un enlace de persona solo puede referenciar una persona de tu propia cuenta, y un enlace de secreto lleva una referencia de bóveda en vez del secreto. Una ejecución los resuelve desde tus enlaces y desde ningún otro sitio.
Si el creador cambia su workflow, ¿cambia mi instalación?
No. La instalación captura una instantánea, y tus ejecuciones ejecutan esa instantánea. Pasar a una receta más nueva es una llamada deliberada al endpoint sync, con tu consentimiento. Una instalación además sigue funcionando si el listado se despublica después.
¿Cuánto cuesta un listado?
Nada. Todos los listados son gratis de instalar y gratis de ejecutar — el marketplace no vende nada, y ningún creador cobra por un listado. Lo único que puede costar una ejecución es cómputo de la plataforma Writ: gratis y sin medir en tu propia máquina, medido por tiempo de ejecución en la flota cloud gestionada.
¿Qué hace falta para publicar algo?
Una cuenta verificada y accept_creator_agreement: true. Cualquier plan, Free incluido, puede publicar. Tus personas, secretos y sesiones se retiran al publicar: lo que aterriza en la cuenta de otra persona es la receta y su manifest de ranuras, nunca tus accesos.
¿Puede alguien ver los pasos de mi workflow?
No. La instalación captura una instantánea sin datos, ningún endpoint de instalación devuelve los pasos de la receta, y una ejecución en una máquina recibe una forma sellada que solo esa máquina puede abrir.
¿Dónde se ejecuta un listado instalado?
Dentro de la política que el creador fijó en el listado — marketplace_exec_policy vale customer, cloud, local o creator — y tú eliges dentro de ella. Una ejecución local es gratis y sin medir, y alcanza intranet, localhost y sistemas solo accesibles por VPN que el cloud no ve.

fin ▸ instalar uno

Instala uno y enlaza tu propio acceso.

El manifest te dice qué ranuras pide un listado antes de que lo instales. Léelo primero, instala después.