Skip to content

feat(api): Add filter_dashboard_id parameter to apply dashboard filters to chart/data endpoint#38638

Merged
eschutho merged 12 commits into
apache:masterfrom
MDeadman:feature/chart-data-api-dashboard-filter-support
Apr 8, 2026
Merged

feat(api): Add filter_dashboard_id parameter to apply dashboard filters to chart/data endpoint#38638
eschutho merged 12 commits into
apache:masterfrom
MDeadman:feature/chart-data-api-dashboard-filter-support

Conversation

@MDeadman
Copy link
Copy Markdown
Contributor

@MDeadman MDeadman commented Mar 13, 2026

User description

SUMMARY

Addresses: #38133

This PR adds a feature to the /api/v1/chart/{id}/data GET endpoint, to enable you to specify an additional parameter: filters_dashboard_id. When you pass in the ID of a dashboard to this parameter, it will apply all the filters on the dashboard which are applicable to this chart.

It will ensure that:

  • You have access to the dashboard
  • The chart exists on the dashboard

Filters will only be applied to the chart:

  • If the chart is in scope for the given filter
  • If the filter has a default value, mirroring the front-end behaviour when loading up a dashbaord
  • IMPORTANT CAVEAT: The filter is NOT using the "Select first filter value by default" option. This option requires a prequery to get the first item in a column to use for the default value. This would require a re-implimentation of the logic used to power that feature, and would create an inconsistancy in results when using the QUERY type in the request, as we would not want to execute that pre-query with the QUERY setting. The downside of this approach is we now have an inconsistancy between the front-end behaviour and the API endpoint behaviour here, but after discussing with Beto and Kamil we figured this was the better approach.

The returned result will reflect the applied filters, and include an additional dashboard_filters object, which will show which filters exist on the dashboard, and which were applied to your request. If the user is using the "defaultToFirstItem" it will return a status of "not_applied_uses_default_to_first_item_prequery" to make it very clear to the end user a given filter was not applied because of this option. Column info is also included to help users understand the impact this filter had on their query.

Example:

	"dashboard_filters": {
		"filters": [
			{
				"id": "NATIVE_FILTER-HM7ype0AH9IJEHcJ4vyhZ",
				"name": "Genre test",
				"status": "applied",
				"column": "genre"
			}
		]
	}

TESTING INSTRUCTIONS

Spin up superset and create a filter on a dashboard. Make sure it is scoped to hit a chart you want to test. Hit the chart endpoint with filters_dashboard_id = the id of your dashboard with filters. I.E.

GET http://localhost:8088/api/v1/chart/89/data/?filters_dashboard_id=8

Check that query text and results have updated, and that the dashboard_filters include all filters. Remove the scoping from the chart in the filter settings and run again. Make sure the filter has not been applied. Also test removing the default value, and setting "Select first filter value by default" to true and ensuring both show in dashboard filters, but are not applied.

Run the tests:

pytest tests/integration_tests/charts/data/api_tests.py
pytest tests/unit_tests/charts/test_dashboard_filter_context.py

ADDITIONAL INFORMATION

  • Has associated issue: #38133
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

CodeAnt-AI Description

Apply dashboard filter defaults to chart data requests

What Changed

  • Chart data requests can now accept a dashboard ID and use that dashboard’s in-scope native filter defaults when building the chart query
  • The response now includes dashboard filter details showing which filters were applied, skipped, or could not be applied because they need a pre-query value
  • Requests fail with clear errors when the dashboard ID is invalid, the dashboard is inaccessible, or the chart does not belong to that dashboard

Impact

✅ Chart data matches dashboard filter defaults
✅ Clearer dashboard filter status in API responses
✅ Fewer invalid chart data requests

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@bito-code-review
Copy link
Copy Markdown
Contributor

bito-code-review Bot commented Mar 13, 2026

Code Review Agent Run #d74eb2

Actionable Suggestions - 0
Review Details
  • Files reviewed - 5 · Commit Range: ca2a953..fba2d73
    • superset/charts/data/api.py
    • superset/charts/data/dashboard_filter_context.py
    • superset/charts/schemas.py
    • tests/integration_tests/charts/data/api_tests.py
    • tests/unit_tests/charts/test_dashboard_filter_context.py
  • Files skipped - 1
    • docs/static/resources/openapi.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@github-actions github-actions Bot added api Related to the REST API doc Namespace | Anything related to documentation labels Mar 13, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 13, 2026

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit ca2a953
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/69b44f855bee080008ada0f1
😎 Deploy Preview https://deploy-preview-38638--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 13, 2026

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 906cd7f
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/69c4a21756b6ef0008a2e3da
😎 Deploy Preview https://deploy-preview-38638--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread docs/static/resources/openapi.json Outdated
"$ref": "#/components/schemas/ChartDataResponseResult"
},
"type": "array"
},
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I was not sure the best way to generate the updated OpenAPI docs. I found a command in the Superset CLI, but when I ran that, it added my new changes, but is also deleted a bunch of un-related stuff which made me nervous, so I just went ahead and manually updated the openapi.json file here.

Please let me know if there is a better approach!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should do it:

$ superset update_api_docs

But it could be that someone removed or changed some of the APIs without regenerating the spec, and your run is incorporating their changes (which should be fine).

Comment on lines +197 to +222
if dashboard_filter_context.extra_form_data:
efd = dashboard_filter_context.extra_form_data
extra_filters = efd.get("filters", [])

for query in json_body.get("queries", []):
if extra_filters:
existing = query.get("filters", [])
query["filters"] = existing + [
{**f, "isExtra": True} for f in extra_filters
]

extras = query.get("extras", {})
for key in EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS:
if key in efd:
extras[key] = efd[key]
if extras:
query["extras"] = extras

for (
src_key,
target_key,
) in EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS.items():
if src_key in efd:
query[target_key] = efd[src_key]

query["extra_form_data"] = efd
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed there are other places in the codebase where we appear to be doing similar things. For example I noticed there is a merge_extra_filters() function utils/core(

def merge_extra_filters(form_data: dict[str, Any]) -> None: # noqa: C901
), but I was not sure how that was being used, and have not had the time to dig into whether that would be a viable or better approach.

This is not the best in that we are re-implimenting some logic here that exists in other forms on the front-end/backend, but from my knowledge of the codebase right now I believe this is the best approach. Please let me know if you have thoughts on another approach!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also applies to the content in dashboard_filter_context.py. Let me know if you think there is a better approach!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think this is fine. We're planning to cleanup the query API (#37535) for many reasons, one of them being how complicated and repeated the logic is right now.

Comment on lines +183 to +191
def _get_filter_target_column(filter_config: dict[str, Any]) -> str | None:
"""Extract the target column name from a native filter configuration."""
if targets := filter_config.get("targets", []):
column = targets[0].get("column", {})
if isinstance(column, dict):
return column.get("name")
if isinstance(column, str):
return column
return None
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I included this target column info to help end users understand how dashboard filters were impacting their queries more precisely, but this might not be essential or super useful depending on the use case for this feature. Can remove if needed

Comment thread superset/charts/data/api.py Outdated
Comment on lines +224 to +228
# We need to apply the form data to the global context as jinga
# templating pulls form data from the request globally, so this
# fallback ensures it has the filters and extra_form_data applied
# when used in get_sqla_query which constructs the final query.
g.form_data = json_body
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was painful to understand lol.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh, sorry for that.

@betodealmeida betodealmeida self-requested a review March 13, 2026 18:10
@codeant-ai-for-open-source codeant-ai-for-open-source Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files label Mar 16, 2026
Comment thread superset/charts/data/api.py Outdated
Comment thread superset/charts/data/api.py Outdated
Comment thread superset/charts/data/api.py Outdated
Comment thread superset/charts/data/dashboard_filter_context.py Outdated
Comment thread tests/integration_tests/charts/data/api_tests.py
@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 16, 2026
Comment thread tests/integration_tests/charts/data/api_tests.py Outdated
@bito-code-review
Copy link
Copy Markdown
Contributor

bito-code-review Bot commented Mar 16, 2026

Code Review Agent Run #c1b004

Actionable Suggestions - 0
Review Details
  • Files reviewed - 4 · Commit Range: ca2a953..e6d613d
    • superset/charts/data/api.py
    • superset/charts/data/dashboard_filter_context.py
    • tests/integration_tests/charts/data/api_tests.py
    • tests/unit_tests/charts/test_dashboard_filter_context.py
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 17, 2026
@bito-code-review
Copy link
Copy Markdown
Contributor

bito-code-review Bot commented Mar 18, 2026

Code Review Agent Run #02340f

Actionable Suggestions - 0
Review Details
  • Files reviewed - 1 · Commit Range: e6d613d..355f03d
    • superset/charts/data/dashboard_filter_context.py
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

Copy link
Copy Markdown
Member

@betodealmeida betodealmeida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome! One question I have, this will still return data along the query, right? Can we pass result_type=query and get just the SQL?

Comment thread docs/static/resources/openapi.json Outdated
"$ref": "#/components/schemas/ChartDataResponseResult"
},
"type": "array"
},
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should do it:

$ superset update_api_docs

But it could be that someone removed or changed some of the APIs without regenerating the spec, and your run is incorporating their changes (which should be fine).

Comment thread superset/charts/data/api.py Outdated
Comment on lines +197 to +222
if dashboard_filter_context.extra_form_data:
efd = dashboard_filter_context.extra_form_data
extra_filters = efd.get("filters", [])

for query in json_body.get("queries", []):
if extra_filters:
existing = query.get("filters", [])
query["filters"] = existing + [
{**f, "isExtra": True} for f in extra_filters
]

extras = query.get("extras", {})
for key in EXTRA_FORM_DATA_OVERRIDE_EXTRA_KEYS:
if key in efd:
extras[key] = efd[key]
if extras:
query["extras"] = extras

for (
src_key,
target_key,
) in EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS.items():
if src_key in efd:
query[target_key] = efd[src_key]

query["extra_form_data"] = efd
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think this is fine. We're planning to cleanup the query API (#37535) for many reasons, one of them being how complicated and repeated the logic is right now.

Comment thread superset/charts/data/api.py Outdated
Comment on lines +224 to +228
# We need to apply the form data to the global context as jinga
# templating pulls form data from the request globally, so this
# fallback ensures it has the filters and extra_form_data applied
# when used in get_sqla_query which constructs the final query.
g.form_data = json_body
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ugh, sorry for that.

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 18, 2026

Codecov Report

❌ Patch coverage is 45.29412% with 93 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.27%. Comparing base (23a5e95) to head (906cd7f).
⚠️ Report is 170 commits behind head on master.

Files with missing lines Patch % Lines
superset/charts/data/dashboard_filter_context.py 29.26% 87 Missing ⚠️
superset/charts/data/api.py 84.61% 2 Missing and 4 partials ⚠️

❌ Your project status has failed because the head coverage (99.92%) is below the target coverage (100.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #38638      +/-   ##
==========================================
- Coverage   65.54%   64.27%   -1.27%     
==========================================
  Files        1823     2533     +710     
  Lines       73154   130374   +57220     
  Branches    23437    30118    +6681     
==========================================
+ Hits        47951    83804   +35853     
- Misses      25203    45093   +19890     
- Partials        0     1477    +1477     
Flag Coverage Δ
hive 40.33% <27.05%> (?)
mysql 61.28% <45.29%> (?)
postgres 61.37% <45.29%> (?)
presto 42.16% <45.29%> (?)
python 62.98% <45.29%> (?)
sqlite 60.99% <45.29%> (?)
unit 100.00% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 18, 2026
@MDeadman
Copy link
Copy Markdown
Contributor Author

MDeadman commented Mar 18, 2026

@betodealmeida Yes! result_type=query is working from my tests. The result type is handled in ChartDataCommand.run() so thankfully I didn't need to make any code changes to support the result_type=query or any other result_type options, just make sure the Query Context that gets passed into it is formed correctly with the filters applied.

I pushed changes to fix the typo and add the re-generated the docs with superset update_api_docs!

I am looking at the codecov report and am confused as its showing many tested functions as completely untested, so I will try and figure that out.

Comment thread superset/charts/data/dashboard_filter_context.py Outdated
@bito-code-review
Copy link
Copy Markdown
Contributor

bito-code-review Bot commented Mar 18, 2026

Code Review Agent Run #3fb144

Actionable Suggestions - 0
Review Details
  • Files reviewed - 1 · Commit Range: 355f03d..79b747a
    • superset/charts/data/api.py
  • Files skipped - 1
    • docs/static/resources/openapi.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 19, 2026
Comment thread superset/charts/data/dashboard_filter_context.py Outdated
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
@bito-code-review
Copy link
Copy Markdown
Contributor

bito-code-review Bot commented Mar 19, 2026

Code Review Agent Run #f4c3d6

Actionable Suggestions - 0
Review Details
  • Files reviewed - 4 · Commit Range: 79b747a..a40f02a
    • superset/charts/data/dashboard_filter_context.py
    • superset/charts/schemas.py
    • tests/integration_tests/charts/data/api_tests.py
    • tests/unit_tests/charts/test_dashboard_filter_context.py
  • Files skipped - 1
    • docs/static/resources/openapi.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 19, 2026
@MDeadman
Copy link
Copy Markdown
Contributor Author

Forgot to comment yesterday:

I have shipped one more commit.

I unskipped the test with the fixture codeant is claiming to be problematic, as it runs fine locally for me. I will see if it passes in CI and if not that I will re-add the skip.

I decided to go with the dict merging approach for handling custom_form_data, as that is what is most aligned with the behaviour elsewhere in the code base.

I also saw in the CI run the integration tests failed from a bug with API Spec for the API docs, so I made some changes which should resolve that issue and get CI working.

Just updated the branch, I will check in again later today to make sure CI is passing.

@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 20, 2026
@MDeadman
Copy link
Copy Markdown
Contributor Author

Another note I want to add:

Spoke with Beto about this in our last chat, but it appears as if the codecov report here is broken. It is showing that the full contents of the functions within dashboard_filter_context.py‎ are untested when they are.

I am not sure if anyone has any insights on how to correct this, but if not this should be safe to ignore codecov

@codeant-ai-for-open-source codeant-ai-for-open-source Bot added size:XXL This PR changes 1000+ lines, ignoring generated files and removed size:XXL This PR changes 1000+ lines, ignoring generated files labels Mar 26, 2026
@eschutho eschutho merged commit 4e0890e into apache:master Apr 8, 2026
71 of 73 checks passed
qfcwell pushed a commit to qfcwell/superset that referenced this pull request May 12, 2026
…rs to chart/data endpoint (apache#38638)

Co-authored-by: Matthew Deadman <matthewdeadman@Matthews-MacBook-Pro-2.local>
Co-authored-by: Matthew Deadman <matthewdeadman@matthews-mbp-2.lan>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api Related to the REST API doc Namespace | Anything related to documentation size/XXL size:XXL This PR changes 1000+ lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants