我们保存什么
- 账户:登录邮箱、显示名称、所在团队;登录会话只保存令牌的哈希。
- 你的应用:名称、网址、域名验证状态、你连接的服务(Supabase、GitHub、OpenAI 等)。
- 你授权提供的连接凭证:数据库审计连接(含密码)、用量查询密钥、Slack 地址和测试账号。每条凭证用独立数据密钥做 AES-256-GCM 加密,数据密钥由 Google Cloud KMS 保护,并绑定团队、应用和用途;后台执行检查时解密使用。
- 检查结果:问题、证据和代码位置。证据只有表名、字段名、行数、打码后的密钥和它的哈希,不包含你用户的任何数据。
- 账单:订阅状态和 Stripe 客户编号。卡号由 Stripe 处理,我们从不接触。
我们不保存什么
- 你数据库里的行内容:外部实测只统计行数和列名;数据库审计只读系统目录。
- 扫描发现的完整密钥:检查证据只保存打码形式和哈希,用来识别同一个密钥。你主动授权提供的连接凭证按上面的方式加密保存。
- 源代码:代码在一次性沙箱里分析,扫完即删。AI 细审和修复需要的代码片段加密后在任务之间传递,任务结束即从任务中删除;保存下来的只有文件名、行号和问题描述。
交给谁处理
为了提供服务,下面这些服务商会处理部分数据,各自只拿到完成那一件事所需的内容:
- AI 服务:用于细审、修复和数据表用途判断,发送代码片段或表名、字段名,发送前去除密钥。当前测试环境通过 Magpie 网关 openai.maxint.dev 访问兼容 Responses API 的服务;网关运营方和上游服务商仍需确认,并在正式发布前明确披露。
- GitHub:读取你授权的仓库,开修复 PR 和 PR 评论。
- OSV、npm、PyPI:依赖的名称和版本(私有包不会发送)。
- Stripe:订阅和付款。Resend:发送登录链接、提醒和每周摘要邮件。
- Contabo:提供当前测试环境的主机,承载应用和数据库。Google Cloud KMS:保护用于加密连接凭证的数据密钥。
保存多久
- 检查结果和问题:随应用保存,删除应用时从在线数据库删除。
- 删除账户会退出所有设备,并从在线数据库删除你独自所在的团队、它的应用、检查记录、问题和凭证。备份副本需按保留策略到期清理,不会同步删除;当前同机备份的保留策略仍待配置和验收。
- 当前测试环境的入口访问日志按日轮转,最多保留 30 天;运行日志配置为 29 天并每小时清理,容量上限可能使日志更早删除。清理按文件进行,不是每条日志精确到期删除。入口日志不记录请求体、查询参数或来源页面地址,邀请和部署链接中的令牌会被遮盖。
你的权利
你可以随时在「个人账户」里修改信息、退出其他设备或删除账户;在各个服务的控制台撤销对 Hachi 的授权(GitHub App、数据库审计角色、API 密钥)。需要导出数据或有其他请求,发邮件到 privacy@hachi.dev。