PRIVATE ANALYTICS BLUEPRINT / 01

TikHub 用户行为
数据体系

面向 TikHub API 升级接入新 Platform:用真实接口、账户审计、结算记录与运营流程,说明分析数据如何形成。

打开行为分析后台演示 进入架构评审 →

使用边界:行为上报与分析数据仅供内部授权员工使用,不向卖家开放。

代码依据:TikHub-Platform e2ea1b8a / TikHub_API 80132ea8 · 2026-11-09。API 只提供专属接口与请求事实;账户、组织、授权、资金和运营采用新 Platform 模型。分析旁路及 API 新平台接入尚待建设与联调,页面样本全部合成。

DESIGN PRINCIPLES01 / 数据自控02 / 事件有来源03 / 身份有边界04 / 运营可衡量
01 / DATA FLOW

从行为发生,到业务行动

选择场景高亮完整路径;点击任意节点,查看数据内容和边界。

ARCHITECTURE →
系统数据流 / 架构提案
当前数据流其他路径
01 / 行为与业务来源
02 / TIKHUB 自有数据层
03 / 分析与决策
04 / 员工操作与反馈
统一事件接入

采集前字段白名单、用途控制、身份确认
传输与存储TLS、访问控制、队列重试与数据删除
使用时员工权限、查询审计、营销退订

业务场景模拟

模拟数据 · 不是真实用户
步骤 / 时间事件或处理模拟数据与结果流向

示例用于解释目标设计;真实名称取自代码,API 新平台接入与分析投影仍待建设。高亮行跟随上方播放步骤变化。

02 / EVENT CATALOG

TikHub 应该采集什么?

以业务问题为中心定义事件,先覆盖关键节点;现有审计、业务记录与建议新增事件分别标识。

EVENTS →
EVENT / 事件采集时机来源用于回答

03 / IDENTITY MODEL

一个用户,多种业务身份

同时表达个人、组织、成员和服务身份,保留事件发生时的真实上下文。

IDENTITY →
01 / PERSON

个人与匿名访问

登录用户使用随机的 analytics_person_id。匿名访问使用短期 ID,登录和退出时按用途管理关联。

02 / ORGANIZATION

组织与成员关系

组织拥有独立分析 ID。记录操作人和成员关系;切换组织不会改写历史事件。

03 / SERVICE

服务身份

服务 Key 和自动任务标记为 service 或 system,不会被误认为自然人。

04 / APPLICATION

App 与事件来源

每个事件标明可信来源和所属 App,关键事实由拥有该事实的服务上报。

05 / MARKET

Market 身份边界

保留既有 pairwise sub 的业务语义。行为数据仅供内部授权员工使用,不向卖家开放,包括其自身数据和聚合。

06 / CONTROL

用途、权限与删除

映射表单独保护;查看与导出需授权和审计,注销或适用撤回时按策略处理数据。

04 / SYNTHETIC POC · 2026.11.09

三轮 PoC:验证数据与权限边界

全部使用隔离环境与合成数据。第三轮补测事件导出、队列重放、完整冷备恢复与外联;点击卡片查看范围。

TEST RESULTS →
读取权限 · 已验证范围

项目 read 权限覆盖同项目其他测试主体

历史 PoC 将 A / B 命名为合成卖家;A 持项目 read 权限,可查 B 并创建读取客户端导出。无授权项目的事件查询为 403。这是权限范围测试,不是卖家产品功能。

查看验证与设计影响

读取客户端创建、导出及撤销均返回 200。测试凭据已撤销;账号角色由合成数据库引导,不是原生卖家角色。共享链接、缓存和全部 API 尚未覆盖。当前边界是卖家零访问:不开放任何行为数据、聚合、导出或共享入口。内部员工查询仍须服务端权限控制;卖家全面拒绝尚待 R08 验收。

组织模型 · 需适配

事件归属 ≠ 当前成员关系

Alpha 有 3 个历史事件主体,显式分配后的成员列表是 2 人。Bob 重新分配到 Beta 后,旧 Alpha 分组仍保留。

查看验证与设计影响

这是第二轮观察:事件标签和画像成员是两套口径。TikHub 需维护可撤销、带生效时间的权威成员关系,并保留事件发生时的组织上下文。分析分组不能作为授权来源。

队列重放 · 需删除标记

待处理的旧事件会重新写回

暂停 Worker 后将旧合成事件送入队列,删除对应数据库行,再恢复 Worker:事件从 0 条变回 1 条。

查看验证与设计影响

这次由实际 Redis 队列与 Worker 重放,区别于第二轮手工重新发送。直接删除了 ClickHouse 事件和画像,没有安装持久删除标记;不是原生完整删除流程验收。接入、队列消费和恢复后都应检查独立删除登记。

完整冷备 · 恢复成功

从新目录与新数据卷重新启动

备份包含 PostgreSQL、ClickHouse、Redis 三个完整数据卷及 Compose、环境和数据库配置。恢复后 269 条事件、10 条画像原始行、2 条分组记录一致,产品导出 API 返回 200。

查看验证与设计影响

校验 10 个备份文件后,在新目录和全新卷中启动;复用本机已固定摘要的镜像。备份包约 58.1 MiB,解包后从写卷到服务健康约 18.66 秒,仅为本机小样本。备份后已在源库删除的哨兵事件与画像恢复成 1 / 1,必须重新执行删除策略。未覆盖远程灾备、镜像重下载、加密密钥恢复及生产 RPO/RTO;本地测试包未加密且没有公开上传。

外联 · 已有拦截证据

CSP 拦截厂商上报与第三方脚本

浏览器报告拦截 api.openpanel.dev/track 和 cdn.userjot.com/sdk/v2/uj.js。API、Dashboard、Worker 的 DNS、IPv4 / IPv6 TCP 与空 HEAD 出站点探测均未成功。

查看验证与设计影响

覆盖项目、概览、事件、画像与 Groups 页面;共收到 6 条 CSP 报告、2 个目标。容器 internal 网络未开启 IPv6,IPv6 结果不能说明双栈部署安全。CSP 报告不是完整抓包;仍需移除外部组件,验证所有页面、故障和升级路径。测试 CSP 不作为生产模板。

后台 MVP · 可交互演示

从事件到用户、运营与风险视图

依据两个项目代码重建总览、5 条动态业务流、账户身份、真实群发口径、审计风险和事件依据。模拟抖音接口的 200 / 402 / 429 / 500,观察指标变化。

查看演示范围

纯前端合成数据,尚未接入 OpenPanel 或 TikHub 后端;不发送通知、不执行风控处置。刷新重置数据。展示的是内部员工后台,不向卖家开放行为数据;持久存储、服务端鉴权和生产分析尚未实现。

打开后台演示 →
对照项目OpenPanel 2.xUmami 3.4.1
初轮合成事件22 条成功接收;重发会重复22 条成功接收;重发会重复
产品能力画像、组织与事件界面已验证三步激活漏斗为 4 → 3 → 2 人
第二轮轻量负载240 条全部入库;约 20 条/秒的短时测试未做同条件负载测试
资源观察第二轮负载 2.45–2.47 GiB;第三轮恢复后约 1.58 GiB第一轮单次快照约 271 MiB
第三轮完整冷备三个完整卷 + 配置恢复;产品 API 可读本轮未补测恢复

恢复后的 3 次快照仅为短时页面操作后观察,CPU 合计约 5.31–12.90%;不含宿主与 Docker VM。不同轮次与条件不可直接作为性能排名。完整冷备恢复已在本机验证,生产灾备、完整删除、全面权限与完整出站审计仍未验收。PostHog 仍只作功能参考,未部署实测。

05 / ARCHITECTURE REVIEW · 2026.11.09

架构评审:从问题到验收

14 项决策议题,分别列出依据、解决方案、优先级、责任角色与验收标准。

REVIEW →
已确认的产品边界

行为数据仅供 TikHub 内部授权员工使用

不向卖家开放上报数据、事件明细、用户画像、聚合统计、看板、查询 API、导出或共享链接,包含卖家自身主体的数据。Market 的 pairwise 身份只用于原业务身份边界,不提供行为数据读取权。

这是已确认的设计要求;技术上的“卖家零访问”尚待 R08 验收。当前公开页面仅展示合成样本与评审说明。

07项已有验证证据 · 均有限定范围
14项待建设 / 待验收议题
09项 P0 上线门槛 · 尚未关闭
已验证代码 / PoC 的限定证据 待建设方案或生产验收未完成 上线前必须完成本期真实数据接入门槛

三种标签不互斥:验证了风险不等于修复了风险。P0 阻断本期生产接入;P1 在相应功能启用前完成;P2 为后续扩展,本页不将其计入首期范围。责任角色是分工建议,具体人选与性能阈值须由团队确认。

查看 7 项已验证证据及其边界
V01 · 已验证

业务契约与真实名称

已核对 Platform 账户、Key、资金、运营及 API 请求事实代码。

范围:只核对两个本地仓库;不代表生产已部署或跨仓联调完成。

查看依据 →
V02 · 已验证

项目读取权限范围

历史合成测试中,同项目 read 账号可查询和导出另一测试主体。

范围:仅覆盖所测 API。当前设计不为卖家开放任何行为数据;拒绝访问仍须验收。

查看依据 →
V03 · 已验证

删除后队列重放

直接删除后为 0 条,恢复 Worker 后旧事件变回 1 条。

范围:验证的是缺口;持久删除登记与产品完整删除流程尚未实现。

查看依据 →
V04 · 已验证

三卷与配置冷备恢复

新目录、新数据卷启动成功;269 条事件等计数匹配,产品导出 API 返回 200。

范围:本机小样本;复用缓存镜像,未验证加密备份、异机灾备及生产 RPO/RTO。

查看依据 →
V05 · 已验证

浏览器与容器出站点测

CSP 拦截 2 个外部目标;三个应用容器的出站点探测未成功。

范围:没有完成全流量抓包;网络未启用 IPv6,不构成双栈隔离认证。

查看依据 →
V06 · 已验证

小样本资源观察

恢复后 3 次内存快照合计约 1.58 GiB;已有短时合成负载记录。

范围:排除宿主和 Docker VM;不能作为生产容量或与 Umami 的同条件排名。

查看依据 →
V07 · 已验证

静态后台交互

模拟请求、顺序漏斗、身份筛选、场景自动播放与移动布局已检查。

范围:纯前端合成演示;没有生产采集、服务端鉴权、活动发送或风险处置。

查看依据 →

展示 14 / 14 项 · 上线门槛 9 项未关闭

R01这套系统具体改善哪项业务?P1待建设含已验证依据
架构判断

首期围绕 API 接入激活,建立注册到首次业务成功的转化率与耗时基线,再验证接入引导的增量效果。

现有依据 · V07

漏斗与合成请求交互已演示;尚未采集真实基线,也没有验证活动收益。

解决方案 · 待落实

给每个看板绑定业务问题、行动和负责人。先运行一个接入引导试点,设未触达对照组,同时观察持续使用、退订和投诉。

验收标准

  • 完成指标定义、观察窗口、基线和效果目标的评审记录;样本不足时报告不确定性。
  • 提交一份可复算的试点报告,包含对照组、实际触达、增量结果与负面影响。
建议责任角色产品负责人 + 运营负责人完成节点内部业务试点前应提交证据业务目标说明、指标基线、试点报告
验收状态:未关闭 · 本页不产生审批结果定位此议题 ↗
R02Platform、API 和分析层各自负责什么?P0待建设上线前必须完成含已验证依据
架构判断

新 Platform 管账户、组织、授权、资金与既有运营;Crawler Gateway 管 Data API Key 与调用授权,API App 管接口执行;分析层负责受控副本,OpenPanel 承担分析展示。网关侧职责仍须跨仓联调确认。

现有依据 · V01

已核对两个仓库的接口与事件名称。Crawler Gateway、Billing Gateway 未独立读仓,端到端接入待联调。

解决方案 · 待落实

冻结服务责任和数据契约,打通一个真实抖音接口的身份绑定、预扣、执行、结算与分析投影;分析层不写余额,不改变现有资金协议。

验收标准

  • 由两端负责人确认权威数据来源、调用权限和失败责任;补齐网关侧契约核对。
  • 在隔离预发布环境跑通一条请求,能追溯 request_id、reservation_id、结算事实和分析副本;失败分支逐项核验。
建议责任角色Platform 后端 + API App 后端完成节点真实数据接入前应提交证据边界与接口契约、端到端联调证据
验收状态:未关闭 · 本页不产生审批结果开发任务 T05 起 →定位此议题 ↗
R03成功调用、激活、结算和付费是否定义清楚?P0待建设上线前必须完成含已验证依据
架构判断

HTTP 200、业务结果成功、首次激活、实际结算、充值过账和净贡献必须分别定义。当前演示的 HTTP 200 漏斗只是代理指标。

现有依据 · V01 / V07

已核对 usage_events 与 funding_postings 语义;演示尚未解析真实 API 业务成功结果。

解决方案 · 待落实

建立版本化指标字典,登记主体、分母、时间窗口、退款与冲正口径。首次业务成功使用接口契约,不以非空响应或 HTTP 状态码单独判断。

验收标准

  • 覆盖 HTTP 200 但业务失败、合法空结果、零价结算、202 待复核、退款、冲正及重复投递样本。
  • 逐项与权威事实对账,所有差异均有解释;产品和资金负责人确认同一套定义。
建议责任角色产品 + API 后端 + 资金负责人完成节点真实指标发布前应提交证据指标字典、边界样本、对账记录
验收状态:未关闭 · 本页不产生审批结果开发任务 T06 起 →定位此议题 ↗
R04操作人、付款方、组织与目标对象会不会混淆?P0待建设上线前必须完成含已验证依据
架构判断

四种角色独立记录。member 的操作人与组织付款账户分开;service 不冒充自然人;员工发信不能记成收件用户的操作。

现有依据 · V01 / V07

Platform 字段契约与演示身份分离已核对;可信网关绑定及分析身份映射尚未接通。

解决方案 · 待落实

身份由服务端绑定,保留事件发生时的上下文;当前员工权限独立于历史画像。Market pairwise sub 仅保留原业务身份语义,不赋予行为数据读取权。

验收标准

  • 同一成员在个人、组织 A、组织 B 间切换后,历史事件归属保持不变;服务请求不进入自然人漏斗。
  • 移除员工分析权限后,查询和导出立即按权限策略拒绝;客户端伪造 actor、付款方、组织或 App 不得被采信。
建议责任角色Platform 身份负责人 + 分析接入后端完成节点真实数据接入前应提交证据身份契约、身份与撤权测试矩阵
验收状态:未关闭 · 本页不产生审批结果开发任务 T07 起 →定位此议题 ↗
R05API 升级后,历史账户和事件怎样接续?P1待建设
架构判断

旧应用账户映射到新 Platform 账户必须有可信依据;不确定的历史主体保留为未关联,不能仅按邮箱自动合并。

现有依据 · 尚无实测依据

目前只有目标设计,没有执行真实账户迁移或历史回填验证。

解决方案 · 待落实

建立受控迁移映射,保存依据、版本和生效时间;新旧统计并行核对。首次试点可只接新事件,历史回填另设启用条件。

验收标准

  • 覆盖重复账户、邮箱变化、成员迁移、服务 Key、注销后重新注册等样本,无法确认的映射不得自动合并。
  • 历史回填与实时流并行时不重复计数;提供切换与回退记录,回退不改资金账。
建议责任角色API App 后端 + Platform 身份负责人完成节点历史回填或身份切换前应提交证据迁移映射规范、回填与回退演练
验收状态:未关闭 · 本页不产生审批结果定位此议题 ↗
R06漏报、重复、乱序和延迟如何被发现?P0待建设上线前必须完成含已验证依据
架构判断

数据质量必须可观测;缺数据不能解释为未使用,重试也不能制造新的业务事实。

现有依据 · V03

已观察重复摄入与实际队列重放行为;尚未建设 TikHub 统一幂等与对账层。

解决方案 · 待落实

以来源 + 稳定事件 ID 去重,区分发生与接收时间,版本化字段规范;建立权威事实对账、缺口补采、延迟与死信监控。展示数据水位。

验收标准

  • 重复、乱序、晚到、断流恢复和毒消息样本不会重复计数或阻塞整条队列;关键事实对账无未解释差异。
  • 看板展示数据时间与不完整状态;依赖用量的数据源不可用时,运营资格计算失败关闭。延迟阈值须填写并经评审批准,未填写不算通过。
建议责任角色分析接入后端 + 各事件来源负责人完成节点真实数据接入前应提交证据事件规范、质量看板、重放与对账报告
验收状态:未关闭 · 本页不产生审批结果开发任务 T09 起 →定位此议题 ↗
R07分析故障会不会拖慢 API 或破坏扣费?P0待建设上线前必须完成
架构判断

业务请求不得同步等待 OpenPanel。分析副本从已提交事实异步形成,现有资金协议保持独立。

现有依据 · 尚无实测依据

没有对真实 API / Platform 组合做断网、满盘、积压或性能影响验收。

解决方案 · 待落实

设计有界缓冲、重试退避与积压告警;可重建事实允许补采,低价值交互按明确策略采样或丢弃并计数。分析失败不触发重复扣费。

验收标准

  • 关闭分析服务、阻断网络、制造积压和缓冲耗尽时,业务按既定降级策略运行;资金对账保持一致。
  • 事先记录 API 延迟 / 错误率基线并批准增量预算,再用相同负载比较;无预算、无故障测试均视为未通过。
建议责任角色API App 后端 + Platform 后端 + 运维完成节点真实数据接入前应提交证据故障隔离设计、基线对比与演练记录
验收状态:未关闭 · 本页不产生审批结果开发任务 T12 起 →定位此议题 ↗
R08怎样确保卖家完全不能读取行为数据?P0待建设上线前必须完成含已验证依据
架构判断

用户已确认:行为上报与分析数据仅供 TikHub 内部授权员工使用,不向卖家开放,包含其自身主体的数据、聚合、画像与导出。

现有依据 · V02

产品边界已确认。历史 read 账号越界测试仅说明共享项目权限范围,不代表已经验证卖家全面拒绝。

解决方案 · 待落实

不创建卖家分析角色、项目凭据或共享入口。TikHub 服务端只接受明确授权的员工身份,逐次控制数据范围、字段和导出;普通业务账户、卖家会话与卖家 App 凭据默认拒绝。

验收标准

  • 使用未登录、普通账户、卖家会话、卖家 App 凭据,对看板、事件、画像、聚合、导出、缓存、共享链接和 OpenPanel 直连逐项请求:全部拒绝或不可达,且不泄露记录与统计。
  • 员工权限按角色最小化,撤权后不能继续查询或取回导出;所有敏感查询和导出留审计。同一自然人兼有卖家身份时,卖家身份本身不获得员工分析权限。
建议责任角色Platform 员工权限负责人 + 安全评审角色完成节点真实数据接入前应提交证据内部访问矩阵、卖家零访问测试、员工撤权与导出审计
验收状态:未关闭 · 本页不产生审批结果开发任务 T01 起 →定位此议题 ↗
R09私有部署、加密与外联边界是否可信?P0待建设上线前必须完成含已验证依据
架构判断

自托管和密文上报不能单独证明安全。浏览器事件仍可能伪造,业务关键事实必须来自可信服务端。

现有依据 · V05

已拦截厂商上报和第三方脚本的部分尝试;还未完成全页面、宿主、升级与故障路径的出口验证。

解决方案 · 待落实

来源端字段白名单;传输和存储使用成熟加密机制,身份映射与密钥分离;移除不必要外部组件,采用明确出站允许列表。公开 Cloudflare 页面只展示合成内容,真实后台单独保护。

验收标准

  • 验证 Key、Cookie、令牌、完整敏感参数不进入分析载荷、日志或公开包;完成密钥轮换与恢复演练。
  • 覆盖浏览器、容器、宿主、DNS、实际采用的 IPv4 / IPv6 网络、故障和升级路径,留存出口证据与供应商数据边界;未经批准的目标无业务数据流出。
建议责任角色安全评审角色 + 运维 + 分析接入后端完成节点真实数据接入前应提交证据字段清单、出口证据、密钥与供应商边界记录
验收状态:未关闭 · 本页不产生审批结果开发任务 T08 起 →定位此议题 ↗
R10删除后,重试或恢复会不会让数据重新出现?P0待建设上线前必须完成含已验证依据
架构判断

本次已复现直接删除记录被队列与旧备份带回。删除登记必须独立持久,覆盖分析数据的完整生命周期。

现有依据 · V03 / V04

已验证重放和恢复会重引入记录;这两项是已知缺口,不是删除能力通过验收。

解决方案 · 待落实

记录不可被普通数据快照回滚的删除标记,在接入、消费、回填、导出与恢复时检查;恢复先隔离、清理、核验再开放。资金和安全原始记录按各自保留策略处理。

验收标准

  • 删除后的旧事件重试、积压消费、历史回填、旧备份恢复均不能重新暴露适用范围的数据;缓存与可访问导出同步处理。
  • 删除登记失联或恢复校验失败时不得开放相关查询;记录删除范围、期限、验证证据与例外保留依据。
建议责任角色分析接入后端 + 数据运维 + 数据治理负责人完成节点真实数据接入前应提交证据删除策略、持久登记、全路径删除恢复验收
验收状态:未关闭 · 本页不产生审批结果开发任务 T15 起 →定位此议题 ↗
R11运营人群是否准确,活动增量怎样证明?P1待建设含已验证依据
架构判断

never_used 是付款账户口径,不等于成员没有调用 API。自然人激活、组织使用和账户消费需要独立人群定义。

现有依据 · V01 / V07

已核对现有受众条件、退订复核和 sent / failed;没有真实点击与增量归因链路。

解决方案 · 待落实

人群只作候选,发送前由 Platform 重验资格、订阅和权限;按合适主体保留对照组。sent、点击、业务成功和净贡献分开统计。

验收标准

  • 组织成员已调用但个人未付费、已退订、邮箱未验证、数据源不可用、安排人权限失效等样本均按定义处理,不能误发。
  • 试点报告提供分组口径、触达版本、观察窗口、增量和退订 / 投诉;曝光和点击未采集时不展示伪造指标。
建议责任角色运营负责人 + Platform ops 后端 + 产品完成节点首次真实运营触达前应提交证据人群字典、资格回归、对照试点结果
验收状态:未关闭 · 本页不产生审批结果定位此议题 ↗
R12怎样识别违规而不误伤正常客户?P1待建设含已验证依据
架构判断

将平台规则映射为有证据的调查线索,首期人工复核。HTTP 429、单次登录失败或创建 Key 不单独等同于违规。

现有依据 · V01 / V07

已有审计词表与敏感操作分类已核对;没有验证真实检测准确率、案件流程或处罚能力。

解决方案 · 待落实

规则包含版本、适用范围、证据窗口与例外;记录调查过程、结论和复核人。既有鉴权与限流独立运行;自动处罚不在本期范围。

验收标准

  • 用正常高流量、客户端重试、配置错误和确认违规样本评估误报与漏报;阈值需评审记录,未评估不启用。
  • 每个案件可追溯证据和人工结论;敏感证据只有授权人员可读,分析服务故障不关闭原有业务保护。
建议责任角色安全 / 风控负责人 + 客服业务负责人完成节点风险调查功能启用前应提交证据规则与证据字典、人工复核流程、效果评估
验收状态:未关闭 · 本页不产生审批结果定位此议题 ↗
R13真实流量下的成本、容量和恢复能力是否可承担?P0待建设上线前必须完成含已验证依据
架构判断

1.58 GiB 快照与 18.66 秒本机恢复仅是小样本观察,不能直接形成生产预算或恢复承诺。

现有依据 · V04 / V06

完整冷备已在本机新目录与新卷恢复;缺生产负载、镜像重获取、备份加密、异机及密钥恢复。

解决方案 · 待落实

按日量、峰值、载荷、保留周期、查询并发和备份份数估算容量。分用途保留与聚合;隔离分析资源,补齐异机恢复和积压追赶。

验收标准

  • 记录实际流量基线、批准的容量 / 月成本上限、保留周期和 API 性能预算,完成代表性峰值与查询并发测试。
  • 事先批准可接受丢失窗口 RPO 与恢复时限 RTO,完成含镜像、加密密钥、删除登记和业务核验的异机恢复;未定目标或未实测均不通过。
建议责任角色运维负责人 + 后端负责人 + 成本负责人完成节点生产接入前应提交证据容量成本模型、压测报告、完整灾备演练
验收状态:未关闭 · 本页不产生审批结果开发任务 T19 起 →定位此议题 ↗
R14OpenPanel 能否替换,长期由谁维护?P1待建设
架构判断

TikHub 保有事件规范、身份映射和受控数据副本,通过适配层接入分析组件,避免关键业务依赖专有查询模型。

现有依据 · 尚无实测依据

当前仍是候选评估;没有完成组件替换演练、完整许可证评审或人员责任分配。

解决方案 · 待落实

优先适配而非深度分叉。固定版本并检查许可证、依赖、外联和迁移变更;指定端到端后端负责人,各来源维护事件契约。高级分析能力按收益进入 P2。

验收标准

  • 有具体人员认领事件、指标、告警、升级与恢复责任,并形成组件采用和许可证审查记录。
  • 将同一受控样本送往替代消费端,关键指标可复算;完成一次升级回退,权限与删除用例无回归。
建议责任角色技术负责人 + 运维 + 事件来源负责人完成节点组件生产采用与持续维护前应提交证据责任清单、组件采用记录、替换与回退演练
验收状态:未关闭 · 本页不产生审批结果定位此议题 ↗

按四个阶段组织验收

01 · 定义口径

确认内部使用边界、业务目标、职责与指标字典。证据:责任人和评审记录。

02 · 最小链路

隔离预发布环境接通一个真实接口。证据:身份、请求、结算、分析副本关联及对账。

03 · 关闭 P0 门槛

逐项验证权限拒绝、故障隔离、出口、删除与灾备。证据不足的项目保持未关闭。

04 · 内部运营试点

通过 P0 后接入受控真实数据;首次触达前完成 R11,有对照组并观察负面影响。

P1 议题仍有自己的启用前置条件:历史回填看 R05、运营发送看 R11、风险调查看 R12、组件生产采用看 R14。高级自动化与自动处罚不在首期交付范围。

06 / ENGINEERING BACKLOG · 2026-11-09-delivery-1

九项 P0,拆成 22 个开发任务

从内部员工权限开始。依赖、代码模块、责任角色与验收结果逐项可查。

BUILD →
首批开发 · T01–T04

先建读取边界,再接真实数据

员工身份 → 动作权限 → 数据 / 字段范围 → 受控查询与导出。卖家在每个入口都拒绝,包括自身数据及聚合。

从 T01 开始 →查看抓包与篡改场景 →会议讲解稿 →

Platform e2ea1b8a / TikHub_API 80132ea8;核对工作区代码,未验证生产部署。Crawler Gateway、Billing Gateway 尚未独立读仓,跨仓接口须负责人确认。
开发拆解与验收提案;22 项任务均待实施,不代表业务代码已修改或生产权限已生效。

阶段表达交付顺序;每张任务卡的“前置任务”才是精确依赖。T05 / T19 可与权限开发并行;T04 在早期用合成数据验证,在 T14 / T15 完成后必须重跑最终拓扑。

九项 P0 与开发任务的对应关系
评审门槛开发任务关闭条件
R08内部权限 / 卖家零访问T01 · T02 · T03 · T04 · T22T14 网络旁路与 T15 删除查询闸完成后重跑全矩阵
R02职责与单接口联调T05 · T11Crawler / Billing Gateway 跨仓契约与试点资金链确认
R03指标与资金口径T06 · T18边界样本和权威事实对账无未解释差异
R04可信身份T07 · T10客户端不能声明高信任主体,历史上下文不漂移
R06幂等与质量T09 · T13重复、乱序、缺口、毒消息和不可用状态可观测可处理
R07业务故障隔离T12 · T17故障期间资金一致且满足事先批准的 API 增量预算
R09安全 / 加密 / 外联T08 · T14生产者授权、篡改 / 重放、白名单和实际出口覆盖
R10删除与恢复不复活T15 · T16旧队列 / 回填 / 旧备份均不重新暴露适用数据
R13容量 / 成本 / 灾备T19 · T20 · T21批准预算、代表性负载和包含密钥 / 登记的异机恢复达标

T01定义员工分析权限与数据范围R08
前置任务可先开始建议负责人Platform 身份 / 员工权限后端交付状态待实施 / 待验收

已有代码依据

已有 KindStaff、StaffSessionAuthenticator、团队 grants、MFA 闸及 Owners *。现有 Constraints 主要服务资金与公告,不能直接假定支持分析行级范围。

具体开发内容

默认不向现有普通团队自动授予分析权限。分别控制聚合、明细、身份映射、导出;导出不能单独代替读权限。Owners * 沿用动作权限语义,但分析范围仍须显式配置,缺失 / 格式错误一律拒绝。兼任卖家的员工只能凭独立员工会话和授权访问。

要改哪些模块

  • Platform internal/platform/service/authz/catalog.go修改:登记 behavior.read、behavior.detail.read、behavior.identity.read、behavior.export
  • Platform internal/platform/service/authz/constraints.go参考现有语义;不把资金的 nil=无限套用于分析
  • Platform internal/platform/service/authn/staffsession.go复用:每次解析会话、员工状态和当前 grants
  • Platform internal/ops/service/behavior/policy.go拟新增:动作权限 AND 数据范围 AND 字段策略
  • Platform db/migrations/behavior1_access_policy.py拟新增:员工 / 团队分析范围、策略版本及审计字段

验收方式与预期结果

  • 无授权员工、停用员工、已撤销会话、MFA 不满足、无范围策略、损坏策略均拒绝;普通用户 / account_key / service 主体不能通过员工闸。
  • 测试多团队合并、临时授权到期、全范围显式授权和细分 App 范围;任意请求体 role=staff 或 org_id 都不能扩大范围。

应提交证据 权限矩阵、数据库迁移回退说明、策略单测及真实会话组合根测试。

定位任务 T01 ↗
T02把员工查询接到受保护的服务端入口R08
前置任务T01建议负责人Platform ops 后端 + Admin 前端交付状态待实施 / 待验收

已有代码依据

ops requireStaff 先检查 KindStaff;gateway 的 bmux 外层处理员工会话和 MFA。前端已有 routePerms / RequirePerm,但它们只控制界面。

具体开发内容

第一版使用合成仓储实现。真实接入时只允许服务端访问 OpenPanel,员工浏览器不持有项目读密钥,不转发任意 SQL / 厂商 RPC。结果总数、筛选候选、明细、画像全部在受限范围内计算;Cache-Control: no-store,禁止 CDN 缓存真实数据。厂商原生 UI 留在单独运维网。

要改哪些模块

  • Platform internal/ops/api/staff/routes.go修改:登记拟新增 /admin/behavior/* 固定查询接口和权限契约
  • Platform internal/ops/api/staff/deps.go复用 requireStaff;新增处理器仍逐项执行策略
  • Platform internal/bootstrap/gateway.go修改:只挂员工 bmux,不挂公开或卖家路由
  • Platform internal/bootstrap/behavior.go拟新增:策略、查询适配器、凭据注入
  • Platform web/admin/src/routePerms.ts修改:新增行为分析入口权限
  • Platform web/admin/src/App.tsx修改:挂接员工页面;同时调整 components/shellNav.ts
  • Platform internal/ops/service/behavior/query.go拟新增:固定查询模板、字段投影和查询预算

验收方式与预期结果

  • 经完整 gateway 测试无会话 401、无权限 403、依赖失联 503 且无数据;分页、总数、facets、错误体不能泄露范围外内容。
  • 篡改 App、项目、主体、筛选和游标均不能越权;跨站带员工 Cookie 的请求被现有 staffcsrf 链拦截;新增路由进入 OpenAPI 一致性检查。

应提交证据 拟新增 internal/bootstrap/behavior_access_e2e_test.go;make openapi 后执行 make openapi-check;前端路由回归。

定位任务 T02 ↗
T03受控导出、撤权与读取审计R08
前置任务T02建议负责人ops 后端 + 安全评审交付状态待实施 / 待验收

已有代码依据

auditq 有导出上限;opsaudit.Record 故意吞掉写入失败,适用于已完成业务改动的事后记录,不能直接承担敏感读取的失败关闭。kernel/audit.Sink.Record 会返回错误,可用于新增严格审计适配器。

具体开发内容

导出须基础读取权限、相应明细权限和 behavior.export,并受同一范围 / 字段策略约束。限定行数、时窗、并发和 TTL;加密临时文件,仅通过员工鉴权下载端点读取,不发长期公网直链。执行及下载时重读当前权限和删除版本。身份查询 / 导出先通过严格审计适配器持久记录访问意图,再放行数据并补记结果;审计失败、nil 或生产误装 Nop 均拒绝。

要改哪些模块

  • Platform internal/ops/service/auditq/auditq.go参考现有导出限额和字段处理
  • Platform internal/ops/service/opsaudit/opsaudit.go只复用归因格式,保留原业务事后审计语义
  • Platform internal/kernel/audit/audit.go复用返回 error 的 Sink 契约,生产不得装配 Nop
  • Platform internal/ops/service/behavior/audit.go拟新增:敏感读取前持久记录,失败则拒绝放行
  • Platform internal/ops/service/behavior/export.go拟新增:导出创建 / 执行 / 下载三次授权
  • Platform internal/ops/service/auditrisk/auditrisk.go修改:登记 behavior 查询、身份解映射、导出与拒绝动作
  • Platform web/admin/src/auditActions.json修改:对应新审计动作名称

验收方式与预期结果

  • 排队后撤权、运行中撤权、生成后撤权三种情况均不能产生新的未授权读取;停用和到期生效。已合法下载到个人设备的副本无法技术追回,需另有内部管理规则。
  • 同一导出 ID 被其他员工、卖家、旧 Cookie 请求全部拒绝;审计含操作者、用途、范围、数量和结果,不记录整份原始载荷或密钥。

应提交证据 异步导出撤权测试、审计失败测试、缓存 / 下载链接测试;T03 未验收时整个导出功能保持关闭。

定位任务 T03 ↗
T04建立卖家零访问回归矩阵R08
前置任务T02 · T03建议负责人测试负责人 + 安全评审交付状态待实施 / 待验收

已有代码依据

历史 OpenPanel 同项目读取测试说明项目密钥范围宽;不是当前卖家拒绝能力的证明。

具体开发内容

覆盖匿名、个人、组织成员、组织服务 Key、卖家会话、卖家 App 内部 Key、普通员工、授权员工、撤权员工,以及同一人同时持有卖家与员工身份。禁止看板、明细、画像、聚合、总数、facets、导出、共享链接和 OpenPanel 直连旁路。

要改哪些模块

  • Platform test/e2e/staff_test.go参考现有员工 e2e 模式
  • Platform internal/bootstrap/staff_sso_separation_e2e_test.go参考员工 / 用户身份分离用例
  • Platform test/e2e/behavior_access_test.go拟新增:全部入口 × 全部主体矩阵
  • Platform internal/platform/service/authz/firstparty.go核对卖家 App 不能获得分析机器权限

验收方式与预期结果

  • 所有非员工凭据对分析读取入口均 401 / 403 / 不可达,响应与缓存不含任何记录或统计;员工只见获授权范围。
  • T14 网络规则及 T15 删除闸完成后在真实预发布拓扑重跑;CI 只测 handler 不足以关闭 R08。公开合成演示不代表真实后台入口。

应提交证据 矩阵 CSV、请求响应脱敏证据、网络不可达记录;拒绝矩阵必须进入后续升级回归。

定位任务 T04 ↗
T05冻结新平台职责与跨仓接口契约R02
前置任务可先开始建议负责人Platform + API + Crawler / Billing Gateway 负责人交付状态待实施 / 待验收

已有代码依据

Platform 已有内部机器接口、账户 / 组织、资金事实;API main.py 仍含旧 AuthManager 扣费路径,不能作为升级目标。

具体开发内容

Platform 管账户、组织、员工权限和资金协议;Crawler Gateway 管 Data API Key / 调用授权,API 管接口执行结果;分析系统仅消费受控副本。确认 request_id / reservation_id / event_id 关联、身份传递、调用超时及重试责任。Gateway 仓库待补核,是联调阻塞项。

要改哪些模块

  • Platform docs/reference/36_apps_api_draft.md核对内部 App、预扣 / 结算及事件契约
  • Platform docs/reference/35_funding_api.md核对资金过账与冲正权威来源
  • Platform internal/platform/api/machine/keyevents.go核对 Data API Key 创建报告契约
  • API app/main.py标注旧鉴权 / 扣费替换边界,不在本轮改写
  • API auth/AuthManager.py核对当前调用方;迁移切换方案另行评审

验收方式与预期结果

  • 四方负责人确认契约版本与负责模块,列出 200、402、429、500、超时、202 待复核和重复请求分支。
  • 明确升级试点的权威计费链和回退方式;同一请求不得同时执行旧 AuthManager 扣费和新预扣结算。

应提交证据 跨仓契约签字记录、接口 fixture、旧新切换和回退开关说明;不是一次性全量 API 迁移承诺。

定位任务 T05 ↗
T06定义请求完成、有效结果与资金指标R03
前置任务T05建议负责人产品 + API 后端 + 资金负责人交付状态待实施 / 待验收

已有代码依据

douyin_web 分享链接接口明确:作品已删除 / 受限仍可 HTTP 200 并正常计费;usage_events 一行是已结算事实,零价也写。

具体开发内容

分别计请求完成、可用作品结果、首次可用结果、已结算金额和充值过账。合法空结果按接口定义分类,不默认失败、不倒改扣费;analytics.api.first_success 的分母、主体、窗口和成功版本须产品批准。

要改哪些模块

  • API app/api/v1/endpoints/douyin_web.py核对 fetch_one_video_by_share_url 的 filter_detail 语义
  • API app/api/v1/models/APIResponseModel.py核对 HTTP / 业务字段,避免把 code=200 当统一可用结果
  • Platform internal/money/store/usage_rows.go权威结算列契约
  • Platform internal/money/store/funding_postings.go权威充值 / 冲正事实
  • Platform internal/ops/service/behavior/metrics.go拟新增:版本化指标规则

验收方式与预期结果

  • 至少覆盖正常作品、filter_detail 不可用、合法空列表、HTTP 200 业务错误、402 / 429 / 500、202、零价、冲正、退款及重复样本。
  • 金额使用整数微美元或精确十进制;付款组织与成员自然人不混算。未知接口结果标 unknown,不推断激活成功。

应提交证据 指标字典、版本化 golden fixtures;最终账实对账由 T18 验收。

定位任务 T06 ↗
T07实现可信身份绑定与历史上下文R04
前置任务T05建议负责人Platform 身份 + API 接入后端交付状态待实施 / 待验收

已有代码依据

Principal 区分 user / staff / service / account_key;UsageRow 区分付款 account_id 与 member actor_account_id。历史行可能缺 actor 信息。

具体开发内容

记录 actor_kind、person_ref、payer_ref、org_ref、service_ref、app、subject_ref 与事件发生时成员关系。浏览器只能提交交互字段;服务端从当前会话绑定人和组织,服务间从已验证调用上下文绑定。账户 ID 不使用邮箱生成,映射表与事件库分开保护。

要改哪些模块

  • Platform internal/kernel/authn/principal.go复用认证主体,避免浏览器自行声明身份
  • Platform internal/money/store/usage_rows.go读取付款 / 操作人字段;未知历史主体保留 unknown
  • Platform internal/platform/store/marketid/marketid.go保持 pairwise sub 业务语义,不授分析权限
  • Platform internal/ops/service/behavior/identity.go拟新增:按来源校验可信上下文与假名映射
  • Platform db/migrations/behavior2_identity.py拟新增:用途隔离映射、版本与删除关联

验收方式与预期结果

  • 同一成员依次个人 / 组织 A / 组织 B 调用,历史归属不变;service / system 不进入自然人漏斗。
  • 伪造 actor、组织、付款账户、App、staff 标志均被拒绝或舍弃;不能靠可猜 request_id 读取或拼接其他人的请求。

应提交证据 身份映射迁移、合成身份 fixture、组织切换 / 成员移除 / 注销再注册测试;历史回填继续受 R05 限制。

定位任务 T07 ↗
T08建立仅供可信服务写入的采集入口R09
前置任务T05 · T07建议负责人分析接入后端 + 安全交付状态待实施 / 待验收

已有代码依据

已有 internal key、first_party scope 限制、App 事件 HMAC 和资金签名。资金 reqsig v1 明确不存 nonce;不能宣称现有签名已经防重放。

具体开发内容

TLS 保护传输,内部调用另校验工作负载身份与 producer→App→事件族绑定。选择成熟 HTTP 消息签名实现 / 明确协议,绑定方法、目标、body digest、kid、时间、nonce;每次投递生成新 nonce,事件 ID 在重试中稳定。密钥不下发到浏览器,不与资金 / App 回调密钥共用。

要改哪些模块

  • Platform internal/platform/service/authz/scopes.go修改:拟新增专用 behavior:write scope
  • Platform internal/platform/service/authz/firstparty.go修改:只给批准的第一方生产者;读权限不随写权限授予
  • Platform internal/kernel/httpx/reqsig.go参考签名绑定方式,保留资金既有协议不变
  • Platform internal/platform/service/appevents/sign.go参考原文字节验签和轮换;不是直接通用化现有协议
  • Platform internal/ops/api/behavior/ingest.go拟新增:独立内网入口、生产者和事件族白名单
  • Platform internal/ops/service/behavior/signature.go拟新增:标准签名适配及原子 nonce 存储

验收方式与预期结果

  • 修改请求体 / 路径 / App、错 key、过期时间、重复 nonce、撤销生产者、卖家 App Key 均拒绝;nonce 存储故障时拒绝摄入并留给生产者重试。
  • 正确凭据也只能写其授权事件族;API 生产者不能伪造 funding 事实。签名成功只证明来源与完整性,不证明业务内容真实。

应提交证据 篡改 / 重放 / 轮换负向测试、生产者权限表;凭据泄露演练与撤销路径。

定位任务 T08 ↗
T09持久幂等收件箱与规范事件模型R06
前置任务T08建议负责人分析接入后端交付状态待实施 / 待验收

已有代码依据

keyevents 已采用事件 ID 与内容冲突检测;App outbox 保持同一事件原文。分析层尚无统一 durable inbox。

具体开发内容

只在持久接收事务提交后回 accepted;先验身份 / schema,再进行去重。同 ID 同内容重试返回既有接收结果,同 ID 不同内容返回冲突并隔离。未知版本 / 事件 / 字段拒收;occurred_at、received_at 分开,晚到规则独立于签名时间。

要改哪些模块

  • Platform internal/platform/service/keyevents/keyevents.go参考 duplicate / idempotency_conflict 语义,不复用通知业务表
  • Platform internal/kernel/httpx/strictjson.go复用严格键校验;动态 properties 还需独立 schema 校验
  • Platform internal/ops/store/behavior/inbox.go拟新增:唯一键、内容哈希和原子接收
  • Platform db/migrations/behavior3_inbox.py拟新增:(producer, event_id) 唯一约束及投影状态

验收方式与预期结果

  • 并发重试同一事件 100 次只形成一个逻辑事实;更换 nonce 不增加事实;提交后宕机重试不丢失。
  • 下游投递成功但 ACK 丢失后,权威规范副本和指标仍只计一次。OpenPanel 原始重复行为须测试并修复或明确隔离,不能把它直接当账实来源。

应提交证据 并发 / 崩溃窗口测试、冲突样本、去重保留与回填最长窗口说明;不宣称跨系统 exactly-once。

定位任务 T09 ↗
T10单独接入浏览器体验事件R04
前置任务T07 · T09建议负责人Account / API 前端 + 接入后端交付状态待实施 / 待验收

已有代码依据

当前两个公开页面不采集真实行为。前端代码和用户设备由用户控制,无法保存一个对用户保密的永久签名密钥。

具体开发内容

首期只收 ui.api_docs.viewed、ui.api_key.copy_clicked、ui.campaign.clicked 等提案事件;不收完整 DOM、响应正文、按键、Key、Cookie、完整分享 URL。登录态由服务端绑定;匿名不自动关联真实账户。客户端声明的 paid / settled / staff / identity 不能提升信任级别。

要改哪些模块

  • Platform web/account/src/api.ts复用同源会话 / CSRF 调用模式
  • Platform web/account/src/behavior.ts拟新增:白名单体验事件与批量上限
  • Platform internal/platform/api/account/behavior.go拟新增:同源接入、会话绑定、CSRF、schema 与配额
  • Platform internal/ops/service/behavior/ingest_browser.go拟新增:强制 trust=client_claimed,隔离关键事实

验收方式与预期结果

  • 同源合法交互可进入低信任数据集;跨站 Cookie 请求、未知字段、身份字段注入和伪造资金事件拒绝。
  • 按会话 / 账户 / 生产者及全局配额限流,限制事件数、字节数、深度和时间偏差;IP 仅辅助,不按共享出口一刀切。关闭 JS / 拦截上报时标明观测不完整,不判断用户没使用。

应提交证据 拟新增浏览器采集契约测试与 Playwright 合成用例;API 文档站不在当前前端仓库时由其负责人补接。

定位任务 T10 ↗
T11接通一个真实 API 的新平台试点链路R02
前置任务T06 · T07 · T08建议负责人API + Crawler Gateway + Platform 后端交付状态待实施 / 待验收

已有代码依据

API middleware 生成 request_id 并记录 access.log;分享链接接口有明确结果语义。该日志包含邮箱、IP 和 query,不可整条直送 OpenPanel。

具体开发内容

隔离预发布先以替身上游测试,再由负责人批准有限真实端点联调。API 记录 api.request.completed(拟新增),可用结果单独分类;资金事件只从 Platform 结算 / 过账事实取。Crawler / Billing Gateway 代码未核对前不宣布端到端完成。

要改哪些模块

  • API app/main.py修改:从新平台上下文提取白名单执行事实;切断试点的旧扣费分支
  • API app/api/v1/endpoints/douyin_web.py修改:为分享链接端点产出结果分类,保留业务返回契约
  • API app/utils/logging_setup.py参考现有异步日志;普通日志队列不是可靠事实队列
  • API app/analytics/platform_adapter.py拟新增:可信上下文、request_id / reservation_id 关联和有界提交
  • Platform internal/money/store/usage_rows.go只读权威结算投影,不修改资金列契约

验收方式与预期结果

  • 同一请求关联调用事实、可信身份、预扣 ID 和最终结算;覆盖不可用作品、超时、402 / 429 / 500 及重试;无重复扣费。
  • HTTP 200 filter_detail 样本记请求完成、结果不可用,资金仍按权威结算事实展示;不按前端参数生成金额。

应提交证据 跨仓 staging trace、脱敏输入输出、每分支资金对账;此任务不是全量升级完成。

定位任务 T11 ↗
T12异步投影与 OpenPanel 适配器R07
前置任务T09 · T11建议负责人分析后端 + Platform Worker交付状态待实施 / 待验收

已有代码依据

App app_events 是面向指定 App 的业务 outbox;资金 bill:ch_retry 由资金回灌器消费。二者都不能被分析消费者争抢。

具体开发内容

首期从已提交权威事实读取,独立检查点、重叠扫描 / 对账修补提交乱序,不靠 MAX(id) 假定提交顺序。浏览器信号走独立 inbox。限制每批读取和积压,禁止业务请求同步等待 OpenPanel;分析不能写余额或发起结算。

要改哪些模块

  • Platform internal/platform/store/appevents/outbox.go参考事务内 outbox,不扩大原外发收件范围
  • Platform internal/money/store/ch_drain.go保持资金回灌独占;分析不消费 bill:ch_retry
  • Platform internal/ops/service/behavior/projector.go拟新增:已提交审计 / 结算 / 过账增量投影
  • Platform internal/ops/service/behavior/openpanel.go拟新增:映射、限并发、重试和组件替换边界
  • Platform cmd/worker/main.go修改:独立分析任务开关及预算,或独立部署进程

验收方式与预期结果

  • 停 OpenPanel 后业务仍能提交;投影重启可从检查点续跑,无漏读并发晚提交行。
  • 身份 / 金额字段按规范投影,固定版本 OpenPanel 可查询;适配器重试 / ACK 丢失不造成权威指标重复;未解决厂商重复时不开放相应指标。

应提交证据 投影检查点测试、独立最小数据库权限、适配器兼容与重复投递报告。

定位任务 T12 ↗
T13数据水位、死信和事实对账R06
前置任务T06 · T12建议负责人分析后端 + 运维交付状态待实施 / 待验收

已有代码依据

bulk_audience_ch 在用量源不可用时返回错误,不把缺数据解释为 never_used;应保持这一语义。

具体开发内容

记录 source_count / accepted / duplicate / rejected / projected、延迟和死信原因;低价值丢弃显式计数。补采有审批范围、速率和删除检查。不要把 IP、event_id、用户 ID 当 Prometheus 标签。

要改哪些模块

  • Platform internal/ops/store/bulk_audience_ch.go保持 fail-closed;分析派生人群不能绕过它
  • Platform internal/ops/service/behavior/quality.go拟新增:水位、丢弃 / 拒绝 / 冲突 / 延迟、重放治理
  • Platform deploy/prometheus/alerts.yml修改:新增受控基数的分析告警
  • Platform web/admin/src/pages/behavior/Quality.tsx拟新增:数据截至时间及不完整状态

验收方式与预期结果

  • 乱序、晚到、毒消息、队列中断、下游返回成功但实际丢失都被检测;单条毒消息不阻塞整个分区。
  • 用量或关键水位不可靠时停止相应人群资格判断,显示原因;经批准的延迟和缺口阈值未填写则不通过。

应提交证据 质量看板、告警触发截图、缺口补采与死信演练、有限标签检查。

定位任务 T13 ↗
T14字段最小化、出口控制与密钥运维R09
前置任务T02 · T08 · T10建议负责人安全 + 运维 + API 后端交付状态待实施 / 待验收

已有代码依据

API 日志是疑似敏感 query 掩码,不是分析白名单;PoC 仅发现 / 拦截部分外联,未完成全面抓包。

具体开发内容

OpenPanel、PG、ClickHouse、Redis 不对卖家或公网开放;业务员工仅通过 TikHub 查询层。身份映射独立权限和密钥。TLS + 静态数据 / 备份加密 + KMS 轮换,禁止自制密文协议和把加密钥匙写进 JS。Cloudflare 公共演示只放合成数据;若生产经 TLS 终止代理,明确代理能看什么,按需要选择端到端应用层加密。

要改哪些模块

  • API app/main.py新增分析专用白名单,不能复制原 user / query / IP 字段
  • Platform internal/ops/service/behavior/redact.go拟新增:显式字段 / 类型 / 长度策略,错误日志同样脱敏
  • Platform deploy/behavior/拟新增:私网、出口允许列表、DNS、TLS、备份与密钥配置模板
  • Platform internal/platform/service/appevents/dial.go参考现有受限连接思路,不自动改变业务 App 回调路由

验收方式与预期结果

  • 注入合成 Key / Cookie / 分享 URL / 邮箱 canary,验证接收体、数据库、日志、死信、导出和公开包没有超白名单内容。
  • 采集浏览器、容器、宿主、DNS、已启用 IPv4 / IPv6、启动 / 升级 / 故障的出口记录;只允许已审批目标;未启用 IPv6 不能写成已验证双栈。

应提交证据 字段清单、网络抓包摘要、密钥轮换 / 撤销记录、生产与公开演示资源隔离说明。

定位任务 T14 ↗
T15建立独立持久的删除登记与查询闸R10
前置任务T07 · T09 · T12建议负责人Platform 身份 + 分析后端 + 数据治理交付状态待实施 / 待验收

已有代码依据

identity 删除流程已有同事务 account.deleted 事件;PoC 证明旧队列与旧备份会使直接删除的分析记录回来。

具体开发内容

删除先记入独立持久登记,接入、消费、补采、查询、缓存和导出均检查;登记不能随旧分析快照回退。即时阻止可访问数据,再按批准期限清理物理副本;持有最小删除标识以阻止复活。资金 / 安全原始记录按各自保留规则处理,不承诺全部擦除。

要改哪些模块

  • Platform internal/platform/service/identity/deletion.go读取注销事实,核对通知接入点;不破坏原删除流程
  • Platform internal/platform/service/appevents/emit.go核对生命周期事件,不向卖家扩展分析内容
  • Platform internal/ops/service/behavior/deletion.go拟新增:删除登记、查询屏蔽、物理清理及传播
  • Platform db/migrations/behavior4_erasure.py拟新增:删除范围、版本、截止时间与执行凭据

验收方式与预期结果

  • 删除与接收并发、晚到、重复、历史回填、OpenPanel 重试都不再暴露适用数据;匿名关联也被覆盖。
  • 删除登记不可达或版本落后时相关查询 / 导出关闭;账户重注册不得把已删除历史重新归给新人;期限与例外需责任人确认。

应提交证据 删除状态机、竞态测试、适配器清理回执、缓存 / 导出撤销与保留策略。

定位任务 T15 ↗
T16恢复前重放删除登记并锁定查询R10
前置任务T14 · T15建议负责人数据运维 + 分析后端交付状态待实施 / 待验收

已有代码依据

冷备已在本机新卷恢复,但源端后续删除没有自动应用到旧备份。

具体开发内容

恢复到无外发、无业务读取的隔离实例;恢复最新独立删除登记,重放快照之后的删除,再清理所有适用副本、缓存和导出。保存备份目录、校验和、登记水位与验证结果后才可开放。

要改哪些模块

  • Platform deploy/behavior/restore/拟新增:隔离恢复、登记版本检查、清理与开放步骤
  • Platform internal/ops/service/behavior/readiness.go拟新增:恢复 / 删除校验通过前拒绝查询
  • Platform test/poc/behavior_analytics/新增删除后队列重放及旧备份恢复回归用例

验收方式与预期结果

  • 按备份→删除→恢复旧备份→重放旧队列顺序执行,适用主体在所有读取入口为零且无聚合贡献。
  • 缺最新登记、缺密钥、清理失败或校验不完整时 readiness 不通过,不允许人工跳过后开放真实查询。

应提交证据 可复跑 runbook、独立登记恢复证明、开放前校验报告。

定位任务 T16 ↗
T17故障注入验证业务与资金隔离R07
前置任务T12 · T13 · T15 · T19建议负责人Platform / API 后端 + 运维交付状态待实施 / 待验收

已有代码依据

普通 access.log 的内存队列有容量上限,不能推导出持久可靠分析;当前尚无真实链路故障验收。

具体开发内容

注入 OpenPanel 停机、网络超时、队列满、磁盘满、nonce 库失联、投影进程崩溃和权限库失联。分析读 / 写拒绝按各自策略处理;业务与资金仍沿既定保护运行,关键事实从权威存储补采,不把分析失败作为再次扣费理由。

要改哪些模块

  • Platform test/perf/使用 T19 修复后的 harness 增加分析 on / off 对照
  • Platform internal/ops/service/behavior/projector.go前置任务拟新增模块:验证并发 / 超时 / 熔断 / 限额
  • API app/analytics/platform_adapter.py前置任务拟新增模块:验证故障时有界缓冲、丢弃计数与可重建来源
  • Platform test/e2e/behavior_fault_test.go拟新增:资金不变量和分析故障联合检查

验收方式与预期结果

  • 相同负载的分析开 / 关对照满足预先批准的 API 延迟 / 错误增量预算;CPU、内存与连接池不无限增长。
  • 每个故障期间资金对账一致;恢复后可补齐承诺保留的事实。不可重建的低价值事件丢失明确计数,不承诺所有浏览行为零丢失。

应提交证据 故障矩阵、业务基线与资金对账、积压追赶曲线及降级验证。

定位任务 T17 ↗
T18完成跨来源指标对账R03
前置任务T06 · T11 · T12 · T13建议负责人数据分析 + API / 资金负责人交付状态待实施 / 待验收

已有代码依据

请求日志与已结算用量分属不同语义;资金过账不能由点击或前端 paid=true 推导。

具体开发内容

将同一事件窗口按操作人、付款账户、App、接口、币种单位逐层复算。区分延迟、缺失、去重、退款、冲正和 unknown;分析数字不得回写账本。

要改哪些模块

  • Platform internal/ops/service/behavior/reconcile.go拟新增:请求、结算、过账及派生指标对照
  • Platform internal/money/store/usage_rows.go只读权威数据
  • Platform internal/money/store/funding_postings.go只读充值 / 冲正事实
  • API app/api/v1/endpoints/douyin_web.py提供接口结果 fixture

验收方式与预期结果

  • T06 的每个边界样本均有预期结果,重复 / 晚到样本仍能重算一致;所有金额和数量差异可解释。
  • 首次激活不会由浏览器伪造成功或服务 Key 自动任务触发;未具备可信身份的请求不强行关联自然人。

应提交证据 可重跑对账脚本、差异报告、产品与资金口径验收。

定位任务 T18 ↗
T19修复性能基线并制定容量预算R13
前置任务T05建议负责人运维 + Platform 性能负责人交付状态待实施 / 待验收

已有代码依据

test/perf/README.md 明确旧 /crawler/v1 harness 已失效,须适配 /internal/v1;现有 1.58 GiB 与 18.66 秒只代表本机小样本。

具体开发内容

先定真实业务量级的目标模型,再测分析开 / 关基线。只使用专用隔离 perf 栈和合成账户;分别记录容器、Docker VM / 宿主、索引、备份、出口与运维成本。容量 / RPO / RTO 数字由团队批准,缺值视为未通过。

要改哪些模块

  • Platform test/perf/loadgen/platform.go修改:以现行预扣 / 结算契约替换旧调用
  • Platform test/perf/perflib/seed.py修改:新 App / scope 与隔离样本 seed
  • Platform test/perf/README.md更新可复跑前提与范围
  • Platform deploy/behavior/capacity.json拟新增:日量、峰值、载荷、保留期、成本及 RPO/RTO 目标

验收方式与预期结果

  • harness 在新接口上完成一次 baseline 且通过资金不变量;不运行文档已失效的旧模式作为证据。
  • 填写峰值、查询并发、最大 payload、保留期、积压追赶目标、月成本上限与 API 性能预算,并记录样本来源和负责人。

应提交证据 修复后 harness、基线报告、批准的容量与灾备目标。

定位任务 T19 ↗
T20代表性负载、查询与成本验证R13
前置任务T17 · T19 · T14建议负责人运维 + 测试 + 成本负责人交付状态待实施 / 待验收

已有代码依据

各轮 OpenPanel / Umami 资源观察条件不同,不能作为生产成本排名。

具体开发内容

同时测试服务端事实、浏览器突发、员工查询和导出,采用有基数差异与最大载荷的合成样本;控制并发和保留期,先削减低价值交互,保护权威事实。

要改哪些模块

  • Platform test/perf/新增 ingest + query + export + backlog 组合负载
  • Platform deploy/behavior/前置任务拟新增模块:设置独立 CPU / 内存 / 连接 / 存储预算
  • Platform internal/ops/service/behavior/quality.go前置任务拟新增模块:提供延迟、丢弃、积压和高水位观测

验收方式与预期结果

  • 峰值、长稳运行和积压恢复达到 T19 目标,且无资金不一致、不可解释丢失或越权缓存。
  • 成本模型包含数据库、磁盘增长、备份、网络、宿主资源和维护工作;没有实际流量基线时保持估算标签。

应提交证据 资源时间序列、增长模型、成本表、限流 / 降级触发与恢复记录。

定位任务 T20 ↗
T21异机加密备份恢复与升级回退R13
前置任务T16 · T20建议负责人数据运维 + 安全 + 组件负责人交付状态待实施 / 待验收

已有代码依据

三卷冷备能在本机恢复,但未验证异机、镜像重获取、KMS 与删除登记一起恢复。

具体开发内容

从没有缓存镜像的新环境开始计时,包含镜像、版本化配置、PG / CH / Redis、凭据恢复与密钥可用性、最新删除登记、队列及关键业务查询。备份密钥与备份介质分离。组件生产采用仍需 R14 许可 / 维护评审。

要改哪些模块

  • Platform deploy/behavior/backup/拟新增:加密、清单、校验和、保留与密钥版本
  • Platform deploy/behavior/restore/前置任务拟新增模块:扩展异机恢复和旧版本回退
  • Platform test/poc/behavior_analytics/新增完整恢复验收记录模板

验收方式与预期结果

  • 实测 RPO / RTO 达到批准目标;备份损坏、旧登记、错误密钥分别使演练失败且查询保持关闭。
  • 恢复后金额 / 数量 / 主体抽样、关键查询和删除回归一致;记录升级回退兼容边界,不把恢复测试计时只截取容器启动。

应提交证据 异机演练、恢复计时分段、密钥恢复、权限和删除回归报告。

定位任务 T21 ↗
T22汇总九项门槛,受控开启内部试点R08
前置任务T04 · T10 · T13 · T14 · T15 · T16 · T17 · T18 · T20 · T21建议负责人技术负责人 + 产品 + 安全 + 运维交付状态待实施 / 待验收

已有代码依据

公开蓝图与 MVP 只承载合成样本,没有服务端鉴权或生产采集。

具体开发内容

先开放内部少量授权员工和一个批准的 API 场景,保留立即关闭采集 / 查询的独立开关。按九项 P0 对照证据签字;R11 的真实运营发送、R12 风险调查和 R14 组件采用继续保留各自前置条件。

要改哪些模块

  • Platform internal/bootstrap/behavior.go前置任务拟新增模块:默认关闭真实采集和查询,按验收条件启用
  • Platform docs/planning/behavior-review.json附验收证据后才更新门槛状态
  • Platform test/e2e/behavior_access_test.go前置任务拟新增模块:在最终预发布拓扑重跑拒绝矩阵

验收方式与预期结果

  • 九项 P0 均有负责人、测试版本、时间、结果、剩余风险和回退动作;未知项不能用静态勾选关闭。
  • 最终拒绝矩阵通过;浏览器伪造不动钱、不发券、不直接处罚;关闭分析后业务连续性符合预算。

应提交证据 上线评审记录、内部授权名单、灰度范围与回退演练;真实用户数据不上公开 Cloudflare 演示。

定位任务 T22 ↗

以上模块名中“拟新增”表示设计建议,当前仓库尚不存在。已有路径均已核对;新增测试名称和执行方式是验收计划,不是本轮已经运行的生产测试。

07 / TRUST & ABUSE

用户能改包,系统仍须守住边界

不能阻止用户控制自己的设备。目标是让改包不能变成越权、资金事实或自动处罚。

TRUST →
01 / 浏览器声明

只用于体验分析

页面浏览、复制 Key、活动点击。可能被拦截、伪造或刷量;不单独驱动钱、资格与处罚。

02 / 服务端事实

来源明确,仍需对账

API 执行、Platform 审计、结算与过账。身份来自可信上下文,生产者只能写允许的事件族。

03 / 派生分析

口径版本与数据水位

激活、漏斗、人群和风险线索。保留来源、规则版本和完整性;真实行动前再验证资格。

设计推演 · 合成输入与预期结果,不调用真实接口。切换场景自动播放;启用系统“减少动态效果”时按静态步骤阅读。

合成输入 / 攻击者的声明

目标服务端判定 / 预期结果

这一场景的边界

会议上需要明确的四件事

  • HTTPS 不等于防用户改包。它保护传输链路;用户仍控制请求发出前的内容。
  • 前端加密 / 混淆不是可信证明。公开 JS 中的密钥可被提取;任何人也可用公钥生成密文。成熟加密用于机密性,业务真实性另行验证。
  • 签名、防重放、幂等解决不同问题。签名验证来源与完整性,nonce / 时间限制重复投递,稳定 event_id 保证合法重试不重复计数。
  • 服务端也不能被无限信任。密钥可能泄露,正确签名也可能报错。按生产者限制事件族、轮换撤销、配额、对账和人工调查共同约束。
安全设计依据与适用范围
08 / TEAM BRIEFING · 约 5 分钟

可以直接在会上讲的介绍

先讲业务与边界,再用真实接口解释,最后确定负责人和验收门槛。

下载会议讲稿 ↓
40 秒

1. 我们要做什么

这套系统先解决 TikHub API 接入新 Platform 后的三个问题:用户卡在哪一步、哪些账户需要内部运营跟进、哪些异常值得人工调查。它只供 TikHub 内部授权员工使用。卖家不能看行为明细、聚合、画像和导出,包括卖家自己的行为数据。公开演示全部是合成样本,生产采集和权限还没有落地。

50 秒

2. 为什么先做权限

我们不从一张漂亮看板开始接真实数据。第一批四个任务先复用员工会话、团队权限和 MFA,再补分析数据范围、受控查询、导出撤权和拒绝测试。隐藏菜单没有安全作用,后台接口必须逐次判断当前员工身份和授权。OpenPanel 放在私网,只由 TikHub 服务端查询。普通用户、组织 Key、卖家会话或卖家 App Key 都不能获得读取权。

60 秒

3. 抓包防不防得住

我们不能阻止用户查看和修改自己设备发出的请求,也不能把永久秘密藏在 JavaScript 里。我们的目标是:即使抓包、改包和重放,也不能越权、改余额、制造充值、骗取活动资格或直接触发处罚。浏览器只报告低信任体验信号;身份由服务端绑定,资金和业务结果来自拥有事实的服务。服务间再用 TLS、工作负载身份、签名、时间窗和 nonce 防篡改重放,用稳定事件 ID 防重复统计。加密保护机密性,签名保护来源与完整性,两者都不自动证明业务内容真实。

60 秒

4. 用一个真实 TikHub 场景讲清楚

以 /api/v1/douyin/web/fetch_one_video_by_share_url 为例。用户打开文档、复制 Key,这些是可缺失、可伪造的前端线索。真正调用接口后,API 记录执行结果,Platform 提供可信操作人、付款账户和最终结算。这个接口对已删除或受限作品也可能返回 HTTP 200 并正常计费,所以请求完成、取得可用作品、首次激活、实际扣费必须分开统计。浏览器把点击改成已充值,不会进入资金事件入口;把组织改成别人,也不能改变服务端绑定的归属。

60 秒

5. 怎样证明能落地

按依赖执行 22 个任务:内部访问边界;职责、指标与身份;一个 API 的服务端闭环;质量、出口与删除;最后故障、负载和异机恢复。每项都有代码模块、责任角色和可复现验收。验收不仅看成功请求,还要停 OpenPanel、撤销员工、重复消息、制造篡改、恢复旧备份。分析故障不能影响资金;删除过的数据不能在重放后回来。现有签名和日志可借鉴,但防重放、可靠分析队列和新的压测链都需要补建。

40 秒

6. 这次会议需要决定什么

请确认第一批 T01 至 T04 的负责人,同时让 Platform、API、Crawler Gateway 和 Billing Gateway 负责人确认契约。产品确定可用结果和首次激活的口径,运维与业务共同批准容量、性能增量、保留期、成本及 RPO/RTO 目标。九项 P0 目前都未关闭;只有测试证据和责任人验收齐全,才开放内部受控真实数据试点。运营自动触达和风险处置另有启用门槛,不随看板上线自动开启。

建议本次会议形成四个决定

① T01–T04 负责人和首批权限矩阵 ② 四个服务的契约负责人 ③ 可用结果 / 激活口径 ④ 容量、性能、保留与灾备目标。

不在本次静态页面直接批准上线。22 项任务和 9 项 P0 当前均未验收关闭。

06 / DELIVERY PLAN

从验证到可用的四步

先验证产品和数据边界,再逐步建设 TikHub 专属能力。

ROADMAP →
01 / VALIDATE

隔离 PoC

合成数据测试 OpenPanel 与 Umami,检查功能、身份适配、外联及资源。

02 / COLLECT

统一事件与身份

建设事件规范、接入、脱敏、身份映射和可靠投递,不进入资金热路径。

03 / ACTIVATE

分析与运营闭环

展示核心漏斗,连接现有员工权限、站内活动、邮件订阅与退订。

04 / PROTECT

风险与上线验证

补齐规则告警、人工复核、备份恢复、删除和权限审计后评估上线。

当前进度:三轮合成 PoC 已验证完整冷备恢复并复现权限与删除缺口;后台 MVP 已可演示。建议继续以 OpenPanel 做员工分析候选,由 TikHub 自建身份、内部员工鉴权与卖家拒绝访问、删除登记。上线前仍需全面外联审计、生产灾备与负载验收,详见上方 9 项 P0 评审门槛。