Studio Zero Desk

Studio ZeroDesk

Si gestionas varios modelos semánticos en Power BI, sabes lo tedioso que es entrar al servicio, buscar cada dataset y lanzar el refresco uno a uno. Este artículo documenta una herramienta que he montado para resolver exactamente eso: un único archivo HTML que muestra todos tus datasets, muestra su estado y te permite refrescarlos desde el navegador.


Qué hace la herramienta

  • Lista todos los modelos semánticos de un workspace de Power BI
  • Muestra el estado del último refresco (completado, error, sin datos)
  • Permite lanzar el refresco de un modelo individual o de todos a la vez
  • Monitoriza el progreso automáticamente cada 15 segundos
  • Autenticación con tu cuenta Microsoft 365 mediante OAuth 2.0 PKCE — sin contraseñas almacenadas pero con la seguridad suficiente para que sea compliance

Todo en un único archivo .html.


Prerrequisitos

Antes de empezar necesitas:

  1. Un tenant de Microsoft 365 con Power BI Pro o Premium
  2. Una cuenta con permisos de Administrador Global o de Aplicación en Entra ID
  3. Un sitio donde alojar el HTML — recomiendo Netlify, que tiene plan gratuito

Paso 1 — Crear el App Registration en Entra ID

Este es el paso más crítico. Sin él, la autenticación no funciona.

  1. Ve a portal.azure.comEntra IDApp registrationsNew registration
  2. Nombre: el que quieras (ej. Power BI Refresh Tool)
  3. Supported account types: Accounts in this organizational directory only (Single tenant)
  4. Redirect URI: selecciona tipo Single-page application (SPA) y pon http://localhost de momento
  5. Pulsa Register

Una vez creado, ve a API permissionsAdd a permissionPower BI ServiceDelegated y añade:

  • Dataset.ReadWrite.All
  • Workspace.Read.All

Luego pulsa «Grant admin consent for [tu tenant]» y confirma.

Antes de salir, copia estos dos valores — los necesitarás en el Paso 3:

  • Application (client) ID
  • Directory (tenant) ID

Paso 2 — Alojar el archivo HTML en Netlify

  1. Crea una cuenta en netlify.com
  2. En el panel principal, arrastra el archivo HTML directamente (Deploy manually)
  3. Netlify te asignará una URL del tipo https://nombre-aleatorio.netlify.app

Con esa URL, vuelve al App Registration en Entra ID → AuthenticationSingle-page application y añade esa URL como Redirect URI (con la barra final si la tiene). Guarda.


Paso 3 — Configurar el archivo HTML

Abre el archivo con cualquier editor de texto (Notepad, VS Code) y localiza la sección CONFIG al inicio del código:

Edita los tres valores, guarda y vuelve a subir el archivo a Netlify (mismo drag & drop sobre la misma carpeta).


Opcional — Filtros por grupo

Si quieres organizar los modelos por departamento o proyecto, puedes descomentar el array GROUPS en el código:

El sistema detecta el grupo por el prefijo del nombre del modelo. Si tus datasets se llaman FIN_CierreMensual o FIN_Presupuesto, aparecerán automáticamente bajo el filtro «Finanzas».


Cómo funciona la autenticación

La herramienta usa OAuth 2.0 con flujo PKCE (Proof Key for Code Exchange), el estándar recomendado por Microsoft para aplicaciones SPA sin backend. En ningún momento se almacena ninguna contraseña ni token en servidores externos. El acceso es siempre bajo las credenciales del usuario que hace login.

Esto significa que cualquier persona de tu organización con los permisos correctos puede usar la herramienta desde su navegador, sin configuración adicional.


Estados

De un vistazo podrás averiguar el estado actual de los dataset, incluso los que haya dado error los vas a ver


Resultado final

Una vez configurado, abres la URL de Netlify, haces login con tu cuenta Microsoft y ves todos tus datasets con su estado. Un botón por modelo para refrescar individualmente, y otro para lanzar todos a la vez, sin tener que entrar en cada dataset de Power BI.


Descarga el archivo

→ Descargar el HTML