隐私政策
最后更新:
1. 引言
WorkoutGen 应用程序的发布者 JCODE 非常重视你的个人数据保护。本隐私政策说明我们收集哪些数据、为何收集、如何使用以及你享有的权利。
本政策符合《通用数据保护条例》(GDPR)以及包括 CCPA 和各州隐私法规在内的美国适用隐私法律。
数据控制者:
JCODE
25 rue de Ponthieu, 75008 Paris, France
SIREN: 911 451 615
电子邮件:support@workoutgen.app
2. 收集的数据
2.1 账户信息
当你保存训练计划时,我们会收集:
- 电子邮件地址:用于登录、通信和密码找回
- 密码:使用 scrypt 哈希处理,绝不以明文存储
- 训练计划保存日期
2.2 训练数据
为生成定制训练计划,我们会收集:
- 健身目标:增肌、燃脂、耐力等
- 经验水平:初学者、中级、高级
- 可用器材:健身房、徒手、哑铃等
- 期望训练频率:每周训练次数
- 运动偏好:喜欢的运动或要避免的运动
- 训练历史:已完成的训练、每组记录(重量、次数、休息时间)、个人记录(估算 1RM)、每块肌肉训练量、体重测量、训练反馈
2.3 支付数据
支付专门由 Lemon Squeezy, LLC(我们的 Merchant of Record,即授权经销商)处理。Lemon Squeezy 负责支付处理、税费代征、退款与拒付,以及与支付相关的合规事项,例如 PCI。我们绝不在服务器上存储你的银行卡信息。
Lemon Squeezy收集和处理:
- 信用卡号、有效期、CVV
- 账单姓名和地址
- 交易详情(金额、日期、货币)
为了运营服务,我们会从 Lemon Squeezy 接收有限的账单和订阅元数据,例如订阅状态、套餐、续订或结束日期、Lemon Squeezy 客户和订阅 ID、支付处理方、门户链接以及交易参考信息。为支持、对账和账号恢复,我们也可能保留与订阅关联的账单邮箱。我们绝不会接收或存储完整卡片信息。
2.4 技术数据
我们会收集:
- 设备类型:网络浏览器或已安装的 PWA(iOS、Android、桌面)
- 应用版本
- 操作系统版本
- 语言偏好
- 错误日志(用于修复错误)
我们不使用精确地理位置或移动广告标识符(IDFA/AAID)进行跟踪。某些技术标识符(包括 IP)可能会为安全、反欺诈和路由目的进行短暂处理,随后按保留规则最小化或删除。
2.5 身体状况数据
为了生成个性化方案,我们在你明确同意的情况下收集:
- 体重:用于调整运动强度
- 身高:用于计算训练参数
- 年龄:用于调整方案难度
- 性别:用于定制运动选择
- 体型:用于优化训练策略
- 训练目标:用于选择合适的方案
3. 我们如何使用你的数据
3.1 提供服务
- 保存训练计划并管理你的访问权限
- 使用 AI 生成定制训练计划
- 追踪你的进度和训练历史
- 在你的设备间同步数据
法律依据:履行合同(服务条款)。
3.2 通信
- 发送交易邮件(账户确认、密码重置)
- 通知订阅状态(续订提醒、支付失败)
- 提供客户支持
法律依据:履行合同和合法利益。
3.3 支付处理
- 通过 Lemon Squeezy 处理订阅支付
- 生成发票
- 管理退款
法律依据:履行合同和法律义务(税务记录:10年)。
3.4 改进服务
- 分析使用数据(通过 PostHog 征得同意,或匿名无需同意)
- 识别和修复错误
- 根据用户需求开发新功能
法律依据:可识别分析基于同意。合法利益仅适用于由仅在内存中处理的匿名分析事件和非个人 campaign 参数生成的聚合统计。
4. 第三方服务提供商
我们与以下可信赖合作伙伴共享你的数据,以帮助提供服务:
4.1 基础设施
- Cloudflare, Inc.(在美国注册成立):在 Cloudflare Workers 上提供完整的应用托管(Smart Placement),主数据库部署在 Cloudflare D1(Cloudflare 网络上的 SQLite),R2 对象存储位于欧盟司法管辖区(动作素材)、KV 缓存、Durable Objects(每用户数据限制在欧盟司法管辖区;分布式锁与账户锁定使用西欧位置提示)、Workers Rate Limit、Cloudflare Pages(落地页)、DNS、DDoS 防护、CDN,以及通过 Cloudflare 网络信号进行的国家识别。
- Cloudflare Turnstile(CAPTCHA):在注册、密码重置和邮箱 OTP 请求环节提供机器人与滥用防护。仅处理最少量的浏览器信号,不使用 Cookie,也不进行指纹识别。
- Resend(Plus Five Five, Inc.,美国):交易邮件(账户确认、邮件 OTP、密码重置、保留通知)。数据传输由标准合同条款(Standard Contractual Clauses)覆盖。
- Bunny.net(BunnyWay d.o.o.,斯洛文尼亚,欧盟):仅为营销落地页提供图像 CDN,不处理任何已认证用户的数据。
- Strapi(Strapi SAS,法国,欧盟):仅为营销落地页托管博客内容的 headless CMS,不处理任何已认证用户的数据。
JCODE 与 Cloudflare, Inc. 之间已签署数据处理协议(Cloudflare Standard DPA v4.3),日期为 2026-05-10,包含面向不具备充分性认定国家的欧盟标准合同条款(SCCs)。
4.2 支付
- Lemon Squeezy, LLC:Merchant of Record(授权经销商),负责支付处理、税收征收、开票,符合 PCI-DSS 标准
了解 Lemon Squeezy 如何处理你的数据,请参阅 Lemon Squeezy 隐私政策.
4.3 分析
- PostHog(eu.posthog.com,欧盟区域):基于同意的可识别分析,或不使用持久 PostHog 存储、仅在内存中运行的匿名聚合统计分析。
国际传输:你的主数据库(Cloudflare D1)和对象存储(Cloudflare R2,欧盟司法管辖区)运行在 Cloudflare 边缘网络上;Cloudflare 区域之间的传输由 Cloudflare 的 Data Processing Addendum 和标准合同条款(SCCs)覆盖。Cloudflare 本身、Lemon Squeezy 和 Resend 均在美国注册成立,可能在欧洲经济区以外处理数据;在所有情况下,我们均依赖 GDPR 的传输保障措施(SCCs 和/或充分性决定)。
5. 数据共享
我们绝不向第三方出售你的个人数据。
我们仅在以下情况下共享数据:
- 征得你的同意:如果你明确授权
- 法律义务:法院命令、监管请求
- 服务提供商:上述第4节中列出
- 业务转让:在合并、收购或资产出售的情况下(将通知你)
6. 使用数据改进 AI
在你明确同意的情况下,为改善所有用户的生成计划质量,我们可能使用聚合且匿名化的训练数据来优化驱动 AI 功能的规则与启发式算法(例如动作聚类、平台期识别、负重渐进)。AI 教练报告(WorkoutGen Max)由 WorkoutGen 根据聚合的追踪器信号在本地生成,不会向第三方 LLM 提供商共享任何个人数据。
保护措施:
- 在此 AI 改进流程中不使用直接标识符(姓名、邮箱)。
- 数据已进行假名化处理(随机标识符)
- 仅限训练数据(目标、水平、器材、进度)
- 不处理医疗诊断或治疗数据。
- 每用户数据和 R2 对象采用欧盟受限存储;全球边缘处理由 Cloudflare DPA 和 SCC 覆盖
- 你可以通过 support@workoutgen.app 选择退出
法律依据:明确同意(通过设置 > 隐私中启用)。你可以随时撤回同意。
7. 数据保留
- 活跃账户:账户处于活跃状态时保留数据
- 已删除账户:30天内删除数据(法律义务除外)
- 发票:10年(税法要求)。安全审计日志(账户删除、邮箱变更、订阅取消事件,标识符已哈希):3 年。
- 分析日志:最多12个月
- 不活跃账户:1年不活跃→电子邮件警告→30天后删除
- 未验证账户:如果电子邮箱地址未经验证,将在 90 天后自动删除。
8. 数据安全
我们实施行业标准的安全措施:
技术措施
- 加密:传输中的数据使用HTTPS/TLS,静态数据使用AES-256(通过基础设施提供商)
- 身份验证:密码使用 scrypt 哈希;邮件 OTP(一次性密码)在存储前哈希;在 15 分钟窗口内 10 次失败尝试后锁定账户。
- 访问控制:最小权限原则
- 监控与滥用防护:自动速率限制(Cloudflare Workers Rate Limit 与 Durable Objects),15 分钟内 10 次登录失败后账户锁定,通过 Cloudflare Turnstile 在注册、密码重置和邮箱 OTP 请求环节提供机器人防护,自动入侵检测。
组织措施
- 定期安全审计
- 员工数据保护培训
- 事件响应计划
如发生个人数据泄露,我们将在法定期限内通知主管监管机构(GDPR 第33条)。若该泄露可能对你的权利与自由造成高风险,我们将依法在不无故拖延的情况下通知你(GDPR 第34条)。
9. 你的隐私权利
根据GDPR和美国隐私法(CCPA、州法律),你享有以下权利:
访问权
请求我们持有的关于你的所有个人数据副本。
更正权
直接在应用中更正你的个人数据(设置 > 账户)或联系我们。
删除权
随时删除你的账户(设置 > 删除账户)。所有数据将在30天内删除,法律义务除外(发票:10年)。
反对权
反对将你的数据用于分析或AI训练。
可携权
以结构化格式(JSON 用于完整账户导出、CSV 用于体重追踪历史)下载你的数据以传输到其他地方。
限制权
在争议期间请求临时冻结数据处理。
撤回同意权
当处理基于你的同意时(分析、AI 训练改进),你可以随时在设置 > 隐私中撤回同意。撤回不影响撤回前已进行处理的合法性。
选择退出权(CCPA)
加州居民可以选择退出数据「销售」(我们不出售数据,但你可以请求删除)。
行使你的权利:
电子邮件:support@workoutgen.app
响应时间:最多30天
出于安全考虑可能需要身份验证
提交投诉:
欧盟居民:你所在国家的数据保护机构或CNIL(cnil.fr)
美国居民:州检察长或FTC(ftc.gov)
10. Cookie 和跟踪器
WorkoutGen 尊重你的隐私选择。我们仅为基本功能使用最少的 Cookie:
严格必要的 Cookie(无需同意)
- 用户会话:保持登录状态(会话 Cookie,绑定到我们数据库中的服务器端会话记录)
- 界面偏好:暗/亮主题、语言
基于同意的分析
- PostHog:在你同意的情况下,我们使用分析 Cookie 和本地存储进行可识别使用分析。未同意时,分析保持匿名,并且 PostHog 仅使用内存存储:不会在 Cookie 或 localStorage 中持久保存 PostHog 标识符。事件仅用于聚合统计,按有限期限保存,不用于广告用途。
首次访问时,同意横幅允许你接受或拒绝非必要的分析 Cookie。你的选择会本地存储,可随时在设置 > 隐私中更改。
11. 儿童隐私
WorkoutGen 不面向低于其所在国数字同意年龄的用户:法国为 15 岁(依据法国 GDPR 实施法)、保留 GDPR 默认值的国家为 16 岁、美国(COPPA)和英国为 13 岁。我们不会故意收集低于这些门槛年龄的儿童数据。
如果我们发现在未经父母同意的情况下收集了儿童数据,将立即删除。
15-17 岁用户在保存训练计划前必须获得父母/监护人同意。
12. 「请勿跟踪」信号
某些浏览器提供「请勿跟踪」(DNT)信号。WorkoutGen 目前不响应 DNT 信号,但我们默认最小化跟踪(无广告、无第三方跟踪器)。
13. 政策更新
我们可能会更新本隐私政策以反映法律变更或新功能。我们将通过电子邮件或应用内通知告知你重大变更。
最后修改日期显示在本页顶部。
14. 联系方式和 DPO
有关数据保护的任何问题:
电子邮件:support@workoutgen.app
电话:+33 7 84 07 11 53
邮寄地址:JCODE, 25 rue de Ponthieu, 75008 Paris, France
数据保护官(DPO):Jean-Baptiste Thery(同一电子邮件)
法国数据保护机构(CNIL):
法国数据保护局(CNIL - Commission Nationale de l'Informatique et des Libertés)
3 Place de Fontenoy, TSA 80715, 75334 Paris Cedex 07, France
电话:+33 1 53 73 22 22
网站: www.cnil.fr