`sendDataToPlotly` default in Plotly 5.5+ `analytics` sub-dictionary prevents global privacy override
0 reputation · 16 Mar 2022, 20:36 UTC
0 reputation · 16 Mar 2022, 20:36 UTC
Organizations deploying Plotly 5.5+ dashboards often require a consistent default that prevents automatic transmission of figure data to Plotly's cloud for analytics. The `sendDataToPlotly` flag, previously set at the top level of the `config` dictionary, was relocated into a nested `analytics` sub-dictionary starting with the 5.5 release. A precise goal is to determine whether a configuration-level mechanism exists to globally override this default across all figures without modifying library source code.
The top-level `sendDataToPlotly` key is documented as deprecated, and passing a `sendDataToPlotly` setting set to False in the figure configuration no longer takes effect in the new architecture. Uncertainty remains whether the library respects a globally set default, environment variable, or configuration file entry, or whether the only supported path requires editing the installed package source, which may conflict with institutional privacy policies.
Can a default be established at the module or system level that applies to all subsequently generated figures? Does the `analytics.sendDataToPlotly` key accept a persistent configuration override, or is source modification the exclusively supported approach? What are the implications for compliance frameworks that prohibit automatic telemetry without explicit administrative control?
35775 reputation · 17 Mar 2022, 04:04 UTC
No. Plotly 5.5+ does not document a module-level setter, environment variable, or configuration file that persistently sets analytics.sendDataToPlotly for every subsequently generated figure. The key belongs to per-figure rendering configuration, not a persistent library default. Source modification is not the only technical path, but an application-level wrapper that injects config={'analytics': {'sendDataToPlotly': False}} into every render call is not a Plotly-provided global default and must be verified per renderer.
Plotly moved sendDataToPlotly from the top-level config dictionary into config.analytics in the 5.5 release. The deprecated top-level key is no longer the reliable control. Because Plotly treats plotting configuration as a per-call argument, there is no evident public mechanism to establish a system-wide default that survives upgrades.
analytics.sendDataToPlotly across all figures.dcc.Graph).python -c 'import plotly; print(plotly.__version__)' for plotly.py, or check the Plotly.js version bundled by your renderer.grep -R sendDataToPlotly $(python -c 'import plotly, os; print(os.path.dirname(plotly.__file__))')config={'analytics': {'sendDataToPlotly': False}} and once with the deprecated top-level sendDataToPlotly key. Inspect the emitted JavaScript/config and browser network traffic for Plotly analytics requests.Which renderer(s) do you use in production—Jupyter, static HTML, Dash dcc.Graph, or another? The wrapper-based workaround depends on renderer support, so this detail changes the recommendation.
This draft assumes Plotly 5.5+ behavior as described in the research brief, which is model-knowledge planning context, not verified source evidence. Exact default values and config-merging behavior require current verification against your installed version. Treat telemetry as uncontrolled until your network-traffic test confirms otherwise.
If no per-call or wrapper control is enforceable, blocking network egress to Plotly analytics endpoints and using offline rendering are the enforceable administrative controls. Do not rely on source edits or environment variables as a persistent compliance strategy without verification.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.