遥测

Better Auth 收集匿名使用数据,以帮助我们改进项目。这是可选的、透明的,并且默认禁用。

为什么收集遥测数据?

自 v1.3.5 起,如果启用,Better Auth 会收集关于一般用量的匿名遥测数据。

遥测数据帮助我们了解 Better Auth 在不同环境中的使用情况,从而提高性能、优先考虑功能,并更有效地修复问题。它指导我们对性能优化、功能开发和 bug 修复的决策。所有数据都是完全匿名的,并以隐私为首要考虑,用户可以随时选择退出。我们努力使我们收集的内容尽可能透明。

收集了什么数据?

以下数据点可能会被报告。一切都是匿名的,仅用于聚合洞察。

  • 匿名标识符:从您的项目(package.json 名称和可选的 baseURL)派生的不可逆哈希。这允许我们对每个项目去重事件,而无需知道您的身份。
  • 运行时{ name: "node" | "bun" | "deno", version }
  • 环境developmentproductiontestci 中的一个。
  • 框架(如果检测到):对于 Next.js、Nuxt、Remix、Astro、SvelteKit 等框架的 { name, version }
  • 数据库(如果检测到):对于 PostgreSQL、MySQL、SQLite、Prisma、Drizzle、MongoDB 等集成的 { name, version }
  • 系统信息:平台、OS 版本、架构、CPU 数量/型号/速度、总内存,以及 isDockerisWSLisTTY 等标志。
  • 包管理器:从 npm 用户代理派生的 { name, version }
  • 已编辑的认证配置快照:由 getTelemetryAuthConfig 生成的 betterAuth 选项的缩小、隐私保护视图。

我们还从 CLI 收集匿名遥测:

  • CLI 生成 (cli_generate):结果 generated | overwritten | appended | no_changes | aborted 加上已编辑的配置。
  • CLI 迁移 (cli_migrate):结果 migrated | no_changes | aborted | unsupported_adapter 加上适配器 ID(相关时)和已编辑的配置。

您可以通过在运行项目时设置环境变量 BETTER_AUTH_TELEMETRY_DEBUG=1 或在认证配置中设置 telemetry: { debug: true } 在本地审计遥测。在这种调试模式下,遥测事件仅记录到控制台。

auth.ts
export const auth = betterAuth({
  telemetry: { 
    debug: true
  } 
});

我的数据如何受到保护?

所有收集的数据都是完全匿名的,仅在聚合中使用。它无法追溯到任何单个来源,并且仅供少数核心 Better Auth 维护者访问,以指导路线图决策。

  • 无 PII 或机密:我们不收集电子邮件、用户名、令牌、机密、客户端 ID、客户端机密或数据库 URL。
  • 无完整配置:我们从不发送您的完整 betterAuth 配置。相反,我们发送非敏感开关和计数的缩小、已编辑快照。
  • 设计上的编辑:请参阅 Better Auth 源代码中的 detect-auth-config.ts,了解包含的确切形状。它有意将敏感值转换为布尔值、计数或通用标识符。

如何启用它?

您可以通过在认证配置中启用遥测收集,或通过设置环境变量。

  • 通过您的认证配置。

    auth.ts
    export const auth = betterAuth({
      telemetry: { 
        enabled: true
      } 
    });
  • 通过环境变量。

    .env
    # 启用遥测
    BETTER_AUTH_TELEMETRY=1
    
    # 禁用遥测
    BETTER_AUTH_TELEMETRY=0

遥测何时发送?

  • betterAuth 初始化时(type: "init")。
  • 在 CLI 操作时:如上所述的 generatemigrate

遥测在测试中(NODE_ENV=test)自动禁用,除非被内部工具显式覆盖。

On this page