用途:指导在 PostHog 中安全地管理端点(endpoint)版本,包括预览草稿、回滚旧版本、在不新增版本的前提下更新某个版本的设置,以及停用单个版本。
版本模型:查询(query)改动会自动切出一个新版本并提升当前版本号;设置改动(description、data_freshness_seconds、materialisation)不会切新版本,只原地更新目标版本。当前版本始终是版本号最高的那个,不能向后移动指针。不带 ?version=N 调用时运行最新版本。用 endpoint-update 加 is_active: false(不带 version)会一次性下线所有版本;带 version 则只停用该版本。模型是单向的,目前没有“把 v3 重新设为默认”的操作。
主要工具:endpoint-versions 列出所有版本(最新在前);endpoint-get 获取完整配置,支持 ?version=N;endpoint-update 支持 version 参数定位特定版本;endpoint-run 通过 ?version=N 直接执行某版本,不影响其他调用方。
常见工作流:预览时先用 execute-sql 或 SQL 编辑器测试新查询,再更新端点自动生成新版本,用 endpoint-run 确认结果;没有真正的草稿或软发布概念,需要暂存环境只能用带 _v2 或 _staging 后缀的兄弟端点。回滚需分叉:用 endpoint-versions 找到好版本,endpoint-get ?version=N 取出查询 JSON,再用 endpoint-update 以该查询创建新版本;旧版本仍可被 ?version=N 调用,直到显式停用。更新单个版本设置时在 body 传 version,注意 query 与 version 不能同时传。停用单版本用 endpoint-update {version: N, is_active: false},重新启用传 true。清理旧版本可读 last_executed_at 判断是否闲置,先关物化再停用,但该字段只统计个人 API key 调用且仅记录启用追踪之后的运行,需与用户确认。
限制:没有指针翻转,回滚必然产生新版本号;停用单版本不改变默认运行版本;物化按版本独立,视图名为 {endpoint_name}_v{version};建议调用方固定 ?version=N 作为安全网。CLI 的 posthog-cli exp endpoints {pull,push,diff} 可将端点定义以 YAML 纳入版本控制。激活旧版本目前不是产品功能。