SuperAPI AI 工具集

inspect

数据与分析

查看项目

更新于 10-23 23:07

技能介绍

用途

inspect 用于对 Snowflake 环境执行一次结构化扫描,并生成带时间戳的环境快照,便于记录和追踪环境变化。它属于 CocoPlus 技能集,运行前要求当前目录已初始化 CocoPlus(存在 .cocoplus/ 目录)。若未初始化,会输出提示“CocoPlus not initialized in this directory. Run $pod init to begin.”并停止。

主要能力

扫描覆盖以下对象:

  • 模式(Schemas):执行 SHOW SCHEMAS;
  • 表(Tables):对每个可访问模式执行 SHOW TABLES IN SCHEMA [schema_name];
  • 视图(Views):执行 SHOW VIEWS IN SCHEMA [schema_name];
  • 存储过程(Stored Procedures):执行 SHOW PROCEDURES IN SCHEMA [schema_name];
  • 用户权限(User Grants):执行 SHOW GRANTS TO USER CURRENT_USER();
  • Cortex 函数(仅在 --full 模式下):执行 SHOW FUNCTIONS LIKE '%CORTEX%';

扫描具备容错性:任何查询失败都会被跳过并记录,不会中断整个扫描。每个失败会记录查询标签、尝试的精确 SQL、Snowflake 错误文本或工具错误、可推断的可能原因(权限、模式缺失、账户功能不支持、连接问题)以及该失败是否影响最终计数。

使用方式

参数解析:

  • --schema <name>:仅扫描指定模式
  • --full:扩展元数据(列级细节、查询历史),并额外扫描 Cortex 函数
  • 无参数:标准扫描

扫描完成后,生成时间戳(格式 YYYYMMDD-HHMMSS),并将快照写入 .cocoplus/snapshots/[timestamp]-env.md。快照内容包含:标题、采集时间(ISO 8601)、扫描类型(standard / schema-specific / full)、模式过滤器(模式名或 "all")、模式列表、按模式分组的表名(如可用则含行数)、按模式分组的视图名、按模式分组的存储过程名、权限摘要、Cortex 函数名(仅 --full)、诊断信息(扫描耗时、对象计数、失败查询数及每个失败的详情)、扫描备注(即使无错误也需明确写出“No errors encountered”)。

完成后的输出格式为:“Environment scan complete. Snapshot written to .cocoplus/snapshots/[timestamp]-env.md. Found: [N] schemas, [N] tables, [N] views, [N] procedures. Diagnostics: [N] failed queries.”

适用场景

  • 需要定期记录 Snowflake 环境结构变化时
  • 在排查权限或对象范围问题时,需要一份包含失败查询详情的诊断快照
  • 作为 Assist Mode 或其他后台工作流的子步骤,为父流程提供环境上下文

限制与注意事项

  • 必须已初始化 CocoPlus(.cocoplus/ 存在),否则直接停止
  • 扫描依赖 SnowflakeSqlExecute 工具执行查询,查询失败会被跳过而非中止
  • 当被 Assist Mode 或其他后台工作流调用时,不应因单个 inspector 查询失败而使父工作流失败,而应将诊断写入快照并报告快照路径
  • 快照必须带时间戳,不得覆盖最新快照,以保留环境变更历史
  • 退出条件要求快照文件包含 Schemas、Tables、Views、Stored Procedures、User Permissions 各节,Diagnostics 节(含扫描耗时、对象计数、失败查询数及精确失败 SQL/错误文本),以及 Scan Notes 节(即使无错误)
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供