Saltar a contenido

← Volver al índice | Arquitectura del Sistema | Gobernanza de Datasets

Integración con el Ecosistema Microsoft 365 (Power BI y SharePoint)

Tipo: Documentación Técnica — Nivel 2
Audiencia: Equipo de desarrollo, arquitectos, Data Engineers
Relacionado con: Arquitectura del Sistema | Gobernanza de Datasets


1. Filosofía de Integración: Coexistencia Progresiva

La plataforma IEO IA no busca reemplazar las herramientas corporativas existentes (Excel, Power BI, SharePoint), sino complementarlas. Como se define en la Gobernanza de Datasets, el IEO ya posee métricas y cuadros de mando operativos en Power BI. El valor diferencial de nuestra plataforma es añadir la capa de Inteligencia Artificial (CAG + RAG) para permitir consultas en lenguaje natural sobre esos datos corporativos.

Principios clave: 1. Dato Único: No duplicar el dato salvo para indexación vectorial. 2. Ciclo Bidireccional: Leer desde M365 para alimentar la IA, publicar resultados de IA hacia M365 para visualización clásica. 3. Fricción Cero: Los equipos pueden seguir consumiendo sus dashboards habituales, ahora enriquecidos con datos procesados por IA.


2. Flujos de Integración

2.1 PBI → Plataforma (Lectura Interactiva)

Permite que el motor de IA responda a consultas usando datos consolidados en datasets de Power BI.

  • Mecanismo: Execute Queries API (DAX).
  • Implementación: PowerBIService envía queries DAX a través del M365 Graph/PBI REST API para evaluar subconjuntos de datos agregados.
  • Caso de uso: "Muéstrame la correlación entre las descargas de especie X este trimestre (datos de PBI) y las anomalías de temperatura (datos satelitales propios)."

2.2 Plataforma → PBI (Exportación de Resultados)

Permite que las detecciones de los modelos de IA fluyan hacia los cuadros de mando de dirección.

  • Mecanismo: Push Datasets (PostRows REST API).
  • Implementación: Dapr Output Binding configurado para emitir eventos de nuevas Muestra registradas.
  • Caso de uso: Cuando el pipeline clasifica y un técnico confirma una imagen, el registro viaja instantáneamente a un Push Dataset de Power BI, actualizando el "Dashboard de Capturas ECOMED" en tiempo real.

2.3 UI Embed (Incrustación de Dashboards)

Integración visual directa de reportes de PBI dentro del Dashboard de la plataforma IEO IA.

  • Mecanismo: Power BI Embedded (iFrame).
  • Ventaja: Centraliza la experiencia de usuario. El investigador tiene acceso a la herramienta de IA (chat semántico) y a sus reportes tabulares tradicionales en la misma pantalla.

3. Gobernanza y Arquitectura

3.1 Entidad Dataset Expandida

En el ecosistema de la plataforma, un Workspace de Power BI o una Biblioteca de Documentos de SharePoint se registra como un Dataset de solo lectura o lectura/escritura:

Propiedad SharePoint Power BI
fuente_tipo SHAREPOINT_LIBRARY POWER_BI_PUSH o POWER_BI_IMPORT
mecanismo_sync Webhooks (Event Grid) Dapr Binding (PostRows) o Polling DAX
autenticación Entra ID (OAuth2 Client Credentials / On-Behalf-Of) Entra ID (Service Principal)

3.2 El Rol de Dapr Bindings

Dapr abstrae la complejidad de la autenticación OAuth2 y el particionado. Los servicios Java (Quarkus) solo necesitan comunicarse con el API HTTP/gRPC de localhost proporcionado por el sidecar.

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: powerbi-binding
spec:
  type: bindings.http
  version: v1
  metadata:
  - name: url
    value: "https://api.powerbi.com/v1.0/myorg/datasets/{DatasetId}/tables/{TableName}/rows"
  # OAuth2 Injection se maneja en el pipeline de seguridad o vía Dapr Middleware

4. Entorno de Desarrollo Local y Testing Mock

Dada la dependencia de los servicios de Microsoft (que requieren licencias y tenant online), el equipo de desarrollo usa Mock Servers (Opción preferente y oficial del equipo) para desarrollar en local sin dependencias cloud ni costes.

4.1 Mock de SharePoint / Microsoft Graph: Microsoft Graph Developer Proxy

Se utiliza el Developer Proxy oficial de Microsoft interceptando las llamadas salientes desde Quarkus.

  • Ventajas: Simula respuestas reales de Graph API (Bibliotecas SharePoint, Excel Online).
  • Resiliencia: Inyecta aleatoriamente errores 429 Too Many Requests (Throttling) para garantizar que nuestras estrategias de retry en Quarkus funcionan correctamente.
  • Uso: El backend Quarkus se configura apuntando su cliente HTTP al proxy del Developer Proxy local.

4.2 Mock de Power BI REST API: Docker + OpenAPI

Para las APIs de Execute Queries y Push Datasets, levantamos un servidor mock basado en Docker.

  1. Definición: Usamos un archivo Swagger/OpenAPI powerbi-api.yaml.
  2. Servidor Mock: Desplegamos un contenedor (por ejemplo, mokapi o prism).
  3. Workflow:
  4. El front/back en local llama a http://localhost:8080/powerbi-mock/v1.0/myorg/...
  5. El mock valida el esquema JSON del body (ej. comprobando que el payload de PostRows es correcto) y devuelve un 200 OK.
  6. Permite desarrollo offline-first y validación de contratos estricta.

En docker-compose.yml (Entorno Dev):

  powerbi-mock:
    image: stoplight/prism:4
    command: mock -h 0.0.0.0 /swagger/powerbi-api.yaml
    volumes:
      - ./docs/api/powerbi-api.yaml:/swagger/powerbi-api.yaml:ro
    ports:
      - "4010:4010"