Saltar a contenido

Estructura del paquete

Un paquete debe tener una raíz clara y un único manifest.json. La estructura recomendada para el contrato público v1 es:

mi-modulo/
├── manifest.json
├── README.md
├── CHANGELOG.md
├── views/
├── actions/
├── mounts/
└── db/
    ├── install.mysql.sql
    ├── install.sqlite.sql
    ├── uninstall.mysql.sql
    └── uninstall.sqlite.sql

Los directorios solo son necesarios cuando el módulo utiliza esa superficie. Un módulo de integración que no almacena datos puede omitir db/.

Reglas del ZIP

  • El ZIP contiene una única carpeta raíz del módulo.
  • Hay un solo manifiesto en esa raíz.
  • El nombre del directorio coincide con slug.
  • No se incluyen .env, claves, tokens, volcados de base de datos ni archivos de desarrollo local.
  • No se incluyen repositorios .git, dependencias innecesarias ni artefactos de compilación.
  • Las rutas declaradas en el manifiesto usan / y respetan mayúsculas y minúsculas.

Convenciones

Usa un slug estable, en minúsculas, con números o guiones bajos. No lo cambies para corregir el nombre comercial: el slug identifica el módulo instalado.

Los identificadores de vistas, acciones y mounts también forman parte del contrato. Prefija los nombres propios del módulo cuando puedan coincidir con otra extensión, por ejemplo reservas.list o reservas.create.

Datos y desinstalación

Si el módulo crea tablas, ofrece instalaciones equivalentes para MySQL y SQLite. Las migraciones de una actualización deben ser explícitas y reversibles cuando sea posible. La desinstalación debe indicar si elimina datos, los conserva o requiere una exportación previa.

No dependas de tablas internas del CRM. Usa las capacidades y contratos públicos disponibles para relacionarte con clientes, prospectos, tareas o tickets.