Publicar tus metadatos de catálogo
publisher, suite, categorías, etiquetas, capturas y changelog de tu extensión en el marketplace.
Los metadatos de catálogo describen tu extensión en el marketplace: quién la publica, a qué marca pertenece, en qué categorías aparece, con qué etiquetas se encuentra, cómo se ve y qué cambió en cada versión. Son opcionales e informativos: no cambian lo que la extensión hace ni qué versión recibe cada instancia.
Campos#
| Campo | Forma | Notas |
|---|---|---|
publisher | { id, name, icon?, url?, verified?, official? } | Sin él, las core-* son de Bloomx (oficial) y el resto «Comunidad». id: [a-z0-9-], 2-40. url: https. official y verified solo en extensiones core-*. |
suite | { id, name, icon? } | Agrupa productos de una misma marca (carpeta del marketplace). Todas las extensiones con el mismo suite.id forman la suite. icon: brand:, lucide: o initials:. |
categories | 1 a 3 ids | La primera es la principal. Valores: mail, composer, calendar, contacts, automation, ai, integrations, settings, other. Sin ellas se usa category (singular). |
tags | Textos | Hasta 12, de 30 caracteres, sin HTML. La búsqueda las usa. |
screenshots | URLs https | Hasta 6, de hasta 2000 caracteres, sin usuario ni clave. Se muestran con tamaño fijo y carga diferida. Imágenes de terceros solo se cargan tras aceptar el administrador. |
changelog | [{ version, date?, notes? }] | Hasta 20 entradas; notes es texto o lista (hasta 1000 caracteres). Se muestra en la pestaña Versiones, emparejado por número de versión. |
Ejemplo#
{
"manifestVersion": "1.0",
"id": "core-example",
"version": "1.0.1",
"name": "Ejemplo de catálogo",
"description": "Muestra cómo describir una extensión en el marketplace.",
"icon": "lucide:Puzzle",
"publisher": {
"id": "bloomx",
"name": "Bloomx",
"official": true,
"verified": true
},
"suite": {
"id": "ejemplos",
"name": "Ejemplos",
"icon": "lucide:FlaskConical"
},
"category": "mail",
"categories": [
"mail",
"automation"
],
"tags": [
"ejemplo",
"plantilla"
],
"screenshots": [
"https://assets.example.com/core-example/inbox.png"
],
"changelog": [
{
"version": "1.0.1",
"date": "2026-10-01",
"notes": [
"Describe la extensión en el marketplace."
]
},
{
"version": "1.0.0",
"date": "2026-09-01",
"notes": "Primera versión."
}
],
"permissions": []
}No los declares en `requires`#
El backend entrega estos campos aparte (campo market del catálogo) a los clientes que declaran la capacidad market.catalog.v1; el manifest ejecutable no cambia. No la pongas en `requires.capabilities`: el validador y el backend lo rechazan, porque las instancias antiguas dejarían de recibir tu extensión. Subir de versión (parche) al añadir los metadatos es suficiente.
Oficial y verificado
official y verified no son una declaración libre: solo las extensiones core-* de la plataforma pueden llevarlos, y el catálogo vuelve a calcular official desde el id y el editor bloomx. Un tercero que los escriba recibe un error al validar.
Lista de comprobación#
- Añade
publisher,suite(si hay marca),categories,tagsy, si quieres,screenshotsychangelog. - Sube la versión (parche) en
manifest.json: las versiones publicadas son inmutables. - Valida con
npm run validate -- <carpeta>(ovalidate:all) ynpm run versions:check. - Comprueba el resultado en
/admin/extensions→ Catálogo: tarjeta, suite, página del editor y pestaña Versiones.
Lecturas relacionadas: Cómo funciona el marketplace, Crear una extensión y Herramientas de extensiones.