Datasette Apps:在 Datasette 内托管自定义 HTML 应用

查看原文 HN 讨论

文章摘要

Datasette Apps 是运行在 Datasette 实例上、被严格沙箱隔离的 iframe 内的独立 HTML + JavaScript 应用。它让开发者能够构建自定义界面,在使用 Datasette 传统 JSON API 能力的同时,访问持久化的关系型数据库。

这些应用通过客户端 JavaScript 对 Datasette 数据库执行只读 SQL 查询,并可通过预先配置好的存储查询(stored queries)获得可选的写入能力。正如文章所述,它们是「运行在严格受限 <iframe> 沙箱中的自包含 HTML+JavaScript 应用」。

安全架构采用了多层防御:iframe 沙箱阻止访问 DOM、窃取 cookie 或操纵 localStorage;内容安全策略(CSP)头限制对外部网络的请求和资源加载;MessageChannel 传输确保页面跳转后命令通道随即关闭;权限控制将基础的应用创建权限与危险的 CSP 配置权限相分离。一次 AI 安全审查曾发现一个严重漏洞:无特权用户可诱骗管理员访问恶意应用从而窃取数据,修复方式是将 CSP 域名白名单限制为仅受信任的工作人员可用。

主要特性还包括:可见的日志记录(捕获 SQL 查询与 CSP 违规以便调试)、通过管理员审定的存储查询实现安全的数据库写入、面向 AI 的友好设计(提供可复制的提示词用于 LLM 辅助生成应用),以及让 Claude 能够以对话方式创建和编辑应用的 Agent 集成。这一模式把 Claude Artifacts 式的交互能力与持久化数据访问结合起来,可在已认证的 Datasette 环境内构建更丰富的数据探索、可视化与操作界面。

HN 评论精华