Commit Graph

147 Commits

Author SHA1 Message Date
cccs-tom
562e3a769b fix: Allow dataset owners to see their datasets (#20135)
(cherry picked from commit b0c6935f06)
2022-05-26 10:28:14 -03:00
Ville Brofeldt
419316e84a fix tests 2022-04-11 09:49:29 +03:00
Ville Brofeldt
a70f4dc52f chore: upgrade black (#19410) 2022-04-03 19:13:17 +03:00
Craig Rueda
f91f9f5aae feat(ui): Adding manifest prefix config (#19141)
* Adding manifest prefix config

* Fixing broken tests

* Fixing import

* Adding prefix for remaining assets

* Changing static prefix strategy

* Fixing DST test

* Fixing up formatting

* Fixing up async_query_manager.py types
2022-04-03 14:03:35 +03:00
Phillip Kelley-Dotson
e20788c0e1 chore: add intersect method from backend to fontend for upload extensions (#18811)
* chore: add intersect method from be to font end

* fix lint

* add suggestion

* fix python test

* run precommit

* fix pytlint

* update changes from masters

(cherry picked from commit 8d38675cbc)
2022-04-03 13:52:33 +03:00
Hugh A. Miles II
209e3f4554 feat: DBC-UI Globally available across the app 🌎 (#18722)
* more data nav menu

* fix lint and fix nav css

* update test and remove icons

* Update superset-frontend/src/views/components/Menu.test.tsx

Co-authored-by: Hugh A. Miles II <hughmil3s@gmail.com>

* Apply suggestions from code review

* use backend app.link to show new nav changes

* fix lint

* update test

* usetheme and remove chaining

* add more suggestions

* fix lint

* working global db connection

* add allowed extensions to bootstrap and hard code links

* remove backend links

* fix test

* apply stashed gsheets

* fix check for google sheets

* setup gsheets

* add extensions to frontend conf

* fix test and add be changes

* remove package json changes

* test is python test passes

* update python test and reremove app links

* fix tslint issues

* fix other linting tools

* fix pylint

* fix test

* fix

* refactor

* fix lint

* working fixed test

* clean up test

* address concerns

* address concerns

* change to tenarary

Co-authored-by: Phillip Kelley-Dotson <pkelleydotson@yahoo.com>
2022-02-24 13:00:44 -08:00
Phillip Kelley-Dotson
2421d176a2 chore: move data nav menu to plus menu (#18629)
* more data nav menu

* fix lint and fix nav css

* update test and remove icons

* Update superset-frontend/src/views/components/Menu.test.tsx

Co-authored-by: Hugh A. Miles II <hughmil3s@gmail.com>

* Apply suggestions from code review

* use backend app.link to show new nav changes

* fix lint

* update test

* usetheme and remove chaining

* add more suggestions

* fix lint

* add allowed extensions to bootstrap and hard code links

* remove backend links

* fix test

* add extensions to frontend conf

* fix test and add be changes

* test is python test passes

* update python test and reremove app links

* fix ts and add t's

Co-authored-by: Hugh A. Miles II <hughmil3s@gmail.com>
2022-02-16 17:37:14 -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
Cemre Mengu
c6c4143b04 fix: show SCHEDULED_QUERIES when defined (#17854)
Without this entry `Schedule` option for `SqlLab` will not be shown in UI since it will never be put under `bootstrapData.common.conf` needed in here 69f9ee8f5e/superset-frontend/src/SqlLab/components/ScheduleQueryButton/index.tsx (L33)
2021-12-27 16:49:21 -03: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
Gnought
4e9f812dab fix: removed redundant logger definition (#17289)
* Removed redundant logger defintion

* Fixed code style
2021-11-04 17:09:00 +08: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
Erik Ritter
031f594fa3 fix: prevent caching error pages (#17100) 2021-10-13 14:51:44 -07: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
Beto Dealmeida
7f804d62d1 feat: show nice error page in prod (#16695) 2021-09-14 16:56:25 -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
Grace Guo
78d8089b18 fix: Disable Slack notification method if no api token (#16367)
* feat: allow company choose alert/report notification methods

* fix: disable Slack as notification method if no api token

* fix unit test

* improve typing
2021-08-24 17:28:50 -07: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
John Bodley
be7065faf8 chore(pylint): Reenable raise-missing-from check (#16266)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 10:26:10 +12:00
Elizabeth Thompson
5488a8a948 add config to hide some user menu items (#16156) 2021-08-10 09:03:13 -07:00
John Bodley
4ba17092fa fix: Ensure SupersetError.extra is always a dict (#15848)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-07-24 10:19:30 +12:00
ʈᵃᵢ
de17acd618 feat(menu): expand support for custom branding (#15628) 2021-07-14 10:51:53 -06:00
Erik Ritter
4d1672f496 fix: error page status codes (#15620) 2021-07-09 13:33:51 -07:00
Beto Dealmeida
cc2b4fe3f4 fix: show custom errors in SQL Lab (#14959)
* fix: show custom errors in SQL Lab

* Fix lint

* Fix test

* Update superset/views/base.py

Co-authored-by: ʈᵃᵢ <tai@apache.org>

* Fix lint

* Debug failing test

* Remove print()

* Debug flaky tests

* Fix test

Co-authored-by: ʈᵃᵢ <tai@apache.org>
2021-06-10 15:20:31 -07:00
Ville Brofeldt
422c32cb7d feat(filter-box): hide druid options if druid not enabled (#14921)
* feat(filter-box): hide druid options if druid not enabled

* add bootstrap export
2021-06-07 13:49:56 -06:00
Beto Dealmeida
8cfebc0c66 feat: do not redirect on 404/500 (#14724) 2021-05-20 09:44:20 -07:00
Beto Dealmeida
c3d1f1084e feat: redirect 404/500 to static pages (#14677)
* feat: redirect 404/500 to static pages

* Show pages only on html requests
2021-05-18 20:50:39 -07:00
Beto Dealmeida
065b3f933d feat: redirect to /login when CSRF expired (#14675)
* feat: redirect to /login when CSRF expired

* Show exceptions on API requests

* Use is_json
2021-05-18 18:48:35 -07:00
David Aaron Suddjian
21cf12a480 chore(dashboard): Integrate dashboard app into the SPA bundle (#14356)
* chore(dashboard): Integrate dashboard app into the SPA bundle

* fix url params

* change variable name

* change title correctly

* custom css

* lint

* remove unused file

* remove content assertions from dashboard tests

* fix case with missing bootstrap data

* fix: respect crud views flag

* crud views -> spa

* remove unused dashboard templates

* fix: remove unused variable

* fix: missed a spot with the crudViews -> spa

* router link to dashboard from dashboard list page

* link using the router when in card mode

* lint

* fix tests, add memory router

* remove  dashboard app files

* split up the bundle a little more

* use webpack preload
2021-05-04 08:51:17 -07:00
ʈᵃᵢ
0b9fd24cf3 fix(logging): log unexpected exceptions as exceptions (#14399) 2021-05-03 12:33:02 -06:00
Hugh A. Miles II
3a011ecc06 chore: stop logging SupersetExceptions if status < 500 (#14088)
* setup exception

* figured out

* Update base.py
2021-04-13 12:52:14 -04:00
Hugh A. Miles II
de49f0d2de fix: add exception to catch session not having JWT (#14036) 2021-04-11 16:47:06 -04:00
Rob DiCiuccio
806fb73d25 feat(SIP-39): Websocket sidecar app (#11498)
* WIP node.js websocket app

* Load testing

* Multi-stream publish with blocking reads

* Use JWT for auth and channel ID

* Update ws jwt cookie name

* Typescript

* Frontend WebSocket transport support

* ws server ping/pong and GC logic

* ws server unit tests

* GC interval config, debug logging

* Cleanup JWT cookie logic

* Refactor asyncEvents.ts to support non-Redux use cases

* Update tests for refactored asyncEvents

* Add eslint, write READMEs, reorg files

* CI workflow

* Moar Apache license headers

* pylint found something

* adjust GH actions workflow

* Improve documentation & comments

* Prettier

* Add configurable logging via Winston

* Add SSL support for Redis connections

* Fix incompatible logger statements

* Apply suggestions from code review

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

* rename streamPrefix config

Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
2021-04-08 11:12:03 -07:00
Beto Dealmeida
a82d72fef6 feat: initial work to make v1 API compatible with SIP-40 and SIP-41 (#13960)
* WIP

* Use errorhandler

* Add response schema

* Fix status on HTTPException

* s/found/encountered/g

* Fix test

* Fix lint

* Fix lint and test
2021-04-06 22:06:32 -07:00
cccs-jc
24f805ebc4 feat: added support to configure the default explorer viz (#13610)
* added support to configure the default explorer viz

* code review fix

* lint

Co-authored-by: cccs-jc <cccs-jc@cyber.gc.ca>
Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
2021-03-26 15:27:36 -07:00
Ben Reinhart
55ba47ec2e fix(#13734): Properly escape special characters in CSV output (#13735)
* fix: Escape csv content during downloads

* Reuse CsvResponse object

* Use correct mimetype for csv responses

* Ensure that headers are also escaped

* Update escaping logic
2021-03-26 15:22:00 -07:00
Hugh A. Miles II
85d1e80544 fix: Update display string when sqlalchemy doc config us changed (#13219) 2021-02-18 17:04:13 -05:00
Hugh A. Miles II
3c58fc5ef5 feat: Move SQLAlchemy url reference to config (#13182) 2021-02-18 12:42:15 -05:00
simcha90
275e57f4f1 feat(style-theme): add support for custom superset themes (#12858)
* feat(style-theme): add support for custom superset themes

* refactor: update var names

* refactor: update name of theme
2021-02-02 13:09:49 +02:00
Jesse Yang
55c8f9ba60 feat(explore): allow opening charts with missing dataset (#12705) 2021-01-25 15:09:03 -08:00
Amit Miran
0f243c6ddd refactor: extract to method is_user_admin (#12570) 2021-01-18 09:15:25 +02:00
Amit Miran
8214237638 feat: Custom color schemes support (#12210)
* feat: setupColors.ts support
docs: add FAQ to custom color schemes

* fix: delete mistake lines

* fix: CR note

* feat: support for SETUP_EXTRA

* fix: remove after cr

* fix: CR note

* fix: after CR migrate from SETUP_EXTRA into 2 color scheme array

* fix: typing issues

* fix: python generic typing

* chore: add neat code examples
2021-01-07 09:07:00 +02:00
David Aaron Suddjian
b5dd0f32cc feat: Dynamically imported viz plugins (#10288)
* first attempts at dynamic plugin loading

* dynamic import working for explore

* memoize appropriately

* add a backend for dynamic plugins

* hack at getting dynamic plugins working with dashboards

* more work on making it work, + feature flag

* lint

* actions to fix explore state when plugins load

* handle dynamic control panel, functionify ExploreViewContainer

* fix: rearrange migrations branch

* fix: name and key as strings with length 50

* bundle url length 2000

* bundle url to text
for some reason not supported on my sql

* fix: too long varchart

* fix: pre-commit typing

* fix: licenses

* fix: add slice container was not initing feature flags

* fix: undo linting issue

* fix: adjust down revision again

* fix: adjust down revision again

* isort

* pylint

* god damn linters

* remove unnecessary(?) loading message

* only log non-standard errors

* testing

* python is terrible

* see above commit message

* fix imports in DynamicPluginProvider

* fix

* shift migration forward

* lint

* fix form data calculations to handle missing control config

* temp commit - waiting for superset-ui changes and crud fixes

* remove unnecessary todo

* use new superset-ui shared module function

* fetch the plugins instead of hardcoding the test one

* migration sort

* remove duplicated import statement

* format

* try moving the import 🙄

* copy

* fix frontend tests

* safe access

* comment out dead code

* isort

* disable pylint on necessary lines

* use @superset-ui/logging instead of console

* remove temp code

* rearrange some code

* try triggering mouseover in cypress before click

* use loading spinner instead of text

* trying to fix cypress

* attempt cypress fix

* customize permissions

* update package lock

* only admins can write to plugins by default

* better copy

* disable flaky tests

* use makeApi

* flaky tests

* cleanup code

* flaaaakkkyyyyyy

* dry

Co-authored-by: amitNielsen <amit.miran@nielsen.com>
2020-12-19 07:06:11 -08:00
Beto Dealmeida
6e7f276775 feat: initial custom error messages for SQL Lab (#12080) 2020-12-17 22:58:21 -08:00
Rob DiCiuccio
4d329071a1 feat(SIP-39): Async query support for charts (#11499)
* Generate JWT in Flask app

* Refactor chart data API query logic, add JWT validation and async worker

* Add redis stream implementation, refactoring

* Add chart data cache endpoint, refactor QueryContext caching

* Typing, linting, refactoring

* pytest fixes and openapi schema update

* Enforce caching be configured for async query init

* Async query processing for explore_json endpoint

* Add /api/v1/async_event endpoint

* Async frontend for dashboards [WIP]

* Chart async error message support, refactoring

* Abstract asyncEvent middleware

* Async chart loading for Explore

* Pylint fixes

* asyncEvent middleware -> TypeScript, JS linting

* Chart data API: enforce forced_cache, add tests

* Add tests for explore_json endpoints

* Add test for chart data cache enpoint (no login)

* Consolidate set_and_log_cache and add STORE_CACHE_KEYS_IN_METADATA_DB flag

* Add tests for tasks/async_queries and address PR comments

* Bypass non-JSON result formats for async queries

* Add tests for redux middleware

* Remove debug statement

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

* Skip force_cached if no queryObj

* SunburstViz: don't modify self.form_data

* Fix failing annotation test

* Resolve merge/lint issues

* Reduce polling delay

* Fix new getClientErrorObject reference

* Fix flakey unit tests

* /api/v1/async_event: increment redis stream ID, add tests

* PR feedback: refactoring, configuration

* Fixup: remove debugging

* Fix typescript errors due to redux upgrade

* Update UPDATING.md

* Fix failing py tests

* asyncEvent_spec.js -> asyncEvent_spec.ts

* Refactor flakey Python 3.7 mock assertions

* Fix another shared state issue in Py tests

* Use 'sub' claim in JWT for user_id

* Refactor async middleware config

* Fixup: restore FeatureFlag boolean type

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2020-12-10 20:21:56 -08:00
Erik Ritter
f2d9f00013 feat: allow user to view their profile again (#11816) 2020-12-02 09:14:23 -08:00
Grace Guo
f292015ccd fix (dataset editor): allow Source tab readOnly mode (#11781)
* fix (dataset editor) add read-only mode for Source tab

* add feature flag, add unit tests

* rebase and fix comment

* add message for padlock

* move padlock to the bottom of tab
2020-12-01 17:10:33 -08:00
ʈᵃᵢ
432e5ab460 feat: Query History CRUD list view (#11574) 2020-11-12 11:55:13 -10:00
Maxime Beauchemin
854a4614a8 feat: make logo link point to welcome page (#11519) 2020-11-01 09:22:09 -08:00