Saltar al contenido principal

Incrustar o expulsar

«Mete mi panel dentro de mi propia aplicación» tiene aquí dos respuestas, y son realmente dos productos distintos más que dos ajustes de uno solo.

  • Incrustar — nosotros renderizamos el panel; tú lo metes en un <iframe>. No escribes código de panel y no eres dueño de ningún build. Incrustar un panel.
  • Expulsar — te entregamos el código React y SQL; lo renderizas tú. Salimos por completo de la ruta de renderizado y conservamos solo el motor de datos por debajo. Expulsa tu panel.

Las dos mantienen la mitad de plataforma — conexiones, conjuntos de datos, actualizaciones, horarios, el motor de consultas, la gobernanza — mantenida de nuestro lado. La única pregunta es quién dibuja los píxeles.

La respuesta corta​

Incrusta si necesitas filtrado de filas por visor, o si quieres que publicar sea todo el despliegue. Expulsa si necesitas que el panel se vea y se comporte como el resto de tu aplicación, o si necesitas que corra en un sitio al que nosotros no llegamos.

Una al lado de la otra​

IncrustarExpulsar
Quién renderizanosotrostú
Qué integrasuna URL (más un token de corta duración en el carril protegido)un árbol de código que construyes y alojas
Quién despliega un cambionadie — republicas y el frame lo sirvetú, en tu propio build y tu propia release
Filtrado de filas por visorsí, aplicado en el servidor desde un token firmado — es el único sitio donde existeno en el carril sin credenciales; necesita tu propio servidor en la ruta
Control visual y de interacciónnuestro renderizador, nuestro envoltoriocompleto — son tus componentes
Estado de los filtros compartido con tu propia interfazno, en ninguno de los dos sentidossí, es tu estado
Enrutado, autenticación, integración del layoutla frontera del iframenativa en tu aplicación
Credencial que debes tenerninguna en el carril público; una clave de API en tu backend para el carril protegidoninguna en el carril sin credenciales; una clave de API en tu servidor para el carril backend
Necesita un backend propiosolo para el carril protegido, para generar tokenssolo si quieres acotar por filas o consultas vivas
Frescura de los datosconsultas vivas en cada cargavivas en el carril backend; la instantánea publicada en el carril sin credenciales

Elige incrustar cuando​

  • Visores distintos tienen que ver filas distintas. Esta es la decisiva. El filtrado a nivel de fila vive en el carril de incrustación con token firmado y en ningún otro sitio: tu backend genera un token de corta duración que lleva los filtros, la plataforma reescribe cada referencia a un conjunto de datos como una relación filtrada, y la página solo puede acotar más. Nada de lo que construyas sobre un árbol expulsado reproduce eso sin poner tu propio servidor delante de cada consulta.
  • Quieres que publicar sea el despliegue. Una republicación cambia lo que sirve cada incrustación. Sin release de tu lado, sin ninguna versión del panel fijada dentro de tu bundle.
  • No quieres ser dueño del código del panel. Sin build, sin actualizaciones de dependencias, sin el vaivén de las librerías de gráficos.
  • El panel es una sección de tu producto, no el producto. Una pestaña de informes, un extracto para el cliente, una vista de administración.

Elige expulsar cuando​

  • Tiene que parecerse a tu aplicación. Tu design system, tu tipografía, tus estados vacíos, tus esqueletos de carga. Un iframe es un rectángulo con el envoltorio de otro dentro.
  • Tiene que interactuar con tu aplicación. Tus filtros gobernando sus gráficos, sus selecciones gobernando tu página. El carril de incrustación no pasa el estado de los filtros en ninguno de los dos sentidos, así que el filtrado cruzado entre un panel y tu propia interfaz no está disponible ahí.
  • Necesitas tu propio enrutado, autenticación o layout. Enlaces profundos a una tarjeta, tu sesión, tu carcasa, tus migas de pan.
  • Tiene que correr donde nosotros no estamos. Tu propio hosting, tu propia VPC, un CDN que controlas tú. El código es React y SQL sencillos y se construye con npm install && npm run dev. Ten en cuenta que expulsar lleva el renderizado a tu infraestructura, no los datos: un panel expulsado sigue alcanzando el motor de consultas de esta cuenta o su extracto Parquet por la red. Si el requisito es que no salga ningún dato de tu entorno, eso es Vibedasher Server, no expulsar.
  • No quieres ninguna credencial ni ningún backend. Un panel público y publicado se expulsa sobre un carril que descarga un extracto Parquet y ejecuta cada consulta en el navegador del visitante — sin clave, sin token, nada tuyo que ejecutar o pagar. Lee lo que eso sacrifica en el carril de consultas wasm.

Tres diferencias difíciles de revertir​

De todo lo anterior puedes cambiar de opinión sin apenas coste. Estas tres deberías decidirlas antes de construir.

Acotar por filas es una decisión de arquitectura, no un interruptor​

Si publicas un panel expulsado en el carril sin credenciales y después necesitas que el visor A vea menos filas que el visor B, no hay ningún ajuste que activar. El extracto que está en el navegador es el conjunto de datos completo, así que cada visitante ya tiene todas las filas. Recuperar el acotado significa poner un servidor tuyo entre el visor y los datos y reescribir el carril de consultas del panel contra él — o pasarse al carril de incrustación, que es otra integración. Mira quién puede ver qué.

En cuanto editas un árbol expulsado, la aplicación ya no es la fuente de verdad​

Expulsar es un fork de verdad, y ahí está su sentido. Puedes empujar un árbol editado de vuelta a la rama de borrador y seguir trabajando en el ciclo, pero si te llevas el código a tu propio repositorio y empiezas a cambiarlo allí, los cambios posteriores hechos en la aplicación no llegan a tu copia ni los tuyos vuelven a ella. Decide qué lado es dueño del código.

Las decisiones de visibilidad en el carril de incrustación no son simétricas​

El carril protegido exige que la visibilidad del panel sea protected, y rechaza de plano uno public — para que no puedas creer que tienes filtros de fila cuando no los tienes. Un panel private no es incrustable por ninguno de los dos carriles. Y hacer que un panel sea legible por todo el mundo es el único paso irreversible del flujo de publicación; mira publicar y compartir.

Puedes hacer las dos cosas​

No son excluyentes, y una forma habitual usa cada una para lo que es buena: incrustar la vista que da la cara al cliente, donde el filtrado de filas es todo el requisito, y expulsar la vista interna que tiene que vivir dentro de tu propia carcasa de administración. Los mismos conjuntos de datos, las mismas actualizaciones, la misma gobernanza por debajo.

Siguiente​

  • Incrustar un panel — los dos carriles de incrustación, el ciclo de renovación del token, los mensajes que tu página recibe realmente, y dónde está el límite del marco.
  • Expulsa tu panel — las tres llamadas, el contrato de paginación, y cómo volver a conectar los datos.