Commit Graph

350 Commits

Author SHA1 Message Date
Ville Brofeldt
b7a0559aaf feat: add permalink to dashboard and explore (#19078)
* rename key_value to temporary_cache

* add migration

* create new key_value package

* add commands

* lots of new stuff

* fix schema reference

* remove redundant filter state from bootstrap data

* add missing license headers

* fix pylint

* fix dashboard permalink access

* use valid json mocks for filter state tests

* fix temporary cache tests

* add anchors to dashboard state

* lint

* fix util test

* fix url shortlink button tests

* remove legacy shortner

* remove unused imports

* fix js tests

* fix test

* add native filter state to anchor link

* add UPDATING.md section

* address comments

* address comments

* lint

* fix test

* add utils tests + other test stubs

* add key_value integration tests

* add filter box state to permalink state

* fully support persisting url parameters

* lint, add redirects and a few integration tests

* fix test + clean up trailing comma

* fix anchor bug

* change value to LargeBinary to support persisting binary values

* fix urlParams type and simplify urlencode

* lint

* add optional entry expiration

* fix incorrect chart id + add test
2022-03-17 01:15:52 +02:00
Evan Rusackas
76b4a14d30 chore(config): Migrating ENABLE_JAVASCRIPT_CONTROLS from app config to a feature flag (#19113)
* first pass migrating config to ff

* nixing a console log from testing

* adding an entry to `UPDATING.md`

* linting 

* Adding ENABLE_JAVASCRIPT_CONTROLS to FEATURE_FLAGS.md

* no longer in need of state!

* Turning the flag back off

* linting... le sigh

* and more linting...
2022-03-14 08:54:02 -06:00
Kamil Gabryjelski
f9c7405e0e chore(explore): Set Drag&Drop feature flags to True by default (#19046)
* chore(explore): Set Drag&Drop feature flags to True by default

* fix tests
2022-03-08 18:50:51 +01:00
pablo-guerra
44675037bd chore: adding Dutch language translations (NL) (#18965)
* added NL translations

* added Dutch to config

* fixed end of line on .po file

Co-authored-by: pablo.guerra-at-026399402087 <pablo.guerra@026399402087>
2022-03-07 14:27:05 +02:00
John Bodley
26486d01c1 chore: Remove legacy SIP-15 interim logic/flags (#18936)
* chore: Remove legacy SIP-15 logic

* Update ab9a9d86e695_deprecate_time_range_endpoints.py

* Update UPDATING.md

* Update UPDATING.md

* Update UPDATING.md

Co-authored-by: John Bodley <john.bodley@airbnb.com>
2022-03-04 09:15:36 +13:00
Ville Brofeldt
a04f1d4c87 chore(cache): default to SimpleCache in debug mode (#18976)
* chore(cache): default to SimpleCache in debug mode

* lint

* clean up type

* use util

* fix integration test cache configs

* remove util from cache manager

* remove trailing comma

* fix more tests

* fix truthiness check

* fix tests and improve deprecation notice

* fix default cache threshold

* move debug check to cache_manager

* remove separate getter

* update docs

* remove default cache config
2022-03-02 19:38:34 +02:00
AAfghahi
150fd0dfd3 added datasource legacy editor flag (#18970) 2022-03-01 12:47:25 -05:00
Evan Rusackas
80d66ddf5b chore(FF): adding generic X axis Feature Flag (default: False) (#18801) 2022-02-18 11:34:39 +08:00
Lily Kuang
b2613f648c feat(embedded): make guest token JWT audience callable or str (#18748)
* feat(embedded): make guest token JWT audience callable

* reset GUEST_TOKEN_JWT_AUDIENCE after test

* helper method for get audience
2022-02-15 17:47:32 -08:00
Lily Kuang
e6ea197e9f feat(embedded): aud claim and type for guest token (#18651)
* add aud claim and type for guest token

* update test

* lint

* make jwt audience configurable

* lint

* Apply suggestions from code review

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

* verify aud

* add tests for aud and type claim

Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
2022-02-14 10:43:35 -08:00
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 df2f49a6d4.

* fix tests

* Revert "Revert "403 works now!""

This reverts commit 883dff38f1.

* 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
Michael S. Molina
f018c826b8 refactor: Moves the Explore form_data endpoint (#18151)
* refactor: Moves the Explore form_data endpoint

* Removes unused imports

* Fixes openapi schema error

* Fixes typo

* Renames and UPDATING.md
2022-01-25 11:14:50 -03:00
Beto Dealmeida
fa104fee9a chore: use pkg_resources for cleaner config (#18130) 2022-01-24 11:44:15 -08:00
Michael S. Molina
959b15eeca feat: Adds a key-value endpoint to store charts form data (#17882)
* feat: Adds a key-value endpoint to store charts form data

* Fixes linting problems

* Removes the query_params from the endpoints

* Refactors the commands

* Removes unused imports

* Changes the parameters to use dataclass

* Adds more access tests

* Gets the first dataset while testing

* Adds unit tests for the check_access function

* Changes the can_access check

* Always check for dataset access
2022-01-20 16:27:57 -03:00
Đặng Minh Dũng
0b67fe1beb feat: Trino Authentications (#17593)
* feat: support Trino Authentications

Signed-off-by: Đặng Minh Dũng <dungdm93@live.com>

* docs: Trino Authentications

Signed-off-by: Đặng Minh Dũng <dungdm93@live.com>
2022-01-14 21:02:47 -08:00
Beto Dealmeida
51090c3f1b feat: shorter timeout on test_connection (#18001)
* feat: shorter timeout on test_connection

* pip-compile-multi --no-upgrade

* Fix for SQLite

* Return 408

* Add test
2022-01-12 13:01:34 -08:00
AAfghahi
536ca1f62c chore(DatasourceEditor): Create Datasource Legacy Editor Feature Flag (#18003)
* a lot of console logs

* adding new feature flag for datasource editor
2022-01-12 14:02:53 -05:00
Daniel Vaz Gaspar
412189fcb7 fix: Change default SECRET_KEY, improve docs and banner warning (#17984)
* fix: Change default SECRET_KEY, improve docs and banner warning on default

* lint

* Update superset/initialization/__init__.py

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

* add a secret migration procedure, update UPDATING

* fix lint

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2022-01-11 15:13:04 +00:00
Craig Rueda
b3db6140c8 fix(alembic): Making Alembic logger config optional (#17774)
* Making Alembic logger config optional

* Switching to app config
2021-12-15 16:16:48 -08:00
Geido
46cdc77ae6 fix: Redirect on 401 (#17597)
* Redirect on 401

* Bump FAB

* Format

* Update Cypress save test

* Revert Cypress change

* Bump FAB 3.4.1rc2

* Update test

* Update return statement

* Update api test

* Update datasets api test

* Update datasets api 401s to 403s

* Add typeguard

* Use Promise.resolve

* Update callApiAndParseWithhTimeout test

* Disable parseResponse test

* Try catch

* Handle npm 8 issues
2021-12-08 13:14:30 -07:00
Ville Brofeldt
c4b04952d0 feat: customize recent activity access (#17589)
* feat: customize recent activity access

* address comments

* fix and add tests

* add alert assertion and UPDATING.md entry

* replace .get_id() with .id

* fix updating comment

* update config name
2021-12-08 11:30:23 +02:00
Michael S. Molina
2f2e8fe412 feat: Adds a key-value endpoint to store the state of dashboard filters (#17536)
* feat: Adds a key-value endpoint to store the state of dashboard filters

* Fixes pylint issues

* Adds openapi schemas

* Adds more tests, move logic to commands and use singular form for the endpoint name

* Fixes model description

* Removes database model

* Adds open api specs

* Simplifies the commands

* Adds more tests

* Validates the value content and submits the correct http status code

* Fixes import order

* Skips flakky test

* Fixes tests

* Updates UPDATING.md
2021-12-01 09:06:49 -03:00
minho95
2fffff6f8d chore: Slovak translation, enabling language and adding first translations (#14783)
* Slovak translation - enabling language and adding first translations

* Linting fixes

* Adding basic translations

* Slovak translation - adding json file

* JSON lint fix

* Prettier fix

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
2021-11-23 13:47:22 +02:00
Daniel Vaz Gaspar
69f9ee8f5e fix: feature flags typing (#15254)
* fix: feature flags typing

* fix tests

* add note in UPDATING.md

* fix frontend

* also move SCHEDULED_QUERIES to top level

* fix test

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
2021-11-19 15:56:16 +00:00
Elizabeth Thompson
3ee9e11ce1 feat: add a config to enable retina quality images in screenshots (#17409)
* add feature flag for retina screenshot support

* use config for pixel density

* run black
2021-11-15 12:47:40 -08:00
Erik Ritter
aa8040ec9b fix: allow POST chart/data request without CSRF token (#17429) 2021-11-12 15:17:21 -08:00
Grace Guo
7d22c9ce17 feat(native_filter_migration): add transition mode (#16992)
* feat: [Migrate filter_box to filter component] add transition mode

* rebase and fix comments

* rebase and fix commnent -- patch 2
2021-11-09 09:55:25 -08:00
Craig Rueda
6a63a21e06 chore: Bumping pyarrow / pandas (#17290)
* Bumping pyarrow / pandas

* Appeasing the pylint gods

* Adjusting UPDATING.md

* Buping testing requirements
2021-10-31 10:47:02 -07:00
Shiva Raisinghani
ef3afbde82 refactor: Repeated boilerplate code between upload to database forms (#16756)
* abstract boilerplate code into class and rename csv to file

* add db migration

* fix some stuff

* more renaming of csv to file

* rename in translations

* update down revision

* update down revision

* bump chart version

* switch to alter column name approach in db migration

* fix db migration for MySQL

* db migration conflict
2021-10-25 13:53:06 +03:00
Yongjie Zhao
4f1d202430 chore: use official isort in pre-commmit (#17215) 2021-10-25 17:57:38 +08:00
Hugh A. Miles II
aa0f4d6c4f use typing_extension instead (#17174) 2021-10-20 15:55:36 -04:00
simcha90
37944e18d6 feat(Filter-sets): connect to api (#17055)
* fix:fix get permission function

* feat: filtersets new

* feat: connect filter sets to api

* lint: fix lint

* doc: add comment
2021-10-17 09:56:54 +03:00
Yongchan Hong
7a2e39449a feat(config): Add none force-refresh option for auto refresh (#17039)
* feat(config): Add none force-refresh option for auto refresh

* use general config

* fix lint issues

* last lint fix
2021-10-14 21:31:10 +03:00
Junlin Chen
f0060a63c0 Native_filter on by default (#16874) 2021-10-02 18:58:59 +03:00
Beto Dealmeida
5cb49d2de0 feat: add support for JOIN in Druid (#16770) 2021-09-22 10:06:01 -07:00
Ville Brofeldt
4e3d4f6daf feat: add global max row limit (#16683)
* feat: add global max limit

* fix lint and tests

* leave SAMPLES_ROW_LIMIT unchanged

* fix sample rowcount test

* replace max global limit with existing sql max row limit

* fix test

* make max_limit optional in util

* improve comments
2021-09-16 19:33:41 +03:00
John Bodley
fb4650a6eb chore(pylint): Remove top-level disable (#16589)
* chore(pylint): Remove top-level disable

* Update examples.py

* Update command.py

Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-09-15 09:30:23 -07:00
David Aaron Suddjian
540277ebb1 chore: Add option to set a custom color scheme as default (#16540)
* upgrade superset-ui for new flag

* configurable default categorical scheme

* dry refactor

* doc example

* Update superset-frontend/src/setup/setupColors.ts

Co-authored-by: Geido <60598000+geido@users.noreply.github.com>

* re-adding # type: ignore (suggestion from ville)

* ugh... missed a space.

Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2021-09-14 11:09:03 -07:00
John Bodley
1669947bcd chore(pylint): Reenable too-many-lines check (#16287)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-09-13 13:22:19 -07:00
cccs-joel
c6ac10716a feat: show build number value in the About if present in the config (#14955) 2021-09-13 10:59:08 -07:00
Daniel Vaz Gaspar
f2bc139e35 feat: feature flag configurable custom backend (#16618)
* feat: feature flag configurable custom backend

* fix lint

* simpler approach

* fix tests

* revert dependency updates

* Update superset/utils/feature_flag_manager.py

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

* Update superset/config.py

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2021-09-13 14:09:53 +01:00
Shiva Raisinghani
d25b0967a1 feat: Add parquet upload (#14449)
* allow csv upload to accept parquet file

* fix mypy

* fix if statement

* add test for specificying columns in CSV upload

* clean up test

* change order in test

* fix failures

* upload parquet to seperate table in test

* fix error message

* fix mypy again

* rename other extensions to columnar

* add new form for columnar upload

* add support for zip files

* undo csv form changes except usecols

* add more tests for zip

* isort & black

* pylint

* fix trailing space

* address more review comments

* pylint

* black

* resolve remaining issues
2021-08-31 10:20:25 +03:00
David Aaron Suddjian
486ef6b81f feat: config to customize bootstrap data overrides (#16386)
* feat: config to customize bootstrap data overrides

* comments
2021-08-23 14:40:14 -07:00
John Bodley
7e4c940314 chore(pylint): Enable useless-suppression check (#16388)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-24 03:58:41 +12:00
Kamil Gabryjelski
203c311ca3 feat(explore): make dnd controls clickable (#16119)
* Make ghost buttons clickable

* Popover for column control

* Make column dnd ghost button clickable

* Prefill operator only if column is defined

* Remove data-tests

* lint fix

* Hide new features behind a feature flag

* Change ghost button texts

* Remove caret for non clickable columns
2021-08-17 14:56:39 +02:00
John Bodley
24b43beff9 chore(pylint): Bump Pylint to 2.9.6 (#16146)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-14 10:32:28 +12:00
Elizabeth Thompson
5488a8a948 add config to hide some user menu items (#16156) 2021-08-10 09:03:13 -07:00
Beto Dealmeida
2db1615c83 feat: add profiling to Superset pages (#16136)
* feat: add profiling to Superset pages

* Address comments
2021-08-09 08:39:35 -07:00
John Bodley
41e8190575 chore: Use datetime.timedelta for defining durations in config (#16029)
* chore: use datetime.timedelta for defining durations

* Update config.py
2021-08-03 08:22:30 +12:00
Beto Dealmeida
f9b72505fb fix: revert DEFAULT_SQLLAB_LIMIT to default (#15869) 2021-07-23 11:38:42 -07:00