Skip to content

v0.4.2

Choose a tag to compare

@gatework gatework released this 27 Sep 08:12
  • 增加带 Ruby/依赖版本和未命中位置的覆盖率 JSON,以 NC-00 实测计数检查同环境覆盖率不下降;CI 分别保存平台报告,并检查最低 expect-pty/textfsm 组合的全量测试及隔离安装。

  • 补充厂商合成证据索引、完整/截断 PAN-OS 引号回归及公开方法返回/抛错契约,区分响应完成、状态读回和持久化确认;协作取消及 TFTP 服务端核验明确列为后置可选项。

  • 新增离线内存基准,分开记录响应、渲染、清理、解析、结果保留及聚合输出成本,保留机器和原始统计;小型正确性烟测进入本地 CI。

  • 新增可选 max_script_output_bytes(默认 nil),主命令和追加查询累计原始响应字节,发送前及完成后检查;超额仍保留已完成步骤,停止后续命令,不自动重试。YAML/ENV/CLI 与不可变批次策略接入,原单响应上限不变。

  • 批量备份共享惰性的旧命名文件索引:规范文件全命中时不扫描,迁移目录每批最多扫描一次,新批次刷新;旧文件身份在读取前后变化时明确失败,保留规范路径优先和歧义拒绝。

  • Netdisco 入口和离线导出延迟加载 TextFSM;解析严格校验原文与终端编辑后的 UTF-8,非法字节返回 invalid_output_encoding,不继续生成记录或拓扑计划。日志显示和原始备份字节保持原行为。

  • 保留默认 strict 成功规则和旧 JSON;新增显式 selected 策略及 v2 Report 包装。selected 只允许过滤/采样跳过,部分成功、其他跳过、未知状态和回调/报告故障仍阻止成功;独立显示策略结果与清单覆盖,旧 Batch/Outcome 的 Data 成员不变。

  • v2 诊断只接受受控错误码、类型、阶段和匹配产物回执,不携带异常原消息、输出、命令、source 或 line。设备和 v2 批次耗时改用单调时钟,UTC 审计时间保留;旧自定义 ResultStore 的 write 签名不变。

  • TFTP 内置厂商参数在源文件探测前预检,探测、上传及完成回执共用一次会话租约。旧扩展策略保持调用契约,重写脚本后需显式实现新钩子才能启用相应预检和来源声明。

  • 新增组合式 TftpReceipt 与 tftp_backup_receipt,保留原 TftpBackup 三成员接口,明确配置来源、格式及 requested/actual 路径;默认仍是 device_reported,没有服务器摘要。已确认上传后的日志/清理失败携带安全回执,Fleet 标为 reported_with_error;实际路径异常单独诊断,不自动重传。

  • TFTP 批量示例在实际路径未确认时停止服务器文件核验,避免把计划文件名对应的其他备份误报为本次上传结果。

  • 拓扑描述改写按“修改并退出视图 → 读回 → 保存”执行,读回不匹配、解析不完整或查询与审批不同均不保存。计划命令新增读回序列,旧计划必须重新生成;完成步骤跨阶段保留,stale_plan 的写入前异常契约不变。

  • 保存需要明确的设备完成消息,超时或缺少证据返回 persistence_unconfirmed,不自动重放或回滚。现有会话租约覆盖全部阶段及间隙,未实现分阶段契约的自定义策略暂只允许读取。

  • PAN-OS 自动描述计划及改写在 I/O 前以 candidate_isolation_unavailable 拒绝,能力查询返回 false;待目标固件的候选归属、锁与提交协议通过实验后再开启,只读邻居与描述查询保留。

  • 本地备份在采集前获取跨实例/进程的私有路径锁,默认争用返回 backup_busy,可显式有限等待。统一目录、大小写和 Unicode 别名;锁文件长期保留。锁必须在会话租约外获取,已有租约内调用 backup 会返回 SessionBusy。

  • 旧备份比较和离线读取通过同一个 NOFOLLOW 文件描述符检查类型与读取;保留直接备份安全替换末级符号链接、Fleet/离线入口拒绝符号链接的原有区别。

  • 私有写入增加父目录同步及阶段回执。替换后失败保留已知产物,Fleet 标为部分成功,报告保留已提交位置;目录同步不支持单独报错。Backup/Outcome/Batch 成员、默认 JSON 和 strict 成功规则保持不变。

  • Netdisco 清单增加单响应/累计字节、设备数和总期限预算,认证、分页与兼容查询共享计数;默认 HTTP 在下载过程中检查并关闭超额连接,失败不执行部分清单。旧 requester 回调保留,阻塞由调用方负责;HTTP 默认兼容,新增显式禁止明文的配置。

  • 批次开始时冻结非敏感设置,执行中 ENV 修改只影响新批次,设备凭据仍逐台动态解析。集中预检协议、主机密钥、日志、采样和清单预算;CLI > ENV > YAML > 默认值的优先级明确,离线导出不要求清单配置。自定义凭据解析器仍可显式覆盖连接默认值。

  • 复用 expect-pty 的公共 Expect::Redactor,移除连接器重复的字节匹配、重叠合并和分片算法,只保留秘密作用域与输出敏感性策略。依赖要求调整为 ~> 0.5.0,使用已正式发布的公共接口。

  • 配置采集默认将响应正文视为敏感数据:所有厂商的采集、候选差异、追加查询及结果清理异常均不把配置正文传入 text/debug/raw 日志、外部 logger 或错误诊断。running_config.value!、已完成步骤与本地备份保留原始业务内容。

  • Command 增加独立的 output_sensitive: false 标记和 output_sensitive? 查询,with_text 保留该标记。手写采集命令可显式启用;包含秘密的命令文本仍需 sensitive: true。敏感范围结束后恢复普通命令诊断,不长期登记配置正文。

  • 核心引擎、脱敏与错误处理(含 Redactor)、批量并发分别要求行和分支覆盖率均达到 80%;关键文件未测量时失败,并列出全部未加载库文件。测试、CI 与发布预检共用门槛。

  • 在 engine/ 和 netdisco/ 启用方法长度 40、ABC 复杂度 60 的检查;拆分响应读取、CLI、清单规则校验和工作线程的职责。

  • 补充连接恢复、传输参数、终端控制字符、覆盖率退出状态等边界测试,统一会话错误输出的 4096 字节截断逻辑,保持先脱敏后截断。

  • TFTP 文件名在字节截断前明确拒绝非 ASCII 清单标签,保留合法 ASCII 路径和原有长度限制。

  • 新增安全上报及贡献指南,并随 gem 分发;记录关键依赖的维护核对、替代方案边界及厂商、模板、调度等候选工作。