diff --git a/CLAUDE.md b/CLAUDE.md index 8007f15..72c0556 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,9 +4,9 @@ This is an Acai CMS website project. Follow these instructions when working with ## Environment -- The site runs in Docker, typically at **http://localhost:8080** -- You can make HTTP requests to test pages, APIs, or form submissions -- If you need to inspect the live site, use browser tools (Playwright MCP) or HTTP requests to localhost:8080 +- The site runs on Acai Forge — get the live editable URL with the `get_web_url` MCP tool (never assume a fixed domain) +- You can make HTTP requests to test pages, APIs, or form submissions against that URL +- If you need to inspect the live site, use browser tools (Playwright MCP) or HTTP requests to the Forge URL ## Project Structure @@ -28,13 +28,7 @@ This is an Acai CMS website project. Follow these instructions when working with │ ├── data/schema/ # Database table schemas (JSON) │ ├── lib/plugins/ # CMS plugins │ └── uploads/ # Uploaded media files -├── .acai # Project config (domain, tokens, DB credentials) -├── .docker/ -│ ├── .env # Docker environment (DB credentials) -│ ├── docker-compose.yml -│ ├── tunnel-url.txt # Public tunnel URL (if active) -│ └── bore-db-url.txt # Database tunnel URL (if active) -└── database.sql # Database dump +└── .acai # Project config (domain, tokens, DB credentials) ``` ## Key Concepts @@ -89,28 +83,9 @@ Rule of thumb: See [docs/hooks-and-api.md](docs/hooks-and-api.md) for usage. -## Database Access - -When the site is running in Docker, you can connect to the database: - -- **Host:** `127.0.0.1` -- **Port:** Check `.docker/docker-compose.yml` for the mapped port (usually 3307+) -- **Credentials:** Read from `.docker/.env`: - - `DB_USERNAME` - - `DB_PASSWORD` - - `DB_DATABASE` - -```bash -docker exec -it dw--db mysql -u root -p -``` - -**Important:** Table names in CmsApi/Twig do NOT use the `cms_` prefix. The primary key is always `num`, never `id`. - ## Acai Core (web-base) -The project workspace contains only the **customization layer** (modules, hooks, schemas, uploads). The CMS core (routing, rendering engine, admin panel, APIs) lives in a separate directory called **web-base** that is mounted as a Docker volume. - -The web-base path can be obtained via: `GET http://localhost:9090/api/web-base-path` +The project workspace contains only the **customization layer** (modules, hooks, schemas, uploads). The CMS core (routing, rendering engine, admin panel, APIs) lives in a separate, shared directory called **web-base**. Do NOT modify web-base files — they are shared across all projects. diff --git a/docs/builder-fields.md b/docs/builder-fields.md index 4bf7192..12ae3c6 100644 --- a/docs/builder-fields.md +++ b/docs/builder-fields.md @@ -471,7 +471,7 @@ El nombre del campo de imagen viene de `builder.json` → `vars.NOMBRE.relations - `tableName`: `"builder_custom"` (siempre, sin prefijo cms_) - `recordId`: el `recordNum` del paso 1 (ej: `"778"`) - `fieldName`: el campo de relations del builder.json (ej: `"image1"`) - - `imageUrl`: URL completa accesible desde Docker + - `imageUrl`: URL completa y públicamente accesible 3. `reorder_record_uploads` si es necesario — pasar array de upload IDs en el orden deseado 4. `list_record_uploads` para verificar diff --git a/docs/hooks-and-api.md b/docs/hooks-and-api.md index 3e94aec..a1f0399 100644 --- a/docs/hooks-and-api.md +++ b/docs/hooks-and-api.md @@ -56,13 +56,15 @@ return [ ### Testing Hooks -El Docker debe estar corriendo. Hacer curl al endpoint del hook: +Usa la URL editable de Forge del proyecto (`get_web_url`) — no hace falta ningún servidor local. Haz +`curl` al endpoint del hook contra esa URL: ```bash -curl http://localhost:8080/hooks/example_hook/ +curl https:///hooks/example_hook/ ``` -No usar X-Hooks-Token en desarrollo local. +Para diagnosticar sin depender del enrutado HTTP directo (que en Forge puede dar 404 — ver más abajo), +usa el patrón vía filtro `| hook` desde un módulo/página temporal. ### Cómo Llamar Hooks