产物导入与读取边界

GitHub でソースを見る

artifact add 将正文复制到 .awr/artifacts/<id>,SQLite 保存来源事件、相对路径、大小、MIME 和 SHA256。默认 Context 与搜索使用摘要和引用,不载入产物正文。

操作默认预算硬上限
artifact add64 MiB64 MiB
artifact cat64 KiB16 MiB
evidence show --content64 KiB16 MiB

--max-bytes 可以收紧预算,不能提高硬上限。零值或超过硬上限的参数会被拒绝,即使文件很小。边界值本身允许;超过预算一个字节即失败。元数据登记仍可引用更大的外部产物;这不会自动复制或开放其正文读取。

导入先检查文件大小,再读取完整且受预算限制的快照,核对大小与修改时间,执行秘密策略,最后将同一份字节写入受管文件。扫描前不创建受管文件;只有复制成功并登记元数据后才保留它。读取在返回任何正文之前核对预算、实际文件大小、登记的 SHA256 与秘密策略;没有登记摘要的证据报告只能证明读取成功,不能宣称完成摘要验证。

输入和报告路径必须位于项目或明确授权的 root 内。解析授权路径后通过不跟随替换符号链接的文件句柄打开。受管的 .awr、artifacts 必须是真实目录;临时文件通过持有的目录句柄独占创建,失败清理也使用该句柄。目录路径后来被重定向时,清理不会跟随新链接删除其他位置的文件。此规则不限制配置中明确授权的输入路径别名。

JSON 正文输出要求 UTF-8;二进制产物使用不带 --json 的 artifact cat。元数据读取不会打开正文。

大小、摘要、受管文件处理与秘密数据条件由 SEC-002 的当前组件合同统一验证;这些检查不计为 E4 或正式发布。