Modelo de datos
Resumen
No hay base de datos ni store en ejecución. El sitio es estático: el "dato" es el contenido en Markdown del repositorio, compilado a HTML en build. No existen PostgreSQL, SQLite, JetStream, KV ni migraciones (N/A honesto; ver Dockerfile:14-17, package.json:7-15).
"Entidades" de contenido (ficheros Markdown)
| Entidad | Representación | Campos / estructura | Evidencia |
|---|---|---|---|
| Artículo de blog | es/blog/<slug>.md + par EN | frontmatter title, description, date; cuerpo Markdown | es/blog/ciso-catalizador-negocio.md:1-5 |
| Índice de blog | es/blog/index.md / en/blog/index.md | tarjetas HTML con tag, título, extracto, fecha | es/blog/index.md:10-23 |
| Home | es/index.md / en/index.md | layout: home, hero, features | es/index.md:1-43 |
| Páginas | about, projects, contact (ES/EN) | frontmatter + Markdown/HTML | es/contact.md:1-8 |
| Raíz | index.md | layout: page + script de redirección | index.md:1-15 |
| Estáticos | public/favicon.svg, public/og-cover.png | binarios servidos tal cual | public/ |
Propiedad y ciclo de vida del dato
- Fuente de verdad: el repositorio git en Gitea (
git remote). El contenido se versiona con git;lastUpdated: truederiva la fecha mostrada del último commit por archivo (.vitepress/config.mts:14). - Artefacto derivado:
.vitepress/dist(ignorado en git y docker,.gitignore:3,.dockerignore:2); se regenera en cada build. - Datos de usuario: ninguno. No se captura ni persiste información del visitante (sin formularios, sin analítica; ver
funcional/06-cumplimiento.md).
Retención
- No aplica retención de datos de usuario (no se recogen).
- Las imágenes de la imagen Docker se etiquetan por
:shay:latesten Artifact Registry (.github/workflows/deploy.yml:35-37);DESCONOCIDO:política de limpieza/retención de imágenes en el registro (no definida en el repo).
Configuración hardcodeada relevante
EXPIRY_DATE="2026-09-14"en el script de recordatorio de dominio (scripts/domain-reminder.sh:7); dato operativo a actualizar manualmente tras renovar (CLAUDE.md:34).