Cloudflare宣布推出EmDash 1.0,这是基于Astro构建的开源内容管理系统的稳定版本。该系统面向生产网站、网站创建与托管平台,以及希望将传统管理界面与可供软件代理通过API、CLI和内置MCP服务器使用的工具结合起来的开发与编辑团队。
Cloudflare表示,该版本是在经过五个月的真实使用测试后推出的,重点关注数据安全、数据库迁移、编辑工作流、本地化、插件安全、性能,以及管理界面、API和媒体管理的可靠性。在使用案例方面,Avulux将一个定制网站迁移到了EmDash,而Cloudflare则在8月将其博客迁移到该系统,以测试其在每周数百万次访问的流量下的运行情况,其中合法流量峰值达到每秒5,000个请求,此外还包括零星的DDoS攻击。
具有限定权限的插件
EmDash的模型不同于在同一进程内运行、理论上拥有对数据库、文件和网络广泛访问权限的传统插件。EmDash中的每个插件都运行在隔离环境中,并拥有专属存储空间,默认无法访问内容、媒体、用户、机密信息、文件系统或网络。
平台会在插件运行前显示其请求的权限,插件只有在声明这些能力并获得网站管理员批准后,才能获得额外能力。例如,可以授予插件读取媒体的权限以优化图像,而不授予其访问用户内容的权限;也可以允许其读取特定事件并发送通知,而不允许其访问专用网络或其他插件的存储空间。这些限制由运行环境强制执行,而不是仅依赖插件开发者自觉遵守。
在Cloudflare上,插件通过Worker Loader作为Dynamic Workers运行;在Node.js上部署时,则使用workerd作为独立进程。两个平台使用相同的元数据和基于能力受限的API,但在配置和运行环境方面存在差异。
插件的去中心化注册表
随着1.0版本发布,Cloudflare推出了一个插件注册表,将插件本身与用于发现和安装插件的目录分开。开发者保留插件包、版本记录及其身份,而EmDash提供一个默认目录,其他服务可以对其进行索引,或根据不同政策创建替代目录。
该注册表基于AT Protocol,Bluesky也使用这一协议。软件包和版本记录发布在发布者账户中,并由发布者签名。EmDash会验证版本记录、软件包名称、版本号、所需权限列表以及必要时的构建来源,然后确认下载的软件包与已签名记录相匹配。默认目录还会对名称、描述、链接和图像进行审核,但不会重写或拥有版本。
目前,该注册表支持免费插件,Cloudflare计划未来提供付费插件。该公司已将注册表服务,包括聚合器和使用Workers AI的分类服务,作为开源组件发布。
实际会发生什么变化?
EmDash将基于Astro的内容管理、与代理工具的原生集成,以及更严格的插件安全模型结合起来。这可能会受到希望降低安装外部代码风险的开发团队,以及管理多个网站并需要向每个插件授予尽可能少权限的平台的关注。但该版本并不会消除审核插件的必要性:隔离限制了访问范围,而插件执行获授任务的权限及其依赖所带来的后果,仍由网站所有者负责。
Cloudflare表示,已有超过175人通过1,800多项更改参与该项目,社区还将EmDash翻译成了25种语言。该公司还发布了EmDash Build的开源初始版本,这是一款使用人工智能构建网站的工具。每个项目都会获得一个Cloudflare Sandbox容器,并由MCP代理创建内容模型和页面;与此同时,Artifacts会在网站发布到Workers for Platforms之前,将更改记录为Git提交。
可以使用npm create emdash@latest命令在本地创建网站。系统脱离Cloudflare环境后的成熟度、插件生态系统的规模,以及去中心化付费模型在推出后的实施方式,仍是有待观察的问题。