Apache Superset is a Data Visualization and Data Exploration Platform
Go to file
David Aaron Suddjian 865beae3d8
feat(dashboard): Dashboard-Native Filters (#11814)
* 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 b1302d35b6e79d5e028a8a9cad5b461d8d7cdd42.

* Revert "add relative path to package.json"

This reverts commit 26a7b40e1810675736683bdfd430b4e5ddbc888e.

* 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

* 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

* 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

* 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

* 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

* 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>

* 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

* fix cypress tests

* add in nativefilters to form data

* fix lint and test

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: Evan Rusackas <evan@preset.io>
Co-authored-by: Agata Stawarz-Pastewska <agata.stawarz-pastewska@polidea.com>
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2020-12-18 17:06:37 -08:00
.github chore: add latest tag action (#11148) 2020-12-17 20:50:44 +02:00
RELEASING docs(releasing): update release automation and docs for Apache graduation (#12117) 2020-12-18 12:04:33 +00: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
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(dashboard): Dashboard-Native Filters (#11814) 2020-12-18 17:06:37 -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
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
README.md docs: restored page on roles in security, executed other touchups, and… (#11978) 2020-12-13 14:06:14 -08:00
UPDATING.md feat(SIP-39): Async query support for charts (#11499) 2020-12-10 20:21:56 -08:00
docker-compose.yml feat: Added setup for running Cypress tests in docker locally (#11207) 2020-12-14 08:06:19 -08:00
pytest.ini feat: support nulls in the csv uploads (#10208) 2020-07-06 13:26:43 -07: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

README.md

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