Índice del libro
Parte I: Parte 1 — Fundamentos: por qué una IDP y por qué Backstage
- 01Por qué necesitamos una IDP (y por qué Backstage)
- 02El problema: la jungla de microservicios
- 03Qué es (y qué no es) una IDP
- 04Platform thinking: el equipo que cocina para otros equipos
- 05Historia de Backstage: de Spotify a CNCF
- 06Cuándo NO merece la pena montar una IDP
- 07Mapa del libro: 4 itinerarios para 4 lectores
- 08Resumen
- 09Glosario del capítulo
- 10Próximo capítulo
- 11Anatomía de Backstage: dos mitades y un plugin
- 12Las dos mitades: el portal y la cocina
- 13Frontend: React + Material UI
- 14Backend: Node, Express, Knex
- 15El CLI @backstage/cli
- 16New Backend System vs legacy
- 17El modelo de plugins: tres categorías
- 18Cómo se monta todo: flujo de arranque
- 19Resumen
- 20Glosario del capítulo
- 21Próximo capítulo
- 22Mise-en-place: tu primera IDP local
- 23Antes de empezar: mise-en-place
- 24Bootstrap: el asistente de cocina
- 25El monorepo: estructura
- 26Arrancar la cocina
- 27La primera entidad del catalog
- 28¿Por qué usamos el catálogo desde el primer momento?
- 29Resumen
- 30Glosario del capítulo
- 31Próximo capítulo
- 32Catalog en serio: kinds, relaciones y providers
- 33De una entidad a un catálogo
- 34Los cinco componentes semilla
- 35La entidad System
- 36Relaciones: cómo se habla el catálogo
- 37Providers: discovery automático desde GitHub
- 38Importar proyectos existentes en bloque
- 39Resumen
- 40Glosario del capítulo
- 41Próximo capítulo
Parte II: Parte 2 — Backend: la cocina por dentro
- 42New Backend System: la cocina real
- 43Más allá del index.ts legacy
- 44createBackend y backend features
- 45Servicios core
- 46Configuración por capas
- 47Backend features: plugins vs módulos
- 48Migración desde legacy
- 49Resumen
- 50Glosario del capítulo
- 51Próximo capítulo
- 52Escribe tu primer plugin backend
- 53El primer plugin: sazon-status
- 54Anatomía de un plugin backend
- 55El router con Zod
- 56Middleware de autenticación
- 57Tests con supertest
- 58Registrar el plugin en el backend
- 59Resumen
- 60Glosario del capítulo
- 61Próximo capítulo
- 62Persistencia, eventos y auth flow en el backend
- 63Tres bases de datos, tres capas
- 64Migraciones con Knex
- 65plugin-database: el servicio de DB
- 66Eventos: el bus interno
- 67Auth flow: proteger endpoints
- 68Resumen
- 69Glosario del capítulo
- 70Próximo capítulo
Parte III: Parte 3 — Frontend: la sala y la carta
- 71Tu primer plugin frontend
- 72El frontend, esa otra mitad
- 73createPlugin y RouteRef
- 74FlatRoutes: el router del shell
- 75El componente de página
- 76Integrar el plugin en el shell
- 77Resumen
- 78Glosario del capítulo
- 79Próximo capítulo
- 80Frontend: datos, APIs y APIs de Backstage
- 81ApisRegistry: el bus del frontend
- 82Consumir el catalog con useApi
- 83Consumir tu propio backend
- 84Manejo de errores
- 85Resumen
- 86Glosario del capítulo
- 87Próximo capítulo
- 88Componentes, tablas y UX consistente
- 89Sistema de diseño: una sola carta
- 90Componentes de core-components
- 91Un InfoCard con un StatusBadge
- 92Composición: de un widget a una página
- 93Resumen
- 94Glosario del capítulo
- 95Próximo capítulo
- 96Theming, branding y la carta del menú
- 97La carta del menú
- 98El archivo themes.json
- 99Página principal del portal
- 100Dark mode
- 101Logo y favicon
- 102Resumen
- 103Glosario del capítulo
- 104Próximo capítulo
Parte IV: Parte 4 — Scaffolder y Auth: el libro de recetas y la puerta
- 105Scaffolder: el libro de recetas
- 106Scaffolder, el libro de recetas de la IDP
- 107Anatomía de un template
- 108Actions built-in
- 109El template completo
- 110Cargar el template en Backstage
- 111El esqueleto: skeleton/
- 112Resumen
- 113Glosario del capítulo
- 114Próximo capítulo
- 115Forms, dry-run y un template serio
- 116Forms que se adaptan al developer
- 117Conditional fields con dependencias
- 118Custom widgets: EntityNamePicker, OwnerPicker
- 119Dry-run: ensayar antes de publicar
- 120Un template serio: servicio con DB opcional
- 121Resumen
- 122Glosario del capítulo
- 123Próximo capítulo
- 124Auth: GitHub OAuth, Keycloak/OIDC y RBAC
- 125Identidad: quién entra al restaurante
- 126Flujo OAuth/OIDC
- 127GitHub OAuth (desarrollo)
- 128Keycloak/OIDC (laboratorio y producción)
- 129Sign-in resolvers
- 130RBAC con permission-backend
- 131Cómo se aplica en el cliente
- 132Resumen
- 133Glosario del capítulo
- 134Próximo capítulo
- 135El ecosistema de plugins: la carta del restaurante
- 136El menú ya no es solo el Software Catalog
- 137Anatomía de un plugin
- 138El catálogo oficial de plugins
- 139Plugin-paths: cómo descubre Backstage plugins externos
- 140Dynamic plugins (Backstage 1.30+)
- 141El "metadata" de un plugin publicable
- 142Escribir un plugin que el equipo vecino pueda instalar
- 143Errores comunes
- 144Cuándo construir un plugin vs cuándo comprar SaaS
- 145Resumen
- 146Glosario del capítulo
- 147Próximo capítulo
- 148Seguridad: cuando el portal tiene las llaves de la cocina
- 149La pregunta incómoda
- 150El threat model oficial de Backstage
- 151Los CVEs que ya han afectado a Backstage
- 152Hardening por superficie
- 153Manejo de secretos en Scaffolder
- 154Auditoría: quién hizo qué
- 155Lista de verificación de seguridad pre-producción
- 156Resumen
- 157Glosario del capítulo
- 158Próximo capítulo
- 159Permisos: la matriz que decide quién cocina qué
- 160Por qué un "allow all" no es buena idea
- 161Conceptos fundamentales
- 162El flujo de una decisión
- 163Tu primera policy: solo owners pueden editar
- 164Frontend: ocultando lo que el usuario no puede hacer
- 165Conditional decisions: el patrón elegante
- 166Integración con Open Policy Agent (OPA)
- 167RBAC legacy → Permission Framework: migración incremental
- 168Los 5 errores más comunes
- 169Auditar decisiones de permiso
- 170Resumen
- 171Glosario del capítulo
- 172Próximo capítulo
- 173Software Templates avanzados: el golden path completo
- 174El golden path: cuando el template hace TODO
- 175Anatomía de un template complejo
- 176Custom fields avanzados
- 177Conditional execution: if
- 178Manejo de secretos en templates: las 3 reglas
- 179Dry-run: simular antes de ejecutar
- 180Auditar la adopción de templates
- 181Marketplace interno de templates
- 182Testear templates con CI
- 183Resumen
- 184Glosario del capítulo
- 185Próximo capítulo
Parte V: Parte 5 — Operaciones, IaC y plataforma como producto
- 186Operar la IDP: Docker, kind, OpenTofu, Crossplane, observabilidad
- 187Operar la cocina: del dev al cluster
- 188Stack local con Docker Compose
- 189Cluster local con kind
- 190IaC con OpenTofu
- 191Crossplane: CRDs como infra
- 192Desplegar Backstage en Kubernetes
- 193Observabilidad: métricas, logs y traces
- 194Logs y alertas
- 195Backup y disaster recovery
- 196Upgrades: el baile de versiones
- 197Multi-tenant: aislamiento por namespace
- 198Plugins extra útiles
- 199Resumen
- 200Glosario del capítulo
- 201Próximo capítulo
Parte VI: Parte 6 — Comparativa y cierre
- 202Backstage vs Port vs Compass vs Cortex: guía de compra
- 203No hay un "mejor", hay un "para quién"
- 204Tabla comparativa (5 ejes)
- 205Backstage en detalle
- 206Port en detalle
- 207Compass en detalle
- 208Cortex en detalle
- 209Radar comparativo
- 210Métricas de adopción
- 211ROI: el argumentario para la CTO
- 212Scoring honesto: cómo lo construirías para tu empresa
- 213Cierre del libro
- 214Resumen
- 215Glosario del capítulo
- 216Próximo paso