pg-jev 技能用于操作 realZachi/pg-jev 这一 PostgreSQL 扩展(jev),该扩展基于 TypeSafe Jev,支持在 SQL 中使用自然语言行谓词、概率、选择与评分。
用途:适用于针对该扩展的离线预检、经批准的安装或升级、端点与密钥配置、调用公共 jev 函数的 SQL 编写、花费与性能检查、冒烟测试证明以及故障排查。不要与 TypeSafe Jev 决策工具混淆:Jev 配置或决策服务相关工作应路由至 ../jev-control-plane/SKILL.md,显式远程发现应路由至 ../jevgrep/SKILL.md。通用 PostgreSQL 模式、查询规划或安全相关工作属于其他 PostgreSQL 技能。
主要能力与使用方式:
-
冻结范围并运行离线审计:在执行任何操作前,明确目标服务器/数据库、PostgreSQL 主版本、已安装扩展版本和端点。禁止在提示、shell 历史、提交的 SQL、日志或技能中放置密码、含密码的 URI 或 API 密钥。使用辅助脚本进行离线检查(不打开 PostgreSQL 或提供方会话):python3 .agent-skills/pg-jev/scripts/preflight.py --json 或 python3 .agent-skills/pg-jev/scripts/preflight.py --repo /path/to/pg-jev --expect-commit e3450d44f7f6745aa2d728c9289b9ca4a6feda9a --json。从已安装根目录运行:python3 "$SKILLS_ROOT/pg-jev/scripts/preflight.py" --json。该脚本检查 Python、当前主机与 pg_config、make、psql、git,以及提供的源代码结构和调用方指定的提交固定值。ok 结果并不证明支持 PostgreSQL 14–17、plpython3u 匹配、服务器权限/出口、端点兼容性、凭据或语义质量;需检查具体检查项和 runtime_verified: false。
-
将 CREATE/ALTER EXTENSION、包/PGXN/Docker 安装、角色/数据库 GUC 更改、ACL 更改、冒烟测试以及任何可能发送行数据的查询视为独立的需批准操作。辅助脚本不执行这些操作。
-
保持四条硬性安全边界:
- 服务器端凭据:源从 PostgreSQL 服务器进程读取 jev.api_key,然后读取 TYPESAFE_API_KEY;客户端 shell 变量无关。仅在端点/范围批准后私下输入密钥,绝不打印、回显、提交、粘贴或 SHOW 真实值。
- 行披露:缓存未命中可能将复合行发送到配置的提供方。需要明确披露和成本批准;在 SQL 中保留确定性过滤器,并通过窄视图仅暴露所需列。
- PUBLIC EXECUTE:新创建的函数保留 PostgreSQL 默认的 PUBLIC 执行 ACL。在允许提供方数据前,撤销该权限并仅授予批准的角色;升级后重新检查。jev.max_* GUC 是协作性限制,不是硬性安全上限。
- 非 STRICT 包装器:可空复合别名(通常来自未匹配的 LEFT JOIN 行)可能到达 PL/Python 并在 row_json.encode() 处失败。在 jev(...) 之前使用内连接、WHERE joined_alias IS NOT NULL 或非空物化视图进行防护。
- 仅在相应分支触发时查阅详细操作:对于固定的控制/SQL 证据、PGXS/PGXN/Docker 命令、ACL SQL、GUC/API 负载契约、公共函数签名、花费默认值、冒烟证明和故障排查,请阅读 references/upstream.md。该文件保留了所有已审计操作和引用,而不会为仅离线检查加载这些细节。
示例:离线源代码审计:python3 .agent-skills/pg-jev/scripts/preflight.py --repo /work/pg-jev --expect-commit e3450d44f7f6745aa2d728c9289b9ca4a6feda9a --json。检查被阻止的检查项;不要将路径存在或工具可用视为运行时支持或同意发送数据。
经批准的实时工作流:阅读 references/upstream.md 中的相关分支,然后分别获得安装、ACL/GUC 更改、提供方披露和冒烟证明的批准。在证据记录中保留端点类别、版本、请求统计和错误,但绝不保留凭据。
最佳实践:固定扩展提交和模型版本以生成可复现报告;记录 PostgreSQL 主版本和 pg_config 路径。在共享部署中,先使用廉价 SQL 谓词、窄视图、封闭选择选项以及显式的行/字符花费防护。将所有缓存未命中行视为潜在的敏感第三方披露;绝不能仅从成功的 SQL 安装推断提供方或语义正确性。明确报告不可用工具、未验证的主版本、缺少 plpython3u/超级用户访问、出口失败、无效凭据、本地服务器契约不确定性以及可空复合类型风险。
参考:详细固定操作见 references/upstream.md;固定源代码:https://github.com/realZachi/pg-jev/tree/e3450d44f7f6745aa2d728c9289b9ca4a6feda9a;TypeSafe API 契约:https://docs.typesafe.ai/api.md;项目文档:https://pgjev.com/docs。
限制:资料中未提供该技能的具体收费信息、支持的 PostgreSQL 版本范围(仅提示需验证 14–17)、提供方端点兼容性细节、性能指标或语义质量保证。使用前需自行验证运行时环境与批准流程。