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.
Summary
DISABLE_FLOWISE_TELEMETRYis documented as a telemetry opt-out in several.env.examplefiles,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_KEYis set.I wanted to flag it because a privacy-minded operator could set
DISABLE_FLOWISE_TELEMETRY=trueandreasonably 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=truedocker/docker-compose.yml,docker/docker-compose-queue-prebuilt.yml,docker/worker/docker-compose.yml— all passDISABLE_FLOWISE_TELEMETRY=${DISABLE_FLOWISE_TELEMETRY}packages/server/src/commands/base.ts:26registers it as a CLI flag (whichbase.ts:217copies intoprocess.env)Where it's consumed (observation)
Nowhere. Grepping the source (
packages/**, excludingnode_modules/dist), the only occurrenceof
DISABLE_FLOWISE_TELEMETRYis the flag registration above — nothing readsprocess.env.DISABLE_FLOWISE_TELEMETRY.The telemetry gate is solely the PostHog key, in
packages/server/src/utils/telemetry.ts:and
sendTelemetryonly checksif (this.postHog).Fair scope (inference)
At this commit no PostHog key ships by default (
POSTHOG_PUBLIC_API_KEYis commented out in.env.example), so telemetry is off unless an operator sets that key. The concrete gap is for someonewho does set
POSTHOG_PUBLIC_API_KEY(e.g. pointing at their own PostHog) and then setsDISABLE_FLOWISE_TELEMETRY=trueto turn it back off — the opt-out silently does nothing.Possible directions (your call)
postHogwhenprocess.env.DISABLE_FLOWISE_TELEMETRYis truthy, orDISABLE_FLOWISE_TELEMETRYfrom the.env.examplefiles, compose files, and CLI flags so itdoesn'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.