Skip to content

DISABLE_FLOWISE_TELEMETRY is documented (.env/compose/CLI) but not read by any code — the opt-out has no effect #6618

Description

@kobihikri

Summary

DISABLE_FLOWISE_TELEMETRY is documented as a telemetry opt-out in several .env.example files,
docker-compose files, and is registered as a CLI flag — but no code reads it, so setting it has no
effect. The only thing that actually controls telemetry is whether POSTHOG_PUBLIC_API_KEY is set.

I wanted to flag it because a privacy-minded operator could set DISABLE_FLOWISE_TELEMETRY=true and
reasonably believe telemetry is off, when it isn't governed by that variable at all.

Where it's advertised

  • packages/server/.env.example (line 84), docker/.env.example (85), docker/worker/.env.example (84) — all show # DISABLE_FLOWISE_TELEMETRY=true
  • docker/docker-compose.yml, docker/docker-compose-queue-prebuilt.yml, docker/worker/docker-compose.yml — all pass DISABLE_FLOWISE_TELEMETRY=${DISABLE_FLOWISE_TELEMETRY}
  • packages/server/src/commands/base.ts:26 registers it as a CLI flag (which base.ts:217 copies into process.env)

Where it's consumed (observation)

Nowhere. Grepping the source (packages/**, excluding node_modules/dist), the only occurrence
of DISABLE_FLOWISE_TELEMETRY is the flag registration above — nothing reads
process.env.DISABLE_FLOWISE_TELEMETRY.

The telemetry gate is solely the PostHog key, in packages/server/src/utils/telemetry.ts:

constructor() {
    if (process.env.POSTHOG_PUBLIC_API_KEY) {
        this.postHog = new PostHog(process.env.POSTHOG_PUBLIC_API_KEY)
    } else {
        this.postHog = undefined
    }
}

and sendTelemetry only checks if (this.postHog).

Fair scope (inference)

At this commit no PostHog key ships by default (POSTHOG_PUBLIC_API_KEY is commented out in
.env.example), so telemetry is off unless an operator sets that key. The concrete gap is for someone
who does set POSTHOG_PUBLIC_API_KEY (e.g. pointing at their own PostHog) and then sets
DISABLE_FLOWISE_TELEMETRY=true to turn it back off — the opt-out silently does nothing.

Possible directions (your call)

  • Wire the variable: skip creating postHog when process.env.DISABLE_FLOWISE_TELEMETRY is truthy, or
  • Remove DISABLE_FLOWISE_TELEMETRY from the .env.example files, compose files, and CLI flags so it
    doesn't imply a control that isn't there.

Happy to open a small PR for whichever you prefer. Thanks for Flowise!

AI-assisted; I reproduced the grep and the code paths myself against commit bb773ffa710b.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions