El patrón de aislamiento
El mecanismo propio de Tauri para poner código tuyo entre el frontend y el core: qué es exactamente, contra qué protege, qué cuesta, y por qué casi nadie lo necesita.
Qué se interpone
Un pequeño frontend propio, servido desde tu binario, que corre en un contexto separado del principal y por el que pasan todos los mensajes del puente antes de llegar al core.
El detalle que hace que funcione: el core solo acepta mensajes firmados por el aislamiento. Un script en tu frontend que intente hablar con el puente directamente no tiene la clave, así que su mensaje se descarta. No es una convención: es criptográfico.
Contra qué protege
Y contra qué no, que es lo importante:
Resumen honesto: cubre una cosa y la cubre bien. El frontend comprometido llamando al puente. Todo lo demás sigue siendo trabajo de las piezas que ya conoces.
Cómo se escribe
Un directorio con un HTML mínimo y un script, y una clave en la configuración:
{ "app": { "security": { "pattern": { "use": "isolation", "options": { "dir": "../dist-isolation" } } } }}Y el hook, que es lo único que escribes:
window.__TAURI_ISOLATION_HOOK__ = (payload) => { // registrar: en desarrollo, ver qué llama de verdad tu aplicación console.log('[aislamiento]', payload.cmd, payload); // rechazar lo que no tenga sentido en tu aplicación if (payload.cmd === 'borrar_proyecto' && typeof payload.id !== 'number') { throw new Error('argumento inesperado'); } return payload; // o un payload modificado};Tres cosas que puede hacer un hook y que valen la pena:
- Registrar. Aunque no valide nada, ver el listado real de llamadas de tu aplicación es el inventario más honesto que vas a conseguir — mejor que leer el código, porque incluye las de las dependencias.
- Validar la forma. Que los argumentos sean del tipo esperado. Es una segunda red por delante de la del nivel 15.1.
- Rechazar comandos que no correspondan a la pantalla actual. El único sitio donde eso se puede saber, porque el core no conoce tu interfaz.
¿Lo necesitas?
Cuatro preguntas. Si ninguna es que sí, no.
El precio
Que es real y conviene decirlo:
- Una capa más entre el frontend y el core, con su coste por llamada. Pequeño, pero no nulo, y en las llamadas de alta frecuencia del nivel 24 se nota.
- Un artefacto más que construir y desplegar, con su hueco en tu proceso de compilación.
- Y depuración más confusa: una llamada que falla puede fallar en el aislamiento, y el error no siempre lo deja claro.