Skip to content

Contratos e interfaces

Al ser un sitio estático no hay API HTTP/gRPC ni subjects NATS. Las "interfaces" son las rutas públicas servidas, los artefactos SEO y el contrato de salud de nginx.

Rutas públicas (HTTP GET, sin autenticación)

RutaContenidoEvidencia
/Redirige a /es/ o /en/ según navigator.languageindex.md:6-15
/es/, /en/Home (hero + features) por idiomaes/index.md, en/index.md, .vitepress/config.mts:97, 142
/es/about, /en/aboutSobre míes/about.md, en/about.md, config nav :98, 143
/es/blog/, /en/blog/Índice del blog (tarjetas)es/blog/index.md, en/blog/index.md, :99, 144
/es/blog/ciso-catalizador-negocioArtículo (EN: /en/blog/ciso-business-catalyst)es/blog/ciso-catalizador-negocio.md, :109, 154
/es/blog/zero-trust-mentalidadArtículo (EN: /en/blog/zero-trust-mindset)es/blog/zero-trust-mentalidad.md, :110, 155
/es/projects, /en/projectsProyectoses/projects.md, en/projects.md, :100, 145
/es/contact, /en/contactContacto (enlaces mailto/redes)es/contact.md, en/contact.md, :101, 146
/healthzHealth check (texto ok, HTTP 200)nginx.conf:14-17
/sitemap.xmlSitemap generado por VitePress.vitepress/config.mts:17-24
/favicon.svg, /og-cover.pngEstáticos públicospublic/, .vitepress/config.mts:29, 48

URLs limpias: enlaces sin .html, resueltas por nginx con try_files (.vitepress/config.mts:13, nginx.conf:21).

Contrato de salud

  • GET /healthz200 con cuerpo ok y Content-Type: text/plain (nginx.conf:14-17). Es el endpoint que Cloud Run / monitorización pueden sondear.

Contratos SEO / metadatos (salida en <head>)

ArtefactoDetalleEvidencia
lang globales-ES.vitepress/config.mts:11
hreflanges, en, x-default/es/:39-41
Sitemaphostname https://www.navarro-bores.com, excluye la raíz:17-24
OpenGraphtype, url, title, description, image 1200x630, locale + alternate:44-52
Twitter Cardsummary_large_image + título/descr/imagen:55-58
JSON-LD Personnombre, jobTitle CISO, worksFor TIREA S.A., alumniOf, knowsAbout, sameAs (LinkedIn/GitHub/blueup.es):61-81
Keywordscybersecurity, CISO, Zero Trust, DORA, AML, BlueUP...:36
Favicon/favicon.svg:29

Contrato de frontmatter (entrada de contenido)

Un artículo de blog declara en frontmatter: title, description, date (es/blog/ciso-catalizador-negocio.md:1-5). Las home usan layout: home con bloques hero y features (es/index.md:1-43). La raíz usa layout: page (index.md:1-4).

Búsqueda

  • Proveedor local (índice en cliente, sin servicio externo); ES con traducciones de UI (.vitepress/config.mts:121-133), EN por defecto (:166-168).

Cybersecurity · Technology · Leadership