Apache Superset is a Data Visualization and Data Exploration Platform
Go to file
David Aaron Suddjian 4ad5ad045a
feat: embedded dashboard core (#17530)
* feat(dashboard): embedded dashboard UI configuration (#17175) (#17450)

* setup embedded provider

* update ui configuration

* fix test

* feat: Guest token (for embedded dashboard auth) (#17517)

* generate an embed token

* improve existing tests

* add some auth setup, and rename token

* fix the stuff for compatibility with external request loaders

* docs, standard jwt claims, tweaks

* black

* lint

* tests, and safer token decoding

* linting

* type annotation

* prettier

* add feature flag

* quiet pylint

* apparently typing is a problem again

* Make guest role name configurable

* fake being a non-anonymous user

* just one log entry

* customizable algo

* lint

* lint again

* 403 works now!

* get guest token from header instead of cookie

* Revert "403 works now!"

This reverts commit df2f49a6d4267b3cccccd66549d54e25bae8e0b6.

* fix tests

* Revert "Revert "403 works now!""

This reverts commit 883dff38f16537e41f0eb5d699845263c96be5cb.

* rename method

* correct import

* feat: entry for embedded dashboard (#17529)

* create entry for embedded dashboard in webpack

* add cookies

* lint

* token message handshake

* guestTokenHeaderName

* use setupClient instead of calling configure

* rename the webpack chunk

* simplified handshake

* embedded entrypoint: render a proper app

* make the embedded page accept anonymous connections

* format

* lint

* fix test
# Conflicts:
#	superset-frontend/src/embedded/index.tsx
#	superset/views/core.py

* lint

* Update superset-frontend/src/embedded/index.tsx

Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>

* comment out origins checks

* move embedded for core to dashboard

* pylint

* isort

Co-authored-by: David Aaron Suddjian <aasuddjian@gmail.com>
Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>

* feat: Authorizing guest access to embedded dashboards (#17757)

* helper methods and dashboard access

* guest token dashboard authz

* adjust csrf exempt list

* eums don't work that way

* Remove unnecessary import

* move row level security tests to their own file

* a bit of refactoring

* add guest token security tests

* refactor tests

* clean imports

* variable names can be too long apparently

* missing argument to get_user_roles

* don't redefine builtins

* remove unused imports

* fix test import

* default to global user when getting roles

* missing import

* mock it

* test get_user_roles

* infer g.user for ease of tests

* remove redundant check

* tests for guest user security manager fns

* use algo to get rid of warning messages

* tweaking access checks

* fix guest token security tests

* missing imports

* more tests

* more testing and also some small refactoring

* move validation out of parsing

* fix dashboard access check again

* add more test

Co-authored-by: Lily Kuang <lily@preset.io>

* feat: Row Level Security rules for guest tokens (#17836)

* helper methods and dashboard access

* guest token dashboard authz

* adjust csrf exempt list

* eums don't work that way

* Remove unnecessary import

* move row level security tests to their own file

* a bit of refactoring

* add guest token security tests

* refactor tests

* clean imports

* variable names can be too long apparently

* missing argument to get_user_roles

* don't redefine builtins

* remove unused imports

* fix test import

* default to global user when getting roles

* missing import

* mock it

* test get_user_roles

* infer g.user for ease of tests

* remove redundant check

* tests for guest user security manager fns

* use algo to get rid of warning messages

* tweaking access checks

* fix guest token security tests

* missing imports

* more tests

* more testing and also some small refactoring

* move validation out of parsing

* fix dashboard access check again

* rls rules for guest tokens

* test guest token rls rules

* more flexible rls rules

* lint

* fix tests

* fix test

* defaults

* fix some tests

* fix some tests

* lint

Co-authored-by: Lily Kuang <lily@preset.io>

* SupersetClient guest token test

* Apply suggestions from code review

Co-authored-by: Lily Kuang <lily@preset.io>

Co-authored-by: Lily Kuang <lily@preset.io>
2022-01-25 16:41:32 -08:00
.github Revert "Update superset-e2e.yml (#18041)" (#18051) 2022-01-14 14:40:02 -05:00
RELEASING fix: various typo fixes in MD files (#17309) 2021-11-09 17:44:10 +02:00
RESOURCES docs: add dropbox to users list (#17504) 2021-11-22 15:01:31 -08:00
docker chore: removing redundant docker-entrypoint (#17687) 2021-12-08 20:43:28 +02:00
docs Docs: fix typo (#18125) 2022-01-24 09:19:37 -08:00
helm/superset feat(helm): Add schema of values in Helm Chart (#18161) 2022-01-25 15:33:39 -08:00
requirements chore: bump pillow to major version (#18134) 2022-01-25 09:51:14 -08:00
scripts fix: exclude node_modules from ts tracking (#18117) 2022-01-25 10:14:25 -08:00
superset feat: embedded dashboard core (#17530) 2022-01-25 16:41:32 -08:00
superset-frontend feat: embedded dashboard core (#17530) 2022-01-25 16:41:32 -08:00
superset-websocket chore(websocket): bump dependencies (#17325) 2021-11-03 12:17:36 +02:00
tests feat: embedded dashboard core (#17530) 2022-01-25 16:41:32 -08:00
.asf.yaml chore: disable merge button (#17585) 2021-11-30 16:37:23 +08:00
.codecov.yml refactor(monorepo): change coverage of core to 100% (#17698) 2021-12-14 16:19:55 +08:00
.dockerignore feat: Containerize WebSocket server (#14514) 2021-05-10 09:28:50 -07: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
.gitattributes fix: Normalise `*.sh` File Endings (#16608) 2021-09-13 16:25:15 -07:00
.gitignore refactor(monorepo): move superset-ui to superset(stage 2) (#17552) 2021-11-30 08:29:57 +08:00
.gitmodules ci: set remote URL to https and bump sha (#14350) 2021-04-26 17:43:32 +01:00
.pre-commit-config.yaml chore: add .prettierignore and update pre-commit-config 2021-11-26 17:17:24 +08:00
.pylintrc chore(pylint): Remove top-level disable (#16589) 2021-09-15 09:30:23 -07:00
.rat-excludes chore: ignore temporary_superset_ui checking 2021-11-26 17:17:11 +08:00
CHANGELOG.md update changelog and updating for 1.4.0 (#18083) 2022-01-20 09:38:43 -08:00
CODE_OF_CONDUCT.md chore: fixed slack invite link (#16466) 2021-08-26 09:04:51 -04:00
CONTRIBUTING.md fix misspelling (#18097) 2022-01-19 15:56:52 -05:00
Dockerfile Compile translations (#17877) 2022-01-04 17:01:42 +02:00
INSTALL.md Fix wrong filename mentioned in INSTALL.md (#14630) 2021-06-29 11:40:26 +03: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
Makefile important change to MakeFile (#18037) 2022-01-14 10:22:30 -05:00
NOTICE docs: remove (some) references to incubating/incubation (#12284) 2021-01-06 13:40:40 -08:00
README.md Close bracket on Helm chart reference (#17975) 2022-01-10 16:14:10 +01:00
UPDATING.md refactor: Moves the Explore form_data endpoint (#18151) 2022-01-25 11:14:50 -03:00
docker-compose-non-dev.yml fix(docker-compose): Make db service use correct env file (#15659) 2021-08-04 12:22:46 -06:00
docker-compose.yml chore: upgrade to Node 16 (#16809) 2021-09-25 07:26:35 +02:00
lintconf.yaml feat: publish superset helm chart (#14163) 2021-04-16 09:13:43 -07:00
pytest.ini feat: support nulls in the csv uploads (#10208) 2020-07-06 13:26:43 -07:00
setup.cfg chore: enable BQ tests (#17017) 2021-10-14 08:07:47 -07:00
setup.py chore: bump pillow to major version (#18134) 2022-01-25 09:51:14 -08:00
tox.ini chore: update fixtures scope that are loading data into the analytical db (#17780) 2021-12-16 16:11:47 -08:00

README.md

Superset

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

Superset

A modern, enterprise-ready business intelligence web application.

Why Superset? | Supported Databases | Installation and Configuration | Release Notes | Get Involved | Contributor Guide | Resources | Organizations Using Superset

Why Superset?

Superset is a modern data exploration and data visualization platform. Superset can replace or augment proprietary business intelligence tools for many teams.

Superset provides:

  • A no-code interface for building charts quickly
  • A powerful, web-based SQL Editor for advanced querying
  • A lightweight semantic layer for quickly defining custom dimensions and metrics
  • Out of the box support for nearly any SQL database or data engine
  • A wide array of beautiful visualizations to showcase your data, ranging from simple bar charts to geospatial visualizations
  • Lightweight, configurable caching layer to help ease database load
  • Highly extensible security roles and authentication options
  • An API for programmatic customization
  • A cloud-native architecture designed from the ground up for scale

Screenshots & Gifs

Large Gallery of Visualizations


Craft Beautiful, Dynamic Dashboards


No-Code Chart Builder


Powerful SQL Editor


Supported Databases

Superset can query data from any SQL-speaking datastore or data engine (Presto, Trino, Athena, and more) that has a Python DB-API driver and a SQLAlchemy dialect.

Here are some of the major database solutions that are supported:

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

A more comprehensive list of supported databases along with the configuration instructions can be found here.

Want to add support for your datastore or data engine? Read more here about the technical requirements.

Installation and Configuration

Extended documentation for Superset

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