- Correct hooks-and-api.md: file hooks vs module hooks param injection, FK naming not always _num, CmsApi.hook Promise pattern - Add 9 new rules to hooks-and-api.md: reserved `tipo` var, ghost modules, cms_uploads schema, name vs title by menuType, menuOrder, localCache gotcha, slug generation, uploads from hooks, CocoEmail - Add 5 rules to modular-system.md: minified/ dir, Docker workflow, debug tools (?compiletwig/?pruebas), general sections deploy, controlador - Add 2 rules to css-js-conventions.md: Vue inline conflict, Vue mount delay - Add testing section to quick-reference.md - Create docs/deploy-and-sync.md for production deploy and sync rules - Promote 3 critical rules to CLAUDE.md (rules 11-13) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
# Deploy & Sync
|
|
|
|
Reglas para desplegar módulos y secciones generales a producción via MCP, y para sincronizar con el servidor.
|
|
|
|
---
|
|
|
|
## Protocolo para `save_module`
|
|
|
|
1. `save_module` con `html`, `js`, `css` — **LOS 3 SIEMPRE**. Si omites uno, se borra de prod (queda 0 bytes).
|
|
2. Ejecutar `check_module` → fuerza recompilación de `index-twig.tpl`
|
|
3. Visitar `?compiletwig` en una página que use el módulo
|
|
4. Verificar que renderiza
|
|
|
|
---
|
|
|
|
## NUNCA pasar `html` a módulos con builder vars configurados
|
|
|
|
Módulos con sample data en el builder (banners, carouseles, módulos con imágenes/colores configurados desde el admin) se ROMPEN al recompilar el HTML. El `save_module` puede perder/corromper la configuración visual.
|
|
|
|
**Para estos módulos:**
|
|
- Solo pasar `js` y/o `css`, nunca `html`
|
|
- Si se rompe: `recover_git` con `list_git_log` para revertir
|
|
- Editar el HTML desde el panel admin de Acai, no por MCP
|
|
|
|
---
|
|
|
|
## Forzar regeneración de minified
|
|
|
|
Si subes solo `js`, el `minified/script-{hash}.js` NO se regenera automáticamente.
|
|
|
|
**Solución:**
|
|
1. Leer el HTML actual de prod con `get_module` (sections: `["html"]`)
|
|
2. Añadir un espacio al final
|
|
3. `save_module` con los 3 (html+espacio, js, css)
|
|
|
|
**IMPORTANTE:** Usar SIEMPRE el HTML de prod (`get_module`), NUNCA el local.
|
|
|
|
---
|
|
|
|
## General Sections (`custom-*`)
|
|
|
|
Se despliegan con `save_general_section`, no `save_module`:
|
|
- El módulo se llama `custom-{nombre_tabla}` (ej: `custom-productos`)
|
|
- Se sube con `table: "productos"`, `content`, `javascript`, `css`
|
|
|
|
---
|
|
|
|
## Sync y Versionado
|
|
|
|
### Sync from server puede borrar módulos locales
|
|
El "Sync from server" puede eliminar módulos que existen en local pero no en el servidor. Si borra `custom-header` o `custom-footer`, TODAS las páginas crashean.
|
|
|
|
**Regla:** Hacer commit ANTES de cualquier sync.
|
|
|
|
### Sync solo sube archivos modificados
|
|
Para forzar un sync de un archivo sin cambios reales, añadir un espacio al final.
|