| App | URL App Proxy | Puerto interno |
|---|---|---|
| SisApps Hub (este portal) | http://sisapps-idealistaa82505660.msappproxy.net/ | 8080 |
| SIS Alerts | https://sisalerts-idealistaa82505660.msappproxy.net/ | 8082 |
| Security Monitor | https://securitymonitor-idealistaa82505660.msappproxy.net/ | 8083 |
| HyperV Monitor | https://hypervmonitor-idealistaa82505660.msappproxy.net/ | 8086 |
El hub actúa como landing central para el equipo de sistemas. En lugar de tener que recordar varias URLs, se accede a una sola y desde ahí se navega al resto. Adicionalmente:
Usuario en red interna o externa
→ App Proxy Entra ID (autenticación SSO)
→ SisApps Hub (landing con tarjetas)
→ SIS Alerts (sisalerts-...msappproxy.net)
→ Security Monitor (securitymonitor-...msappproxy.net)
→ HyperV Monitor (hypervmonitor-...msappproxy.net)
La pantalla principal muestra una rejilla centrada con una tarjeta por app (excluyendo el propio hub). Cada tarjeta incluye:
| App | Estadísticas mostradas |
|---|---|
| SIS Alerts | Alertas abiertas · Alertas hoy · Tiempo desde la última alerta |
| Security Monitor | Alertas abiertas · Alertas de alta severidad · Tiempo desde la última alerta |
| HyperV Monitor | Clusters monitorizados · Nodos en estado Up · Alertas de disco activas |
/api/hub-stats de cada app al cargar la página.
Si una app no responde, la tarjeta muestra "—" en lugar de las métricas. El acceso a cada app no se ve afectado.
X-MS-CLIENT-PRINCIPAL-NAME inyectado por el proxy para identificar al usuario y mostrar su nombre e iniciales.sso.auto_admin: true en la configuración, cualquier usuario autenticado tiene acceso completo (no hay roles en el hub).El hub usa el paquete sisapps-ui junto con el resto de las apps del equipo. Esto proporciona:
localStorage está limitado por origen (scheme + host + puerto), por lo que no se comparte entre apps en diferentes puertos.
Las cookies ignoran el puerto (RFC 6265), así que sisapps_theme y sisapps_sidebar se comparten entre las cuatro apps automáticamente.
app-config.json){
"port": 8080,
"sso": {
"header_upn": "X-MS-CLIENT-PRINCIPAL-NAME",
"trusted_proxy_ips": ["10.80.6.21", "10.80.6.22"],
"auto_admin": true
},
"graph": {
"tenant_id": "d78b7929-c2a3-4897-ae9a-7d8f8dc1a1cf",
"client_id": "...",
"auth_mode": "cert_store",
"certificate_thumbprint": "..."
}
}
El bloque graph es opcional pero recomendado: permite mostrar el nombre completo y avatar del usuario en la navbar (consulta Microsoft Graph API con autenticación por certificado).
Las URLs que aparecen en las tarjetas y la sidebar se resuelven en este orden de prioridad:
app-config.json → sisapps.urls.{id} (excepcional)sisapps-urls.json en la raíz del repo (contiene las URLs del App Proxy de producción — está en .gitignore)http://localhost:{puerto} (válido en red interna sin proxy)C:\apps\jmfernandez\sisapps-urls.json debe existir en el servidor con las URLs correctas del App Proxy.
Sin este fichero, las tarjetas apuntan a localhost:puerto (funciona en red interna pero no desde el exterior).
| Parámetro | Valor |
|---|---|
| Servicio WinSW | sisapps-hub-service.xml |
| Puerto | 8080 |
| Ruta producción | C:\apps\jmfernandez\sisapps-hub |
cd C:\apps\jmfernandez\sisapps-hub .\deploy.ps1 # git pull + pip install sisapps-ui + restart sisapps-hub-service
cd C:\apps\jmfernandez\sisapps-hub .\sisapps_deploy.ps1 # git pull del repo + pip install sisapps-ui + restart de los 4 servicios
sisapps-ui (sidebar, CSS, JS compartido) hay que ejecutar
sisapps_deploy.ps1 para que todas las apps recojan los cambios. Para cambios específicos de una sola app
se puede usar el deploy.ps1 de esa app.