docs: corrige API de hooks, documenta modelo de ejecucion/plugins y aviso de fiabilidad del MCP #1

Open
DavidSosa wants to merge 2 commits from docs/fix-hooks-api-y-avisos-mcp into main
Member

Resumen

  • CocoDB::getInstance() no existe (fatal Call to undefined method) — corregido, con DB::getInstance() documentado como ultima opcion real.
  • Documentado el enrutado HTTP de hooks (404 en Forge para /hooks/<id>/) y el patron de diagnostico via filtro | hook.
  • Documentado el modelo de ejecucion de hooks (eval()): __DIR__ vs APP_ROOT_PATH, params por HTTP ($_REQUEST) vs filtro Twig.
  • Documentado que DB::escape() devuelve el literal ya entrecomillado, con el patron seguro para filtros de usuario.
  • Nueva seccion "Seguridad en hooks": nunca delegar el hashing de contrasenas en el CMS (isPasswordField no hashea; editor_password usa SHA1).
  • Nuevo aviso en mcp-tools-reference.md: las write-ops/DDL del MCP pueden devolver success:true sin que la operacion real se haya aplicado — verificar siempre con una operacion real posterior.
  • Documentado el contrato de plugins CMS personalizados (cms/lib/plugins/index.php: addPlugins, checkPoints, gating adminOnly, filtros menuFilter/actionFilter, install.sql/schemaPresets) — no estaba documentado en ningun sitio.

Todos estos son hallazgos de friccion real capturados trabajando en proyectos Acai (turismo, onefix-appv1, pisorentado.com), reclasificados como mejoras de scaffolding (en vez de solo reportarlos) tras confirmar acceso de PR a este repo.

Test plan

  • Revision de contenido (son cambios de documentacion, sin codigo ejecutable)
  • Revision por el equipo que mantiene acai-scaffold

🤖 Generated with Claude Code

## Resumen - `CocoDB::getInstance()` no existe (fatal `Call to undefined method`) — corregido, con `DB::getInstance()` documentado como ultima opcion real. - Documentado el enrutado HTTP de hooks (404 en Forge para `/hooks/<id>/`) y el patron de diagnostico via filtro `| hook`. - Documentado el modelo de ejecucion de hooks (`eval()`): `__DIR__` vs `APP_ROOT_PATH`, params por HTTP (`$_REQUEST`) vs filtro Twig. - Documentado que `DB::escape()` devuelve el literal ya entrecomillado, con el patron seguro para filtros de usuario. - Nueva seccion "Seguridad en hooks": nunca delegar el hashing de contrasenas en el CMS (`isPasswordField` no hashea; `editor_password` usa SHA1). - Nuevo aviso en `mcp-tools-reference.md`: las write-ops/DDL del MCP pueden devolver `success:true` sin que la operacion real se haya aplicado — verificar siempre con una operacion real posterior. - Documentado el contrato de plugins CMS personalizados (`cms/lib/plugins/index.php`: `addPlugins`, checkPoints, gating `adminOnly`, filtros `menuFilter`/`actionFilter`, `install.sql`/`schemaPresets`) — no estaba documentado en ningun sitio. Todos estos son hallazgos de friccion real capturados trabajando en proyectos Acai (turismo, onefix-appv1, pisorentado.com), reclasificados como mejoras de scaffolding (en vez de solo reportarlos) tras confirmar acceso de PR a este repo. ## Test plan - [x] Revision de contenido (son cambios de documentacion, sin codigo ejecutable) - [ ] Revision por el equipo que mantiene `acai-scaffold` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
DavidSosa added 2 commits 2026-09-14 13:59:00 +00:00
Hallazgos de fricción real en producción (turismo, onefix-appv1, pisorentado.com):
- CocoDB::getInstance() no existe (fatal), sustituido por DB::getInstance() como última opción
- El enrutado HTTP directo de /hooks/<id>/ da 404 en Forge; documentado el patrón vía filtro | hook
- Modelo de ejecución eval(): __DIR__ vs APP_ROOT_PATH, params por HTTP vs filtro Twig
- DB::escape() ya entrecomilla el literal; patrón seguro documentado
- Nunca delegar hashing de contraseñas en el CMS (create_field no tiene tipo password; SHA1 inadecuado)
- Aviso de que success:true en write-ops/DDL del MCP no garantiza que la operación se aplicó
docs: documenta el contrato de plugins CMS personalizados (checkPoints en cms/lib/plugins/index.php)
gitleaks / gitleaks (push) Canceled after 0s
gitleaks / gitleaks (pull_request) Canceled after 0s
9565b4410b
No estaba documentado en absoluto (solo se mencionaba builder_saas para color). Evita tener que
explorar el servidor por SSH para entender addPlugins/checkPoints/gating/filtros.
Some required checks failed
gitleaks / gitleaks (push) Canceled after 0s
gitleaks / gitleaks (pull_request) Canceled after 0s
This pull request has changes conflicting with the target branch.
  • CLAUDE.md
  • docs/hooks-and-api.md
  • docs/mcp-tools-reference.md
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin docs/fix-hooks-api-y-avisos-mcp:docs/fix-hooks-api-y-avisos-mcp
git checkout docs/fix-hooks-api-y-avisos-mcp
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: acai/acai-scaffold#1