CMS — Public Site Runtime y Admin
El producto saas-col-cms embebe el router de Core y añade el Public Site Runtime (Host → tenant → HTML).
Arranque
cd saas-col-cms
go test ./...
go run ./cmd/cms-engine # :3002
Token local: Authorization: Bearer saascol_test_token_samisalud
Flujo público
GET /api/v1/public/resolve-host?host=→tenant_id- Runtime HTML resuelve
cms.Pagepor slug (Page Schema SSR) - Nodos DataList leen CRUD (
MedicalService,InstitutionalPolicy,Location,FinancialStatement) - ContactForm →
POST /api/v1/public/tenant/{id}/forms/{formId}/submit→ eventocms.form.submitted→ deal CRM
Page Schema (nodos tipados)
| Tipo | Uso |
|---|---|
HeroSection | Hero + CTA |
Heading / RichText / Text / CTA / Image / Spacer | Contenido |
DataList | Lista CRUD (schema tipado) |
ContactForm | Formulario público → CRM |
Editor: /admin/pages escribe el mismo JSON que el SSR consume.
Import por URL
POST /api/v1/cms/import-url
Flags:
| Campo | Efecto |
|---|---|
depth / max_pages | Crawl same-origin |
use_ai | Limpieza + clasificación (heurística o SAASCOL_AI_ENRICH_URL) |
dry_run | Preview sin persistir |
apply_suggestions | Crea records tipados sugeridos |
apply_navigation / apply_branding / publish | Site config |
Assets se copian al ObjectStore (products/cms/pages) y se sirven en /api/v1/public/assets/{tenant}/….
Provision Wizard
POST /api/v1/admin/tenants/provision
Body: name, slug, domains, template_id, colores, navigation, logo_url, seed_healthcare, modules.