应用是工作区级别的扩展。它们目前将发布、自动化、MCP客户端设置和已发布的连接器集中在一个地方。
打开应用
前往工作区 → 应用。页面显示:
发布 — 管理工作区的公共站点。
自动化 — 创建基于代码的工作区自动化。
连接器 — 设置MCP客户端访问并管理工作区已发布的连接器。管理员可以创建和撤销连接器凭证。
自动化
自动化在工作区内运行沙盒化的JavaScript。它们适用于定期清理、标记、摘要、AI辅助维护任务以及一次性操作脚本。
一个自动化包含:
名称和可选描述
启用或草稿状态
触发器类型和触发器配置
处理程序代码
运行历史
工作区成员可以查看自动化和运行历史。工作区管理员和编辑者可以创建、编辑、删除、启用、禁用和运行自动化。
触发器类型
自动化数据模型和编辑器提供了四种触发器类型:
手动 — 当有人点击立即运行时触发。
计划 — 当配置了DBOS调度时,根据cron表达式和时区运行。
事件 — 保留用于工作区事件触发器,例如
resource.created、resource.updated、resource.deleted或resource.tagged。Webhook — 保留用于POST触发的自动化。
当前运行时对手动和计划的支持最强。事件和Webhook触发器可以在编辑器中选择并存储在自动化中,但当前代码库尚未公开事件分发器或公共Webhook接收器。在这些路由存在之前,不要将事件/Webhook自动化记录为生产触发。
使用AI构建,然后直接编辑代码
自动化编辑器有一个聊天面板,用于描述您的需求。Dokki要求模型返回一个完整的JavaScript处理程序,并将其插入到可见的代码编辑器中。代码保持可编辑状态,因此您可以在保存前查看或修改它。
在运行之前保存自动化。现有的自动化可以从编辑器中手动运行,运行历史随后会刷新。
运行时限制
自动化代码在QuickJS沙盒中运行。它不能使用DOM、Node API、原始fetch、导入、require或npm包。支持的运行时是ctx对象:
ctx.trigger
ctx.workspace
ctx.resources.query(...)
ctx.resources.get(...)
ctx.resources.tag(...)
ctx.resources.untag(...)
ctx.doc.read(...)
ctx.ai.run(...)
ctx.log(...)
ctx.skip(...)
ctx.fail(...)ctx.ai.run通过正常的AI使用路径计费。使用ctx.log使运行历史有用,当运行应停止而不被视为错误时使用ctx.skip,对于显式失败使用ctx.fail。
处理程序有默认的30秒运行时间上限、64 MB的QuickJS内存限制、1 MB的堆栈限制和500条运行日志上限。
计划行为
计划触发器使用DBOS。如果未配置DBOS_SYSTEM_DATABASE_URL,则计划注册被禁用,计划自动化不会触发。更新自动化会重新连接其DBOS计划:如果自动化已启用,使用trigger_type='schedule'并具有cron表达式,则删除旧计划并创建新计划。
当工作区被归档时,计划运行会自动跳过。手动运行仍然可用于有意的测试和调试。
运行历史与操作
每次运行记录状态、持续时间、日志、触发器负载、错误消息和时间戳。运行可以以成功、错误、跳过或超时结束。
连接器关系
连接器和自动化解决不同的问题。当Dokki本身需要运行沙盒化的工作区代码时,使用自动化。当外部MCP客户端、代理或工具需要稳定访问工作区资源时,使用连接器。
