Apache Superset is a Data Visualization and Data Exploration Platform
Go to file
Evan Rusackas 4a471b8c71
feat: Native filters fast-follow (#12138)
* wip: filter create modal

* add a feature flag

* automatic changes to package lock

* wip

* filter sidebar and basic state management

* move create button to the sidebar

* first step for edit filterconfig

* partially fix tests...

* edits to types and comments

* respect feature flag on the filter sidebar

* add filterconfig form

* get input state working

* feat: tree filter scopes UI

* fix: turn on flag

* sticky filter bar

* stop preferring default export

* feat: finish filter scoping

* fix: under toggle

* fix: title

* fix: add licence

* refactor: update TS

* fix: fix on reopen modal + validation

* new filter bar menu

* adding, but commenting out, bulk scoping action

* adding some placeholder buttons and styles therefor

* feat: add filter chart

* add relative path to package.json

* update modal

* a little input styling... just getting warmed up

* Revert "feat: add filter chart"

This reverts commit b1302d35b6.

* Revert "add relative path to package.json"

This reverts commit 26a7b40e18.

* https package lock idk

* feat: add filter chart

* add relative path to package.json

* flexboxes all the way down

* dynamically generate groupby and datasource in select control

* big wip

* fix target column name

* no importing nonexistent things

* styles and name editing

* Add hook for retrieval of all filter states

* start with a new filter when clicking add filter

* handle removed filters gracefully

* fix incorrect default filter configuration

* add fields to useAllFilterState

* add redux for filterconfigs

* add support for native_filters

* remove consoles

* improve filter removal

* unbreak infinite loop

* basic sidebar toggling working!

* collapsing and menu working more smoothly

* linting

* make dataset and column inputs work

* save filter values properly

* add dashboard event for filter updates

* guarded

* apply filters properly

* fix schema

* making New Filter button a link

* gridunits ftw

* centering modal

* tis not a button anymore! nixing type.

* plus and collapse buttons instead of "more" menu

* updating full size filter icons

* adding icons to filter collapsing/expanding

* turning off animation, but leaving class-based animation css

* fix linting error

* fix native filters for legacy charts

* updates test

* no individual apply buttons

* fix bugs with filter config modal

* remove redundant code

* switch to the filter with validation errors on submit

* separate form validation

* switch config button from add to edit

* switch to the filter with validation errors on submit

* separate form validation

* switch config button from add to edit

* update tests

* oops forgot to add the fancy new useChangeEffect hook

* comments and code reorganization

* rename native_filters to extr_form_data and move hook

* disable native filters in viz selector

* add cascading

* implement new extra form data api

* cleanup

* updates tests

* bump npm packages

* fix bad merge on package.json + lock

* lint

* replace in and not in with uppercase

* lint

* lint

* lint

* lint

* bulk test fix

* Sort select input alphabetically

* Change type for sorting elements

* sleeker filter removal UX

* fix rest of unit tests

* make filter operators all uppercase

* Hide Filter bar when there are no filters

* Show edit button for dashboard owners only

* Add visible argument to filters toggle function to avoid future regression

* Improve Toggle filters bar function

* lint

* fix js lint + set createNewOnOpen

* Handle setting extra form data in Filter Bar instead of Filter Control

* Add Handle apply filter function to Apply button

* Allow applying changes instantly

* Fix types

* remove console logs

* fix package

* Add Error Boundary component to Filter bar and Filter Config Modal

* fix jest tests

* update native filters tests to pass

* reset cypress baseUrl

* remove unnecessary field

* Add Parent Filter input field to Config Modal

* Create Cascade Filter & display children filters

* Add Cascade Popover

* Display Filter value both in Filter Bar and in Cascade Popover

* Display the youngest filter value label in the Filter bar

* Add styles to Cascade Popover and filters

* Force to apply changes instantly for parent filters and refactor styles

* Show error for no cyclical hierarchy and refactor

* Add validation for parent filter to be applied instantly

* Add Error Boundary to Filter Config Modal

* cleanup: remove unused state fields

* move unrelated types to an appropriate location

* remove misplaced resource fetch error logic

* fix cascadeParentIds error

* fix cypress password

* initial attempt at fixing scope issue

* fix bad merge

* fix lint

* trying out makeApi for saving filters

* remove unused import

* fix test

* silence bad test

* Improve styling of Filter Config Modal

* Improve styles for whole native filters feature

* Add styles for active filter tab

* Fix text for scoping

* Clean up Filter Bar and Config Modal styles

* Remove fractional gridUnits. Change name for CheckboxFormItem. Add placeholder to Parent Filter select.

* Remove unnecessary button size for Config Modal

* add native-filter feat flag config

* oops fix here

* remove space

* Update superset-frontend/src/common/components/index.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/cypress-base/cypress/integration/dashboard/nativeFilters.test.ts

Co-authored-by: Evan Rusackas <evan@preset.io>

* Add Cache Wrapper helper to avoid datasets requests deduplication

* Add license to new Cache Wrapper helper

* Add Cache Wrapper tests

* Fix expanding Filter Bar

* use styledMount in tests

* comment

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/dashboard/components/nativeFilters/FilterBar.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/dashboard/components/nativeFilters/FilterConfigForm.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/dashboard/components/nativeFilters/FilterConfigModal.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* Update superset-frontend/src/dashboard/components/nativeFilters/FilterConfigurationLink.tsx

Co-authored-by: Evan Rusackas <evan@preset.io>

* address PR feedback

* fix package lock

* null guards

* Fix charts resizing

* removing emotion/react and going old school on css animation

* fxing css glitch on scoping disclaimer

* src paths.

* using gridUnits

* nixing unnecessary diamonds

* linting

* fix type errors

* Inverting collapsed icons... closer to data src selector design

* restoring feature flag to proper default setting

* missing condition

* fix tests

* patching test

* just a button

* flaky tests

Co-authored-by: David Aaron Suddjian <aasuddjian@gmail.com>
Co-authored-by: Phillip Kelley-Dotson <pkelleydotson@yahoo.com>
Co-authored-by: Simcha Shats <simcha.shats@nielsen.com>
Co-authored-by: amitNielsen <amit.miran@nielsen.com>
Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
Co-authored-by: Agata Stawarz-Pastewska <agata.stawarz-pastewska@polidea.com>
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2020-12-19 01:57:06 -08:00
.github chore: add latest tag action (#11148) 2020-12-17 20:50:44 +02:00
docker feat: Added setup for running Cypress tests in docker locally (#11207) 2020-12-14 08:06:19 -08:00
docs chore: add latest tag action (#11148) 2020-12-17 20:50:44 +02:00
helm/superset feat: rename TABLE_NAMES_CACHE_CONFIG to DATA_CACHE_CONFIG (#11509) 2020-11-13 22:35:10 -08:00
RELEASING docs(releasing): update release automation and docs for Apache graduation (#12117) 2020-12-18 12:04:33 +00:00
requirements feat(explore): time picker enhancement (#11418) 2020-12-17 18:27:21 -08:00
scripts chore: add latest tag action (#11148) 2020-12-17 20:50:44 +02:00
superset feat(dashboard): Dashboard-Native Filters (#11814) 2020-12-18 17:06:37 -08:00
superset-frontend feat: Native filters fast-follow (#12138) 2020-12-19 01:57:06 -08:00
tests feat(dashboard): Dashboard-Native Filters (#11814) 2020-12-18 17:06:37 -08:00
.asf.yaml docs: docs site footer link tweak (#11140) 2020-10-01 23:31:52 -07:00
.codecov.yml Adding codecov targets and thresholds (#7433) 2019-06-03 15:26:42 -07:00
.dockerignore SIP-32: Moving frontend code to the base of the repo (#9098) 2020-02-09 17:53:56 -08:00
.editorconfig Adding editorconfig setting for IDE hints (#10855) 2020-09-14 08:19:23 -07:00
.flaskenv Flask App factory PR #1 (#8418) 2019-11-20 15:47:06 +00:00
.fossa.yml Update FOSSA configuration for new requirements layout (#10848) 2020-09-16 13:28:04 -07:00
.gitignore chore: add latest tag action (#11148) 2020-12-17 20:50:44 +02:00
.pre-commit-config.yaml style(menu): clean up right menu - leaving only "Settings" (#11227) 2020-10-20 21:33:28 -07:00
.pylintrc Removed disable global pytlint rule standarderror-builtin which isn't appearing for Python3 (#11038) 2020-09-24 13:48:02 -07:00
.rat-excludes chore: pin node and npm versions (#11646) 2020-11-10 15:58:54 -08:00
CHANGELOG.md docs: 0.38.0 CHANGELOG and UPDATING (#11809) 2020-11-25 11:36:50 +00:00
CODE_OF_CONDUCT.md docs(readme): move Slack guidelines to CODE_OF_CONDUCT (#10315) 2020-07-15 15:21:20 -07:00
CONTRIBUTING.md fixed CONTRIBUTING typos (#12057) 2020-12-15 09:07:34 -08:00
DISCLAIMER chore: pre-commit run --all-files (#10500) 2020-08-02 14:32:17 -07:00
docker-compose.yml feat: Added setup for running Cypress tests in docker locally (#11207) 2020-12-14 08:06:19 -08:00
Dockerfile feat: add Postgres SQL validator (#11538) 2020-12-04 19:17:23 -08:00
INSTALL.md Improvements related to ASF release process (#7539) 2019-07-03 22:33:14 -07:00
INTHEWILD.md docs: add Xite to users list (#11775) 2020-11-23 15:49:40 -08:00
LICENSE.txt chore: pre-commit run --all-files (#10500) 2020-08-02 14:32:17 -07:00
MANIFEST.in Update MANIFEST.in (#9261) 2020-03-25 22:00:41 -07:00
NOTICE Add release refinements from 0.35.2 release (#8925) 2020-02-18 07:14:31 +02:00
pytest.ini feat: support nulls in the csv uploads (#10208) 2020-07-06 13:26:43 -07:00
README.md docs: restored page on roles in security, executed other touchups, and… (#11978) 2020-12-13 14:06:14 -08:00
setup.cfg feat(explore): time picker enhancement (#11418) 2020-12-17 18:27:21 -08:00
setup.py feat(explore): time picker enhancement (#11418) 2020-12-17 18:27:21 -08:00
tox.ini build(deps-dev): update cypress to 5.5.0, improvements for running locally (#11603) 2020-11-10 15:51:47 -08:00
UPDATING.md feat(SIP-39): Async query support for charts (#11499) 2020-12-10 20:21:56 -08:00

Superset

License GitHub release (latest SemVer) Build Status PyPI version Coverage Status PyPI Get on Slack Documentation Dependencies Status

Superset

A modern, enterprise-ready business intelligence web application.

Why Superset | Supported Databases | Installation and Configuration | Get Help | Contributor Guide | Resources | Superset Users

Screenshots & Gifs

Gallery


View Dashboards


Slice & dice your data


Query and visualize your data with SQL Lab


Visualize geospatial data with deck.gl


Choose from a wide array of visualizations


Why Superset

Superset provides:

  • An intuitive interface to explore and visualize datasets, and create interactive dashboards
  • A wide array of beautiful visualizations to showcase your data.
  • Easy, code-free, user flows to drill down and slice and dice the data underlying exposed dashboards. The dashboards and charts act as a starting point for deeper analysis
  • A state of the art SQL editor/IDE exposing a rich metadata browser, and an easy workflow to create visualizations out of any result set.
  • An extensible, high granularity security model allowing intricate rules on who can access which product features and datasets. Integration with major authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USER, ...)
  • A lightweight semantic layer, allowing to control how data sources are exposed to the user by defining dimensions and metrics
  • Out of the box support for most SQL-speaking databases
  • Deep integration with Druid allows for Superset to stay blazing fast while slicing and dicing large, realtime datasets
  • Fast loading dashboards with configurable caching

Supported Databases

Superset speaks many SQL dialects through SQLAlchemy - a Python SQL toolkit that is compatible with most databases. Here are some of the major database solutions that are supported:

redshift google-biquery snowflake presto druid postgresql mysql mssql-server db2 sqlite sybase mariadb vertica oracle firebird greenplum clickhouse exasol monet-db apache-kylin

A complete list of supported databases can be found here.

Installation and Configuration

See in the documentation

Get Involved

Contributor Guide

Interested in contributing? Check out our CONTRIBUTING.md to find resources around contributing along with a detailed guide on how to set up a development environment.

Resources