This is an automated email from the ASF dual-hosted git repository.
amaannawab923 pushed a change to branch feat/embedded-chart
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 071abab0d39 refactor(embedded): name the hook after what it fetches
discard 137764b67fe fix(embedded): chain the migration onto the current master
head
discard 91942e3389e fix(dashboard): refetch the embedded config when the
resource type changes
discard d884080ceb3 fix(embedded): rename the chart description for the chart
stack
discard 8e9fa1b3a00 perf(embedded): load the chart stack lazily
discard e1287c0e3a2 fix(embedded): honour guest token revocation for charts
discard 71c108ecd8b fix(embedded): load an embedded chart under the chart
permission
discard 4ab3070b7a1 fix(embedded): dump the chart id on embedded chart
responses
discard 4858138ce8f fix(embedded): chain the migration onto the current master
head
discard 96725309dd2 fix(embedded): register the embedded chart response schema
discard d6e63c2539c fix(embedded): resolve the guest user before the chart
lookup
discard 946ec1ae131 fix(embedded): document the embedded PUT and expect the
new chart permission
discard d13a5c7be49 fix(embedded): declare embedded_charts in the chart purge
policy
discard 74ad670ae29 fix(embedded): type the chart's datasource as Datasource
discard 99131225229 chore(embedded): apply lint and formatting fixes
discard d4f4ce04415 fix(embedded): pad the embedded chart and size it to its
container
discard 2e2b473497d test(embedded): cover the fabricated hydrate payload
discard e1445b56c1c fix(embedded): don't serve the mobile experience inside an
iframe
discard 7f6b24cb079 fix(embedded): restore fullscreen and image exports for
embedded charts
discard 5188a08b9cd fix(embedded): don't 500 on a malformed Referer
discard 20567da1c63 fix(embedded): say 'chart' in the embed modal when
embedding a chart
discard 8bb6d592173 feat(embedded): complete the standalone chart render path
discard 9af43f52ddb feat(embedded): allow guest tokens scoped to a chart
discard 80f3e2d9ac7 fix(embedded): correct import paths for the 6.x module
layout
discard 0a1fa937c25 feat(embedded): expose Embed chart from the chart menu
discard f90ec7492db feat(embedded): render an embedded chart via fabricated
dashboard state
discard 4dd680e11e5 feat(embedded): resolve a uuid as either an embedded
dashboard or chart
discard 10651a4dfeb feat(embedded): add EmbeddedChartDAO, schemas and chart
embedded endpoints
discard 6504cad6bb3 feat(embedded): add EmbeddedChart model and migration
add 57eafd75e0c docs(handlebars): correct helper names that are not
registered (#44020)
add 067a356b6f0 fix(chart): include echart_options in Matrixify
render-trigger allowlist (#43946)
add 3ccab2ea7aa fix(time-format): share DateWithFormatter and stop reading
four-digit years as epoch offsets (#43909)
add a114b4cc468 fix(import): skip redundant has_table check when dataset
import has no data URI (#43808)
add 85ea6e900a4 docs(mcp): document MCP_STATELESS_HTTP and its multi-pod
tradeoff (#43902)
add 60553b4326a docs(ag-grid): document Show summary support for Raw
Records mode (#43905)
add 7029c468c4d fix(reports): bound CSV transport retries and sanitize
failures (#43977)
add bc35151350c docs(handlebars): correct helper names in the 6.1.0
versioned docs (#44024)
add 04ab089962f chore(deps): bump @swc/html from 1.15.43 to 1.16.2 in
/docs in the security group across 1 directory (#44023)
add 5986fe92c2f fix(rls): roll back db.session after RLS failure in
get_from_clause (#43883)
add e6d088d6b1b fix(mcp): surface rejected filter columns in get_chart_sql
(#43680)
add 10866337c5c docs(helm): document Gateway API HTTPRoute support (#43635)
add 1339bdc6ce1 ci: bump ASF allowlist-check to v1.0.1 for self-repository
syntax support (#44014)
add 7b65d222050 chore(tags): TAGGING_SYSTEM to True by default (#39888)
add 83d5d1ccdad fix(security): use GitHub self-repository syntax for local
action ref (#43961)
add 02ea5775c10 fix(ci): use self-repository syntax for local supersetbot
action ref (#43963)
add 9d89dbddc7b fix(security): use self-repository syntax for
change-detector action ref (#43971)
add 0e6170aaa3b fix(security): use self-repository syntax for
setup-backend ref in unit-test workflow (#43970)
add 380675662d8 fix(ci): use self-repository syntax for local actions in
presto-hive workflow (#43975)
add 3564baabf6e fix(security): suppress zizmor self-repository false
positive for setup-backend step (#44018)
add 335a2a78ea8 fix(dashboard): expand clipped scrollable content before
screenshot/PDF export (#43979)
add fa31e9c1c32 fix(security): suppress zizmor self-repository false
positive for cached-dependencies (#43972)
add 362d3509cb0 fix(security): suppress zizmor self-repository false
positive for cached-dependencies in presto-hive workflow (#43984)
add 3828dcb9225 fix(security): suppress zizmor self-repository false
positive for cached-dependencies in presto-hive workflow (#43976)
add 91f4d01ca2c fix(chart-creation): stop antd v6 Steps from doubling the
icon-content gap (#43730)
add c510946df55 fix: BigQuery pivot-table Custom SQL row label with a
space drops from GROUPING SETS (#43720)
add 9de50b85e5a chore(deps): bump the security group across 1 directory
with 3 updates (#44029)
add d0f139c2104 feat(deps): bump `flask-caching` from 2.4.1 to 2.5.0 +
bump `flask` from v2 to v3 (#43875)
add 2875c76d55a chore(deps): bump react-ace from 14.0.1 to 15.0.0 in
/superset-frontend (#42833)
add acb29937aed chore(deps): bump the security group across 1 directory
with 3 updates (#44030)
add 986b648f1ca fix(versioning): resolve dashboard M2M membership by
attach/detach windows, not end_transaction_id (#44010)
add daf41bdf046 fix(security): suppress zizmor self-repository false
positive for sqlite install-deps step (#44002)
add 9669e414711 chore(build): remove legacy re-export shim used for
development (#42190)
add c9965c7bf41 feat(folders): drag and drop visible elements
(columns/metrics) of folders in explore view (#42483)
add 5d771e9f467 fix(dataset): apply the import overwrite permission check
to identity-matched datasets (#43058)
add 50c1504cac4 fix(db_engine_specs): cast VARCHAR before Postgres
DATE_TRUNC (#43167)
add c503f92642a fix(charts): restrict Prophet time grain schema validation
to supported Prophet grains (#43585)
add 613871ed363 fix(native-filters): stabilize DefaultValue's filterState
object identity (#43859)
add 4f26627a6a9 fix(native-filters): stop Date Range calendar popup from
clipping in overflow dropdown (#43978)
add fc110d8428f fix(versioning): enforce is_managed_externally on version
restore (#44013)
add c76e4d98f2c fix(api): advertise only the time grains Prophet can
resolve (#43710)
add 1ab6077e060 fix(filters): clamp filter bar row while remeasuring after
items change (#43966)
add 9079f002ee1 fix(dashboard): scope tab-diff report lookup to the edited
dashboard (#43989)
add 7a230c0090a feat(embedded): add EmbeddedChart model and migration
add 0775f0dacbd feat(embedded): add EmbeddedChartDAO, schemas and chart
embedded endpoints
add b62e0e5d2d7 feat(embedded): resolve a uuid as either an embedded
dashboard or chart
add 1d6768523a2 feat(embedded): render an embedded chart via fabricated
dashboard state
add 6cfef059673 feat(embedded): expose Embed chart from the chart menu
add 76a87ee2414 fix(embedded): correct import paths for the 6.x module
layout
add 5e5e37e521e feat(embedded): allow guest tokens scoped to a chart
add e36787ea80b feat(embedded): complete the standalone chart render path
add 287698785fb fix(embedded): say 'chart' in the embed modal when
embedding a chart
add e5a85d89a03 fix(embedded): don't 500 on a malformed Referer
add 223cf0e4326 fix(embedded): restore fullscreen and image exports for
embedded charts
add 4b223c18511 fix(embedded): don't serve the mobile experience inside an
iframe
add 116815a77f2 test(embedded): cover the fabricated hydrate payload
add b4d2b470f5c fix(embedded): pad the embedded chart and size it to its
container
add dad9b3e113d chore(embedded): apply lint and formatting fixes
add f573fa0c14e fix(embedded): type the chart's datasource as Datasource
add 3b68d0897e0 fix(embedded): declare embedded_charts in the chart purge
policy
add 31ad9892383 fix(embedded): document the embedded PUT and expect the
new chart permission
add 29cc3780101 fix(embedded): resolve the guest user before the chart
lookup
add 976707dc8e2 fix(embedded): register the embedded chart response schema
add 2a3cca40d88 fix(embedded): chain the migration onto the current master
head
add 7bf63bdd8c0 fix(embedded): dump the chart id on embedded chart
responses
add 7ae1f859c06 fix(embedded): load an embedded chart under the chart
permission
add 3337218ea72 fix(embedded): honour guest token revocation for charts
add 6b30778d813 perf(embedded): load the chart stack lazily
add e5187b7b910 fix(embedded): rename the chart description for the chart
stack
add a733b1fd84f fix(dashboard): refetch the embedded config when the
resource type changes
add e36912aa412 fix(embedded): chain the migration onto the current master
head
add 4c9e4f3d17e refactor(embedded): name the hook after what it fetches
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (071abab0d39)
\
N -- N -- N refs/heads/feat/embedded-chart (4c9e4f3d17e)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/workflows/asf-allowlist-check.yml | 2 +-
.../workflows/superset-python-integrationtest.yml | 10 +-
.github/workflows/superset-python-presto-hive.yml | 22 +-
.github/workflows/superset-python-unittest.yml | 4 +-
.github/workflows/superset-translations.yml | 2 +-
.github/workflows/tag-release.yml | 4 +-
UPDATING.md | 29 ++
docs/admin_docs/configuration/alerts-reports.mdx | 33 +++
docs/admin_docs/configuration/mcp-server.mdx | 3 +
docs/admin_docs/installation/kubernetes.mdx | 48 ++++
.../creating-your-first-dashboard.mdx | 9 +
docs/docs/using-superset/handlebars-chart.mdx | 76 +++--
docs/static/feature-flags.json | 12 +-
docs/static/resources/openapi.json | 24 +-
.../using-superset/handlebars-chart.mdx | 76 +++--
docs/yarn.lock | 166 +++++------
pyproject.toml | 2 +-
requirements/base.txt | 9 +-
requirements/development.txt | 9 +-
superset-frontend/package-lock.json | 197 ++++++-------
.../superset-core/src/translation/index.ts | 4 -
.../superset-core/src/translation/types/index.ts | 4 +-
.../superset-core/src/translation/types/jed.ts | 2 -
.../superset-ui-chart-controls/src/types.ts | 2 -
.../packages/superset-ui-core/package.json | 2 +-
.../src/chart/components/StatefulChart.test.tsx | 98 +++++++
.../src/chart/components/StatefulChart.tsx | 30 ++
.../packages/superset-ui-core/src/chart/index.ts | 4 -
.../superset-ui-core/src/chart/types/Base.ts | 2 -
.../src/chart/types/QueryResponse.ts | 2 -
.../src/chart/types/TransformFunction.ts | 2 -
.../AsyncAceEditor/AsyncAceEditor.test.tsx | 55 ++++
.../DropdownContainer/DropdownContainer.test.tsx | 71 +++++
.../DropdownContainer/DropdownContainer.tsx | 13 +-
.../superset-ui-core/src/connection/index.ts | 1 -
.../superset-ui-core/src/connection/types.ts | 2 -
.../superset-ui-core/src/dimension/index.ts | 1 -
.../superset-ui-core/src/dimension/types.ts | 2 -
.../superset-ui-core/src/query/api/legacy/index.ts | 1 -
.../superset-ui-core/src/query/api/legacy/types.ts | 2 -
.../src/query/types/AdvancedAnalytics.ts | 2 -
.../superset-ui-core/src/query/types/Column.ts | 2 -
.../superset-ui-core/src/query/types/Dashboard.ts | 2 -
.../superset-ui-core/src/query/types/Datasource.ts | 2 -
.../superset-ui-core/src/query/types/Metric.ts | 2 -
.../superset-ui-core/src/query/types/Query.ts | 2 -
.../src/query/types/QueryFormData.ts | 2 -
.../src/query/types/QueryResponse.ts | 2 -
.../superset-ui-core/src/query/types/Time.ts | 2 -
.../superset-ui-core/src/query/types/index.ts | 12 -
.../src/time-format}/DateWithFormatter.ts | 13 +-
.../superset-ui-core/src/time-format/index.ts | 1 +
.../src/time-format/utils/stringifyTimeInput.ts | 15 +-
.../test/time-format}/DateWithFormatter.test.ts | 23 +-
.../time-format/utils/stringifyTimeInput.test.ts | 23 ++
.../plugin-chart-ag-grid-table/src/index.ts | 2 -
.../src/transformProps.ts | 2 +-
.../plugin-chart-ag-grid-table/src/types.ts | 2 -
.../src/utils/formatValue.ts | 2 +-
.../src/utils/useColDefs.ts | 7 +-
...rmatter.test.ts => formatDurationValue.test.ts} | 23 +-
.../src/react-pivottable/TableRenderers.tsx | 34 ++-
.../test/react-pivottable/tableRenders.test.tsx | 39 +++
.../plugin-chart-point-cluster-map/package.json | 4 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 2 +-
.../plugins/plugin-chart-table/src/index.ts | 2 -
.../plugin-chart-table/src/transformProps.ts | 2 +-
.../plugins/plugin-chart-table/src/types.ts | 2 -
.../src/utils/DateWithFormatter.ts | 62 -----
.../plugin-chart-table/src/utils/formatValue.ts | 2 +-
.../plugin-chart-table/test/TableChart.test.tsx | 2 +-
...rmatter.test.ts => formatDurationValue.test.ts} | 23 +-
.../plugins/preset-chart-deckgl/package.json | 2 +-
.../FiltersConfigForm/DefaultValue.test.tsx | 118 ++++++++
.../FiltersConfigForm/DefaultValue.tsx | 25 +-
.../DatasourcePanelDragOption.test.tsx | 17 ++
.../DatasourcePanelDragOption/index.tsx | 33 +--
.../DatasourcePanel/DatasourcePanelItem.test.tsx | 78 +++++-
.../DatasourcePanel/DatasourcePanelItem.tsx | 128 +++++++--
.../DatasourcePanel/compatibility.test.ts | 57 ++++
.../components/DatasourcePanel/compatibility.ts | 66 +++++
.../components/DatasourcePanel/folderDrag.test.ts | 88 ++++++
.../components/DatasourcePanel/folderDrag.ts | 68 +++++
.../src/explore/components/DndItemType.ts | 3 +
.../ExploreContainer/ExploreDndContext.test.tsx | 138 +++++++++
.../ExploreContainer/ExploreDndContext.tsx | 129 +++++++--
.../controls/ColumnConfigControl/index.tsx | 1 -
.../controls/ColumnConfigControl/types.ts | 2 -
.../controls/DateFilterControl/DateFilterLabel.tsx | 6 +-
.../DateFilterControl/components/CustomFrame.tsx | 18 +-
.../tests/DateFilterLabel.test.tsx | 11 +-
.../DndColumnMetricSelect.test.tsx | 104 +++++++
.../DndColumnMetricSelect.tsx | 34 ++-
.../DndColumnSelect.test.tsx | 131 +++++++++
.../DndColumnSelectControl/DndColumnSelect.tsx | 30 +-
.../DndMetricSelect.test.tsx | 192 +++++++++++++
.../DndColumnSelectControl/DndMetricSelect.tsx | 108 ++++++--
.../DndColumnSelectControl/DndSelectLabel.test.tsx | 114 ++++++++
.../DndColumnSelectControl/DndSelectLabel.tsx | 53 +++-
.../createAdhocMetricFromColumn.test.ts} | 48 ++--
.../DndColumnSelectControl/dndTestUtils.ts | 18 ++
.../VizTypeControl/VizTypeControl.test.tsx | 46 ++-
.../controls/VizTypeControl/VizTypeGallery.tsx | 2 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 14 +
.../src/pages/ChartCreation/index.tsx | 7 +
superset/app.py | 13 +-
superset/charts/schemas.py | 26 +-
superset/commands/chart/importers/v1/__init__.py | 6 +-
.../commands/dashboard/importers/v1/__init__.py | 6 +-
superset/commands/dashboard/update.py | 76 +++--
superset/commands/dataset/importers/v1/utils.py | 80 ++++--
superset/commands/importers/v1/assets.py | 6 +-
superset/commands/importers/v1/utils.py | 54 ++++
superset/commands/report/chart_data.py | 194 +++++++++++++
superset/commands/report/execute.py | 91 +++---
superset/commands/version_restore.py | 18 +-
superset/common/query_actions.py | 78 +++++-
superset/config.py | 9 +-
superset/daos/report.py | 12 +-
superset/datasets/schemas.py | 8 +-
superset/db_engine_specs/postgres.py | 17 +-
superset/extensions/metastore_cache.py | 3 +-
superset/mcp_service/chart/chart_helpers.py | 70 +++++
superset/mcp_service/chart/tool/get_chart_data.py | 64 +----
superset/mcp_service/chart/tool/get_chart_sql.py | 19 +-
superset/models/helpers.py | 43 ++-
superset/tags/models.py | 31 +++
superset/tasks/scheduler.py | 16 +-
superset/utils/cache.py | 2 +-
superset/utils/cache_manager.py | 4 -
superset/utils/csv.py | 9 +-
superset/utils/screenshot_utils.py | 97 +++++++
superset/utils/webdriver.py | 68 +++++
superset/versioning/activity/impact.py | 152 ++++++----
superset/versioning/activity/queries.py | 95 +------
superset/versioning/activity/scope.py | 2 +-
superset/versioning/activity/windows.py | 66 +++++
superset/versioning/membership.py | 86 ++++++
superset/versioning/restore.py | 50 ++--
tests/integration_tests/base_tests.py | 19 ++
tests/integration_tests/charts/api_tests.py | 8 +-
tests/integration_tests/charts/commands_tests.py | 14 +-
.../charts/version_restore_tests.py | 42 +++
tests/integration_tests/dashboard_tests.py | 3 +-
.../integration_tests/dashboards/commands_tests.py | 3 +
.../dashboards/security/security_dataset_tests.py | 5 +-
.../dashboards/version_restore_tests.py | 70 +++++
tests/integration_tests/fixtures/tags.py | 21 +-
tests/integration_tests/reports/commands_tests.py | 109 +++++++-
tests/integration_tests/tags/api_tests.py | 8 +-
.../charts/commands/data/test_get_data_command.py | 15 +-
tests/unit_tests/charts/test_schemas.py | 85 +++++-
tests/unit_tests/commands/dashboard/update_test.py | 132 +++++++--
.../commands/importers/v1/assets_test.py | 3 +
.../importers/v1/test_find_existing_for_import.py | 134 ++++++++-
.../unit_tests/commands/report/chart_data_test.py | 298 ++++++++++++++++++++
tests/unit_tests/commands/report/execute_test.py | 148 +++++++++-
.../commands/test_base_restore_version_command.py | 99 +++++++
tests/unit_tests/common/test_query_actions.py | 97 +++++++
.../datasets/commands/importers/v1/import_test.py | 307 +++++++++++++++++++++
tests/unit_tests/datasets/schema_tests.py | 20 ++
tests/unit_tests/db_engine_specs/test_postgres.py | 34 +++
tests/unit_tests/initialization_test.py | 9 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 39 ++-
.../mcp_service/chart/tool/test_get_chart_sql.py | 102 +++++++
tests/unit_tests/models/helpers_test.py | 74 +++++
.../models/test_virtual_dataset_format.py | 25 ++
tests/unit_tests/tags/commands/create_test.py | 19 +-
tests/unit_tests/tags/commands/update_test.py | 10 +-
.../tasks/test_scheduler_soft_timeout.py | 44 ++-
tests/unit_tests/utils/csv_tests.py | 27 +-
tests/unit_tests/utils/test_cache_manager.py | 6 +-
tests/unit_tests/utils/test_screenshot_utils.py | 48 ++++
tests/unit_tests/utils/webdriver_test.py | 172 +++++++++++-
tests/unit_tests/versioning/test_activity.py | 149 +++++++++-
175 files changed, 6030 insertions(+), 1182 deletions(-)
rename superset-frontend/{plugins/plugin-chart-ag-grid-table/src/utils =>
packages/superset-ui-core/src/time-format}/DateWithFormatter.ts (82%)
copy superset-frontend/{plugins/plugin-chart-table/test/utils =>
packages/superset-ui-core/test/time-format}/DateWithFormatter.test.ts (65%)
rename
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/{DateWithFormatter.test.ts
=> formatDurationValue.test.ts} (63%)
delete mode 100644
superset-frontend/plugins/plugin-chart-table/src/utils/DateWithFormatter.ts
rename
superset-frontend/plugins/plugin-chart-table/test/utils/{DateWithFormatter.test.ts
=> formatDurationValue.test.ts} (63%)
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DefaultValue.test.tsx
create mode 100644
superset-frontend/src/explore/components/DatasourcePanel/compatibility.test.ts
create mode 100644
superset-frontend/src/explore/components/DatasourcePanel/compatibility.ts
create mode 100644
superset-frontend/src/explore/components/DatasourcePanel/folderDrag.test.ts
create mode 100644
superset-frontend/src/explore/components/DatasourcePanel/folderDrag.ts
copy
superset-frontend/src/{dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/constants.ts
=>
explore/components/controls/DndColumnSelectControl/createAdhocMetricFromColumn.test.ts}
(50%)
create mode 100644 superset/commands/report/chart_data.py
create mode 100644 superset/versioning/membership.py
create mode 100644 tests/unit_tests/commands/report/chart_data_test.py
create mode 100644
tests/unit_tests/commands/test_base_restore_version_command.py