Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e8bb4f9
feat(docker): add environment-based debugger control for security
sha174n May 21, 2026
48ce998
fix(docker): use explicit --no-debugger flag and add security documen…
sha174n May 21, 2026
d3c44d3
Merge branch 'master' into fix/environment-based-debugger-control
sha174n May 21, 2026
5570520
feat(mcp): add find_users tool and owner filter columns for listings …
msyavuz May 21, 2026
a3d81c7
fix(semantic layers): coerce filter types (#40222)
betodealmeida May 21, 2026
65c6584
fix(mcp): eager-load dataset.metrics to prevent Excel export Detached…
msyavuz May 21, 2026
ac8f0d9
feat(mcp): include applied dashboard filters in get_chart_info (#39620)
msyavuz May 21, 2026
2efb51c
feat(mcp): make config optional in generate_explore_link (#39559)
msyavuz May 21, 2026
064b9c3
fix(reports): guard null dashboard height in Playwright screenshots (…
eschutho May 21, 2026
99a15fe
fix(datasets): isolate filter state to fix concurrent /dataset race (…
rusackas May 21, 2026
e4cb608
fix(frontend): update safeStringify to surface [Circular] and DRY plu…
jaymasiwal May 21, 2026
598fe8e
fix(view query): Update style for code viewer container (#39635)
justinpark May 21, 2026
98ef00d
fix(TableView): reset pagination when data reduces below current page…
rusackas May 21, 2026
910b531
chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-fronten…
dependabot[bot] May 21, 2026
97d880f
chore(deps-dev): update sqlalchemy-drill requirement from <2,>=1.1.4 …
dependabot[bot] May 21, 2026
1f42f09
chore(deps): bump @googleapis/sheets from 13.0.1 to 13.0.2 in /supers…
dependabot[bot] May 21, 2026
ae1592e
chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-front…
dependabot[bot] May 21, 2026
f7328fa
chore(deps-dev): bump baseline-browser-mapping from 2.10.29 to 2.10.3…
dependabot[bot] May 21, 2026
abb7280
fix(mcp): hide write tools from users without write permissions (#40098)
aminghadersohi May 21, 2026
5ac218d
feat(path): support metric-based color scales & line width by metric …
chaselynisabella May 21, 2026
c84b35d
feat(mcp): add series_limit to generate_chart XY config (#40307)
aminghadersohi May 22, 2026
1d0f0ac
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 22, 2026
7186c98
fix(docker): override FLASK_DEBUG to match SUPERSET_DEBUG_ENABLED state
sha174n May 24, 2026
ef74ee8
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 25, 2026
d5b1dc1
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 25, 2026
8fac625
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 26, 2026
662adc5
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 26, 2026
2ff7709
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 26, 2026
0bc5d89
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 26, 2026
a19d5de
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 27, 2026
13e5ce1
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 27, 2026
03d9ccc
Merge remote-tracking branch 'upstream/master' into fix/environment-b…
sha174n May 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion docker/docker-bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,23 @@ case "${1}" in
;;
app)
echo "Starting web app (using development server)..."
flask run -p $PORT --reload --debugger --host=0.0.0.0 --exclude-patterns "*/node_modules/*:*/.venv/*:*/build/*:*/__pycache__/*:*/superset-frontend/*"

# Environment-based debugger control for security
# Only enable Werkzeug interactive debugger when explicitly requested
# Modern Werkzeug (3.0+) includes PIN protection, but defense-in-depth approach
# Override FLASK_DEBUG so the effective state matches SUPERSET_DEBUG_ENABLED even
# when FLASK_DEBUG=true is inherited from docker/.env or .flaskenv
if [[ "${SUPERSET_DEBUG_ENABLED:-}" == "true" ]]; then
export FLASK_DEBUG=1
DEBUGGER_FLAG="--debugger"
echo " ⚠️ Werkzeug debugger enabled (requires PIN for /console access)"
else
export FLASK_DEBUG=0
DEBUGGER_FLAG="--no-debugger"
echo " 🔒 Werkzeug debugger disabled (set SUPERSET_DEBUG_ENABLED=true to enable)"
fi

flask run -p $PORT --reload $DEBUGGER_FLAG --host=0.0.0.0 --exclude-patterns "*/node_modules/*:*/.venv/*:*/build/*:*/__pycache__/*:*/superset-frontend/*"
Comment thread
sha174n marked this conversation as resolved.
;;
app-gunicorn)
echo "Starting web app..."
Expand Down
9 changes: 8 additions & 1 deletion docs/admin_docs/installation/pypi.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,15 @@ superset load_examples
superset init

# To start a development web server on port 8088, use -p to bind to another port
superset run -p 8088 --with-threads --reload --debugger
superset run -p 8088 --with-threads --reload

# For debugging with interactive console (⚠️ localhost only)
# superset run -p 8088 --with-threads --reload --debugger
```

:::warning Security Note
The `--debugger` flag enables Werkzeug's interactive console at `/console`. Only use this for local development and never bind to `0.0.0.0` or expose the server to networks when debugging is enabled.
:::

If everything worked, you should be able to navigate to `hostname:port` in your browser (e.g.
locally by default at `localhost:8088`) and login using the username and password you created.
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,15 @@ superset load_examples
superset init

# To start a development web server on port 8088, use -p to bind to another port
superset run -p 8088 --with-threads --reload --debugger
superset run -p 8088 --with-threads --reload

# For debugging with interactive console (⚠️ localhost only)
# superset run -p 8088 --with-threads --reload --debugger
```

:::warning Security Note
The `--debugger` flag enables Werkzeug's interactive console at `/console`. Only use this for local development and never bind to `0.0.0.0` or expose the server to networks when debugging is enabled.
:::

If everything worked, you should be able to navigate to `hostname:port` in your browser (e.g.
locally by default at `localhost:8088`) and login using the username and password you created.
2 changes: 2 additions & 0 deletions docs/developer_docs/contributing/development-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ Affecting the Docker build process:
save some precious time on startup by `SUPERSET_LOAD_EXAMPLES=no docker compose up`
- **SUPERSET_LOG_LEVEL (default=info)**: Can be set to debug, info, warning, error, critical
for more verbose logging
- **SUPERSET_DEBUG_ENABLED (default=false)**: Enable Werkzeug debugger with interactive console.
Set to `true` for debugging: `SUPERSET_DEBUG_ENABLED=true docker compose up`

For more env vars that affect your configuration, see this
[superset_config.py](https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py)
Expand Down
Loading