Goliat Cloud Inventory: recursos, suscripciones y costes de Azure en un solo panel
Daniel J. Saldaña- 2 de noviembre de 2026
- Puntuación de feedback

Entender un entorno Azure exige relacionar varias piezas: qué recursos existen, a qué suscripción pertenecen, cómo están etiquetados y qué costes generan. Cuando la información queda repartida, responder una pregunta sencilla puede llevar más tiempo que la consulta técnica que hay detrás.
He creado Goliat Cloud Inventory para reunir esa exploración en un dashboard autoalojado. La aplicación combina un inventario consultable, análisis de costes y administración del colector, con una interfaz en español e inglés.
Web oficial y demo interactiva: Abrir la web de Goliat Cloud Inventory
Código en GitHub: Ver el repositorio de Goliat Cloud Inventory
El repositorio del producto incluye el panel, el backend, la Azure Function de recogida, la infraestructura y las guías para desplegarlo.

Captura real de la aplicación ejecutada en local. Los 214 recursos y las suscripciones que aparecen pertenecen al inventario ficticio de demostración.
Del inventario general al recurso concreto
El panel ofrece 73 vistas organizadas en 12 grupos de servicios. La visión general reúne indicadores y distribuciones; las categorías permiten profundizar en cómputo, contenedores, red, almacenamiento, bases de datos y otros servicios.
En las tablas puedes buscar, filtrar por suscripción y columna, agrupar, ordenar, paginar y exportar los datos. La búsqueda global permite localizar recursos por nombre, identificador o etiqueta, además de encontrar suscripciones y vistas del catálogo.
Un recorrido práctico podría ser:
- Abrir la visión general para conocer el volumen de recursos y la cobertura de etiquetas.
- Seleccionar una suscripción para limitar el análisis a un entorno.
- Buscar un recurso o una etiqueta de proyecto.
- Consultar su categoría y exportar el conjunto filtrado para revisarlo con el equipo.
La búsqueda trabaja sobre el inventario que ya se ha cargado. Cada interacción de la tabla no dispara una nueva recogida de Azure.
Cómo llega el inventario al panel
La arquitectura separa la recogida de recursos de su consulta:
Azure Resource Graph + Azure Resource Manager ↓ Azure Functions ↓ Snapshot JSON en Blob Storage ↓ Backend Next.js ↓ PostgreSQL ↓ Dashboard de inventarioLa Function recoge los datos y publica un snapshot. El backend lee ese documento, lo normaliza y lo importa en PostgreSQL. El navegador consulta al backend, que aplica el control de acceso.
Cada importación se ejecuta en una transacción. Si falla, se conserva el snapshot anterior; el mismo ETag del blob no se importa dos veces. Esto evita que un error de importación deje unas tablas con la nueva versión y otras con la anterior.
La actualización manual también coordina el trabajo entre usuarios y réplicas mediante un bloqueo compartido en PostgreSQL. Esto evita que dos personas inicien simultáneamente la misma operación desde el panel.
FinOps: consultar los costes con su contexto
La sección FinOps consulta Azure Cost Management desde el servidor. Permite elegir mes, suscripción, moneda y base de coste real o amortizado, y explorar la evolución diaria, la distribución del gasto y el detalle por recurso y servicio.
El inventario y los costes tienen recorridos distintos: los recursos proceden del snapshot importado, mientras que FinOps consulta la API de costes. El producto no mantiene un libro histórico de gastos en PostgreSQL.
Hay varios detalles que ayudan a interpretar los resultados:
- Las monedas se mantienen separadas.
- Los recursos eliminados y los cargos sin recurso conservan su importe.
- Los resultados parciales y los errores de permisos se muestran de forma explícita.
- La ausencia de datos no se presenta como un coste de cero.
- La fecha de consulta no equivale al cierre de la factura; el mes abierto puede recibir ajustes.
La intención es facilitar la lectura y el análisis del gasto disponible. Esta versión no calcula previsiones ni recomendaciones automáticas de ahorro.
Administración del colector y de la actualización
La sección de administración reúne el estado y las métricas de la Function, información de salud de PostgreSQL y Blob Storage, y la comparación entre el inventario publicado y el importado.
También permite gestionar la programación del colector y las claves de etiquetas que se muestran como columnas. Esto ayuda a adaptar la vista a convenciones como proyecto, entorno o centro de coste.
Los diagramas de arquitectura están integrados en la aplicación y en la web del producto. Permiten seguir tanto el flujo de datos como el despliegue de referencia en Azure.
Identidad y permisos separados por responsabilidad
La aplicación admite autenticación con Microsoft Entra ID y un modo demo con usuario y contraseña. Las páginas y las APIs de datos comprueban el acceso en el servidor.
El colector utiliza permisos de lectura para consultar el inventario. La identidad del backend dispone de los permisos necesarios para leer el snapshot y, para FinOps, consultar los costes mediante Cost Management Reader en las suscripciones configuradas.
Las credenciales cloud y de PostgreSQL permanecen en el servidor y en el colector. El navegador recibe los datos que puede consultar, no las credenciales utilizadas para obtenerlos.
La administración requiere permisos adicionales definidos para sus operaciones. Separar esas responsabilidades permite revisar quién puede consultar, actualizar o administrar la instalación.
Probarlo con datos ficticios
La web de Goliat Cloud Inventory incluye una vista previa interactiva que funciona con datos ficticios y no consulta tu suscripción. Puedes explorar las vistas de inventario, FinOps y administración para conocer la interfaz.
Para probar la aplicación real en local necesitas Node.js y una base PostgreSQL vacía, siguiendo los requisitos del README. El recorrido de inicio es:
git clone https://github.com/danieljsaldana/goliat-cloud-inventory.gitcd goliat-cloud-inventorynpm cicp .env.example .env
# Configura PostgreSQL, el acceso demo y AUTH_SECRET en .env# antes de ejecutar los siguientes comandos.npm run db:initnpm run db:seednpm run devLa semilla incluye 214 recursos ficticios y permite probar el inventario sin credenciales de Azure. El análisis de costes de una suscripción real necesita su configuración y los permisos correspondientes.
Cuando quieras conectar un entorno real, la documentación explica el colector y el despliegue con Bicep y PowerShell: App Service, Azure Functions, Storage, PostgreSQL e identidades de Entra.
Dos herramientas con responsabilidades distintas
Goliat Nexus organiza una base de infraestructura y una aplicación de ejemplo. Cloud Inventory se centra en consultar recursos, suscripciones, etiquetas y costes.
Cada herramienta puede utilizarse de forma independiente. Inventory puede recoger los recursos de las suscripciones que configures, incluidas aquellas donde despliegues Nexus, siempre que tenga los permisos adecuados.


