Datasette 用来浏览和查询结构化数据。它的 Apps 插件让用户把 HTML、JavaScript 小应用放在同一系统内,例如为一份数据库做专用界面,再让 Agent 帮忙修改。困难是:生成页面能够运行,不代表它就该拿到整个站点的数据与写权限。0.3a0 的更新把应用编辑、查询和聊天里的引用连接得更完整。
仓库说明,HTML 应用运行在隔离的 iframe 中——它像页面内一个受限制的小窗口。默认不能随意向外联网,外部地址需要明确允许。应用需要查询数据时,通过消息桥把请求交给父页面,再送到应用专属的查询端点;请求同时受当前用户原有权限和该应用允许范围约束。预先保存的查询还可以承载明确的动作,而不是给每个生成页面一把任意操作数据库的钥匙。
这一版本在聊天中加入应用标签补全,只显示当前用户可见的应用;Agent 可以创建应用、添加或移除已保存查询。创建时检查查询是否存在及用户能否查看,授予应用可调用写查询的权限仍需要用户批准。把应用加入聊天时传递的是标识、链接和编辑权限,完整 HTML 不会随标签自动送入上下文;读取源码还有相应的权限要求。每次编辑保留版本,方便查看改动。
这些是插件和版本说明中可以核对的实现安排,还不是对所有攻击情境的安全证明。仓库另有权限更大的 Python 插件应用,不能把 HTML 应用的隔离承诺推广到所有应用类型。对开发者来说,这个例子的价值是把“展示一个界面”和“授予它一项操作能力”分别设计,再在需要协作时显式连接。