文档

审计日志

审计日志记录对项目配置所做的每一次更改:谁做的、更改了什么、何时、通过哪个界面,以及每个已更改字段变更前和变更后的值。它可搜索,经过链接因而重写可被发现,所有套餐均保留 400 天,并可导出为 CSV、XLSX 或 PDF。

记录的内容

对屏幕、屏幕文件夹、播放列表、媒体文件或文件夹、应用程序、卡片、日程或层级、营销活动、通知、Webhook、触发器、数据源、车队链接、报告计划、警报静音、成员或角色、邀请、服务客户端、代理连接、单点登录或 SCIM 设置、由身份提供商预配的用户或组、组绑定,或项目或组织设置所做的更改,都是一个条目。发送到屏幕的命令(重启、重新加载、识别、清除缓存、重启应用、更新、提示消息、截图)和车队操作也是,并附带其携带的参数。

一个条目包含:

成员含义
at变更提交的时间 (UTC)
actor谁:kind person、agent、service_client、staff 或 system,附带 id 和 name
approved_by, review_id批准了代理所提出变更的人,以及暂扣该变更的审核
source界面:dashboard、api、cli、mcp、staff、device、webhook 或 system
action稳定的代码、资源类型和动词:screen.update、playlist.create、webhook.rotate_secret
resourcetype、id 以及变更后资源的 name
changes每个已更改的成员:path(JSON 指针,如 /label)、before 和 after
revision变更产生的修订,以链接而非复制的方式记录(播放列表修订、媒体版本、资源自身的修订号)
request_id, route, client, client_ip它所经过的请求
seq, prev_hash, hash条目在链中的位置

值就是存储的值:名称、电子邮件、地址、URL 和 ID 按原样显示。机密(令牌、API 密钥、密码、Webhook 或签名机密、数据源凭据、配对码、本身就是凭据的接收端 URL)在两侧都显示为 (redacted),因此轮换会显示为一次变更,而不会显示任何一个值。超过 1 KiB 的值会替换为其大小和 SHA-256,一个条目最多保留 100 项变更和 16 KiB;truncated 表示还有更多变更。播放列表的页面和媒体文件的字节不会被复制:条目链接到修订。

卡片数据、键/值(包括由 Webhook 和数据源写入的值)和 Player 遥测是数据,不是配置。它们不在审计日志中;项目事件日志会记录它们已被写入。

谁可以读取

项目所有者、其组织的管理员以及正在查看该项目的员工可在仪表板中读取。拥有项目权限的代理或服务客户端可通过 API 和 CLI 读取。组织管理员、域名和账单设置的变更属于组织自己的日志:GET /api/organizations/{org_id}/audit,供其管理员读取。

防篡改

没有任何东西会写入、编辑或删除条目:没有相应的路由。每个条目在其项目内都与前一个条目相链接:其 hash 是前一个条目的哈希、其位置和其内容的 SHA-256。变更几秒后,条目会带上其 seq 和 hash。

screenrig audit head
screenrig audit verify
screenrig audit verify --anchor 128:3f2c0b6e9a4d81c7f5e0a2b4c6d8e0f1a3b5c7d9e1f30415263748596a7b8c9d

audit verify(GET /api/audit/verify)会根据存储的内容重新计算每个哈希,并检查每个链接、seq 的连续性和链头;它会针对出问题的条目报告 hash_mismatch、prev_mismatch、gap、head_mismatch、anchor_mismatch 或 floor_mismatch,并在链无法验证时以退出码 13 结束。每次调用最多检查 5,000 个条目,并返回 next_seq 以便继续。锚点是您从早先的导出或 audit head 中保存的链头(SEQ:HASH):对照它验证,可证明截至该条目的历史未被更改,也未被截断。

保留与删除

所有套餐的条目都保留 400 天。超过期限的条目从最旧的开始删除,链会记录它现在的起点(floor_seq、floor_hash),因此在其他位置的删除都能被检测到。删除项目时,其审计日志也会一并删除。screenrig project export DIR 将日志写入 log/audit.jsonl,链头写入 log/audit-head.json,因此副本在项目删除后依然存在,并可继续对照其锚点验证。

导出

screenrig audit export --format csv --output audit.csv
screenrig audit export --format xlsx --since 2026-07-01T00:00:00Z --until 2026-10-01T00:00:00Z
screenrig audit export --format pdf --resource-type playlist --output playlist-changes.pdf

GET /api/audit?format=csv|xlsx|pdf 使用与所有报告相同的渲染器写出筛选后的日志:每个已更改字段一行,从旧到新,除非 since 另有指定,否则为最近 30 天,最多 50,000 行(文件只包含前面若干行时,truncated 会说明)。链头和保留下限都在文件中,因此您保存的副本可作为之后 audit verify 的锚点。