El proyecto Datasette ha presentado datasette-apps, un nuevo plugin que permite alojar aplicaciones HTML+JavaScript autocontenidas dentro de una instancia de Datasette, ejecutándose en iframes con sandbox reforzado. Las apps pueden lanzar consultas SQL de solo lectura y, si se configuran con consultas almacenadas específicas, también operaciones de escritura sobre la base de datos.
El mecanismo de seguridad combina el atributo sandbox="allow-scripts allow-forms" del iframe —que bloquea el acceso a cookies, localStorage y al DOM padre— con una cabecera Content-Security-Policy inyectada mediante una etiqueta , lo que impide que el código ejecute peticiones HTTP a dominios externos y evite la filtración de datos privados. El autor se basó en una investigación previa que confirmó que la CSP definida de esa forma es inmutable para el contenido del frame.
Para permitir operaciones controladas, la comunicación entre el iframe y la aplicación padre se realiza mediante MessageChannel(), una capa adicional sobre postMessage() que cierra el canal automáticamente si la página navega a otro origen. El plugin registra y muestra al usuario las consultas SQL ejecutadas y los errores generados, lo que facilita el desarrollo y la depuración. Las operaciones de escritura se limitan a consultas almacenadas previamente autorizadas por el administrador.
El proyecto surgió como una evolución de los experimentos del autor con Claude Artifacts y su colección de herramientas HTML, y busca ofrecer a las aplicaciones generadas por IA un acceso persistente a una base de datos relacional. La funcionalidad está disponible como demostración en agent.datasette.io iniciando sesión con una cuenta de GitHub.
