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:
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.piidel 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
filtersobrescrito 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
- Incrustar Saiku — la referencia completa de
<saiku-embed>: tokens, eventos, theming, concesiones públicas, React / Vue. - Visión general de App Builder — construir la App que incrusta.
- Plugins — el modelo de contención para tiles con JS en sandbox.