InvergeDocs

Going to production

A checklist for keys, releases, privacy, flushing and cost before you ship a Nexus integration.

Keys & environments

  • A separate API key per environment (development, staging, production). A key writes only to its own environment — mixing them mixes your data.
  • The production key lives in a secret store or CI secret, never in a committed file. Client apps necessarily ship their key; that key can only write telemetry and read client-facing config for its environment.
  • Rotate by creating a new key, deploying it, then deleting the old one in API keys. Deleting a key takes effect immediately.

Releases & versions

  • Set a release (release, appVersion, NEXUS_RELEASE) from your build — a git SHA or api@2026.10.4. Errors, logs and journeys carry it, so you can tell which deploy introduced a problem, and Remote Config conditions can target app versions.

Privacy

  • Session replay masks text inputs by default; wrap anything else sensitive in NexusMask (Flutter) or the nexus-block / nexus-mask classes (web).
  • Telescope redacts passwords, tokens, cookies and authorization headers before they leave the process. Add your own keys under Telescope → Settings → Redaction.
  • .NET's ASP.NET Core middleware excludes query strings by default; keep it that way unless you are sure they never carry secrets.

Delivery

  • Short-lived processes flush before exit — nexus.flush() (Python), await using / FlushAsync() (.NET), await nexus.flush() (JS). The framework integrations do it on shutdown for you.
  • Forking servers (gunicorn, uWSGI, Celery prefork, PHP-FPM) are handled — the Python SDK restarts its worker after fork(); PHP sends after the response.

Cost

  • Turn off what you don't use, without touching code: NEXUS_LIVE_ACTIVITIES_ENABLED=false, or NEXUS_ENABLED=false for everything. See Switching services off.
  • Set Usage limits in the console — a monthly cap per product stops ingestion instead of growing the bill.
  • Decide whether you need a per-request analytics event at all (the Python integrations send one by default — TRACK_REQUESTS / track_requests=False turns it off; .NET's is off by default). Telescope already records every request.

Observability of the SDK itself

  • Route SDK diagnostics somewhere you read: logLevel (Flutter / JS), debug=True (Python), DiagnosticSink or ILogger (.NET).

On this page