@atproto/ozone

中文文档
0.12.3发布于 2026/11/06MITTypeScriptES Module构建来源已验证近 30 天下载 3.9万

提供后端服务来调节Bluesky网络.

中文使用文档
文档目录11 节
  1. 已缓存
  2. 集团转移用途
  3. 报表标签
  4. 以适度行动结束报告
  5. 通关卡标签查询
  6. 历史标签重放
  7. 中度查询取消
  8. 中度收件箱状态
  9. 调节收件箱起始日期
  10. 罢工期满
  11. 许可证

@atproto/ozone: Bluesky 温和服务

提供后端服务来调节Bluesky网络.

NPM Github CI Status

已缓存

API 使用有边框的内存文件缓存 。 配置其限制 OZONE_DID_CACHE_MAX_ENTRIES (违约10,000起), OZONE_DID_CACHE_MAX_BYTES (序列化文件和DID密钥默认为33,554,432字节),以及 OZONE_DID_CACHE_MAX_DOC_BYTES (默认每个序列文档65,536字节). 设定任何限制为 0 以禁用保留。 超过限额的文件仍然可以解决,但不能缓存. 更改这些设置后重新启动 API .

集团转移用途

OZONE_BLOB_DIVERT_MAX_BYTES 设定一个被下载用于分流的最大大小。 它必须是正整数并默认为314,572,800字节(300 MiB). 接收服务必须支持同样的规模。 更改此设置后重新启动 API .

报表标签

报表自动添加一个理由标记, 如 report:spam 默认情况下, 设定 OZONE_REPORT_TAGS_DISABLED=true 并重新启动 API 以禁用这些自动报告标记。 未设置或 false 保持他们的功能.

环境适用于通过两个机构提交的报告 com.atproto.moderation.createReport 财务报告和审定财务报表 tools.ozone.moderation.emitEvent。 。 。 .

语言和嵌入标记,手动应用标记,以及现有的报告标记不受影响.

以适度行动结束报告

tools.ozone.moderation.emitEvent 接受 reportAction: { allOwned: true } 用于关闭报表的账户事件。 它将活动与符合资格的账户报告及其记录、信息和对话联系起来. allOwned 目标所有报告类型;明确 ids 包括这些报告,即使它们被指派或升级。 事件和关闭是一起发生的.

tools.ozone.report.closeReports 接受已有的 actionEventId. 事件必须是关于所要求主题或其自己账户的结束报告事件; includeAllOwned 需要账户事件。 选定报告与该事件相关联,在一个交易中结束。 如果没有事件标识,关闭将保持其不采取行动的结果。 两个API都保护指定,升级和积极指派的报告不被广泛选择. closeReports 可额外过滤或排除报告类型.

对于消息事件,匹配报告也必须有事件的对话ID. 这使得在不同的对话中使用同名ID的信息是分开的.

相关事件可能早于报告。 由此产生的行动归属是指该事件,该事件可能不再有效. 上诉前的事件,或与另一主题上诉有关的账户事件,不能确定上诉结果:上诉结果要求以后就被上诉主题发生事件.

通关卡标签查询

通关卡图案 com.atproto.label.queryLabels 默认已禁用,包括 * 并请求混合通配符和准确的图案。 他们返回了HTTP 400 (InvalidRequest),带有"支持通配符标签查询暂时被禁用"等信息后再访问数据库. 精确 URI 查询仍然可用 .

设定 OZONE_LABEL_QUERY_WILDCARDS_ENABLED=true 并重新启动 API 以恢复通配符支持。 未设置或 false 关闭它.

历史标签重放

com.atproto.label.subscribeLabels 与光标的连接共享每个API进程的历史重放预算. OZONE_LABEL_STREAM_BACKFILL_RATE 设置每秒标签的正整数; 默认值为 2000 。 页面包含最多500个标签,所以简短的页面尺寸的相接是可能的. 更改设置后重新启动 API .

这在保存历史和光标命令的同时, 将批量重放 。 大型回填需要更长的时间,多个重放客户端共享预算. 现场订阅和测序投票并不等待这一预算;截取询问仍受现有流缓冲限制的限制.

订阅开始和关闭日志包括连接ID,光标,代理套接字地址/端口,用户代理和转发地址链. 关闭日志添加最后一个序列, 生成事件计数和持续时间 。 转发头和用户代理是归属提示,而不是认证的呼叫者身份; cookie和授权头不在此列.

中度查询取消

queryEvents 财务报告和审定财务报表 queryStatuses 使用 Kysely 的 HTTP 客户端断开时取消其上市 SQL cancel query 中止策略 。 Kysely 使用单独的 PostgreSQL 连接进行取消,并保持上市连接直到 SQL 和取消结束. 这没有添加查询截止日期 .

中度收件箱状态

设定 NEXT_PUBLIC_STRIKE_SUSPENSION_CONFIG 例如,臭氧UI使用的同值 4:72,8:168,12:336,16:Infinity每个入口都显示罢工计数至暂停时间; Infinity 表示永久中止。 后端保留了完整的地图,并使用了第二和第三个阈值,按打击计数排序,用于 warning 财务报告和审定财务报表 atRisk。第一层不变。 在没有配置的情况下,站立源于账户的执行和限制;罢工门槛被禁用. 启动时无效的条目失败配置 .

调节收件箱起始日期

设定 OZONE_INBOX_START_AT aPI 和守护进程到一个 ISO 8601 倍加时区, 例如 2026-10-15T00:00:00.000Z。配置使其正常化为 UTC 毫秒,并在启动时拒绝无效值。 失落暴露出所有历史. 未来日期在符合条件的活动发生之前将历史保留为空;改变值需要重新启动服务.

报告只有在 createdAt 即使较旧的报告后来得到解决或重新开放,日期或之后。 同样的规定也适用于报告细节和解决行动。 主题要求在该日期或之后采取公开行动;行动计数、首发日期、最新行动、详细历史和报告摘要不包括较早的历史。 更古老的上诉历史被掩盖,而资格仍然尊重早先的上诉。 收件箱呼吁不能针对隐藏动作或对象. 主持人预览使用相同的截取.

账户状态和当前执行仍然有效:主动限制,罢工和标签可以早于收件箱启动. 偏好和所看到的水印不会暴露历史;它们保留了现有的行为. 截取不是被读取的水印,所以一个在起始日期准确创建的项目最初没有被读取.

通知制作方在日期之前跳过活动,并跳过隐藏的报告或上诉主题的过渡. 列表和未读计数独立执行日期和目标能见度,包括现有的已存储通知. API和守护进程必须使用相同的值. 来源报告/行动继续正常记录。 移动更早的日期可以显示更多来源历史, 但跳过的通知不会被回填 。 在选定的开始日期前完成写入器的推出,以避免通知间隙.

报告 - 第一页 reporterDid 后补和退休后补习 完成之前部署这个阅读器。 创建记者/时间索引和 idx_moderation_event_inbox_public_created 在收件箱迁移前同时生产。 后一种指数 (subjectDid, createdAt DESC, id DESC) 因此,主题历史可以查找所配置的日期.

罢工期满

客户提供来自严重性设定的罢工金额和过期时间戳. 后端保存它们,并将过期的打击排除在活动总数之外.

未到期的遗留事件需要单独修复. 更改过期有效 不取消降级、停赛或终身罢工总数.

许可证

根据麻省理工学院和Apache 2.0条款,这个项目具有双重许可证:

下游项目和终端用户可自行选择单独或共同发放许可证。 这种双重许可的动机是Apache 2.0提供的额外软件专利保证.

版本与发布记录

@atproto/ozone 共发布 269 个版本,首次发布于 2024/01/19;过去 12 个月发布了 93 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.12.3latest2026/11/061 天前
0.0.0-spaces-alpha-20261105160032alpha2026/11/062 天前
0.12.02026/10/317 天前
0.0.0-spaces-alpha-202610291719132026/10/309 天前
0.11.02026/10/2810 天前
0.10.102026/10/2711 天前

其他发布通道:rc → 0.1.36-rc.1,next → 0.1.175-next.0,alpha → 0.0.0-spaces-alpha-20261105160032。

关于 @atproto/ozone 的常见问题

@atproto/ozone 是什么?

提供后端服务来调节Bluesky网络.

如何安装 @atproto/ozone?

在项目目录运行 npm install @atproto/ozone,或使用 pnpm add / yarn add / bun add。

@atproto/ozone 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@atproto/ozone 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@atproto/ozone 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@atproto/ozone 可以商用吗?

@atproto/ozone 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@atproto/ozone 的下载量有多少?

根据 npm 官方下载统计,@atproto/ozone 在 2026/10/07 – 2026/11/05 这 30 天内被下载 39,202 次,日均约 1,307 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@atproto/ozone 还在维护吗?

最新版本 0.12.3 发布于 2026/11/06(1 天前);至今共发布 269 个版本,其中过去 12 个月发布了 93 个;首次发布于 2024/01/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。