Saltar al contenido

plugin.json ​

Ficha del paquete. La valida el esquema PluginJson de api/src/plugins/package.ts al instalar; un campo mal formado rechaza el paquete con PLUGIN_INVALID.

json
{
  "key": "notas",
  "title": "Notas",
  "version": "1.0.0",
  "apiVersion": 2,
  "description": "Notas internas del local con aviso al equipo.",
  "category": "operacion",
  "icon": "message",
  "priceMonthly": 6,
  "author": "Mi empresa"
}

Campos ​

CampoTipoObligatorioDescripción
keytextosíClave estable en camelCase: /^[a-z][a-zA-Z0-9]{1,39}$/ (MODULE_KEY_RE). Es la de features[key], /modules/:key y feature en el panel. No se renombra nunca. Debe coincidir con manifest.key del ZModule.
titletexto, 1 a 80síNombre visible en el Marketplace.
versionx.y.zsíSemver estricto de tres números. El instalador omite una versión ya instalada: sube la versión para actualizar.
apiVersionentero > 0síVersión del contrato con el host contra la que se compiló. Un valor mayor que el del host se rechaza. Usa la actual (2) para código nuevo.
descriptiontextonoUna frase en lenguaje llano para el escaparate.
categorytextonooperacion, cliente, finanzas, marketing, analisis o cumplimiento.
icontextonoNombre de un icono del kit (catálogo).
priceMonthlynúmero ≥ 0noPrecio de lista en EUR al mes sin IVA. Orientativo: no se cobra nada. Con PLUGINS_LICENSE=required, un valor mayor que 0 exige licencia.
authortexto, 1 a 80noQuién desarrolla el plugin; se muestra como «Por …».
imageassets/<nombre>.pngnoPortada dentro del paquete (PNG 960x540). Ruta assets/ y extensión .png.
requires{ clave: "x.y.z" }noPlugins de los que depende, con versión mínima. Ver dependencias.
packbooleanonoPlugin sin código que solo reúne a otros. Exige requires no vacío y prohíbe api/index.mjs.
adopts/^[a-z_][a-z0-9_]*$/noNombre de una tabla cuya existencia indica que el historial de migraciones ya corrió (módulos que eran integrados).
admin{ entry, css? }lo escribe el compiladorEntrada ESM y hoja de estilos del panel, relativas a admin/. No lo escribas a mano: hury-plugin build lo añade al generar el paquete.

Reglas que conviene recordar ​

  • La clave que firmas es la del paquete, no la del plugin: no tienen relación. Ver Seguridad.
  • key y version determinan la carpeta de instalación <PLUGINS_DIR>/<clave>/<versión>/.
  • Un .zip sin api/index.mjs solo es válido si pack es true.
  • El nombre del fichero del paquete es <clave>-<versión>.zip.

Contrato con el host: apiVersion 2. Sitio estático: no recoge datos ni usa servicios de terceros.