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
| Incrustar | Expulsar | |
|---|---|---|
| Quién renderiza | nosotros | tú |
| Qué integras | una 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 cambio | nadie — republicas y el frame lo sirve | tú, en tu propio build y tu propia release |
| Filtrado de filas por visor | sí, aplicado en el servidor desde un token firmado — es el único sitio donde existe | no en el carril sin credenciales; necesita tu propio servidor en la ruta |
| Control visual y de interacción | nuestro renderizador, nuestro envoltorio | completo — son tus componentes |
| Estado de los filtros compartido con tu propia interfaz | no, en ninguno de los dos sentidos | sí, es tu estado |
| Enrutado, autenticación, integración del layout | la frontera del iframe | nativa en tu aplicación |
| Credencial que debes tener | ninguna en el carril público; una clave de API en tu backend para el carril protegido | ninguna en el carril sin credenciales; una clave de API en tu servidor para el carril backend |
| Necesita un backend propio | solo para el carril protegido, para generar tokens | solo si quieres acotar por filas o consultas vivas |
| Frescura de los datos | consultas vivas en cada carga | vivas 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.