Reference

Telemetry

Opt-in telemetry behavior for Kernia deployments.

Telemetry is disabled unless you enable it. When enabled, Kernia should emit anonymous operational events that help maintainers understand package usage and CLI outcomes without collecting user data, secrets, provider credentials, database URLs, tokens, or email addresses.

What can be collected

Telemetry events should be aggregate and redacted:

FieldExample
Package version0.1.0
Runtimepython 3.12
Environmentdevelopment, production, ci
Adapter kindsqlalchemy, mongo, memory
Frameworkfastapi, starlette, django
Plugin idsapi-key, stripe, sso
CLI actiongenerate, migrate, info
Outcomesuccess, no_changes, failed

Enable telemetry

auth.py
from kernia.telemetry import telemetry

auth = init(KerniaOptions(
    database=adapter,
    secret=env.KERNIA_SECRET,
    plugins=[
        telemetry(enabled=True),
    ],
))

Or use an environment variable if your deployment standardizes runtime flags:

.env
KERNIA_TELEMETRY=1

Disable explicitly

auth.py
auth = init(KerniaOptions(
    database=adapter,
    secret=env.KERNIA_SECRET,
    telemetry=False,
))

Debug locally

Debug mode should print the redacted telemetry payload without sending it:

.env
KERNIA_TELEMETRY_DEBUG=1

Privacy rules

Telemetry must not include:

  • Emails, names, usernames, phone numbers, or IP addresses.
  • OAuth client ids or client secrets.
  • Stripe keys, webhook secrets, SCIM tokens, or API keys.
  • Database URLs.
  • Cookie values, session tokens, JWTs, OTPs, or reset tokens.
  • Full auth configuration objects.

Test coverage

Tests should verify telemetry is off by default, debug mode does not send events, CI/test environments do not send unless explicitly enabled, and redaction removes secret-like values from every event.