Saltearse al contenido

Incrustar una App

Una App se incrusta igual que una consulta guardada o un dashboard — a través del Web Component <saiku-embed> — pero como una unidad con alcance de un solo token. Un único token concede la App entera: su navegación y todas sus páginas viajan en esa única concesión, y el invitado la navega en solo lectura, cambiando de página en el sitio.

El marcado

Ponga kind="app" y apunte path al documento .saikuapp:

<saiku-embed
server="https://YOUR-WORKSPACE.saiku.bi"
token="tx-..."
kind="app"
path="homes/admin/sales-portal.saikuapp"
height="800px"
></saiku-embed>

Todo lo demás del componente — métodos de instalación, eventos, theming mediante variables --saiku-embed-*, los wrappers de React y Vue — funciona exactamente como está documentado en la página Incrustar Saiku. Un embed de App es puramente presentacional sobre la vía de consulta de embed existente; no añade mecánica nueva del lado del anfitrión.

Emitir un token de App

Emita un token de App como uno de dashboard, pero con resourceKind: "app" y una ruta .saikuapp:

Ventana de terminal
curl -X POST 'https://YOUR-WORKSPACE.saiku.bi/rest/saiku/api/embed/tokens' \
-u admin:admin \
-H 'Content-Type: application/json' \
-d '{
"resourceKind": "app",
"resourcePath": "homes/admin/sales-portal.saikuapp",
"ttlHours": 72,
"label": "Customer sales portal"
}'

Quien emite debe tener acceso de lectura a la App. El token fija exactamente una App: reproducirlo contra cualquier otro recurso devuelve el mismo EMBED_INVALID opaco — un token para la App A no puede leer la App B ni ninguna otra ruta del repositorio.

Seguridad: RLS y PII se aplican en el servidor

Los tiles de cada página ejecutan la misma consulta protegida por tile que usa un embed de dashboard. El cuerpo de la consulta se toma en el servidor del documento de App fijado — nunca del cliente — de modo que:

  • Los filtros de seguridad a nivel de fila que lleva el token se aplican los últimos y fallan cerrado: si no pueden injertarse en la consulta de un tile, el tile da error en lugar de filtrar filas sin filtrar.
  • La redacción de PII sigue activa: si alguna columna referenciada está anotada como PII, el token se eleva a redacción forzada en el momento de la emisión, igual que un dashboard. El inspector resuelve cada jerarquía y medida referenciada contra las anotaciones saiku.semantic.pii del cubo, y falla cerrado — si no puede resolver el recurso en absoluto, rechaza la concesión en vez de suponer que el recurso está limpio. La línea de auditoría distingue los dos casos («annotated columns» frente a «unresolvable resource») para que una concesión rechazada pueda diagnosticarse.
  • Un filter sobrescrito desde el cliente solo puede estrechar la consulta de un tile, nunca ampliarla.

Tiles de plugin en una App incrustada

Si una página de App contiene un tile de plugin, el plugin se sirve con alcance de token: el invitado puede cargar exactamente los plugins referenciados por la App incrustada y nada más. El mismo sandbox y la misma contención por CSP se aplican dentro del embed.

Relacionado