Compare commits

..

439 Commits

Author SHA1 Message Date
Elizabeth Thompson
5045ff4d91 chore: add release to pip requirements (#17752)
* add requests to pip requirements

* fix tests

* add redis typing for mypy

* fix test
2021-12-21 17:46:33 -08:00
Elizabeth Thompson
1e2b2f10f0 update changelog 2021-12-21 17:19:02 -08:00
Elizabeth Thompson
96c18b4272 fix test lint (#17835) 2021-12-21 17:17:13 -08:00
Geido
8057582b02 feat: Certify Charts and Dashboards (#17335)
* Certify charts

* Format

* Certify dashboards

* Format

* Refactor card certification

* Clear details when certified by empty

* Show certification in detail page

* Add RTL tests

* Test charts api

* Enhance integration tests

* Lint

* Fix dashboards count

* Format

* Handle empty value

* Handle empty slice

* Downgrade migration

* Indent

* Use alter

* Fix revision

* Fix revision
2021-12-21 11:51:55 -08:00
serenajiang
70228ad3fb fix(dashboard): commit update once (#17781)
(cherry picked from commit 3657cbea7f)
2021-12-20 13:38:55 -08:00
Geido
f4661d6924 fix: Remove positions from json_metadata (#17766)
* Remove positions from json_metadata

* Update superset-frontend/src/dashboard/components/PropertiesModal/index.tsx

Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>

* Indent

Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
(cherry picked from commit 274fb37a91)
2021-12-20 13:38:55 -08:00
John Bodley
398a01f7dc chore(engine): Translate fractional time grains—requires @superset-ui bump (#17078)
* chore(engine): Translate fractional time grains

* Bump @superset-ui

Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-12-15 17:01:09 -08:00
Elizabeth Thompson
752062674b Revert "fix: import should accept old keys (#17330)"
This reverts commit 0b8507fe77.
2021-12-15 09:30:26 -08:00
Daniel Vaz Gaspar
cda62508c4 ci: temp fix for mysqlclient on an OS regression bug (#17724) 2021-12-15 09:30:20 -08:00
Elizabeth Thompson
2e0fe93269 fix prettier/lint error 2021-12-10 17:08:04 -08:00
Elizabeth Thompson
4991272b9c update changelog 2021-12-10 16:24:17 -08:00
Geido
ba6d5b9754 fix: Save properties after applying changes in Dashboard (#17570)
* Refactor PropertiesModal

* Update json_metadata fully

* Clean up

* Verify values

* Catch changed to metadata

* Always updated dashboard info on update

* Avoid unnecessary fetches

* Formt

* Fix copy dashboards

* Fixes onUpdate onCopy handlers

* Pylint

* Update tests

* Clean up

* Handle data on show

* Change Save to Apply

* Update Cypress save test

* Update Cypress edit prop test

* Update PropertiesModal test

* Fix duplicate request with cross filters

* Improve code style

* Fix typo

* Lint
2021-12-10 16:12:49 -08:00
Ville Brofeldt
8b0ab83119 chore(sql): clean up invalid filter clause exception types (#17702)
* chore(sql): clean up invalid filter clause exception types

* fix lint

* rename exception
2021-12-10 16:07:03 -08:00
Geido
4c00bd4332 fix(Dashboard): Copy dashboard with duplicating charts 500 error (#17707)
* Fix copy dashboard with charts

* Fix Cypress test
2021-12-10 16:01:05 -08:00
Beto Dealmeida
77c4f2cb11 fix: set correct schema on config import (#16041)
* fix: set correct schema on config import

* Fix lint

* Fix test

* Fix tests

* Fix another test

* Fix another test

* Fix base test

* Add helper function

* Fix examples

* Fix test

* Fix test

* Fixing more tests

(cherry picked from commit 1fbce88a46)
2021-12-10 15:40:06 -08:00
Elizabeth Thompson
3d8ce130ba update changelog 2021-12-08 14:59:13 -08:00
Craig Rueda
9837feff19 chore(datasets): Sanitizing /save response (#17579)
(cherry picked from commit ac76defc05)
2021-12-08 13:51:15 -08:00
Corbin Robb
9468bdf0c1 fix(sqllab): Have table name tooltip only show when name is truncated (#17386)
* Add conditional to table name tooltip to only show when overflowing

* Remove uneccessary state and useEffect, a little clean up and slight refactoring

Co-authored-by: Corbin Robb <corbin@Corbins-MacBook-Pro.local>
(cherry picked from commit 8e1619b105)
2021-12-06 13:46:14 -08:00
Elizabeth Thompson
c42ff7972f use full resultType with csv download on chart in dashboard (#17431)
(cherry picked from commit 71e3fa1bf3)
2021-12-06 13:46:14 -08:00
Ville Brofeldt
46343a9dca fix: avoid escaping bind-like params containing colons (#17419)
* fix: avoid escaping bind-like params containing colons

* fix query for mysql

* address comments

(cherry picked from commit ad8a7c42f9)
2021-12-06 13:46:14 -08:00
Erik Ritter
9818bc5e7a Revert "fix(native-filters): Fix update ownState (#17181)" (#17311)
This reverts commit cf284ba3c7.

(cherry picked from commit 7c6d6f47bf)
2021-12-06 13:46:14 -08:00
Geido
733fc7494c Handle undefined (#17183)
(cherry picked from commit 91199c30d8)
2021-12-06 13:46:13 -08:00
Elizabeth Thompson
361e510cae update changelog and updating.md for 1.4.0 2021-11-22 17:27:19 -08:00
Elizabeth Thompson
eb64f82c20 fix conflicts 2021-11-22 16:48:37 -08:00
Grace Guo
3aa554b422 fix: sql lab crash caused by invalid template (#17133)
(cherry picked from commit 96f4421961)
2021-11-22 16:11:45 -08:00
David Aaron Suddjian
ed45717d5f fix(explore): remove unnecessary parameters from the explore url (#17123)
* remove unnecessary parameters from the explore url

* refactor, test

(cherry picked from commit 57f869cf22)
2021-11-22 16:11:45 -08:00
wijnanjo
6f932f9ec1 fix for undefined userId (#17117)
Co-authored-by: jo.wijnant <jo.wijnant@kontron.com>
(cherry picked from commit c9c669d179)
2021-11-22 16:11:45 -08:00
Lyndsi Kay Williams
b577773e30 fix(sqllab): Hover tooltip flashes in SQL Lab (#17068)
* Changed SQL Lab result column header-style width to max-content

* Changed .ant-tooltip-open to block and tooltip placement to topLeft

* Moved tooltip style changes to local implementation instead of global

(cherry picked from commit 635898a76d)
2021-11-22 16:11:45 -08:00
Erik Ritter
dfd0ed395c fix: prevent caching error pages (#17100)
(cherry picked from commit 031f594fa3)
2021-11-22 16:11:45 -08:00
Beto Dealmeida
cca78f1b6e fix: accept headers on import (#17080)
* fix: accept headers on import

* Add unit test

(cherry picked from commit 40e9add641)
2021-11-22 16:11:44 -08:00
jinghua-qa
b4f4f4cdfa fix(other): column name in created content on profile page (#17029)
* fix: fix name in created content on profile page

* add more fix on mutater

(cherry picked from commit f2d41dc416)
2021-11-22 16:11:44 -08:00
Geido
5899ae163a fix: Exclude SUPERSET_DEFAULT from the list of available color schemes (#17018)
* Handle SUPERSET_DEFAULT theme

* Update superset-frontend/src/explore/components/controls/ColorSchemeControl.jsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update superset-frontend/src/explore/components/controls/ColorSchemeControl.jsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
(cherry picked from commit 14b7f6cdba)
2021-11-22 16:11:44 -08:00
Phillip Kelley-Dotson
9459d09ae7 initial fix (#16998)
(cherry picked from commit 2c8e06e929)
2021-11-22 16:11:44 -08:00
Beto Dealmeida
0b8507fe77 fix: import should accept old keys (#17330)
* fix: import should accept old keys

* Fix lint

* Preserve V1 schema
2021-11-22 11:58:13 -08:00
Beto Dealmeida
c015e661a9 fix: clear 'delete' confirmation (#17345)
* fix: clear 'delete' confirmation

* Add tests

(cherry picked from commit 43f4ab845a)
2021-11-22 11:56:56 -08:00
Elizabeth Thompson
7d9f63eda7 fix: add fallback and validation for report and cron timezones (#17338)
* add fallback and validation for report and cron timezones

* add logging to exception catch

* Run black

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
(cherry picked from commit f10bc6d8fe)
2021-11-22 11:53:45 -08:00
Hugh A. Miles II
30c6ec07ef fix: Allow users to update database in Dataset Edit Modal (#17265)
* add condition to fix save

* remove console.log

(cherry picked from commit d0bad96b1a)
2021-11-22 11:53:45 -08:00
Elizabeth Thompson
680cdca14a fix: update values for default timezone selector (#17124)
* update values for default timezone selector

* fix casing and comment

* Update TimezoneSelector.test.tsx

(cherry picked from commit ae4ced8da6)
2021-11-22 11:53:45 -08:00
AAfghahi
8a24374f9f fix(AlertReportModal): Text Area Change (#17176)
* Text Area Change

* added unique key to component

* tests passing

* changed css

* data flow and naming convention

(cherry picked from commit 5948a9fd02)
2021-11-22 11:31:20 -08:00
Kamil Gabryjelski
33826cd50f fix(explore): Metrics disappearing after removing metric from dataset (#17201)
* fix(explore): Metrics disappearing after removing metric from dataset

* fix test

* Apply fix to non-dnd controls

* Make adhoc metrics pick up changes from dataset columns

* Remove console log

* Fix bug in nondnd controls

(cherry picked from commit fa44325a36)
2021-11-22 11:31:20 -08:00
Ville Brofeldt
c4b57e6b3e ci: fix broken test skips (#17005)
(cherry picked from commit 9e980b6f2b)
2021-11-22 11:31:20 -08:00
Michael S. Molina
7db1caa2ad fix: Unnecessary queries when changing filter values (#16994)
(cherry picked from commit c471a85170)
2021-11-22 11:31:20 -08:00
jinghua-qa
687676cb09 fix: letter format of sort chart in dashboard edit (#17003)
(cherry picked from commit 6dc00b3e3f)
2021-11-22 11:31:20 -08:00
serenajiang
2eaf5c854e fix(sqllab): SqlJsonExecutionContext.query null pointer (#16997)
(cherry picked from commit cde4cdcd0c)
2021-11-22 11:31:20 -08:00
Lyndsi Kay Williams
09b853c831 fix: FilterableTable result div width (#16912)
* FilterableTable result div width is now inherit

* Changed style to css

(cherry picked from commit 90cfa7fb22)
2021-11-22 11:31:20 -08:00
Erik Ritter
5f34ae2cf3 fix: Use production build config for cypress tests (#16978)
* fix: Use production build config for cypress tests

* set usedExports to global

(cherry picked from commit 2757b93fea)
2021-11-22 11:31:20 -08:00
Geido
ea3d51efec fix: Color consistency (#17089)
* Update label colors on the fly

* Clean up

* Improve getFormDataWithExtraFilters

* Improve code structure

* Remove labelColors from formData

* Exclude label_colors from URL

* Refactor color scheme implementation

* Clean up

* Refactor and simplify

* Fix lint

* Remove unnecessary ColorMapControl

* Lint

* Give json color scheme precedence

* Add label_colors prop in metadata

* Separate owners and dashboard meta requests

* Remove label_colors control

* bump superset-ui 0.18.19

* Fix end of file

* Update tests

* Fix lint

* Update Cypress

* Update setColorScheme method

* Use Antd modal body
2021-11-22 10:55:21 -08:00
Phillip Kelley-Dotson
55b3da661e fix: show onhover menu only in edit mode (#17034)
* fix on markdown hover menu

* lint-fix
2021-11-22 10:49:04 -08:00
Geido
b775193f9f fix: Verify when null value should be undefined in Select (#17013)
* Check for null value

* Safety chek SelectControl and SelectAsyncControl
2021-11-22 10:46:23 -08:00
Geido
7c966c52dc chore: Select component refactoring - SelectAsyncControl - Iteration 5 (#16609)
* Refactor Select

* Implement onError

* Separate async request

* Lint

* Allow clear

* Improve type

* Reconcile with Select latest changes

* Fix handleOnChange

* Clean up

* Add placeholder

* Accept null values

* Update superset-frontend/src/explore/components/controls/SelectAsyncControl/index.tsx

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

* Clean up

* Implement type guard

* Fix lint

* Catch error within loadOptions

Co-authored-by: David Aaron Suddjian <1858430+suddjian@users.noreply.github.com>
2021-11-22 10:46:07 -08:00
CodeingBoy
6da69a821f fix(sqllab): Bugfix for tracking url transformation (#17263)
* Bugfix for tracking url transformation

* Fix linting

(cherry picked from commit 2544a4a8ac)
2021-11-17 13:09:20 -08:00
Christian Pfarr
03481fe28d feat: Drill ODBC/JDBC Impersonation feature (#17353)
* Added Drill ODBC Impersonation feature and necessary translations/docs

* Code Cleanup

* add jdbc impersonation_target parameter

* add unittests for DrillEngineSpec.modify_url_for_impersonation method

* reformat test_drill.py with black formatter

* run pre-commit locally

Co-authored-by: Christian Pfarr <Christian.Pfarr@deutschebahn.com>
Co-authored-by: Christian Pfarr <z0ltrix+gitlab@pm.me>
(cherry picked from commit 333b1371f7)
2021-11-17 13:09:19 -08:00
Étienne Boisseau-Sierra
f467a7ca57 fix(cli): fail CLI script on failed import/export (#16976)
* Test that failing export or import is done properly

For each CLI entry-point we will modify, we make sure that:

- a failing process exits with a non-0 exit code,
- an error is logged.

Signed-off-by: Étienne Boisseau-Sierra <etienne.boisseau-sierra@unipart.io>

* Exit process with error if export/import failed

Bubble exception up when failing import or export

During a CLI import or export of dashboards, if the process fails, the
exception it caught and a simple message is sent to the logger.
This makes that from a shell point of view, the script was successfull —
cf. #16956.

To prevent this, we want to ensure that the process exits with an error
(i.e., a non-0 exit-code) should the export or import fail mid-flight.

Signed-off-by: Étienne Boisseau-Sierra <etienne.boisseau-sierra@unipart.io>
(cherry picked from commit f0c0ef7048)
2021-11-17 13:09:18 -08:00
simcha90
35d8a40634 fix(native-filters): Fix update ownState (#17181)
* fix:fix get permission function

* fix: fix own state update

* refactor: fix CR notes

(cherry picked from commit cf284ba3c7)
2021-11-17 13:09:18 -08:00
Geido
5d43a5926c chore(Dashboard): Disable save button in Native Filters when an error is present (#17037)
* Disable save on error

* Remove removed erroredFilter

* Fix cdisabled check
2021-10-27 14:09:07 -07:00
Geido
52ac5ecdbb chore(Dashboard): Highlight errored filters on the left pane of the Native Filters form plus several enhancements (#16940)
* Implement errored filters

* Clean up

* Handle errors on the fly

* Implement handleErroredFilters

* Reset errors

(cherry picked from commit a6173f1929)
2021-10-27 14:07:23 -07:00
Erik Ritter
e80c8ea980 fix: error alert levels again (#17027) 2021-10-27 13:57:42 -07:00
Erik Ritter
43019a1b9d fix: error alerts again (#17026) 2021-10-27 13:50:41 -07:00
Erik Ritter
3f869aded2 fix: error alerts js crash (#17015) 2021-10-27 13:49:30 -07:00
Michael S. Molina
f3bde45e5c fix: Filtering db names while creating dataset is not working (#17023) 2021-10-27 13:46:30 -07:00
Hugh A. Miles II
cf4e129f5d use typing_extension instead (#17174)
(cherry picked from commit aa0f4d6c4f)
2021-10-27 13:38:55 -07:00
Geido
23313fdb1f fix(Explore): Undefined owners (#17167)
* Reconcile owners data

* Fix on save

(cherry picked from commit f580f6bcba)
2021-10-27 13:38:55 -07:00
Ville Brofeldt
d90bfa65ef fix(filter-indicator): show filters handled by jinja as applied (#17140)
(cherry picked from commit d7834f17e3)
2021-10-27 13:38:54 -07:00
simcha90
4e3fa1a141 feat: Custom filters control (#17006)
* fix:fix get permission function

* feat: customize filter control

* fix: fix types

* fix: fix merge

* refactor: update according CR

* refactor: fix CR notes

(cherry picked from commit eebc953dd5)
2021-10-27 13:38:54 -07:00
Ville Brofeldt
35dda573cf fix: escape bind-like strings in virtual table query (#17111)
(cherry picked from commit 434b5767c9)
2021-10-27 13:38:54 -07:00
Daniel Vaz Gaspar
5bfa6e96cd fix: Bump FAB to 3.3.4 (#17113)
(cherry picked from commit d944503873)
2021-10-27 13:38:54 -07:00
Kamil Gabryjelski
81da0fb466 fix(dashboard): race condition between hydrating dashboard and set active tabs (#17084)
* fix(dashboard): race condition between hydrating dashboard and set active tabs

* Fix linting

* Change variable name

(cherry picked from commit 3ad7483dc1)
2021-10-27 13:38:54 -07:00
Hugh A. Miles II
c03771dc6d fix: Owners selection in dataset edit UX (#17063)
* boilerplate

* update owner select component

* this is working

* update onchange

* refactorig

* you need to useMemo or things break

* update test

* prettier

* move logic into bootstrap data endpoint

* address concerns

* oops

* oops

* fix test

(cherry picked from commit 959fd763a8)
2021-10-27 13:38:54 -07:00
Elizabeth Thompson
ed98027adc add logging on successful data uploads (#17065)
(cherry picked from commit c2e1ab6550)
2021-10-27 13:38:54 -07:00
Beto Dealmeida
43e27b1137 fix: clear modal state after adding dataset (#17044)
* fix: clear modal state after adding dataset

* Fix test

* Small fixes

(cherry picked from commit 16a1df75fc)
2021-10-27 13:38:53 -07:00
Michael S. Molina
bd5d787257 fix: Loading indicator of table and schema selectors (#17040)
(cherry picked from commit 7c1c89c94b)
2021-10-27 13:38:53 -07:00
AAfghahi
f56a3d8b1a bug fix (#17019)
(cherry picked from commit e32a12fa0b)
2021-10-27 13:38:53 -07:00
Kamil Gabryjelski
3d77daaf68 fix(dashboard): Race condition when setting activeTabs with nested tabs (#17007)
* fix(dashboard): Race condition when setting activeTabs with nested tabs

* Remove activeTabs prop from Tabs

(cherry picked from commit 45908ff104)
2021-10-27 13:38:52 -07:00
Yongjie Zhao
19d2fef490 fix: rolling and cum operator on multiple series (#16945)
* fix: rolling and cum operator on multiple series

* add UT

* updates

(cherry picked from commit fd8461406d)
2021-10-27 13:38:52 -07:00
Hugh A. Miles II
4d33f7b7b6 fix: check if owners are actually being updated in PUT /datasets/<id> (#16941)
* check if owners are actually being updated

* move logic to FE

* fix

* fix

(cherry picked from commit 40861b3db3)
2021-10-27 13:38:52 -07:00
Beto Dealmeida
ddb35a3633 fix(BigQuery): explicitly quote columns in select_star (#16822)
* fix (BigQuery): explicitly quote columns in select_star

* Fix test

* Fix SELECT * in BQ

* Add unit tests

* Remove type changes

(cherry picked from commit c993c5845f)
2021-10-27 13:38:52 -07:00
Michael S. Molina
8755911765 chore: Translates the favorite filter param (#16990)
(cherry picked from commit 191033cb44)
2021-10-27 13:38:52 -07:00
Michael S. Molina
012f6ac206 fix: When click on "View all" from favorite tab, get error (#16988)
(cherry picked from commit c57719128f)
2021-10-27 13:38:51 -07:00
Youkyoung Cha
b2b3cd73fd fix: handle mixed time-series error (#16928)
* rebase to master

* Fix line 402

Co-authored-by: yougyoung <yougyoung@pubg.com>
(cherry picked from commit 93ebe3d963)
2021-10-27 13:38:51 -07:00
Ville Brofeldt
6ed84f2d35 feat: upgrade docker image to py38 and add support for py39 (#16889)
* feat: upgrade docker image to py38 and add support for py39

* update required tests

(cherry picked from commit 82601abe17)
2021-10-27 13:38:51 -07:00
Elizabeth Thompson
a6a3cedf6e fix: Revert "fix: RBAC hide right menu (#16902)" (#16968)
* Revert "fix: RBAC hide right menu (#16902)"

This reverts commit 87baac7650.

* fix failing test

(cherry picked from commit 5866d5ebb0)
2021-10-27 13:38:51 -07:00
Grace Guo
083ff12864 chore:upgrade superset-ui dependencies (#16965)
(cherry picked from commit 85e3cec521)
2021-10-27 13:38:51 -07:00
Ville Brofeldt
739d8418a7 fix(build): make npm linking work pt. 2 (#16958)
* fix(build): make npm linking work pt. 2

* remove explicit symlinks conf
2021-10-04 19:47:07 +03:00
Geido
3f0756f637 chore: Select component refactoring - SelectControl - Iteration 5 (#16510)
* Refactor Select DatasourceEditor

* Fire onChange with allowNewOptions

* Clean up

* Refactor Select in AnnotationLayer

* Handle on clear

* Update tests

* Refactor Select in SpatialControl

* Show search

* Refactor Select in FilterBox

* Remove search where unnecessary

* Update SelectControl - WIP

* Refactor Controls

* Update SelectControl tests

* Clean up

* Test allowNewOptions false

* Use SelectControl AnnotationLayer

* Use SelectControl SpatialControl

* Clean up

* Render custom label

* Show search

* Implement filterOption

* Improve filterOption

* Update Cypress

* Update Cypress table test

* Use value for defaultValue

* Merge with latest changes

* Reconcile with latest Select changes

* Update superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.test.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update superset-frontend/src/explore/components/controls/AnnotationLayerControl/AnnotationLayer.test.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Revert changes to test

* Call onPopoverClear when v value is undefined

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-10-04 18:24:41 +03:00
Michael S. Molina
1ab36c94f3 chore: Moves spec files to the src folder - iteration 7 (#16943) 2021-10-04 10:56:49 -03:00
Michael S. Molina
028f6c0d3f chore: Moves spec files to the src folder - iteration 6 (#16935) 2021-10-04 10:56:30 -03:00
Daniel Vaz Gaspar
6d1fbb0668 fix: don't log invalid redirect URL send by user (#16955) 2021-10-04 13:52:57 +01:00
Ville Brofeldt
3dee22adfd fix(examples): incorrect covid row component id (#16953) 2021-10-04 12:45:31 +03:00
Yongjie Zhao
387ac2b6d3 fix: replace absolute difference with difference in compareOperator (#16930)
* fix: replace absolute difference with difference in compareOperator

* fix ut
2021-10-04 13:31:19 +08:00
Craig Rueda
ace9c78684 fix(explore): Ensuring parameters key is included (#16949)
* Ensuring parameters key is included

* Fixing linter
2021-10-03 15:07:13 -07:00
ofekisr
c05c6b3db4 fix missing series validation not raised an exception (#16946) 2021-10-03 14:29:56 +03:00
ofekisr
0d0c759cfe refactor: sql lab command: separate concerns into different modules (#16917)
* chore move sql_execution_context to sqllab package

* add new helper methods into base Dao

* refactor separate get existing query concern from command

* refactor separate query access validation concern

* refactor separate get query's database concern from command

* refactor separate get query rendering concern from command

* refactor sqllab_execution_context

* refactor separate creating payload for view

* chore decouple command from superset app

* fix pylint issues

* fix failed tests

* fix pylint issues

* fix failed test

* fix failed black

* fix failed black

* fix failed test
2021-10-03 11:15:46 +03:00
Junlin Chen
f0060a63c0 Native_filter on by default (#16874) 2021-10-02 18:58:59 +03:00
Yongjie Zhao
6225c9a4a3 fix: replace absolute difference with difference in legacy charts (#16931) 2021-10-02 09:10:20 +08:00
Phillip Kelley-Dotson
3f6a24fe1a chore: add certified columns to top of list (#16910)
* initial commit

* inital commit

* add suggestions

* remove changes

* Update superset-frontend/src/explore/components/DatasourcePanel/index.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-10-01 11:50:03 -07:00
apurva-sigmoid
420eff42b8 feat: add Firebolt DB engine spec (#16903)
* New branch from superset for integration with firebolt sqlalchemy adapter

* Added db_engine_spec file for Firebolt

* Removed firebolt code from superset repo

* Deleted virtual env commit

* Adding time grain changes to firebolt.py

* Updated README.md

Added steps to install and run Superset with Firebolt SQLAlchemy Adapter

* Update README.md

Reduced installation steps. Using PyPi installation for adapter now

* Revert "Update README.md"

This reverts commit 5ed17c7a45.

* Revert "Updated README.md"

This reverts commit 45c5072649.

* added epoch methods, added test cases for firebolt db engine spec and edited setup.py

* Added license to files

* Added documentation for Firebolt-SQLAlchemy

* Removed trailing whitespace

Co-authored-by: raghavsharma <raghavs@sigmoidanalytics.com>
Co-authored-by: raghavSharmaSigmoid <88667094+raghavSharmaSigmoid@users.noreply.github.com>
2021-10-01 19:43:15 +03:00
Ville Brofeldt
a07c9d591b fix(dashboard): recursive parent on dashboard components (#16933)
* fix(dashboard): don't add recursive parents on wrapper component

* add test

* refine logic and add new test
2021-10-01 08:13:38 -07:00
Michael S. Molina
90f711f45c chore: Moves spec files to the src folder - iteration 5 (#16927) 2021-10-01 11:24:41 -03:00
Hugh A. Miles II
87baac7650 fix: RBAC hide right menu (#16902)
* add provider to right menu

* add roles code

* bad pull
2021-09-30 14:33:54 -04:00
Michael S. Molina
87290ddcc8 fix: Native filters cyclic dependency (#16921) 2021-09-30 14:55:54 -03:00
Michael S. Molina
c5d23fbcc7 fix: Unable to add dataset (#16925) 2021-09-30 14:52:48 -03:00
Geido
7f330c9692 Verify undefined operatorId (#16923) 2021-09-30 18:53:48 +03:00
Geido
c8db435730 fix(Explore): Clear filter value when changing columns (#16871)
* Clear filter value onChange

* Clear filter value on user change action
2021-09-30 17:18:08 +03:00
Michael S. Molina
1a38ec6c43 chore: Adds the drag icon (#16919) 2021-09-30 10:29:12 -03:00
Michael S. Molina
3d520f2cc9 fix: Inclusive sign in time range display (#16906)
* fix: Time range display to show inclusive range

* Skips flakky test
2021-09-30 09:57:07 -03:00
Michael S. Molina
ae26967c4e fix: Disable lazy loading for the Database selector (#16908)
* fix: Disable lazy loading for the Database selector

* Fixes the tests
2021-09-30 09:29:27 -03:00
Michael S. Molina
05632b9804 chore: Moves the stylesheets folder to the assets folder (#16880)
* chore: Moves the stylesheets folder to the assets folder

* Changes {src} to src
2021-09-30 09:28:38 -03:00
Yongjie Zhao
94282b7ecd fix: time comparison can't guarantee the accuracy (#16895)
* fix: time comparison can't guarantee the accuracy

* fix multiple series

* fix lint

* fix ut

* fix lint

* more ut

* fix typo
2021-09-30 19:59:57 +08:00
Ville Brofeldt
77e7d162d2 ci: check npm lockfile version (#16916) 2021-09-30 10:43:38 +02:00
Hugh A. Miles II
331de0c4ae fix: Fix Uniqueness check before update for Sqllab Overwrites (#16859)
* add condition to make sure columns are available before throwing

* fix

* remove database_id from history changed

* refactor update call to datasets

* cleanup

* oops

* prettier
2021-09-29 13:38:29 -04:00
AAfghahi
904c506591 fixing db connection (#16899) 2021-09-29 10:02:34 -07:00
Michael S. Molina
4da4fe4136 fix: Removing parent filter causes incorrect state of child filter (#16876)
* fix: Removing parent filter causes incorrect state of child filter

* removed to isRemoved

* Shows (deleted) when the parent is removed

* Removes unnecessary code
2021-09-29 13:04:07 -03:00
Ville Brofeldt
3272d1c086 fix(sqla): allow series limit without subquery support (#16896) 2021-09-29 18:30:41 +03:00
ofekisr
3f784cc1c7 refactor: sql lab: handling command exceptions (#16852)
* chore: support error_type in SupersetException and method to convert the exception to dictionary

* chore: support error_type in SupersetException and method to convert the exception to dictionary

* refactor handling command exceptions   fix update query status when query was not created
2021-09-29 16:20:42 +03:00
simcha90
3d8cc15cba fix: Clear native filters state (#16893)
* fix:fix get permission function

* fix: clear native filters state
2021-09-29 13:50:21 +03:00
Michael S. Molina
e3b14fe170 fix: Overhead when changing the filter name (#16877) 2021-09-29 07:37:02 -03:00
Beto Dealmeida
0ea83c5a00 feat: add Databricks ODBC engine spec (#16862)
* feat: add Databricks ODBC engine spec

* Rename Databricks specs
2021-09-28 19:36:28 -07:00
AAfghahi
aa747219ad feat: Add Private Google Sheets to dynamic form (#16628)
* first pass private gsheets

* made encrypted extra into string, refactored onParametersChanged

* private sheets working, credential_info errors

* all but test connection working

* first pass private gsheets

* made encrypted extra into string, refactored onParametersChanged

* private sheets working, credential_info errors

* all but test connection working

* Regenerate package-lock.json

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-09-28 17:08:50 -07:00
Evgeny Lyzov
b35645c3f4 feat: added extraEnvRaw variable to load values from other secrets (#16219)
Signed-off-by: Evgeny Lyzov <lyzov.e.r@gmail.com>
Signed-off-by: elyzov <lyzov.e.r@gmail.com>
2021-09-28 09:29:19 -07:00
Ville Brofeldt
9ac55d9afa fix(build): enable hot reloading of linked packages (#16867) 2021-09-28 16:21:17 +02:00
Michael S. Molina
27a40d2a67 chore: Upgrades Storybook to version 6.3.8 to make it compatible with Webpack 5 (#16857) 2021-09-27 14:51:53 -03:00
Junlin Chen
6daf37bf40 move repro steps to front (#16819) 2021-09-27 09:43:44 -07:00
Geido
d3f6145aba fix(dashboard): Fill form with the latest values when undo in native filters (#16851)
* Set undoFormValues

* Reorganize

* Revert check

* Fix and clean up

* Fix pre-filter and sort values
2021-09-27 09:39:26 -07:00
Geido
667b88c800 chore: Select component refactoring - TimeSeriesColumnControl - Iteration 5 (#16442)
* Refactor Select

* Update superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/index.jsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Fix tests

* Mock debounce

* Add debounce

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-09-27 18:19:03 +03:00
Geido
271ec6ec75 chore: Select component refactoring - SaveModal - Iteration 5 (#16446)
* Refactor Select

* Fix Cypress

* Reconcile with master

* Use onChange over onSelect

* Reconcile with latest changes

* Update Cypress

* Update Cypress test

* Fix lint
2021-09-27 18:14:58 +03:00
Geido
ab9f8cb2ea chore: Select component refactoring - PropertiesModal - Iteration 5 (#16445)
* Refactor Select

* Update tests and checks

* Clean up props

* Update ariaLabel

* Reconcile with master changes

* Apply enhancements

* Fix lint
2021-09-27 18:12:59 +03:00
Geido
e40ff3ada6 chore: Select component refactoring - DndColumnSelectControl - Iteration 5 (#16440)
* Refactor Select

* Update ariaLabel

* Reconcile with latest Select changes

* Fix lint

* Enhance labels
2021-09-27 17:27:14 +03:00
Geido
913df18075 chore: Select component refactoring - MetricControl - Iteration 5 (#16423)
* Refactor Select

* Render saved metric option

* Update tests

* Fix Cypress and ariaLabels

* Fix lint

* Lint Cypress

* Reconcile with latest Select changes
2021-09-27 17:25:51 +03:00
Geido
8ad03c4f25 chore: Select component refactoring - FilterControl - Iteration 5 (#15777)
* Refactor Select for AdhocFilterEditPopoverSqlTabContent

* Refactor Selects

* Fix numeric options

* Clean up

* Fix Select value

* Add showSearch

* Display null label

* Implement StyledSelect

* Update superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSqlTabContent/index.jsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Fix aria-label

* Revert MetricControls changes

* Update ariaLabel

* Reconcile with latest Select changes

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-09-27 17:23:52 +03:00
Ville Brofeldt
0f16177bde fix(native-filters): ignore unset filter box time range (#16854) 2021-09-27 17:17:52 +03:00
Ville Brofeldt
f703c12ae8 chore: bump superset-ui to 0.18.8 (#16850) 2021-09-27 11:54:05 +03:00
Yongjie Zhao
bbe7aa3fc3 chore: db migrate timeseries_limit_metric to legacy_order_by in pivottable2 (#16849) 2021-09-27 16:25:51 +08:00
Stephen Liu
100760c464 fix(gallery): Hide the bottom info section when no chart is being selected (#16840) 2021-09-27 15:21:25 +08:00
Ville Brofeldt
0a8d0c6e7f fix(native-filters): emitted filter label format (#16828) 2021-09-27 09:36:55 +03:00
Ville Brofeldt
42fa54881a fix(native-filters): filter indicator stale state (#16831) 2021-09-27 08:34:39 +03:00
André Buse
ef95458547 Exit init script immediately on error (#16758) 2021-09-26 19:16:26 -07:00
ofekisr
c520eb79b0 refactor: sqllab: move sqllab ralated enumns and utils to more logical place (#16843)
* refactor move QueryStatus to common

* refactor move apply_display_max_row_limit to sqllab package

* refactor move limiting_factor to sqllab package

* fix pylint issues
2021-09-26 21:15:57 +03:00
Ville Brofeldt
a3413197de chore: upgrade to Node 16 (#16809)
* chore: upgrade to Node 16

* add docs

* fix test
2021-09-25 07:26:35 +02:00
AAfghahi
04f7ecad1c display tooltip when disabled (#16837) 2021-09-24 12:56:33 -07:00
Erik Ritter
55e2872dbf Fix 500 tab title (#16836) 2021-09-24 12:20:00 -07:00
Michael S. Molina
1ff682f3a9 fix: Updates the selected values when changing the native filter type, column or default value (#16833) 2021-09-24 14:07:20 -03:00
Ke Zhu
0d064f4451 Be able to lookup driver by engine alias (#16800) 2021-09-24 12:31:17 +03:00
Erik Ritter
c933250dad chore: Remove immutable.js (#16823) 2021-09-23 22:23:42 -07:00
Beto Dealmeida
76f0408932 feat: handle temporal columns in group bys (#16795)
* feat: handle temporal columns in group bys

* Rebase
2021-09-23 15:18:17 -07:00
Beto Dealmeida
6921d94861 fix: show Import button only if has perms (#16763)
* fix: show Import button only if has perms

* Fix tests
2021-09-23 14:55:21 -07:00
Ville Brofeldt
4086bedb68 chore: bump superset to 0.18.6 (#16807) 2021-09-23 14:03:03 +03:00
ofekisr
84f7614e97 feat(filter-set): Add filterset resource (#14015)
* Add filterset resource

* fix: fix pre-commit

* add tests

* add tests and fixes based of failures

* Fix pre-commit errors

* chore init filterset resource under ff constraint

* Fix migration conflicts

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* Fix pylint and migrations issues

* add tests and fixes based of failures

* Fix missing license

* fix down revision

* update down_revision

* fix: update down_revision

* chore: add description to migration

* fix: type

* refactor: is_user_admin

* fix: use get_public_role

* fix: move import to the relevant location

* chore: add openSpec api schema

* chore: cover all openspec API

* fix: pre-commit and lint

* fix: put and post schemas

* fix: undo superset_test_config.py

* fix: limit filterSetsApi to include_route_methods = {"get_list", "put", "post", "delete"}

* renaming some params

* chore: add debug in test config

* fix: rename database to different name

* fix: try to make conftest.py harmless

* fix: pre-commit

* fix: new down_revision ref

* fix: bad ref

* fix: bad ref 2

* fix: bad ref 3

* fix: add api in initiatior

* fix: open spec

* fix: convert name to str to include int usecases

* fix: pylint

* fix: pylint

* Update superset/common/request_contexed_based.py

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

* chore: resolve PR comments

* chore: resolve PR comments

* chore: resolve PR comments

* fix failed tests

* fix pylint

* Update conftest.py

* chore remove BaseCommand to remove abstraction

* chore remove BaseCommand to remove abstraction

* chore remove BaseCommand to remove abstraction

* chore remove BaseCommand to remove abstraction

* chore fix migration

Co-authored-by: Ofeknielsen <ofek.israel@nieslen.com>
Co-authored-by: amitmiran137 <amit.miran@nielsen.com>
Co-authored-by: Amit Miran <47772523+amitmiran137@users.noreply.github.com>
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2021-09-23 11:27:59 +03:00
Francesco Frassinelli
997320ac1a chore: Update documentation on schema changes (#16784) 2021-09-23 12:21:26 +08:00
WingCode
93fa478507 Fix OpenAPI definition (#16672)
Co-authored-by: WingCode <thewinger94@gmail.com>
2021-09-23 06:59:29 +03:00
Phillip Kelley-Dotson
a198dbb19b feat: add certifiedby & certification details fields to the edit dataset columns fields (#16454)
* add migration

* add backend and frontend for certified

* update migration with batch

* fix integration test and update Updating.md

* Update superset-frontend/src/datasource/DatasourceEditor.jsx

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

* Update superset-frontend/src/datasource/DatasourceEditor.jsx

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

* Update superset-frontend/src/datasource/DatasourceEditor.jsx

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

* change method name

* add tooltip info

* add mixin

* merge heads

* address comments

* fix select label styles

* add extra field

* fix test?

* add extra field to put schema

Co-authored-by: Geido <60598000+geido@users.noreply.github.com>
2021-09-22 15:09:30 -07:00
Lyndsi Kay Williams
63aadd3fe4 test: RTL overhaul - hackathon (#16626)
* CachedLabel_spec fully converted to RTL

* ColumnTypeLabel_spec fully converted to RTL

* MissingChart_spec fully converted to RTL

* RefreshIntervalModal_spec mostly converted to RTL

* HoverMenu_spec mostly converted to RTL

* ResizableContainer_spec fully converted to RTL

* ResizableHandle_spec fully converted to RTL

* AggregateOption_spec fully converted to RTL

* CheckboxControl_spec fully converted to RTL

* ColorPickerControl_spec to RTL

* Finished converting ColorPickerControl_spec to RTL/TS, also converted RefreshIntervalModal_spec to TS

* Added unknown type to ColumnTypeLabelProps

* Fixed ColumnTypeLabel_spec
2021-09-22 11:37:35 -07:00
Beto Dealmeida
4af5ae08f9 fix: encode rison characters when searching (#16768) 2021-09-22 10:06:24 -07:00
Beto Dealmeida
5cb49d2de0 feat: add support for JOIN in Druid (#16770) 2021-09-22 10:06:01 -07:00
Hugh A. Miles II
77ae2e1826 allow users to set port for cypress runs (#16533) 2021-09-22 11:24:56 -04:00
Michael S. Molina
99d15b25b0 chore: Moves the images folder to the assets folder (#14429)
* chore: Moves the images folder to the assets folder

* Rebases
2021-09-22 10:28:51 -03:00
Kamil Gabryjelski
486e0d412c chore: Upgrade Webpack to v5 (#16701)
* Upgrade Webpack to v5

* Remove mapbox hack

* Replace url-loaders and file-loaders with asset modules

* Remove 1 rule

* Change --colors to --color

* Remove invalid option (--no-progress)

* Remove url-loader, bump plugin

* Fix AnnotationLayer formula check

* Remove redundant tests

* Bump cypress packages

* Remove old comment

* Fix tests

* Remove checks for number of scripts in markdown test

* Cosmetic changes

* Add tests

* Fix test

* Fix test

* Fixes test warnings

* disable flaky test

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
Co-authored-by: Michael S. Molina <michael.s.molina@gmail.com>
2021-09-22 14:24:54 +03:00
Michael S. Molina
9b17e86b44 chore: Moves messageToasts to the components folder (#14431)
* chore: Moves messageToasts to the components folder

* Rebases
2021-09-22 07:44:54 -03:00
Michael S. Molina
b6d78bf4f2 refactor: Changes the list views to use the new Select component (#16393)
* chore: Change the list views to use the new Select component

* Fix Cypress tests

* Enables search for all controls

* Adjusts controls width

* Removes 'Me' and keeps the logged user on top

* Fixes tests

* Uses the borderless version for the filters

* Fixes the tests

* Reverts the Select theme to the default

* Rebases and fixes js error

* Fixes failing test

* Removes unused withTheme
2021-09-22 07:44:18 -03:00
Michael S. Molina
596e1cdf9b refactor: Changes the DatabaseSelector and TableSelector to use the new Select component (#16483) 2021-09-22 07:43:46 -03:00
Ville Brofeldt
1d5100daa2 fix(dataset): retain is_dttm if set on metadata sync (#16776) 2021-09-22 10:13:49 +03:00
Beto Dealmeida
a74352644e fix: typo in log (#16767) 2021-09-21 19:54:38 -04:00
Beto Dealmeida
48a61bacc5 fix: handle CTEs with comments on is_select (#16769) 2021-09-21 16:23:54 -07:00
Beto Dealmeida
493e804320 chore: log URI before downloading data on import (#16762) 2021-09-21 14:22:37 -07:00
Elizabeth Thompson
d375538671 only fetch db function when db exists in sql lab (#16754) 2021-09-21 09:40:02 -07:00
Elizabeth Thompson
f032cc254c fix shared query (#16753) 2021-09-21 09:38:23 -07:00
Junlin Chen
a8d5342953 chore: add browser info to template (#16732)
* add browser info to template

issue report with browser info

* Update .github/ISSUE_TEMPLATE/bug_report.md

Co-authored-by: Yongjie Zhao <yongjie.zhao@gmail.com>

Co-authored-by: Yongjie Zhao <yongjie.zhao@gmail.com>
2021-09-21 08:24:02 +08:00
Elizabeth Thompson
2a25e2d7ca update execution logs and states for alerts (#16736) 2021-09-20 14:26:30 -07:00
Ville Brofeldt
b92358b5b8 ci: bump npm to version 7 (#16748) 2021-09-20 15:01:47 +03:00
simcha90
985aa06439 chore: Upgrade immer package version (#16741)
* fix:fix get permission function

* chore: update immer

* chore: update immer
2021-09-20 09:36:56 +03:00
Yongjie Zhao
67b13308ca chore: bump superset-ui 0.18.5 (#16725) 2021-09-18 08:06:08 +08:00
William Gan
7586e479a9 other: Provide option to add environment variables to only supersetNode (#16627)
* Add env variables for supersetNode in Helm template

* Typo in template

* Removed unnecessary if

* Revert "Removed unnecessary if"

This reverts commit af83568fb8.

* Bumping chart version to 0.3.8

Co-authored-by: Craig Rueda <craig@craigrueda.com>
2021-09-17 12:03:29 -07:00
Yongjie Zhao
cc1c6c1bb6 feat: add resample operator in post processing (#16607)
* feat: add resample operator in post processing

* wip

* fill zero values

* updates

* fix ut
2021-09-17 16:40:59 +08:00
David Aaron Suddjian
a4f60010a1 add semantic title to the pull request template (#16693) 2021-09-17 13:23:39 +08:00
Evan Rusackas
986ed684ac chore: bump path parse module in websocket sidecar app (#16720) 2021-09-16 12:07:23 -06: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
Andreas Schöneck
633f29f3e9 Helm chart: Support hostAliases (#16703) 2021-09-16 07:27:33 -07:00
Ville Brofeldt
a839649e5c fix(pandas-postprocessing): percentage compare to use correct column (#16716) 2021-09-16 13:29:58 +03:00
Ville Brofeldt
836b5e2c86 feat: add support for generic series limit (#16660)
* feat: add support for generic series limit

* refine series_columns logic

* update docs

* bump superset-ui

* add note to UPDATING.md

* remove default value for timeseries_limit
2021-09-16 12:09:08 +03:00
Yongjie Zhao
21f98ddc21 fix: catch exception when create connection (#16692)
* fix: catch exception when create connection

* fix lint

* added UT
2021-09-16 15:55:57 +08:00
Beto Dealmeida
092ef5bdfc fix: set importer as owner (#16656)
* fix: set importer as owner

* Fix tests
2021-09-15 12:27:02 -07:00
Michael S. Molina
86290cc0e5 chore: Improves the Select component to avoid additional queries when all values have been loaded (#16712)
* chore: Improves the Select component to avoid additional queries when all values have been loaded

* Handles the logic in handlePaginateFetch and removes the use effect
2021-09-15 15:39:58 -03:00
Grace Guo
00ca21e016 fix: report with timeout chart (#16674) 2021-09-15 11:09:21 -07:00
Ville Brofeldt
88c09c2138 feat(jinja): improve url parameter formatting (#16711)
* feat(jinja): improve url parameter formatting

* add UPDATING.md

* fix test
2021-09-15 20:00:26 +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
Michael S. Molina
adc3d24c21 fix: Ignore case and special keys when searching (#16706) 2021-09-15 07:33:43 -03:00
Stephen Liu
b0ac5d1625 perf(dashboard): fix filter-box performance bug (#16702) 2021-09-15 08:40:46 +03:00
Beto Dealmeida
7f804d62d1 feat: show nice error page in prod (#16695) 2021-09-14 16:56:25 -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
Elizabeth Thompson
9f5f6794ff bump sasl (#16669) 2021-09-14 09:28:13 -07:00
Ville Brofeldt
1d890f8913 fix(explore): make clicked dnd filters unique (#16700) 2021-09-14 18:01:21 +03:00
Geido
fecd4124fa fix: Select refactoring known issues (#16666)
* Clean up and reorganize effects

* Enhance optionFilterProps

* Render custom label

* Remove prop filtering

* Create options

* Create option from value in single mode

* Change to customLabel

* Show search by default

* Update superset-frontend/src/components/Select/Select.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update superset-frontend/src/components/Select/Select.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update superset-frontend/src/components/Select/Select.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Apply minor changes

* Fixes a bug that was failing CI

* Adds more tests to the component

* Apply customLabel in ColorSchemeControl

* Remove customLabel from rendered Option

* Hide No data when allowNewOptions

* Remove unnecessary prop from tests

* Adjust loading height

* Show no data with fetchOnlyOnSearch

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
Co-authored-by: Michael S. Molina <michael.s.molina@gmail.com>
2021-09-14 17:39:27 +03:00
aniaan
9e00e4e8cc fix(dataset): create ES-View dataset raise exception #16623 (#16624)
* fix(dataset): create es-view dataset raise exception #16623

* fix(database): fix has_view logic

* refactor(database): fix logic

* style(lint): remove unused typing

* fix(test): add test case

* fix(test): fix test case
2021-09-14 22:29:29 +08:00
Ville Brofeldt
c99cacbdd2 fix(explore): only refresh data panel on relevant changes (#16699)
* fix(explore): only refresh data panel on relevant changes

* add comment and supress warning
2021-09-14 15:58:05 +03:00
Daniel Vaz Gaspar
5ac8ac0e6c fix: don't send invalid URLs back to the user (#16687)
* fix: don't send bogus URLs back to the user

* lint, remove f string
2021-09-14 11:29:05 +01:00
Yongjie Zhao
ad60c0c4ad fix: remove useless-suppression for pylint (#16696) 2021-09-14 13:27:21 +08:00
George
d984c104cc fix: Normalise *.sh File Endings (#16608)
Windows users encounter problems running the `docker-compose` commands
 to run an instance of Superset.

The reason for this is line-endings for the `*.sh` files that are
 mounted and used in the `command` sections for the superset images.

Many Windows users will check the repository out with line endings set
 to `CRLF`. When mounted in to the *nix-based containers, these line
 endings are not understood, leading to errors such as:

```text
/usr/bin/env: bash\r: No such file or directory
```

The addition of a `.gitattributes` file resolves this issue by telling
 git to always resolve these files with `LF` line endings.

+semver: fix
+ref: #10132
2021-09-13 16:25:15 -07:00
AAfghahi
376c685838 feat: adding logging to validation (#16527)
* adding logging to validation

* Update superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-09-13 16:09:40 -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
Grace Guo
b0b996582c fix: reset perf logger timer for soft navigation for SPA pages (#16668)
* fix: reset perf logger timer for soft navigation for SPA pages

* fix comments

* fix extra comments

Co-authored-by: grace_guo <grace_guo@grace-guos-MacBook-Pro.local>
2021-09-13 10:16:07 -07:00
ofekisr
29b635a0a1 refactor sql_json view endpoint: move all logic from view to ExecuteSqlCommand (#16682) 2021-09-13 20:04:59 +03:00
Ville Brofeldt
83581b126d feat(sqla): add time grain and time column to jinja params (#16680) 2021-09-13 16:43:22 +03: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
ofekisr
1cc726364a refactor: sql_json view endpoint: use execution context instead of query (#16677)
* refactor sql_json view endpoint: use execution context instead of query

* fix failed tests

* fix failed tests

* refactor renaming enum options
2021-09-13 11:02:57 +03:00
simcha90
668ae23f28 feat: Tabs in column (#16593)
* fix:fix get permission function

* feat: add tabs inside column

* lint: fix lint

* test: fix test

* test: fix tests

* test: fix tests

* fix: pass onChangeTab function through layout
2021-09-13 09:02:29 +03:00
ofekisr
51acadad74 refactor sql_json view endpoint: separate a response creation (#16676) 2021-09-12 15:02:55 +03:00
ofekisr
1429d9dab6 refactor sql_json view endpoint: extract methods and rearrange code ordering (#16675)
Co-authored-by: Jack Fragassi <jfragassi98@gmail.com>
2021-09-12 12:56:50 +03:00
Jack Fragassi
4dc859f89e fix: Ensure alerts & reports aren't schduled when flag is off (#16639)
* Don't schedule alerts & reports when flag is off

* Fix test function name

* Fix test

* Oops

* Another tweak

* Try to lint by hand

* Fix mock
2021-09-10 13:37:21 +01:00
天河
bb014b5131 fix: fix assignment in FilterBoxViz (#16662)
* Fixing assignment.

Signed-off-by: tianhe1986 <w1s2j3229@163.com>

* Adding unit test for FilterBoxViz.

Signed-off-by: tianhe1986 <w1s2j3229@163.com>

* Reformatting with black.

Signed-off-by: tianhe1986 <w1s2j3229@163.com>

* Revert format change in other test.

Signed-off-by: tianhe1986 <w1s2j3229@163.com>

* Reformatting with the same black version with pre-commit config.

Signed-off-by: tianhe1986 <w1s2j3229@163.com>
2021-09-10 15:10:55 +03:00
Ajay M
4b70d46355 feat(dashboard): Native filters - add type to native filter configuration (#16549)
* iSort fixes

* Add type key to the new filters

* Fix wrong attribute

* PR comments

* PR comments

* Fix failing tests
2021-09-09 09:46:44 -07:00
ofekisr
dad55a78f4 refactor sql_json view endpoint: separate set the query's limiting concern into ad hod method (#16653) 2021-09-09 19:38:37 +03:00
ofekisr
267b327a3c refactor sql_json view endpoint: separate query rendering concern into ad hod method (#16649) 2021-09-09 18:25:58 +03:00
ofekisr
62637f275f refactor sql_json view endpoint: separate validate the query concern into ad hod method (#16647) 2021-09-09 17:11:17 +03:00
Daniel Vaz Gaspar
3d0ebd5abc chore: Bump Flask-OpenID to 1.3.0 (#16648) 2021-09-09 14:09:54 +01:00
ofekisr
df7d9d5515 refactor sql_json view endpoint: separate save query concern into ad hod method (#16646) 2021-09-09 14:50:49 +03:00
Michael S. Molina
e9e6c5de8a chore: Writes the tests for the new Select component (#16638)
* chore: Writes the tests for the new Select component

* Uses array destructuring
2021-09-09 08:38:33 -03:00
Shaoqing Hu
d0f69f2e5c fix: pybabel extract fails (#16629)
* fix pybabel extract fails

* fix black

* trigger GitHub actions
2021-09-09 14:28:25 +03:00
Ville Brofeldt
6465ee7dbd fix(sqla): support for date adhoc filter (#16634) 2021-09-09 06:41:50 +03:00
AAfghahi
c66f278b42 feat: Backend Validation for Creation Method (#16375)
* backend creation method validation

* added tests

* Update superset/reports/dao.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/reports/dao.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update tests/integration_tests/reports/api_tests.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update tests/integration_tests/reports/api_tests.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/reports/dao.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/reports/dao.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/reports/commands/create.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/reports/commands/exceptions.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* revisions

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-09-08 16:35:18 -07:00
Kamil Gabryjelski
788c0c3dae fix(dashboard): label colors included in explore url (#16621) 2021-09-08 15:38:02 +02:00
Daniel Vaz Gaspar
7e09b7241e chore: Bump FAB to 3.3.2 (#16615) 2021-09-08 12:15:04 +01:00
Ville Brofeldt
9dfa33fedf fix(dnd): make clicked dnd metrics unique (#16632) 2021-09-08 13:21:21 +03:00
Amit Miran
420dd5b94a chore: Pylint downgrade (#16617)
* Update testing.in

* chore: downgrade pylint to 2.9.6

* downgrade dependence for pylint

* trim space

* pylint rules

Co-authored-by: Yongjie Zhao <yongjie.zhao@gmail.com>
2021-09-08 08:19:15 +03:00
Elizabeth Thompson
519baa6f00 fix: params in sql lab are jumpy in the ace editor (#16536)
* fix jumpy params

* remove cypress tests
2021-09-07 09:38:45 -07:00
Michael S. Molina
37c2020035 chore: Merges latest Select changes (#16587) 2021-09-07 10:41:55 -03:00
Ville Brofeldt
9de2196b7f fix: TemporalWrapperType string representation (#16614)
* fix: TemporalWrapperType string representation

* fix tests
2021-09-07 13:50:24 +03:00
Kamil Gabryjelski
effcf3b50f perf(dashboard): decrease number of rerenders of FiltersBadge (#16545)
* perf(dashboard): decrease rerenders in FiltersBadge

* implement caching of dashboard filter indicators

* Implement caching for native filter indicators
2021-09-07 12:03:43 +02:00
Kamil Gabryjelski
7faa5c6aff perf(dashboard): reduce rerenders of DragDroppable (#16525)
* perf(dashboard): reduce rerenders of DragDroppable

* lint fix
2021-09-07 11:19:07 +02:00
Duy Nguyen Hoang
3fe2e6ec73 Remove export CSV in old filter box (#16592) 2021-09-06 14:40:24 +03:00
Ville Brofeldt
7cbced8833 chore(deps): bump superset-ui to 0.18.2 (#16601) 2021-09-06 12:20:29 +03:00
simcha90
df5c0fbce9 feat: Experimental cross-filter plugins (#16594)
* fix:fix get permission function

* feat: add cross filter chart in charts gallery under FF
2021-09-06 08:25:14 +03:00
ofekisr
e60b489867 refactor sql_json view endpoint: separate concern into ad hod method (#16595) 2021-09-05 23:18:17 +03:00
ofekisr
be77ad2288 refactor: sql_json view endpoint: encapsulate ctas parameters (#16548)
* refactor sql_json view endpoint: encapsulate ctas parameters

* fix failed tests

* fix failed tests and ci issues
2021-09-05 16:34:26 +03:00
Beto Dealmeida
359383b578 feat: Add Aurora Data API engine spec (#16535)
* feat: Add Aurora Data API engine spec

* Fix lint
2021-09-04 08:40:14 -07:00
joeADSP
5f8dff1341 docs: update for small typos (#16568) 2021-09-03 15:22:29 -03:00
Beto Dealmeida
9bb890ebed fix: impersonate user label/tooltip (#16573) 2021-09-03 09:42:11 -07:00
Rob DiCiuccio
4e380db3fd fix: Support Jinja template functions in global async queries (#16412)
* Support Jinja template functions in async queries

* Pylint

* Add tests for async tasks

* Remove redundant has_request_context check
2021-09-03 14:33:29 +03:00
Elizabeth Thompson
a0db5367d2 bump emotion to help with cache clobbering (#16559) 2021-09-02 13:48:21 -07:00
Ville Brofeldt
070fdbeebc fix(tests): make parquet select deterministic with order by (#16570) 2021-09-02 15:16:33 -03:00
Michael S. Molina
02798a3517 fix: Adds a loading message when needed in the Select component (#16531) 2021-09-02 13:17:47 -03:00
Yongjie Zhao
2e11b05d73 chore: bump superset-ui to 0.18.1 (#16563) 2021-09-02 09:03:43 +03:00
Ville Brofeldt
75a1b19174 chore: bump superset-ui to 0.18.0 (#16544) 2021-09-02 13:16:03 +08:00
ofekisr
e947f8a4c8 refactor sql_json view endpoint: extract to method reuse code (#16546) 2021-09-01 19:24:33 +03:00
Yongjie Zhao
80c39daa85 fix: can't drop column when name overlap (#16482) 2021-09-01 13:52:10 +08:00
Daniel Wood
e024f8c7d6 fix: Set correct comparison operator for snowflake-sqlalchemy pinning (#16526) 2021-08-31 16:18:55 -06:00
ofekisr
68c2a6d43a refactor sql_json view endpoint: separate getting and checking existing query to ad hoc methods (#16449) 2021-08-31 19:55:45 +03:00
Ville Brofeldt
c5a5cf7db9 fix(datasets): add support for removing owners (#16461)
* fix(datasets): add support for removing owners

* default to current user
2021-08-31 22:27:09 +08:00
grumpy-miner
1f1e2dd29a fix: ensure setting operator to None (#16371) (#16372) 2021-08-31 12:53:40 +03:00
Geido
f001c44727 Make Modal draggable and resizable (#16447) 2021-08-31 12:46:44 +03: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
Daniel Wood
ad8336a5b4 fix: Pin snowflake-sqlalchemy to 1.2.4 (#16515)
* Pin snowflake-sqlalchemy to 1.2.4

* lint files
2021-08-31 07:48:51 +03:00
AAfghahi
e2469162fa fix: select database fix (#16472)
* select database fix

* made a backend change
2021-08-30 17:04:10 -07:00
Phillip Kelley-Dotson
a616b8785e make chart rerender on timeseries change (#16411) 2021-08-30 16:43:14 -07:00
Phillip Kelley-Dotson
960d1e4d5d fix: stop endless loading when dataset no longer exist (#16511)
* initial fix

* add const

* add translate
2021-08-30 16:42:02 -07:00
Grace Guo
2199f65373 fix: sql lab refetch button (#16469)
* fix: SQL Lab show "Refetch Results" button while fetching new query results (#15109)

* fix: SQL Lab show "Refetch Results" button while fetching new query results

* fix comments

(cherry picked from commit 408d58f937)

* handle exception caused by invalid query id
2021-08-30 15:47:00 -07:00
Will Barrett
8aa24e50d9 chore: remove myself from codeowners on Preset integration (#16470) 2021-08-30 15:14:46 -07:00
Ville Brofeldt
90e2f09c67 docs: update entries for v1.2 and v1.3 (#16496) 2021-08-30 13:58:08 +03:00
Srini Kadamati
1ffd73d03b chore: Docs/superset1.3 release notes (#16390)
* docs: superset release notes 1.3

* swapped out image

* Update RELEASING/release-notes-1-3/README.md

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update RELEASING/release-notes-1-3/README.md

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update RELEASING/release-notes-1-3/README.md

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Update RELEASING/release-notes-1-3/README.md

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

Co-authored-by: Junlin Chen <junlin@preset.io>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-08-30 09:06:24 +03:00
Beto Dealmeida
62d8ab7f9c fix: create example DB if needed (#16451)
* fix: create example DB if needed

* fix lint
2021-08-27 07:19:37 -07:00
Ville Brofeldt
147637a02d fix(native-filters): add handle undefined control value gracefully (#16468) 2021-08-27 14:03:05 +03:00
Erik Ritter
8adc31d14c Revert "chore: Changes the DatabaseSelector to use the new Select component (#16334)" (#16478)
This reverts commit c768941f2f.
2021-08-26 22:28:04 -03:00
Jesse Yang
a413f796a6 fix(explore): JS error for creating new metrics from columns (#16477) 2021-08-26 17:04:45 -07:00
AAfghahi
ee2eccdb67 fix: queryEditor bug (#16452)
* queryEditor bug

* update tests

Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2021-08-26 15:20:02 -07:00
Ke Zhu
fd6456186d docs: make code snippet usable with required imports (#16473) 2021-08-26 16:16:30 -06:00
Kamil Gabryjelski
f422f1ea49 perf(dashboard): decouple redux props from dashboard components (#16421)
* perf(dashboard): decouple redux props from dashboard components

* Lint fix

* Dont make copy of filters object

* Remove unnecessary exports
2021-08-26 21:54:11 +02:00
Kamil Gabryjelski
8ad495a572 perf(dashboard): reduce number of rerenders of Charts (#16444)
* perf(dashboard): reduce number of rerenders of Charts

* Remove static property

* Cleanup
2021-08-26 21:53:44 +02:00
Ville Brofeldt
ac1d779a30 chore(ci): bump pylint to 2.10.2 (#16463) 2021-08-26 20:30:41 +03:00
Yongjie Zhao
577ede4b12 fix: prevent page crash when chart can't render (#16464) 2021-08-26 22:26:01 +08:00
Srini Kadamati
c66d6d83b9 chore: fixed slack invite link (#16466) 2021-08-26 09:04:51 -04:00
Ville Brofeldt
1c71eda70f fix(native-filters): handle null values in value filter (#16460)
* fix(native-filters): handle null values in value filter

* lint
2021-08-26 15:26:53 +03:00
Eugene Klimov
1badcaed45 feat: add function list to auto-complete to Clickhouse datasource (#16234)
* add function list to auto-complete to Clickhouse datasource, fix https://github.com/apache/superset/issues/15477

Signed-off-by: Slach <bloodjazman@gmail.com>

* add function list to auto-complete to Clickhouse datasource, fix https://github.com/apache/superset/issues/15477
fix review comments https://github.com/apache/superset/pull/16234#discussion_r688362980

Signed-off-by: Slach <bloodjazman@gmail.com>

* fix CI/CD https://github.com/apache/superset/pull/16234/checks?check_run_id=3396235776 and https://github.com/apache/superset/pull/16234/checks?check_run_id=3396235707

Signed-off-by: Slach <bloodjazman@gmail.com>

* fix black formatting

Signed-off-by: Slach <bloodjazman@gmail.com>

* fix isort pre-commit hook

Signed-off-by: Slach <bloodjazman@gmail.com>
2021-08-26 18:55:43 +08:00
Jesse Yang
ec087507e5 refactor(explore): improve typing for Dnd controls (#16362) 2021-08-26 01:23:14 -07:00
Ville Brofeldt
18be181946 fix(explore): update overwrite button on perm change (#16437)
* fix(explore): update overwrite on perm change

* remove redundant user_id prop

* fix types

* fix user type

* fix tests

* fix lint
2021-08-26 06:24:33 +03:00
Geido
db11c3e6c8 feat: Draggable and Resizable Modal (#16394)
* Implement resizable prop

* Implement resizableConfig

* Implement fluid Syntax Highlighter

* Implement draggable

* Destroy on close

* Implement draggableConfig

* Enhance with footer calculation

* Add new line

* Make whole header draggable trigger
2021-08-25 16:11:16 +03:00
ofekisr
93c60e4021 refactor: sql_json view endpoint (#16441)
* refactor sql_json view endpoint

* fix pylint

* renaming

* renaming

Co-authored-by: Amit Miran <47772523+amitmiran137@users.noreply.github.com>
2021-08-25 15:51:48 +03:00
Maxhui
6a2cec51c5 fix(dashboard): undo and redo buttons weird alignment (#16417)
* fix(dashboard-ui): undo and redo buttons weird alignment

* fix(Explore control pane): keyboard nav & focus

* lint: lint frontend

* fix: fix redo and undo button style

* lint: lint line

* lint: lint line

Co-authored-by: xuzhebin <maxhui2020@gmail.com>
2021-08-25 08:52:59 -03:00
Grace Guo
08b8aa277f fix: setupPlugin in chart list page (#16413)
* fix: setupPlugin in chart list page

* fix the order of setupPlugins call

* Fix jest test on loading geojson

* add jest changes

* fix unit tests

Co-authored-by: Jesse Yang <jesse.yang@airbnb.com>
2021-08-24 23:10:46 -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
Beto Dealmeida
5e472980a6 feat: add Shillelagh DB engine spec (#16416) 2021-08-24 17:07:29 -07:00
AAfghahi
631ad02a76 fix: copy to Clipboard order (#16299)
* copy to Clipboard order

* centralized copyToClipboard

* fixed table order

* fixed tests

* added colnames to all viz types

* added colnames to all viz types

* added colnames to all viz types
2021-08-24 14:47:09 -07:00
David Aaron Suddjian
e71c6e60e4 docs: make FEATURE_FLAGS.md reference a link (#16415) 2021-08-24 14:08:11 -07:00
Ville Brofeldt
5eded9fe1b chore(viz): bump superset-ui to 0.17.87 (#16420) 2021-08-24 11:10:23 -07:00
Hugh A. Miles II
c0e9006eb7 feat: add activate command (#16404)
* add activate command

* Update Makefile

* fix linting

* fix
2021-08-24 10:45:40 -07:00
Evan Rusackas
81241b6024 Revert "fix(explore): let admin overwrite slice (#16290)" (#16408)
This reverts commit d13b081cfe.
2021-08-24 09:38:41 -06:00
Ville Brofeldt
35864748f2 fix(explore): retain chart ownership on query context update (#16419) 2021-08-24 18:37:34 +03:00
Michael S. Molina
6a5568764e chore: Removes the TODOs and uses the default page size (#16422) 2021-08-24 11:44:27 -03:00
Michael S. Molina
575e7af859 fix: Show cross filter option only when cross filter is enabled (#16391) 2021-08-24 09:13:39 -03:00
Geido
9a37ad1a1e fix: Return original document title when leaving a dashboard (#16323)
* Return original title on unmount

* Name var originalDocumentTitle
2021-08-24 15:08:13 +03:00
Ville Brofeldt
f6637cac7d fix(api): return total count on related endpoint (#16397)
* fix(api): return total count on related endpoint

* update response code from 400 to 422
2021-08-24 15:07:58 +03:00
Michael S. Molina
1fc9318594 chore: Changes the AlertReportModal to use the new Select component (#16144)
* chore: Changes the AlertReportModal to use the new Select component

* Gives time to close the select before changing the type
2021-08-24 08:19:27 -03:00
Geido
c14364c616 chore: Enhance Omnibar (#16273)
* Fix style and implement ESC

* Include ESC test case

* Move pagination outside of table

* Update superset-frontend/src/components/OmniContainer/OmniContainer.test.tsx

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

* Enhance

* Handle close

* Localize placeholder

* Fix tests

* Clear input on close

* Destroy modal on close

* Clean up

* Fix tests

Co-authored-by: Evan Rusackas <evan@preset.io>
2021-08-24 11:52:07 +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
AAfghahi
a6aad52e38 fix: regex for multi-region IPs (#16410)
* regex for multi-region IPs

* Update index.tsx
2021-08-23 13:54:25 -07:00
Michael S. Molina
c768941f2f chore: Changes the DatabaseSelector to use the new Select component (#16334) 2021-08-23 15:41:03 -03:00
Michael S. Molina
0cdc7675b4 chore: Displays the dataset description in a tooltip in the datasets list (#16392) 2021-08-23 15:38:53 -03:00
John Bodley
bc4b6f0a6c fix(pylint): Fix master (#16405)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-24 05:20:52 +12: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
cccs-tom
970d762779 feat: Add extraVolumes and extraVolumeMounts to all main containers (#16361) 2021-08-21 17:53:13 -07:00
Phillip Kelley-Dotson
3faf653e5f initial commit (#16366) 2021-08-20 17:46:55 -06:00
Erik Ritter
a9f502b67b fix: big number default date format (#16383) 2021-08-20 16:08:54 -07:00
Phillip Kelley-Dotson
c5081991fc initial commit (#16380) 2021-08-20 16:59:53 -06:00
Beto Dealmeida
649e509607 fix: import dashboard w/o metadata (#16360) 2021-08-20 12:03:05 -07:00
Lyndsi Kay Williams
518c3c9ae0 test: Functional RTL for email report modal II (#16148)
* Email Report Modal validation testing

* Starting RTL testing for email report

* Calendar icon now rendering!

* Create report testing in dashboard

* make linter happy

* Fixing weird error

* Removed ExploreChartHeader_spec

* Fixed dashboard header test

* revert changes from merge

* Fix tests

Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2021-08-20 10:08:36 -07:00
Beto Dealmeida
adebc0997b fix: update table ID in query context on chart import (#16374)
* fix: update table ID in query context on chart import

* Fix test
2021-08-20 10:03:31 -07:00
Ke Zhu
13a2ee373c docs: document FLASK_APP_MUTATOR (#16286) 2021-08-20 10:54:46 -06:00
Hugh A. Miles II
ea803c3d1c feat: Add new dev commands to Makefile (#16327)
* updating makefile

* Update Makefile
2021-08-20 12:31:21 -04:00
Ville Brofeldt
575ee24a99 fix: call external metadata endpoint with correct rison object (#16369) 2021-08-20 11:43:57 +03:00
Hugh A. Miles II
50d896f1b7 fix: Fix parsing onSaving reports toast when user hasn't saved chart (#16330)
* don't maniuplate error message

* remove extra idx reference

* u

* change print

* update with test

* add case for dashboards

* fix test
2021-08-19 14:04:23 -04:00
Beto Dealmeida
37f09bd296 fix: columns/index rebuild (#16355) 2021-08-19 09:38:24 -07:00
Ville Brofeldt
86f4e691d4 chore(viz): bump deckgl plugin to 0.4.11 (#16353) 2021-08-19 19:19:48 +03:00
Geido
c5c28618a5 fix: Blank space in Change dataset modal without warning message (#16324)
* Make scrollTable flex

* Revert unclosable warning
2021-08-19 16:46:25 +02:00
ETselikov
d75da748d5 docs: add VkusVill and TechAudit to users list (#16113)
* Update INTHEWILD.md

* Update INTHEWILD.md
2021-08-19 15:39:00 +03:00
Evan Rusackas
42cd21e383 chore: bump superset-ui to v0.17.85 (#16350) 2021-08-19 09:32:24 +03:00
Beto Dealmeida
ec8d3b03e4 fix: send CSV pivoted in reports (#16347) 2021-08-18 19:36:48 -07:00
Beto Dealmeida
afb8bd5fe6 feat: improve embedded data table in text reports (#16335)
* feat: improve HTML table in text reports

* Remove unused import

* Update tests

* Fix test
2021-08-18 17:00:29 -07:00
Elizabeth Thompson
efe850b731 adjust initial state (#16329) 2021-08-18 13:18:36 -07:00
Kamil Gabryjelski
a547dcb73e fix(explore): reordering columns with dnd sometimes glitching (#16322)
* fix(explore): reordering columns with dnd sometimes glitching

* Fix metrics and filters popover being stale after reordering
2021-08-18 18:39:05 +02:00
Kamil Gabryjelski
2c595b09ea chore(explore): make metric/column search input clearable (#16320)
* chore(explore): make metric/column search input clearable

* Fix typo

* Fix test
2021-08-18 12:23:23 +02:00
Srini Kadamati
5f060a2227 feat: Adding Rockset db engine spec (#16167)
* rockset prototype

* rockset

* t

* removed print / logging

* set a more specific version range for Rockset library
2021-08-18 13:04:59 +03:00
alandao2021
482dffb1db docs: Add Care to users list of Apache Superset (#16308)
* Add Care to users list of Apache Superset

Add Care to users list of Apache Superset

* Update INTHEWILD.md

change to correct order

* Update INTHEWILD.md

Co-authored-by: Erik Ritter <erik.ritter@airbnb.com>
2021-08-18 12:44:08 +03:00
Ville Brofeldt
9075e4206c feat(sqla): apply time grain to all temporal groupbys (#16318) 2021-08-18 11:47:08 +03:00
Elizabeth Thompson
4960b5ee2b pass correct report_format (#16306) 2021-08-17 18:31:38 -07:00
Beto Dealmeida
7a284bb9e8 fix: allow reports to update query_context (#16303) 2021-08-17 16:39:27 -07:00
Erik Ritter
d5f63a74e4 fix: remove mergepoint from past migration (#16301) 2021-08-17 16:27:33 -07:00
Grace Guo
b87e0b32ac refactor: rearrange dashboard page js bundles (#16285) 2021-08-17 16:12:05 -07:00
Beto Dealmeida
ac8e54d909 fix: improve pivot post-processing (#16289)
* fix: improve pivot post-processing

* Add tests

* Trim space from column name
2021-08-17 14:41:22 -07:00
Beto Dealmeida
3c0aefb61a Revert "fix: disable text reports for now (#16257)" (#16296)
This reverts commit ee9a384758.
2021-08-17 14:21:15 -07:00
AAfghahi
4119bb9c1e fix: reverting Dataset names (#16243)
* reverting dataset name changes

* remove extra quotes

Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2021-08-17 12:16:15 -07:00
Beto Dealmeida
8a36356f49 fix: rename Databricks (#16297) 2021-08-17 11:16:51 -07:00
Phillip Kelley-Dotson
f581e0402b change filter (#16280) 2021-08-17 09:37:39 -07:00
AAfghahi
f5fbfef618 timezone editor (#16281) 2021-08-17 09:32:17 -07: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
Ville Brofeldt
5e75baf0cc fix(sqlite): week grain refer to day of week (#16293) 2021-08-17 15:45:08 +03:00
Geido
9876c36f6e Fix table height (#16275) 2021-08-17 09:58:13 +02:00
Ville Brofeldt
d13b081cfe fix(explore): let admin overwrite slice (#16290) 2021-08-17 10:55:33 +03:00
Ville Brofeldt
2be84e78d2 chore(explore): remove unnecessary favstar redirect (#16288) 2021-08-17 09:09:38 +03: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
John Bodley
36bc7b0b80 chore(pylint): Reenable too-few-public-methods check (#16264)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 05:20:44 +12:00
John Bodley
0df15bf207 chore(pylint): Reenable import-outside-toplevel check (#16263)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 05:20:13 +12:00
Ville Brofeldt
36abc51f90 fix(dashboard): unset empty time filter indicator (#16272) 2021-08-16 19:32:05 +03:00
John Bodley
b5c7ed9f18 chore(pylint): Reenable too-many-locals check (#16268)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 04:23:40 +12:00
John Bodley
7b724439b9 chore(pylint): Reenable ungrouped-imports check (#16256)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 04:01:01 +12:00
John Bodley
8e07dd28bc chore(pylint): Re-enable super-with-arguments check (#16138)
Co-authored-by: John Bodley <john.bodley@airbnb.com>
2021-08-17 04:00:24 +12:00
Beto Dealmeida
ee9a384758 fix: disable text reports for now (#16257)
* fix: disable text reports for now

* Update tests
2021-08-16 08:16:48 -07:00
Beto Dealmeida
542b864e61 fix: pivot col names in post_process (#16262) 2021-08-16 08:16:42 -07:00
Michael S. Molina
0668eaad6a chore: Improves the flow to create a new chart (#16252)
* chore: Improves the flow to create a new chart

* Adds a comment about selector specificity
2021-08-16 11:56:47 -03:00
Geido
22231addec Move pagination outside of table (#16232) 2021-08-16 16:43:49 +02:00
Elizabeth Thompson
3709131089 check roles before fetching reports (#16260) 2021-08-13 20:41:03 -07:00
Ville Brofeldt
d46dc9aa45 chore: upgrade mypy and add type guards (#16227) 2021-08-14 06:31:45 +03:00
Beto Dealmeida
9b2dffeb1d fix: pivot columns with ints for name (#16259) 2021-08-13 18:21:20 -07: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
Phillip Kelley-Dotson
a5dbe6a14d fix examples tab for dashboard (#16253) 2021-08-13 14:56:32 -07:00
Phillip Kelley-Dotson
f94695480a chore: bump superset-ui packages to 0.17.84 (#16251)
* initial bump

* commit pack-lock file
2021-08-13 13:40:26 -06:00
Michael S. Molina
720e5b111a chore: Shows the dataset description in the gallery dropdown (#16200)
* chore: Shows the dataset description in the gallery dropdown

* chore: Adjusts the tooltip positioning, fixes the search and removes unnecessary bootstrap data
2021-08-13 15:08:12 -03:00
Geido
c09f6ed15b fix(Dashboard): Omnibar dropdown visibility and keyboard commands (#16168)
* Fix style and implement ESC

* Include ESC test case

* Update superset-frontend/src/components/OmniContainer/OmniContainer.test.tsx

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

Co-authored-by: Evan Rusackas <evan@preset.io>
2021-08-13 18:44:49 +02:00
Hugh A. Miles II
4ae88ce3b4 chore: bump py version for integration test (#16213)
* bump py version for integration test

* bump py

* bump py

* remove files

* lock pylint

* add not-callable
2021-08-13 12:44:32 -04:00
Beto Dealmeida
2611681de9 fix: skip perms on query context update (#16250) 2021-08-13 09:36:30 -07:00
Yongjie Zhao
6cd15d54a0 refactor: external metadata fetch API (#16193)
* refactor: external metadata api

* fix comments

* fix ut

* fix fe lint

* fix UT

* fix UT
2021-08-13 20:56:42 +08:00
Ville Brofeldt
d6f9c48aa1 feat(dao): admin can remove self from object owners (#15149) 2021-08-13 12:42:48 +03:00
Kamil Gabryjelski
517a678cd7 fix(dashboard): cross filter chart highlight when filters badge icon clicked (#16233)
* fix(dashboard): cross filter chart highlight when filters badge icon pressed

* Fix tests

* Fix tests

* break out label logic

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
2021-08-13 10:02:28 +02:00
Beto Dealmeida
5d3d6b6eae fix: validate_parameters and query (#16241)
* fix: validate_parameters and query

* add onQueryChange
2021-08-12 18:05:27 -07:00
Evan Rusackas
cdcc161846 fix: Remove Advanced Analytics tag for 2 charts (#16240)
* removing AA tag from TimeTableChartPlugin

* package bump for echarts (removes AA tag there)

* package-lock bump for new echarts plugin
2021-08-12 15:32:39 -06:00
AAfghahi
9d0dc561fc Revert "feat: Changing Dataset names (#16199)" (#16235)
This reverts commit adb3ebbba3.
2021-08-12 13:59:44 -07:00
Hugh A. Miles II
171514360e feat: Allow users to connect via legacy SQLA form (#16201)
* hugh/dbui-other

* remove extra condition

* add not callable

* Update .pylintrc

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-08-12 15:10:42 -04:00
Elizabeth Thompson
67c4c0116e fix: remove encryption from db params (#16214)
* remove encryption from db params

* Update superset/db_engine_specs/base.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-08-12 12:03:14 -07:00
Geido
a1e18ed110 fix(Explore): Show the tooltip only when label does not fit the container in METRICS/FILTERS/GROUP BY/SORT BY of the DATA panel (#16060)
* Implement dynamic tooltip

* Normalize and consolidate

* Clean up

* Refactor and clean up

* Remove unnecessary var

* Fix type import

* Update superset-frontend/src/explore/components/controls/OptionControls/index.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* Remove unnecessary styled span

* Show full tooltip title

* Force show tooltip

* Force show tooltip D&D off

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-08-12 11:48:16 -06:00
Geido
2c5731aea3 Show/hide tooltips (#16192) 2021-08-12 11:42:48 -06:00
Junlin Chen
16a9d219ed chore: Add feature flags to PR template (#16215)
* chore:Add feature flags to bug PR template

* Update .github/PULL_REQUEST_TEMPLATE.md

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

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2021-08-12 07:38:03 -10:00
Kamil Gabryjelski
a16e290765 fix(explore): conditional formatting value validators (#16230)
* fix(explore): conditional formatting value validators

* Fix typing, make validator more generic

* Remove commented code
2021-08-12 14:31:29 +02:00
Ville Brofeldt
b61c34f7c9 fix(viz): deduce metric name if empty (#16194)
* fix(viz): deduce metric name if empty

* fix unit test
2021-08-12 11:16:05 +03:00
Beto Dealmeida
7de54d016e feat: import configuration from directory (#15686)
* feat: command to import configuration from a directory

This allows us to keep Superset updated from a repo:

```bash
$ superset import-directory /path/to/configs/
```

For example, I created a simple dashboard with a single chart:

PLACEHOLDER

I then exported it to a file `dashboard_export_20210714T104600.zip` and
unzipped it. After deleting the dashboard, chart, dataset, and database
I imported everything back with:

```bash
$ superset import-directory ~/Downloads/dashboard_export_20210714T104600/
```

I then changed the chart title in `~/Downloads/dashboard_export_20210714T104600/charts/Cnt_per_country_1.yaml` and ran the command again. The chart was succesfully updated:

PLACEHOLDER

* Small fixes
2021-08-11 18:42:50 -07:00
Beto Dealmeida
5a8484185b fix: pyinstrument dependency (#16211) 2021-08-11 17:07:16 -07:00
Phillip Kelley-Dotson
c79de7abd7 initial fix (#16212) 2021-08-11 15:50:50 -07:00
Phillip Kelley-Dotson
b4555dfa4f fix: sorting on "Modified By" in chart table (#16208)
* initial fix

* Update ChartList.tsx

change sort to first name
2021-08-11 15:31:10 -07:00
Kamil Gabryjelski
ccfc95fbe6 fix(explore): adhoc metrics popover resets label after hovering outside (#16196)
* fix(explore): adhoc metrics popover resets label after hovering outside

* Remove irrelevant tests and skip rest

* Use ensureIsArray
2021-08-11 10:05:08 -06:00
AAfghahi
6c304b83a9 feat: Changing Dataset names (#16199)
* added google alert

* changing Dataset Names
2021-08-11 08:59:59 -07:00
Kamil Gabryjelski
98fc29cbbb fix(explore): metric label disappearing in some scenarios (#16190) 2021-08-11 14:05:44 +02:00
Ville Brofeldt
4df3672baa chore: bump superset-ui to 0.17.82 (#16186) 2021-08-11 10:08:12 +03:00
Elizabeth Thompson
3aefa6925b update covid dashboard (#16183) 2021-08-10 20:47:13 -07:00
Phillip Kelley-Dotson
a30d884cfc fix: change listivew card layouts to the new homepage card layout (#16171)
* initial commit

* removing CardStylesOverrides (unused)

Co-authored-by: Evan Rusackas <evan@preset.io>
2021-08-10 20:26:24 -07:00
Junlin Chen
9841c78967 chore: switch back tag name to popular from highly-used (#16174)
* chore: switch back tag name to popular from highly-used

* new package lock

* new package lock with npm 7

* fix lint

* remove package changes

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-08-10 20:23:14 -07:00
Phillip Kelley-Dotson
a0c9b9d9c2 fix: ensure created user entities do not show inside examples (#16176)
* initial commit

* fix lint

* Update superset-frontend/src/views/CRUD/utils.tsx

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

* Update superset-frontend/src/views/CRUD/utils.tsx

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

* Update superset-frontend/src/views/CRUD/utils.tsx

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

Co-authored-by: Evan Rusackas <evan@preset.io>
2021-08-10 19:53:47 -07:00
AAfghahi
6df16c4b1f feat: CLI cleanup (#16178)
* added google alert

* removing datasets from cli
2021-08-10 18:00:34 -07:00
Elizabeth Thompson
628169a171 feat: change query predicate to text (#16160)
* change query predicate to text

* make input multiline

* remove value that is too long for the downgrade

* keep logging lint rule
2021-08-10 17:52:01 -07:00
AAfghahi
2dc0bdda5d feat: Added multi-regional IPs to Database Connections (#16170)
* added google alert

* multi-regional IPs

* beto revisions

* Update superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset-frontend/src/views/CRUD/data/database/DatabaseModal/index.tsx

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-08-10 17:25:49 -07:00
Beto Dealmeida
9f52c103ac fix: isDynamic function (#16175)
* fix: isDynamic function

* trigger tests
2021-08-10 16:28:43 -07:00
Elizabeth Thompson
a3102488a1 feat: add chart image info to reports from charts (#16158)
* refetch reports on props update

* add chart types to reports
2021-08-10 15:11:10 -07:00
Geido
5e64d65a8b Hide Safari default tooltip (#16145) 2021-08-10 14:38:13 -06:00
Beto Dealmeida
7b3fce7e81 fix: revert data endpoint name (#16162) 2021-08-10 11:59:27 -07:00
Hugh A. Miles II
3f86a54ac1 fix: turn on SSL in database edit form show 500 error (#16151)
* fix error for query.update

* converrt before making request

* fix query params

* remove unchanged files

* this

* update tsconfig
2021-08-10 13:31:28 -04:00
Hugh A. Miles II
fd80ae34a3 fix: Make sheet_name into a ValidationInputError (#16056)
* setup validates for name

* add error type

* fix linting

* fix test

* remove errors

* fix number

* fix test
2021-08-10 13:07:31 -04:00
Phillip Kelley-Dotson
f0e3b68cc2 fix: ensure that users viewing chart does not automatically save edit data (#16077)
* add last_change_at migration

* add last_saved_by db migration

* finish rest of api migration

* run precommit

* fix name

* run precommitt

* remove unused mods

* merge migrations

* Update superset/migrations/versions/6d20ba9ecb33_add_last_saved_at_to_slice_model.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/migrations/versions/6d20ba9ecb33_add_last_saved_at_to_slice_model.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* Update superset/migrations/versions/f6196627326f_update_chart_permissions.py

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>

* fix test

* precommit

* remove print

* fix test

* change test

* test commit

* test 2

* test 3

* third time the charm

* fix put req

Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2021-08-10 10:29:49 -06:00
Ville Brofeldt
63ace7b288 feat(cross-filters): add support for temporal filters (#16139)
* feat(cross-filters): add support for temporal filters

* fix test

* make filter optional

* remove mocks

* fix more tests

* remove unnecessary optionality

* fix even more tests

* bump superset-ui

* add isExtra to schema

* address comments

* fix presto test
2021-08-10 17:18:46 +01:00
Elizabeth Thompson
5488a8a948 add config to hide some user menu items (#16156) 2021-08-10 09:03:13 -07:00
Kamil Gabryjelski
6e1d16d956 feat(explore): each control can define its own canDrop for dnd (#16090)
* feat(explore): each control can define its own canDrop for dnd

* Make canDropValue optional

* Add onDropValue
2021-08-10 17:04:42 +02:00
Phillip Kelley-Dotson
a70248736f feat: add sticky state to tables and loadingcards state. (#16102)
* initial feat commit

* fix chart and dash rendering onload

* Update superset-frontend/src/views/CRUD/welcome/Welcome.tsx

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>

* fix jumpyness and add const

Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
2021-08-10 06:43:59 -07:00
Michael S. Molina
273ab3d257 fix: Safari is not showing scroll bars in Explore (#16089) 2021-08-10 10:41:52 -03:00
Michael S. Molina
07f33998ac fix: Multiple dashboard refresh triggers for the same session (#16094) 2021-08-10 09:12:28 -03:00
Yongjie Zhao
bb1d8fe4ef fix: boolean type into SQL 'in' operator (#16107)
* fix: boolean type into SQL 'in' operator

* fix ut

* fix ut again

* update url

* remove blank line
2021-08-10 19:21:46 +08:00
Maxime Beauchemin
79e8d77acc chore: remove TerserPlugin step for build (#16163) 2021-08-10 17:09:40 +08:00
Lyndsi Kay Williams
3712ee02fa additional params field fixed (#16161) 2021-08-09 19:13:37 -07:00
AAfghahi
606a7bf429 fix: change Alert Permissions (#16118)
* added google alert

* reworked permissions
2021-08-09 13:33:04 -07:00
AAfghahi
5ce38839e7 feat: better errors for report in charts and dashboard (#16131)
* added google alert

* better errors and report actions
2021-08-09 13:32:52 -07:00
AAfghahi
a51851308b feat: added google alert to DB Connection Form (#16095)
* added google alert

* using superset_text

* made google alert public and others private

* Hugh revisions
2021-08-09 14:08:06 -04:00
Kamil Gabryjelski
b7cc89c6d4 fix(explore): dnd error when dragging metric if multi: false (#16088)
* fix(explore): dnd error when dragging metric if multi: false

* Fix error for non-dnd controls
2021-08-09 18:15:50 +02:00
adam-stasiak
578a9e9d53 build: Removed jsx-remove-data-test-id usage from code for multi-build-variant testing (#15386)
* enabled customized production build with testIds

* fix for docker

* changed substitution

* changed substitution
2021-08-09 10:11:26 -06:00
Kamil Gabryjelski
6ac4f4ef2f chore(explore): change dnd placeholders (#16116)
* chore(explore): change dnd placeholders

* Fix tests and lint
2021-08-09 17:50:11 +02: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
Maxime Beauchemin
df50a47777 chore: add stats logging to thumbnail api (#16133) 2021-08-09 08:34:51 -07:00
Geido
b07c80a839 Adjust width (#16092) 2021-08-09 17:25:33 +02:00
Beto Dealmeida
ddb5005900 fix: test (#16137) 2021-08-08 23:13:23 -07:00
Yongjie Zhao
3bbcc30d69 fix: virtual dataset wont work (#16132) 2021-08-07 20:43:12 +08:00
Victor
85ae8e3477 refactor: proper TypeError handling in memoize decorator (#16074)
Co-authored-by: Victor Sadkov <victor.sadkov@cloudkitchens.com>
2021-08-06 20:03:52 -06:00
Grace Guo
85329c374e refactor: remove unnecessary dataset queries from dashboard requests (#16110)
* refactor: remove unnecessary dataset queries from dashboard requests

* fix comments
2021-08-06 19:01:05 -07:00
Josh Berkus
22d8d582f8 docs: update install-from-scratch instructions for CentOS (#16129)
Update install-from-scratch instructions for current CentOS stream, based on doing a test install today.  CentOS stream python packages are now named after the version ("python3") and current Superset code requires updating Pip to a more current version.
2021-08-06 18:52:29 -06:00
Beto Dealmeida
28c383af68 fix: migrate_roles (#16098) 2021-08-06 10:05:19 -07:00
Kamil Gabryjelski
772da8de63 fix(explore): revert dnd column dependency array change to fix infinite rerenders (#16115)
* fix(explore): revert dnd column dependency array change to fix infinite rerenders

* Remove console.log

* Remove comment
2021-08-06 17:59:22 +02:00
ʈᵃᵢ
b80f018691 fix: move watermark to about section (#16097) 2021-08-06 05:48:22 -07:00
Michael S. Molina
6edc1ee3bb chore: Replaces the select for a dropdown button in the CSS editor (#16043) 2021-08-06 07:59:15 -03:00
Michael S. Molina
e59f318ef9 chore: Changes the RefreshIntervalModal component to use the new select component (#16048) 2021-08-06 07:58:53 -03:00
Michael S. Molina
423ff50768 chore: Changes the dashboard properties modal to use the new select component (#16064) 2021-08-05 19:50:16 -07:00
ʈᵃᵢ
2bfc1c29c5 docs: fix link and clarify postgres install instructions (#16101) 2021-08-05 21:53:01 -04:00
David Aaron Suddjian
e6292a89bb fix(explore): drag & drop column select component triggering onChange unnecessarily (#16073)
* fix(explore): avoid sync until after first render

* fix example
2021-08-05 15:38:28 -07:00
David Aaron Suddjian
23072161e2 fix(dashboard): user id can be null when there is an anonymous user (#15592) 2021-08-05 15:35:10 -07:00
Beto Dealmeida
b72fd7b9f4 fix: load tabbed dash only for tests (#16091) 2021-08-05 10:53:22 -07:00
AAfghahi
e6274e0764 change button color (#16093) 2021-08-05 10:38:30 -07:00
Kamil Gabryjelski
af204ff449 chore(explore): bump deckgl to 0.4.9 (#16086) 2021-08-05 18:10:23 +02:00
Beto Dealmeida
1dbd1e9f02 chore: simplify chart permissions (#16078) 2021-08-05 08:18:29 -07:00
Kamil Gabryjelski
a59d458e41 chore(explore): Create new entrypoints for Echarts Timeseries (#15942)
* feat(explore): Create new entrypoints for Echarts Timeseries

* Change order of some charts

* bump superset-ui

* also bump echarts package

* fix UT

Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
2021-08-05 07:28:16 +02:00
Hugh A. Miles II
11a2d4dfdd fix: Remove grey bar for TableElement component when metadata is empty (#16054)
* create serialize json function

* remove grey space with no metadata

* remove console log
2021-08-04 17:07:20 -04:00
Ville Brofeldt
7ef97a54e2 feat(explore): add automatic conditional formatter to pivot table v2 (#16045) 2021-08-04 22:12:20 +03:00
John Bodley
7effa44d54 refactor: adopt --app as celery global option (#16040)
* Update installation.rst

* Update async_queries_celery.mdx
2021-08-05 06:46:03 +12:00
AAfghahi
4359650b7d fix: Adding report bug (#16065)
* report add fix

* added theme
2021-08-04 11:37:46 -07:00
Jon Gillham
7c95595b77 fix(docker-compose): Make db service use correct env file (#15659) 2021-08-04 12:22:46 -06:00
Ville Brofeldt
86cecaeec5 fix(native-filters): add support for boolean cols to select (#16061) 2021-08-04 21:05:55 +03:00
Duy Nguyen Hoang
2c55cc6558 fix: Align alert solid small svg center (#15762) 2021-08-04 12:00:50 -06:00
Michael S. Molina
1917464d2b fix: Fix the Select unselect for object values (#16062) 2021-08-04 11:52:39 -03:00
Ville Brofeldt
7332055ff6 chore: bump superset-ui to 0.17.78 (#16058) 2021-08-04 13:03:34 +03:00
Jesse Yang
490890de23 fix(dashboard): 500 error caused by data_for_slices API (#16053) 2021-08-03 19:01:39 -07:00
1202 changed files with 59927 additions and 79203 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
docker/**/*.sh text eol=lf

6
.github/CODEOWNERS vendored
View File

@@ -3,6 +3,6 @@
/superset/migrations/ @apache/superset-committers
# Notify Preset team when ephemeral env settings are changed
.github/workflows/ecs-task-definition.json @robdiciuccio @craig-rueda @willbarrett @rusackas @eschutho @dpgaspar @nytai @mistercrunch
.github/workflows/docker-ephemeral-env.yml @robdiciuccio @craig-rueda @willbarrett @rusackas @eschutho @dpgaspar @nytai @mistercrunch
.github/workflows/ephemeral*.yml @robdiciuccio @craig-rueda @willbarrett @rusackas @eschutho @dpgaspar @nytai @mistercrunch
.github/workflows/ecs-task-definition.json @robdiciuccio @craig-rueda @rusackas @eschutho @dpgaspar @nytai @mistercrunch
.github/workflows/docker-ephemeral-env.yml @robdiciuccio @craig-rueda @rusackas @eschutho @dpgaspar @nytai @mistercrunch
.github/workflows/ephemeral*.yml @robdiciuccio @craig-rueda @rusackas @eschutho @dpgaspar @nytai @mistercrunch

View File

@@ -7,6 +7,13 @@ labels: "#bug"
A clear and concise description of what the bug is.
#### How to reproduce the bug
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
### Expected results
what you expected to happen.
@@ -19,17 +26,12 @@ what actually happens.
If applicable, add screenshots to help explain your problem.
#### How to reproduce the bug
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
### Environment
(please complete the following information):
- browser type and version:
- superset version: `superset version`
- python version: `python --version`
- node.js version: `node -v`

View File

@@ -1,3 +1,9 @@
<!---
Please write the PR title following the conventions at https://www.conventionalcommits.org/en/v1.0.0/
Example:
fix(dashboard): load charts correctly
-->
### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
@@ -11,6 +17,7 @@
<!--- Check any relevant boxes with "x" -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] Changes UI
- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))
- [ ] Migration is atomic, supports rollback & is backwards-compatible

View File

@@ -55,7 +55,6 @@ npm-install() {
cd "$GITHUB_WORKSPACE/superset-frontend"
# cache-restore npm
say "::group::Install npm packages"
echo "npm: $(npm --version)"
echo "node: $(node --version)"
@@ -69,7 +68,7 @@ build-assets() {
cd "$GITHUB_WORKSPACE/superset-frontend"
say "::group::Build static assets"
npm run build -- --no-progress
npm run build
say "::endgroup::"
}
@@ -81,7 +80,7 @@ build-instrumented-assets() {
if [[ -f "$ASSETS_MANIFEST" ]]; then
echo 'Skip frontend build because instrumented static assets already exist.'
else
npm run build-instrumented -- --no-progress
npm run build-instrumented
cache-save instrumented-assets
fi
say "::endgroup::"

View File

@@ -67,13 +67,12 @@ jobs:
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v2
with:
python-version: "3.7"
python-version: "3.8"
- name: OS dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
run: apt-get-install
- name: Install python dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
@@ -85,32 +84,31 @@ jobs:
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
setup-postgres
run: setup-postgres
- name: Import test data
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
testdata
run: testdata
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install npm dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
npm-install
run: npm-install
- name: Build javascript packages
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
build-instrumented-assets
run: build-instrumented-assets
- name: Install cypress
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
cypress-install
run: cypress-install
- name: Run Cypress
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies

View File

@@ -18,6 +18,8 @@ jobs:
with:
persist-credentials: false
submodules: recursive
- name: Check npm lock file version
run: ./scripts/ci_check_npm_lock_version.sh ./superset-frontend/package-lock.json
- name: Check if frontend changes are present
id: check
env:
@@ -25,6 +27,11 @@ jobs:
PR_NUMBER: ${{ github.event.pull_request.number }}
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh frontend
- name: Setup Node.js
if: steps.check.outcome == 'failure'
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies

View File

@@ -22,7 +22,7 @@ jobs:
- uses: actions/setup-python@v2
with:
python-version: 3.7
python-version: 3.8
- name: Set up chart-testing
uses: ./.github/actions/chart-testing-action

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7]
python-version: [3.8]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -77,7 +77,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7, 3.8]
python-version: [3.8, 3.9]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -141,7 +141,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7]
python-version: [3.8]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7]
python-version: [3.8]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2
@@ -29,6 +29,7 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
@@ -50,7 +51,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7]
python-version: [3.8]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2
@@ -76,7 +77,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7]
python-version: [3.8]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7,3.8]
python-version: [3.8, 3.9]
env:
PYTHONPATH: ${{ github.workspace }}
steps:

View File

@@ -17,6 +17,10 @@ jobs:
with:
persist-credentials: false
submodules: recursive
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install dependencies
uses: ./.github/actions/cached-dependencies
with:
@@ -31,7 +35,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.7]
python-version: [3.8]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2

View File

@@ -24,9 +24,10 @@ repos:
hooks:
- id: isort
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.790
rev: v0.910
hooks:
- id: mypy
additional_dependencies: [types-all, types-redis]
- repo: https://github.com/peterdemin/pip-compile-multi
rev: v2.4.1
hooks:

View File

@@ -70,7 +70,8 @@ confidence=
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
#enable=
enable=
useless-suppression,
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
@@ -83,14 +84,10 @@ confidence=
# --disable=W"
disable=
missing-docstring,
too-many-lines,
ungrouped-imports,
import-outside-toplevel,
raise-missing-from,
super-with-arguments,
too-few-public-methods,
too-many-locals,
duplicate-code,
unspecified-encoding,
# re-enable once this no longer raises false positives
too-many-instance-attributes
[REPORTS]
@@ -123,7 +120,7 @@ evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / stateme
[BASIC]
# Good variable names which should always be accepted, separated by a comma
good-names=_,df,ex,f,i,id,j,k,l,o,pk,Run,ts,v,x
good-names=_,df,ex,f,i,id,j,k,l,o,pk,Run,ts,v,x,y
# Bad variable names which should always be refused, separated by a comma
bad-names=fd,foo,bar,baz,toto,tutu,tata

File diff suppressed because it is too large Load Diff

View File

@@ -106,7 +106,7 @@ This statement thanks the following, on which it draws for content and inspirati
# Slack Community Guidelines
If you decide to join the [Community Slack](https://join.slack.com/t/apache-superset/shared_invite/zt-l5f5e0av-fyYu8tlfdqbMdz_sPLwUqQ), please adhere to the following rules:
If you decide to join the [Community Slack](https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw), please adhere to the following rules:
**1. Treat everyone in the community with respect.**

View File

@@ -409,18 +409,18 @@ referenced in the rst, e.g.
.. image:: _static/images/tutorial/tutorial_01_sources_database.png
aren't actually stored in that directory. Instead, you should add and commit
images (and any other static assets) to the `superset-frontend/images` directory.
images (and any other static assets) to the `superset-frontend/src/assets/images` directory.
When the docs are deployed to https://superset.apache.org/, images
are copied from there to the `_static/images` directory, just like they're referenced
in the docs.
For example, the image referenced above actually lives in `superset-frontend/images/tutorial`. Since the image is moved during the documentation build process, the docs reference the image in `_static/images/tutorial` instead.
For example, the image referenced above actually lives in `superset-frontend/src/assets/images/tutorial`. Since the image is moved during the documentation build process, the docs reference the image in `_static/images/tutorial` instead.
### Flask server
#### OS Dependencies
Make sure your machine meets the [OS dependencies](https://superset.apache.org/docs/installation/installing-superset-from-scratch#os-dependencies) before following these steps.
Make sure your machine meets the [OS dependencies](https://superset.apache.org/docs/installation/installing-superset-from-scratch#os-dependencies) before following these steps.
You also need to install MySQL or [MariaDB](https://mariadb.com/downloads).
Ensure that you are using Python version 3.7 or 3.8, then proceed with:
@@ -522,7 +522,12 @@ Frontend assets (TypeScript, JavaScript, CSS, and images) must be compiled in or
##### nvm and node
First, be sure you are using recent versions of Node.js and npm. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage your node environment:
First, be sure you are using the following versions of Node.js and npm:
- `Node.js`: Version 16
- `npm`: Version 7
We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage your node environment:
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash
@@ -540,12 +545,6 @@ sh -c "$(curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install
For those interested, you may also try out [avn](https://github.com/nvm-sh/nvm#deeper-shell-integration) to automatically switch to the node version that is required to run Superset frontend.
We have upgraded our `package-lock.json` to use `lockfileversion: 2` from npm 7, so please make sure you have installed npm 7, too:
```bash
npm install -g npm@7
```
#### Install dependencies
Install third-party dependencies listed in `package.json` via:
@@ -754,15 +753,21 @@ Note that the test environment uses a temporary directory for defining the
SQLite databases which will be cleared each time before the group of test
commands are invoked.
There is also a utility script included in the Superset codebase to run python tests. The [readme can be
There is also a utility script included in the Superset codebase to run python integration tests. The [readme can be
found here](https://github.com/apache/superset/tree/master/scripts/tests)
To run all tests for example, run this script from the root directory:
To run all integration tests for example, run this script from the root directory:
```bash
scripts/tests/run.sh
```
You can run unit tests found in './tests/unit_tests' for example with pytest. It is a simple way to run an isolated test that doesn't need any database setup
```bash
pytest ./link_to_test.py
```
### Frontend Testing
We use [Jest](https://jestjs.io/) and [Enzyme](https://airbnb.io/enzyme/) to test TypeScript/JavaScript. Tests can be run with:
@@ -807,7 +812,7 @@ npm install
npm run cypress-run-chrome
# run tests from a specific file
npm run cypress-run-chrome -- --spec cypress/integration/explore/link.test.js
npm run cypress-run-chrome -- --spec cypress/integration/explore/link.test.ts
# run specific file with video capture
npm run cypress-run-chrome -- --spec cypress/integration/dashboard/index.test.js --config video=true

View File

@@ -18,7 +18,7 @@
######################################################################
# PY stage that simply does a pip install on our requirements
######################################################################
ARG PY_VER=3.7.9
ARG PY_VER=3.8.12
FROM python:${PY_VER} AS superset-py
RUN mkdir /app \
@@ -45,7 +45,7 @@ RUN cd /app \
######################################################################
# Node stage to deal with static asset construction
######################################################################
FROM node:14 AS superset-node
FROM node:16 AS superset-node
ARG NPM_VER=7
RUN npm install -g npm@${NPM_VER}
@@ -64,7 +64,7 @@ RUN /frontend-mem-nag.sh \
# Next, copy in the rest and let webpack do its thing
COPY ./superset-frontend /app/superset-frontend
# This is BY FAR the most expensive step (thanks Terser!)
# This seems to be the most expensive step
RUN cd /app/superset-frontend \
&& npm run ${BUILD_CMD} \
&& rm -rf node_modules
@@ -73,7 +73,7 @@ RUN cd /app/superset-frontend \
######################################################################
# Final lean image...
######################################################################
ARG PY_VER=3.7.9
ARG PY_VER=3.8.12
FROM python:${PY_VER} AS lean
ENV LANG=C.UTF-8 \
@@ -94,7 +94,7 @@ RUN mkdir -p ${PYTHONPATH} \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
COPY --from=superset-py /usr/local/lib/python3.7/site-packages/ /usr/local/lib/python3.7/site-packages/
COPY --from=superset-py /usr/local/lib/python3.8/site-packages/ /usr/local/lib/python3.8/site-packages/
# Copying site-packages doesn't move the CLIs, so let's copy them one by one
COPY --from=superset-py /usr/local/bin/gunicorn /usr/local/bin/celery /usr/local/bin/flask /usr/bin/
COPY --from=superset-node /app/superset/static/assets /app/superset/static/assets

View File

@@ -15,8 +15,8 @@
# limitations under the License.
#
# Python version installed; we need 3.8 or 3.7
PYTHON=`command -v python3.8 || command -v python3.7`
# Python version installed; we need 3.7-3.9
PYTHON=`command -v python3.9 || command -v python3.8 || command -v python3.7`
.PHONY: install superset venv pre-commit
@@ -58,14 +58,17 @@ update-py:
update-js:
# Install js packages
cd superset-frontend; npm install
cd superset-frontend; npm ci
venv:
# Create a virtual environment and activate it (recommended)
if ! [ -x "${PYTHON}" ]; then echo "You need Python 3.7 or 3.8 installed"; exit 1; fi
if ! [ -x "${PYTHON}" ]; then echo "You need Python 3.7, 3.8 or 3.9 installed"; exit 1; fi
test -d venv || ${PYTHON} -m venv venv # setup a python3 virtualenv
. venv/bin/activate
activate:
source venv/bin/activate
pre-commit:
# setup pre commit dependencies
pip3 install -r requirements/integration.txt
@@ -81,3 +84,17 @@ py-lint: pre-commit
js-format:
cd superset-frontend; npm run prettier
flask-app:
flask run -p 8088 --with-threads --reload --debugger
node-app:
cd superset-frontend; npm run dev-server
build-cypress:
cd superset-frontend; npm run build-instrumented
cd superset-frontend/cypress-base; npm install
open-cypress:
if ! [ $(port) ]; then cd superset-frontend/cypress-base; CYPRESS_BASE_URL=http://localhost:9000 npm run cypress open; fi
cd superset-frontend/cypress-base; CYPRESS_BASE_URL=http://localhost:$(port) npm run cypress open

View File

@@ -25,7 +25,7 @@ under the License.
[![PyPI version](https://badge.fury.io/py/apache-superset.svg)](https://badge.fury.io/py/apache-superset)
[![Coverage Status](https://codecov.io/github/apache/superset/coverage.svg?branch=master)](https://codecov.io/github/apache/superset)
[![PyPI](https://img.shields.io/pypi/pyversions/apache-superset.svg?maxAge=2592000)](https://pypi.python.org/pypi/apache-superset)
[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](https://join.slack.com/t/apache-superset/shared_invite/zt-l5f5e0av-fyYu8tlfdqbMdz_sPLwUqQ)
[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw)
[![Documentation](https://img.shields.io/badge/docs-apache.org-blue.svg)](https://superset.apache.org)
[![Dependencies Status](https://david-dm.org/apache/superset/status.svg?path=superset-frontend)](https://david-dm.org/apache/superset?path=superset-frontend)
@@ -50,27 +50,27 @@ A modern, enterprise-ready business intelligence web application.
**Gallery**
<kbd><a href="https://superset.apache.org/gallery"><img title="Gallery" src="superset-frontend/images/screenshots/gallery.jpg"/></a></kbd><br/>
<kbd><a href="https://superset.apache.org/gallery"><img title="Gallery" src="superset-frontend/src/assets/images/screenshots/gallery.jpg"/></a></kbd><br/>
**View Dashboards**
<kbd><img title="View Dashboards" src="superset-frontend/images/screenshots/slack_dash.jpg"/></kbd><br/>
<kbd><img title="View Dashboards" src="superset-frontend/src/assets/images/screenshots/slack_dash.jpg"/></kbd><br/>
**Slice & dice your data**
<kbd><img title="Slice & dice your data" src="superset-frontend/images/screenshots/explore.jpg"/></kbd><br/>
<kbd><img title="Slice & dice your data" src="superset-frontend/src/assets/images/screenshots/explore.jpg"/></kbd><br/>
**Query and visualize your data with SQL Lab**
<kbd><img title="SQL Lab" src="superset-frontend/images/screenshots/sql_lab.jpg"/></kbd><br/>
<kbd><img title="SQL Lab" src="superset-frontend/src/assets/images/screenshots/sql_lab.jpg"/></kbd><br/>
**Visualize geospatial data with deck.gl**
<kbd><img title="Geospatial" src="superset-frontend/images/screenshots/geospatial_dash.jpg"/></kbd><br/>
<kbd><img title="Geospatial" src="superset-frontend/src/assets/images/screenshots/geospatial_dash.jpg"/></kbd><br/>
**Choose from a wide array of visualizations**
<kbd><img title="Visualizations" src="superset-frontend/images/screenshots/explore_visualizations.jpg"/></kbd><br/>
<kbd><img title="Visualizations" src="superset-frontend/src/assets/images/screenshots/explore_visualizations.jpg"/></kbd><br/>
## Why Superset?
@@ -99,29 +99,29 @@ Superset can query data from any SQL-speaking datastore or data engine (e.g. Pre
Here are some of the major database solutions that are supported:
<p align="center">
<img src="superset-frontend/images/redshift.png" alt="redshift" border="0" width="106" height="41"/>
<img src="superset-frontend/images/google-biquery.png" alt="google-biquery" border="0" width="114" height="43"/>
<img src="superset-frontend/images/snowflake.png" alt="snowflake" border="0" width="152" height="46"/>
<img src="superset-frontend/images/trino.png" alt="trino" border="0" width="46" height="46"/>
<img src="superset-frontend/images/presto.png" alt="presto" border="0" width="152" height="46"/>
<img src="superset-frontend/images/druid.png" alt="druid" border="0" width="135" height="37" />
<img src="superset-frontend/images/postgresql.png" alt="postgresql" border="0" width="132" height="81" />
<img src="superset-frontend/images/mysql.png" alt="mysql" border="0" width="119" height="62" />
<img src="superset-frontend/images/mssql-server.png" alt="mssql-server" border="0" width="93" height="74" />
<img src="superset-frontend/images/db2.png" alt="db2" border="0" width="62" height="62" />
<img src="superset-frontend/images/sqlite.png" alt="sqlite" border="0" width="102" height="45" />
<img src="superset-frontend/images/sybase.png" alt="sybase" border="0" width="128" height="47" />
<img src="superset-frontend/images/mariadb.png" alt="mariadb" border="0" width="83" height="63" />
<img src="superset-frontend/images/vertica.png" alt="vertica" border="0" width="128" height="40" />
<img src="superset-frontend/images/oracle.png" alt="oracle" border="0" width="121" height="66" />
<img src="superset-frontend/images/firebird.png" alt="firebird" border="0" width="86" height="56" />
<img src="superset-frontend/images/greenplum.png" alt="greenplum" border="0" width="140" height="45" />
<img src="superset-frontend/images/clickhouse.png" alt="clickhouse" border="0" width="133" height="34" />
<img src="superset-frontend/images/exasol.png" alt="exasol" border="0" width="106" height="59" />
<img src="superset-frontend/images/monet-db.png" alt="monet-db" border="0" width="106" height="46" />
<img src="superset-frontend/images/apache-kylin.png" alt="apache-kylin" border="0" width="56" height="64"/>
<img src="superset-frontend/images/hologres.png" alt="hologres" border="0" width="71" height="64"/>
<img src="superset-frontend/images/netezza.png" alt="netezza" border="0" width="64" height="64"/>
<img src="superset-frontend/src/assets/images/redshift.png" alt="redshift" border="0" width="106" height="41"/>
<img src="superset-frontend/src/assets/images/google-biquery.png" alt="google-biquery" border="0" width="114" height="43"/>
<img src="superset-frontend/src/assets/images/snowflake.png" alt="snowflake" border="0" width="152" height="46"/>
<img src="superset-frontend/src/assets/images/trino.png" alt="trino" border="0" width="46" height="46"/>
<img src="superset-frontend/src/assets/images/presto.png" alt="presto" border="0" width="152" height="46"/>
<img src="superset-frontend/src/assets/images/druid.png" alt="druid" border="0" width="135" height="37" />
<img src="superset-frontend/src/assets/images/postgresql.png" alt="postgresql" border="0" width="132" height="81" />
<img src="superset-frontend/src/assets/images/mysql.png" alt="mysql" border="0" width="119" height="62" />
<img src="superset-frontend/src/assets/images/mssql-server.png" alt="mssql-server" border="0" width="93" height="74" />
<img src="superset-frontend/src/assets/images/db2.png" alt="db2" border="0" width="62" height="62" />
<img src="superset-frontend/src/assets/images/sqlite.png" alt="sqlite" border="0" width="102" height="45" />
<img src="superset-frontend/src/assets/images/sybase.png" alt="sybase" border="0" width="128" height="47" />
<img src="superset-frontend/src/assets/images/mariadb.png" alt="mariadb" border="0" width="83" height="63" />
<img src="superset-frontend/src/assets/images/vertica.png" alt="vertica" border="0" width="128" height="40" />
<img src="superset-frontend/src/assets/images/oracle.png" alt="oracle" border="0" width="121" height="66" />
<img src="superset-frontend/src/assets/images/firebird.png" alt="firebird" border="0" width="86" height="56" />
<img src="superset-frontend/src/assets/images/greenplum.png" alt="greenplum" border="0" width="140" height="45" />
<img src="superset-frontend/src/assets/images/clickhouse.png" alt="clickhouse" border="0" width="133" height="34" />
<img src="superset-frontend/src/assets/images/exasol.png" alt="exasol" border="0" width="106" height="59" />
<img src="superset-frontend/src/assets/images/monet-db.png" alt="monet-db" border="0" width="106" height="46" />
<img src="superset-frontend/src/assets/images/apache-kylin.png" alt="apache-kylin" border="0" width="56" height="64"/>
<img src="superset-frontend/src/assets/images/hologres.png" alt="hologres" border="0" width="71" height="64"/>
<img src="superset-frontend/src/assets/images/netezza.png" alt="netezza" border="0" width="64" height="64"/>
</p>
**A more comprehensive list of supported databases** along with the configuration instructions can be found
@@ -136,7 +136,7 @@ Want to add support for your datastore or data engine? Read more [here](https://
## Get Involved
- Ask and answer questions on [StackOverflow](https://stackoverflow.com/questions/tagged/apache-superset) using the **apache-superset** tag
- [Join our community's Slack](https://join.slack.com/t/apache-superset/shared_invite/zt-l5f5e0av-fyYu8tlfdqbMdz_sPLwUqQ)
- [Join our community's Slack](https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw)
and please read our [Slack Community Guidelines](https://github.com/apache/superset/blob/master/CODE_OF_CONDUCT.md#slack-community-guidelines)
- [Join our dev@superset.apache.org Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org)

View File

@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM python:3.7-buster
FROM python:3.8-buster
RUN useradd --user-group --create-home --no-log-init --shell /bin/bash superset

View File

@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM python:3.7-buster
FROM python:3.8-buster
RUN useradd --user-group --create-home --no-log-init --shell /bin/bash superset

View File

@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM python:3.7-buster
FROM python:3.8-buster
ARG VERSION
RUN git clone --depth 1 --branch ${VERSION} https://github.com/apache/superset.git /superset

View File

@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
FROM python:3.7-buster
FROM python:3.8-buster
RUN apt-get update -y
RUN apt-get install -y jq

View File

@@ -29,6 +29,8 @@ on the Superset Slack. People crafting releases and those interested in
partaking in the process should join the channel.
## Release notes for recent releases
- [1.3](release-notes-1-3/README.md)
- [1.2](release-notes-1-2/README.md)
- [1.1](release-notes-1-1/README.md)
- [1.0](release-notes-1-0/README.md)

View File

@@ -13,9 +13,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# pylint: disable=no-value-for-parameter
import csv as lib_csv
import os
import re
@@ -384,12 +381,12 @@ def change_log(
with open(csv, "w") as csv_file:
log_items = list(logs)
field_names = log_items[0].keys()
writer = lib_csv.DictWriter(
writer = lib_csv.DictWriter( # type: ignore
csv_file,
delimiter=",",
quotechar='"',
quoting=lib_csv.QUOTE_ALL,
fieldnames=field_names,
fieldnames=field_names, # type: ignore
)
writer.writeheader()
for log in logs:

View File

@@ -0,0 +1,73 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Release Notes for Superset 1.3
Superset 1.3 focuses on hardening and polishing the superset user experience, with tons of UX improvements and bug fixes focused on charts, dashboards, and the new dashboard-native filters.
- [**User Experience**](#user-experience)
- [**PR Highlights**](#pr-highlights)
- [**Breaking Changes and Full Changelog**](#breaking-changes-and-full-changelog)
# User Experience
One major goal of this release is to improve and harden dashboard-native filters. These filters live at the dashboard level instead of within a chart and affect all charts under their scope within a dashboard. Improvements in this release include clearer visual indicators of what charts are within the scope of a selected filter.
![dashboard native filter scoping](media/dashboard_native_filters_1.jpg)
Native-filters can also be set to load collapsed, which also improves connected thumbnail and alerts/reports functionality.
![dashboard native filter collapsed](media/native_filters_collapsed.png)
For charts, we've added a new funnel chart.
![funnel chart](media/funnel_chart.png)
Users can also now use Jinja templating in calculated columns and SQL metrics.
![jinja templating](media/jinja_templating.png)
At the dashboard level, work has been focused on improving available information and UX ergonomics. Users can now download a full .csv of the full dataset behind a table chart from the dashboard.
![export full csv](media/export_full_csv.png)
Continuing on the theme of making more things accessible directly from the dashboard, users can now view the SQL Query behind any chart directly from the dashboard as well.
![view query dashboard](media/view_query_dashboard.png)
# Developer Experience
The API has received a new endpoint to allow the developer to pass DB-specific parameters instead of the full SQLAlchemy URI.
# Database Connectivity
We have improved support for Ascend.io's engine spec and fixed a long list of bugs.
Also in the works is a new database connection UI, which should make connecting to a database easier without having to put together a SQLAlchemy URI. It's behind a feature flag for now, but it can be turned on in config.py with `FORCE_DATABASE_CONNECTIONS_SSL = True`.
# PR Highlights
- [14682](https://github.com/apache/superset/pull/14682) add ascend engine spec (#14682) (@Daniel Wood)
- [14420](https://github.com/apache/superset/pull/14420) feat: API endpoint to validate databases using separate parameters (#14420) (@Beto Dealmeida)
- [14934](https://github.com/apache/superset/pull/14934) feat: Adding FORCE_SSL as feature flag in config.py (#14934) (@AAfghahi)
- [14480](https://github.com/apache/superset/pull/14480) feat(viz): add funnel chart (#14480) (@Ville Brofeldt)
## Breaking Changes and Full Changelog
- To see the complete changelog in this release, head to [CHANGELOG.MD](../../CHANGELOG.md).
- 1.3.0 does not contain any backwards incompatible changes.

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

View File

@@ -61,6 +61,7 @@ Join our growing community!
- [Tails.com](https://tails.com) [@alanmcruickshank]
- [THE ICONIC](http://theiconic.com.au/) [@ksaagariconic]
- [Utair](https://www.utair.ru) [@utair-digital]
- [VkusVill](https://www.vkusvill.ru) [@ETselikov]
- [Zalando](https://www.zalando.com) [@dmigo]
- [Zalora](https://www.zalora.com) [@ksaagariconic]
@@ -96,6 +97,7 @@ Join our growing community!
- [Showmax](https://tech.showmax.com) [@bobek]
- [source{d}](https://www.sourced.tech) [@marnovo]
- [Steamroot](https://streamroot.io/)
- [TechAudit](https://www.techaudit.info) [@ETselikov]
- [Tenable](https://www.tenable.com) [@dflionis]
- [timbr.ai](https://timbr.ai/) [@semantiDan]
- [Tobii](http://www.tobii.com/) [@dwa]
@@ -104,7 +106,6 @@ Join our growing community!
- [Windsor.ai](https://www.windsor.ai/) [@octaviancorlade]
- [Zeta](https://www.zeta.tech/) [@shaikidris]
### Entertainment
- [6play](https://www.6play.fr) [@CoryChaplin]
- [bilibili](https://www.bilibili.com) [@Moinheart]
@@ -129,6 +130,7 @@ Join our growing community!
### Healthcare
- [Amino](https://amino.com) [@shkr]
- [Care](https://www.getcare.io/)[@alandao2021]
- [Living Goods](https://www.livinggoods.org) [@chelule]
- [Maieutical Labs](https://maieuticallabs.it) [@xrmx]
- [QPID Health](http://www.qpidhealth.com/)

View File

@@ -22,33 +22,55 @@ under the License.
This file documents any backwards-incompatible changes in Superset and
assists people when migrating to a new version.
## 1.3.1
## Next
### Breaking Changes
- [16711](https://github.com/apache/incubator-superset/pull/16711): The `url_param` Jinja function will now by default escape the result. For instance, the value `O'Brien` will now be changed to `O''Brien`. To disable this behavior, call `url_param` with `escape_result` set to `False`: `url_param("my_key", "my default", escape_result=False)`.
### Potential Downtime
### Deprecations
### Other
## 1.4.0
### Breaking Changes
- [16660](https://github.com/apache/superset/pull/16660): The `columns` Jinja parameter has been renamed `table_columns` to make the `columns` query object parameter available in the Jinja context.
- [16711](https://github.com/apache/superset/pull/16711): The `url_param` Jinja function will now by default escape the result. For instance, the value `O'Brien` will now be changed to `O''Brien`. To disable this behavior, call `url_param` with `escape_result` set to `False`: `url_param("my_key", "my default", escape_result=False)`.
### Potential Downtime
### Deprecations
### Other
- [16809](https://github.com/apache/superset/pull/16809): When building the superset frontend assets manually, you should now use Node 16 (previously Node 14 was required/recommended). Node 14 will most likely still work for at least some time, but is no longer actively tested for on CI.
## 1.3.0
### Breaking Changes
- [15909](https://github.com/apache/incubator-superset/pull/15909): a change which
drops a uniqueness criterion (which may or may not have existed) to the tables table. This constraint was obsolete as it is handled by the ORM due to differences in how MySQL, PostgreSQL, etc. handle uniqueness for NULL values.
- [15909](https://github.com/apache/superset/pull/15909): a change which
drops a uniqueness criterion (which may or may not have existed) to the tables table. This constraint was obsolete as it is handled by the ORM due to differences in how MySQL, PostgreSQL, etc. handle uniqueness for NULL values.
### Potential Downtime
- [14234](https://github.com/apache/superset/pull/14234): Adds the `limiting_factor` column to the `query` table. Give the migration includes a DDL operation on a heavily trafficed table, potential service downtime may be required.
-[16454](https://github.com/apache/superset/pull/16454): Adds the `extra` column to the `table_columns` table. Users using MySQL will either need to schedule downtime or use the percona toolkit (or similar) to perform the migration.
## 1.2.0
### Deprecations
- [13440](https://github.com/apache/superset/pull/13440): Dashboard/Charts reports and old Alerts is deprecated. The following config keys are deprecated:
- ENABLE_ALERTS
- SCHEDULED_EMAIL_DEBUG_MODE
- EMAIL_REPORTS_CRON_RESOLUTION
- EMAIL_ASYNC_TIME_LIMIT_SEC
- EMAIL_REPORT_BCC_ADDRESS
- EMAIL_REPORTS_USER
- ENABLE_ALERTS
- SCHEDULED_EMAIL_DEBUG_MODE
- EMAIL_REPORTS_CRON_RESOLUTION
- EMAIL_ASYNC_TIME_LIMIT_SEC
- EMAIL_REPORT_BCC_ADDRESS
- EMAIL_REPORTS_USER
### Other
@@ -83,19 +105,21 @@ drops a uniqueness criterion (which may or may not have existed) to the tables t
## 1.0.0
### Breaking Changes
- [11509](https://github.com/apache/superset/pull/12491): Dataset metadata updates check user ownership, only owners or an Admin are allowed.
- Security simplification (SIP-19), the following permission domains were simplified:
- [12072](https://github.com/apache/superset/pull/12072): `Query` with `can_read`, `can_write`
- [12036](https://github.com/apache/superset/pull/12036): `Database` with `can_read`, `can_write`.
- [12012](https://github.com/apache/superset/pull/12036): `Dashboard` with `can_read`, `can_write`.
- [12061](https://github.com/apache/superset/pull/12061): `Log` with `can_read`, `can_write`.
- [12000](https://github.com/apache/superset/pull/12000): `Dataset` with `can_read`, `can_write`.
- [12014](https://github.com/apache/superset/pull/12014): `Annotation` with `can_read`, `can_write`.
- [11981](https://github.com/apache/superset/pull/11981): `Chart` with `can_read`, `can_write`.
- [11853](https://github.com/apache/superset/pull/11853): `ReportSchedule` with `can_read`, `can_write`.
- [11856](https://github.com/apache/superset/pull/11856): `CssTemplate` with `can_read`, `can_write`.
- [11764](https://github.com/apache/superset/pull/11764): `SavedQuery` with `can_read`, `can_write`.
Old permissions will be automatically migrated to these new permissions and applied to all existing security Roles.
- [12072](https://github.com/apache/superset/pull/12072): `Query` with `can_read`, `can_write`
- [12036](https://github.com/apache/superset/pull/12036): `Database` with `can_read`, `can_write`.
- [12012](https://github.com/apache/superset/pull/12036): `Dashboard` with `can_read`, `can_write`.
- [12061](https://github.com/apache/superset/pull/12061): `Log` with `can_read`, `can_write`.
- [12000](https://github.com/apache/superset/pull/12000): `Dataset` with `can_read`, `can_write`.
- [12014](https://github.com/apache/superset/pull/12014): `Annotation` with `can_read`, `can_write`.
- [11981](https://github.com/apache/superset/pull/11981): `Chart` with `can_read`, `can_write`.
- [11853](https://github.com/apache/superset/pull/11853): `ReportSchedule` with `can_read`, `can_write`.
- [11856](https://github.com/apache/superset/pull/11856): `CssTemplate` with `can_read`, `can_write`.
- [11764](https://github.com/apache/superset/pull/11764): `SavedQuery` with `can_read`, `can_write`.
Old permissions will be automatically migrated to these new permissions and applied to all existing security Roles.
- [11499](https://github.com/apache/superset/pull/11499): Breaking change: `STORE_CACHE_KEYS_IN_METADATA_DB` config flag added (default=`False`) to write `CacheKey` records to the metadata DB. `CacheKey` recording was enabled by default previously.
@@ -110,42 +134,44 @@ drops a uniqueness criterion (which may or may not have existed) to the tables t
- [11244](https://github.com/apache/superset/pull/11244): The `REDUCE_DASHBOARD_BOOTSTRAP_PAYLOAD` feature flag has been removed after being set to True for multiple months.
- [11172](https://github.com/apache/superset/pull/11172): Turning
off language selectors by default as i18n is incomplete in most languages
and requires more work. You can easily turn on the languages you want
to expose in your environment in superset_config.py
off language selectors by default as i18n is incomplete in most languages
and requires more work. You can easily turn on the languages you want
to expose in your environment in superset_config.py
- [11172](https://github.com/apache/superset/pull/11172): Breaking change: SQL templating is turned off by default. To turn it on set `ENABLE_TEMPLATE_PROCESSING` to True on `FEATURE_FLAGS`
### Potential Downtime
- [11920](https://github.com/apache/superset/pull/11920): Undos the DB migration from [11714](https://github.com/apache/superset/pull/11714) to prevent adding new columns to the logs table. Deploying a sha between these two PRs may result in locking your DB.
- [11714](https://github.com/apache/superset/pull/11714): Logs
significantly more analytics events (roughly double?), and when
using DBEventLogger (default) could result in stressing the metadata
database more.
significantly more analytics events (roughly double?), and when
using DBEventLogger (default) could result in stressing the metadata
database more.
- [11098](https://github.com/apache/superset/pull/11098): includes a database migration that adds a `uuid` column to most models, and updates `Dashboard.position_json` to include chart UUIDs. Depending on number of objects, the migration may take up to 5 minutes, requiring planning for downtime.
### Deprecations
- [11155](https://github.com/apache/superset/pull/11155): The `FAB_UPDATE_PERMS` config parameter is no longer required as the Superset application correctly informs FAB under which context permissions should be updated.
## 0.38.0
* [10887](https://github.com/apache/superset/pull/10887): Breaking change: The custom cache backend changed in order to support the Flask-Caching factory method approach and thus must be registered as a custom type. See [here](https://flask-caching.readthedocs.io/en/latest/#custom-cache-backends) for specifics.
- [10887](https://github.com/apache/superset/pull/10887): Breaking change: The custom cache backend changed in order to support the Flask-Caching factory method approach and thus must be registered as a custom type. See [here](https://flask-caching.readthedocs.io/en/latest/#custom-cache-backends) for specifics.
* [10674](https://github.com/apache/superset/pull/10674): Breaking change: PUBLIC_ROLE_LIKE_GAMMA was removed is favour of the new PUBLIC_ROLE_LIKE so it can be set to whatever role you want.
- [10674](https://github.com/apache/superset/pull/10674): Breaking change: PUBLIC_ROLE_LIKE_GAMMA was removed is favour of the new PUBLIC_ROLE_LIKE so it can be set to whatever role you want.
* [10590](https://github.com/apache/superset/pull/10590): Breaking change: this PR will convert iframe chart into dashboard markdown component, and remove all `iframe`, `separator`, and `markup` slices (and support) from Superset. If you have important data in those slices, please backup manually.
- [10590](https://github.com/apache/superset/pull/10590): Breaking change: this PR will convert iframe chart into dashboard markdown component, and remove all `iframe`, `separator`, and `markup` slices (and support) from Superset. If you have important data in those slices, please backup manually.
* [10562](https://github.com/apache/superset/pull/10562): EMAIL_REPORTS_WEBDRIVER is deprecated use WEBDRIVER_TYPE instead.
- [10562](https://github.com/apache/superset/pull/10562): EMAIL_REPORTS_WEBDRIVER is deprecated use WEBDRIVER_TYPE instead.
* [10567](https://github.com/apache/superset/pull/10567): Default WEBDRIVER_OPTION_ARGS are Chrome-specific. If you're using FF, should be `--headless` only
- [10567](https://github.com/apache/superset/pull/10567): Default WEBDRIVER_OPTION_ARGS are Chrome-specific. If you're using FF, should be `--headless` only
* [10241](https://github.com/apache/superset/pull/10241): change on Alpha role, users started to have access to "Annotation Layers", "Css Templates" and "Import Dashboards".
- [10241](https://github.com/apache/superset/pull/10241): change on Alpha role, users started to have access to "Annotation Layers", "Css Templates" and "Import Dashboards".
* [10324](https://github.com/apache/superset/pull/10324): Facebook Prophet has been introduced as an optional dependency to add support for timeseries forecasting in the chart data API. To enable this feature, install Superset with the optional dependency `prophet` or directly `pip install fbprophet`.
- [10324](https://github.com/apache/superset/pull/10324): Facebook Prophet has been introduced as an optional dependency to add support for timeseries forecasting in the chart data API. To enable this feature, install Superset with the optional dependency `prophet` or directly `pip install fbprophet`.
* [10320](https://github.com/apache/superset/pull/10320): References to blacklst/whitelist language have been replaced with more appropriate alternatives. All configs refencing containing `WHITE`/`BLACK` have been replaced with `ALLOW`/`DENY`. Affected config variables that need to be updated: `TIME_GRAIN_BLACKLIST`, `VIZ_TYPE_BLACKLIST`, `DRUID_DATA_SOURCE_BLACKLIST`.
- [10320](https://github.com/apache/superset/pull/10320): References to blacklst/whitelist language have been replaced with more appropriate alternatives. All configs refencing containing `WHITE`/`BLACK` have been replaced with `ALLOW`/`DENY`. Affected config variables that need to be updated: `TIME_GRAIN_BLACKLIST`, `VIZ_TYPE_BLACKLIST`, `DRUID_DATA_SOURCE_BLACKLIST`.
## 0.37.1

View File

@@ -33,7 +33,7 @@ services:
- redis:/data
db:
env_file: docker/.env
env_file: docker/.env-non-dev
image: postgres:10
container_name: superset_db
restart: unless-stopped

View File

@@ -102,7 +102,7 @@ services:
CYPRESS_CONFIG: "${CYPRESS_CONFIG}"
superset-node:
image: node:14
image: node:16
container_name: superset_node
command: ["/app/docker/docker-frontend.sh"]
env_file: docker/.env

View File

@@ -1465,7 +1465,7 @@ install from pip: ::
and run via: ::
celery flower --app=superset.tasks.celery_app:app
celery --app=superset.tasks.celery_app:app flower
Building from source
---------------------

View File

@@ -26,7 +26,7 @@ import { pmc } from '../resources/data';
const links = [
[
'https://join.slack.com/t/apache-superset/shared_invite/zt-l5f5e0av-fyYu8tlfdqbMdz_sPLwUqQ',
'https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw',
'Slack',
'interact with other Superset users and community members',
],

View File

@@ -0,0 +1,68 @@
---
name: Databricks
menu: Connecting to Databases
route: /docs/databases/databricks
index: 30
version: 1
---
## Databricks
To connect to Databricks, first install [databricks-dbapi](https://pypi.org/project/databricks-dbapi/) with the optional SQLAlchemy dependencies:
```bash
pip install databricks-dbapi[sqlalchemy]
```
There are two ways to connect to Databricks: using a Hive connector or an ODBC connector. Both ways work similarly, but only ODBC can be used to connect to [SQL endpoints](https://docs.databricks.com/sql/admin/sql-endpoints.html).
### Hive
To use the Hive connector you need the following information from your cluster:
- Server hostname
- Port
- HTTP path
These can be found under "Configuration" -> "Advanced Options" -> "JDBC/ODBC".
You also need an access token from "Settings" -> "User Settings" -> "Access Tokens".
Once you have all this information, add a database of type "Databricks (Hive)" in Superset, and use the following SQLAlchemy URI:
```
databricks+pyhive://token:{access token}@{server hostname}:{port}/{database name}
```
You also need to add the following configuration to "Other" -> "Engine Parameters", with your HTTP path:
```
{"connect_args": {"http_path": "sql/protocolv1/o/****"}}
```
### ODBC
For ODBC you first need to install the [ODBC drivers for your platform](https://databricks.com/spark/odbc-drivers-download).
For a regular connection use this as the SQLAlchemy URI:
```
databricks+pyodbc://token:{access token}@{server hostname}:{port}/{database name}
```
And for the connection arguments:
```
{"connect_args": {"http_path": "sql/protocolv1/o/****", "driver_path": "/path/to/odbc/driver"}}
```
The driver path should be:
- `/Library/simba/spark/lib/libsparkodbc_sbu.dylib` (Mac OS)
- `/opt/simba/spark/lib/64/libsparkodbc_sb64.so` (Linux)
For a connection to a SQL endpoint you need to use the HTTP path from the endpoint:
```
{"connect_args": {"http_path": "/sql/1.0/endpoints/****", "driver_path": "/path/to/odbc/driver"}}
```

View File

@@ -0,0 +1,24 @@
---
name: Firebolt
menu: Connecting to Databases
route: /docs/databases/firebolt
index: 31
version: 1
---
## Firebolt
The recommended connector library for Firebolt is [firebolt-sqlalchemy](https://pypi.org/project/firebolt-sqlalchemy/).
Superset has been tested on `firebolt-sqlalchemy>=0.0.1`.
The recommended connection string is:
```
firebolt://{username}:{password}@{host}/{database}
```
Here's a connection string example of Superset connecting to a Firebolt database:
```
firebolt://email@domain:password@host/sample_database
```

View File

@@ -42,12 +42,13 @@ A list of some of the recommended packages.
|[Elasticsearch](/docs/databases/elasticsearch)|```pip install elasticsearch-dbapi```|```elasticsearch+http://{user}:{password}@{host}:9200/```|
|[Exasol](/docs/databases/exasol)|```pip install sqlalchemy-exasol```|```exa+pyodbc://{username}:{password}@{hostname}:{port}/my_schema?CONNECTIONLCALL=en_US.UTF-8&driver=EXAODBC```|
|[Google Sheets](/docs/databases/google-sheets)|```pip install shillelagh[gsheetsapi]```|```gsheets://```|
|[Firebolt](/docs/databases/firebolt)|```pip install firebolt-sqlalchemy```|```firebolt://{username}:{password}@{host}/{database}```|
|[Hologres](/docs/databases/hologres)|```pip install psycopg2```|```postgresql+psycopg2://<UserName>:<DBPassword>@<Database Host>/<Database Name>```|
|[IBM Db2](/docs/databases/ibm-db2)|```pip install ibm_db_sa```|```db2+ibm_db://```|
|[IBM Netezza Performance Server](/docs/databases/netezza)|```pip install nzalchemy```|```netezza+nzpy://<UserName>:<DBPassword>@<Database Host>/<Database Name>```|
|[MySQL](/docs/databases/mysql)|```pip install mysqlclient```|```mysql://<UserName>:<DBPassword>@<Database Host>/<Database Name>```|
|[Oracle](/docs/databases/oracle)|```pip install cx_Oracle```|```oracle://```|
|[PostgreSQL](/docs/databases/postgresql)|```pip install psycopg2```|```postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>```|
|[PostgreSQL](/docs/databases/postgres)|```pip install psycopg2```|```postgresql://<UserName>:<DBPassword>@<Database Host>/<Database Name>```|
|[Trino](/docs/databases/trino)|```pip install sqlalchemy-trino```|```trino://{username}:{password}@{hostname}:{port}/{catalog}```|
|[Presto](/docs/databases/presto)|```pip install pyhive```|```presto://```|
|[SAP Hana](/docs/databases/hana)|```pip install hdbcli sqlalchemy-hana or pip install apache-superset[hana]```|```hana://{username}:{password}@{host}:{port}```|
@@ -69,5 +70,5 @@ exists, please file an issue on the
supporting it.
[StackOverflow](https://stackoverflow.com/questions/tagged/apache-superset+superset) and the
[Superset community Slack](https://join.slack.com/t/apache-superset/shared_invite/zt-l5f5e0av-fyYu8tlfdqbMdz_sPLwUqQ)
[Superset community Slack](https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw)
are great places to get help with connecting to databases in Superset.

View File

@@ -8,8 +8,8 @@ version: 1
## Postgres
Note that the Postgres connector library [psycopg2](https://www.psycopg.org/docs/) comes out of the
box with Superset.
Note that, if you're using docker-compose, the Postgres connector library [psycopg2](https://www.psycopg.org/docs/)
comes out of the box with Superset.
Postgres sample connection parameters:

View File

@@ -66,7 +66,7 @@ Navigate to **Data ‣ Datasets** and select the **+ Dataset** button in the top
A modal window should pop up in front of you. Select your **Database**,
**Schema**, and **Table** using the drop downs that appear. In the following example,
we register the **Vehicle Sales** table from the **examples** database.
we register the **cleaned_sales_data** table from the **examples** database.
<img src="/images/tutorial_09_add_new_table.png" />

View File

@@ -11,7 +11,7 @@ The core contributors (or committers) to Superset communicate primarily in the f
which you can join):
- [Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org)
- [Apache Superset Slack community](https://join.slack.com/t/apache-superset/shared_invite/zt-l5f5e0av-fyYu8tlfdqbMdz_sPLwUqQ)
- [Apache Superset Slack community](https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw)
- [Github issues and PR's](https://github.com/apache/superset/issues)
If you're interested in contributing, we recommend reading the Community Contribution Guide

View File

@@ -183,10 +183,10 @@ You can read more about customizing Superset using the configuration file
Table schemas evolve, and Superset needs to reflect that. Its pretty common in the life cycle of a
dashboard to want to add a new dimension or metric. To get Superset to discover your new columns,
all you have to do is to go to **Menu -> Sources -> Tables**, click the edit icon next to the table
whos schema has changed, and hit **Save** from the **Detail** tab. Behind the scene, the new
columns will get merged it. Following this, you may want to re-edit the table afterwards to
configure the Column tab, check the appropriate boxes and save again.
all you have to do is to go to **Data -> Datasets**, click the edit icon next to the dataset
whose schema has changed, and hit **Sync columns from source** from the **Columns** tab.
Behind the scene, the new columns will get merged it. Following this, you may want to re-edit the
table afterwards to configure the Columns tab, check the appropriate boxes and save again.
### What database engine can I use as a backend for Superset?
@@ -212,12 +212,6 @@ You can take a look at this Flask-AppBuilder
Simply apply the filter and save the dashboard while the filter is active.
### How do I get Superset to refresh the schema of my table?
When adding columns to a table, you can have Superset detect and merge the new columns in by using
the “Refresh Metadata” action in the **Source -> Tables** page. Simply check the box next to the
tables you want the schema refreshed, and click **Actions -> Refresh Metadata**.
### Is there a way to force the use specific colors?
It is possible on a per-dashboard basis by providing a mapping of labels to colors in the JSON

View File

@@ -114,5 +114,5 @@ pip install flower
You can run flower using:
```
celery flower --app=superset.tasks.celery_app:app
celery --app=superset.tasks.celery_app:app flower
```

View File

@@ -201,6 +201,29 @@ CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
]
```
### Flask app Configuration Hook
`FLASK_APP_MUTATOR` is a configuration function that can be provided in your environment, receives
the app object and can alter it in any way. For example, add `FLASK_APP_MUTATOR` into your
`superset_config.py` to setup session cookie expiration time to 24 hours:
```python
from flask import session
from flask import Flask
def make_session_permanent():
'''
Enable maxAge for the cookie 'session'
'''
session.permanent = True
# Set up max age of session to 24 hours
PERMANENT_SESSION_LIFETIME = timedelta(hours=24)
def FLASK_APP_MUTATOR(app: Flask) -> None:
app.before_request_funcs.setdefault(None, []).append(make_session_permanent)
```
### Feature Flags
To support a diverse set of users, Superset has some features that are not enabled by default. For
@@ -218,7 +241,7 @@ FEATURE_FLAGS = {
}
```
A current list of feature flags can be found in `RESOURCES/FEATURE_FLAGS.md`
A current list of feature flags can be found in [RESOURCES/FEATURE_FLAGS.md](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md).
### SIP 15

View File

@@ -36,6 +36,18 @@ Install the following packages using the `yum` package manager:
sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel
```
In more recent versions of CentOS and Fedora, you may need to install a slightly different set of packages using `dnf`:
```
sudo dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip python3-wheel openssl-devel cyrus-sasl-devel openldap-devel
```
Also, on CentOS, you may need to upgrade pip for the install to work:
```
pip3 install --upgrade pip
```
**Mac OS X**
If you're not on the latest version of OS X, we recommend upgrading because we've found that many
@@ -53,7 +65,7 @@ We don't recommend using the system installed Python. Instead, first install the
brew install readline pkg-config libffi openssl mysql postgres
```
You should install a recent version of Python (Superset uses 3.7.9). We'd recommend using a Python version manager like [pyenv](https://github.com/pyenv/pyenv) (and also [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)).
You should install a recent version of Python (the official docker image uses 3.8.12). We'd recommend using a Python version manager like [pyenv](https://github.com/pyenv/pyenv) (and also [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)).
Let's also make sure we have the latest version of `pip` and `setuptools`:

View File

@@ -10,10 +10,34 @@ version: 1
### Jinja Templates
SQL Lab supports [Jinja templating](https://jinja.palletsprojects.com/en/2.11.x/) in queries. You'll
need to to overload the default Jinja context in your environment by defining the
JINJA_CONTEXT_ADDONS in your superset configuration (`superset_config.py`). Objects referenced in
this dictionary are made available for users to use in their SQL code.
SQL Lab and Explore supports [Jinja templating](https://jinja.palletsprojects.com/en/2.11.x/) in queries.
To enable templating, the `ENABLE_TEMPLATE_PROCESSING` feature flag needs to be enabled in
`superset_config.py`. When templating is enabled, python code can be embedded in virtual datasets and
in Custom SQL in the filter and metric controls in Explore. By default, the following variables are
made available in the Jinja context:
- `columns`: columns which to group by in the query
- `filter`: filters applied in the query
- `from_dttm`: start `datetime` value from the selected time range (`None` if undefined)
- `to_dttm`: end `datetime` value from the selected time range (`None` if undefined)
- `groupby`: columns which to group by in the query (deprecated)
- `metrics`: aggregate expressions in the query
- `row_limit`: row limit of the query
- `row_offset`: row offset of the query
- `table_columns`: columns available in the dataset
- `time_column`: temporal column of the query (`None` if undefined)
- `time_grain`: selected time grain (`None` if undefined)
For example, to add a time range to a virtual dataset, you can write the following:
```sql
SELECT * from tbl where dttm_col > '{{ from_dttm }}' and dttm_col < '{{ to_dttm }}'
```
To add custom functionality to the Jinja context, you need to to to overload the default Jinja
context in your environment by defining the `JINJA_CONTEXT_ADDONS` in your superset configuration
(`superset_config.py`). Objects referenced in this dictionary are made available for users to use
where the Jinja context is made available.
```python
JINJA_CONTEXT_ADDONS = {
@@ -174,7 +198,7 @@ You can retrieve the value for a specific filter as a list using `{{ filter_valu
This is useful if:
- you want to use a filter component to filter a query where the name of filter component column doesn't match the one in the select statement
- you want to have the ability for filter inside the main query for speed purposes
- you want to have the ability for filter inside the main query for performance purposes
Here's a concrete example:
@@ -186,11 +210,6 @@ WHERE
GROUP BY action
```
You can use thisfeature to reference the start & end datetimes from a time filter using:
- `{{ from_dttm }}`: start datetime value
- `{{ to_dttm }}`: end datetime value
**Filters for a Specific Column**
The `{{ get_filters() }}` macro returns the filters applied to a given column. In addition to

View File

@@ -7,7 +7,7 @@ route: /docs/security
### Roles
Security in Superset is handled by Flask AppBuilder (FAB), an application development framework
built on top of Flask.”. FAB provides authentication, user management, permissions and roles.
built on top of Flask. FAB provides authentication, user management, permissions and roles.
Please read its [Security documentation](https://flask-appbuilder.readthedocs.io/en/latest/security.html).
### Provided Roles
@@ -15,7 +15,7 @@ Please read its [Security documentation](https://flask-appbuilder.readthedocs.io
Superset ships with a set of roles that are handled by Superset itself. You can assume
that these roles will stay up-to-date as Superset evolves (and as you update Superset versions).
Even though **Admin** users have the ability, we don't recommend that altering the
Even though **Admin** users have the ability, we don't recommend altering the
permissions associated with each role (e.g. by removing or adding permissions to them). The permissions
associated with each role will be re-synchronized to their original values when you run
the **superset init** command (often done between Superset versions).

View File

@@ -730,13 +730,13 @@
"PT5M",
"PT10M",
"PT15M",
"PT0.5H",
"PT30M",
"PT1H",
"PT6H",
"P1D",
"P1W",
"P1M",
"P0.25Y",
"P3M",
"P1Y",
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
@@ -998,13 +998,13 @@
"PT5M",
"PT10M",
"PT15M",
"PT0.5H",
"PT30M",
"PT1H",
"PT6H",
"P1D",
"P1W",
"P1M",
"P0.25Y",
"P3M",
"P1Y",
"1969-12-28T00:00:00Z/P1W",
"1969-12-29T00:00:00Z/P1W",
@@ -2722,7 +2722,7 @@
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"description": "If Presto, Trino or Drill all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"parameters": {
@@ -2816,7 +2816,7 @@
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"description": "If Presto, Trino or Drill all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"parameters": {
@@ -2866,7 +2866,7 @@
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"description": "If Presto, Trino or Drill all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"parameters": {
@@ -2914,7 +2914,7 @@
"type": "string"
},
"impersonate_user": {
"description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"description": "If Presto, Trino or Drill all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
"type": "boolean"
},
"parameters": {
@@ -9984,43 +9984,45 @@
"content": {
"application/json": {
"schema": {
"items": {
"properties": {
"available_drivers": {
"description": "Installed drivers for the engine",
"items": {
"databases": {
"items": {
"properties": {
"available_drivers": {
"description": "Installed drivers for the engine",
"items": {
"type": "string"
},
"type": "array"
},
"default_driver": {
"description": "Default driver for the engine",
"type": "string"
},
"type": "array"
"engine": {
"description": "Name of the SQLAlchemy engine",
"type": "string"
},
"name": {
"description": "Name of the database",
"type": "string"
},
"parameters": {
"description": "JSON schema defining the needed parameters",
"type": "object"
},
"preferred": {
"description": "Is the database preferred?",
"type": "boolean"
},
"sqlalchemy_uri_placeholder": {
"description": "Example placeholder for the SQLAlchemy URI",
"type": "string"
}
},
"default_driver": {
"description": "Default driver for the engine",
"type": "string"
},
"engine": {
"description": "Name of the SQLAlchemy engine",
"type": "string"
},
"name": {
"description": "Name of the database",
"type": "string"
},
"parameters": {
"description": "JSON schema defining the needed parameters",
"type": "object"
},
"preferred": {
"description": "Is the database preferred?",
"type": "boolean"
},
"sqlalchemy_uri_placeholder": {
"description": "Example placeholder for the SQLAlchemy URI",
"type": "string"
}
"type": "object"
},
"type": "object"
},
"type": "array"
"type": "array"
}
}
}
},

View File

@@ -22,7 +22,7 @@ maintainers:
- name: craig-rueda
email: craig@craigrueda.com
url: https://github.com/craig-rueda
version: 0.3.5
version: 0.3.10
dependencies:
- name: postgresql
version: 10.2.0

View File

@@ -61,6 +61,9 @@ spec:
initContainers:
{{- tpl (toYaml .Values.supersetCeleryBeat.initContainers) . | nindent 6 }}
{{- end }}
{{- with .Values.hostAliases }}
hostAliases: {{ toYaml . | nindent 6 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
@@ -69,12 +72,13 @@ spec:
env:
- name: "SUPERSET_PORT"
value: {{ .Values.service.port | quote}}
{{- if .Values.extraEnv }}
{{- range $key, $value := .Values.extraEnv }}
- name: {{ $key | quote}}
value: {{ $value | quote }}
{{- end }}
{{- end }}
{{- if .Values.extraEnvRaw }}
{{- toYaml .Values.extraEnvRaw | nindent 12 }}
{{- end }}
envFrom:
- secretRef:
name: {{ tpl .Values.envFromSecret . | quote }}
@@ -86,6 +90,9 @@ spec:
- name: superset-config
mountPath: {{ .Values.configMountPath | quote }}
readOnly: true
{{- with .Values.extraVolumeMounts }}
{{- tpl (toYaml .) $ | nindent 12 -}}
{{- end }}
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- with .Values.nodeSelector }}
@@ -108,4 +115,7 @@ spec:
- name: superset-config
secret:
secretName: {{ tpl .Values.configFromSecret . }}
{{- with .Values.extraVolumes }}
{{- tpl (toYaml .) $ | nindent 8 -}}
{{- end }}
{{- end -}}

View File

@@ -62,6 +62,9 @@ spec:
initContainers:
{{- tpl (toYaml .Values.supersetWorker.initContainers) . | nindent 6 }}
{{- end }}
{{- with .Values.hostAliases }}
hostAliases: {{ toYaml . | nindent 6 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
@@ -70,12 +73,13 @@ spec:
env:
- name: "SUPERSET_PORT"
value: {{ .Values.service.port | quote}}
{{- if .Values.extraEnv }}
{{- range $key, $value := .Values.extraEnv }}
- name: {{ $key | quote}}
value: {{ $value | quote }}
{{- end }}
{{- end }}
{{- if .Values.extraEnvRaw }}
{{- toYaml .Values.extraEnvRaw | nindent 12 }}
{{- end }}
envFrom:
- secretRef:
name: {{ tpl .Values.envFromSecret . | quote }}
@@ -87,6 +91,9 @@ spec:
- name: superset-config
mountPath: {{ .Values.configMountPath | quote }}
readOnly: true
{{- with .Values.extraVolumeMounts }}
{{- tpl (toYaml .) $ | nindent 12 -}}
{{- end }}
resources:
{{ toYaml .Values.resources | indent 12 }}
{{- with .Values.nodeSelector }}
@@ -109,3 +116,6 @@ spec:
- name: superset-config
secret:
secretName: {{ tpl .Values.configFromSecret . }}
{{- with .Values.extraVolumes }}
{{- tpl (toYaml .) $ | nindent 8 -}}
{{- end }}

View File

@@ -65,6 +65,9 @@ spec:
initContainers:
{{- tpl (toYaml .Values.supersetNode.initContainers) . | nindent 6 }}
{{- end }}
{{- with .Values.hostAliases }}
hostAliases: {{ toYaml . | nindent 6 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
@@ -73,12 +76,17 @@ spec:
env:
- name: "SUPERSET_PORT"
value: {{ .Values.service.port | quote}}
{{- if .Values.extraEnv }}
{{- range $key, $value := .Values.extraEnv }}
- name: {{ $key | quote}}
value: {{ $value | quote }}
{{- end }}
{{- end }}
{{- range $key, $value := .Values.supersetNode.env }}
- name: {{ $key | quote}}
value: {{ $value | quote }}
{{- end }}
{{- if .Values.extraEnvRaw }}
{{- toYaml .Values.extraEnvRaw | nindent 12 }}
{{- end }}
envFrom:
- secretRef:
name: {{ tpl .Values.envFromSecret . | quote }}
@@ -95,6 +103,9 @@ spec:
mountPath: {{ .Values.extraConfigMountPath | quote }}
readOnly: true
{{- end }}
{{- with .Values.extraVolumeMounts }}
{{- tpl (toYaml .) $ | nindent 12 -}}
{{- end }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
@@ -127,3 +138,6 @@ spec:
configMap:
name: {{ template "superset.fullname" . }}-extra-config
{{- end }}
{{- with .Values.extraVolumes }}
{{- tpl (toYaml .) $ | nindent 8 -}}
{{- end }}

View File

@@ -36,12 +36,15 @@ spec:
containers:
- name: {{ template "superset.name" . }}-init-db
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
{{ if .Values.extraEnv }}
{{- if or .Values.extraEnv .Values.extraEnvRaw }}
env:
{{- range $key, $value := .Values.extraEnv }}
- name: {{ $key | quote }}
value: {{ $value | quote }}
{{- end }}
{{- if .Values.extraEnvRaw }}
{{- toYaml .Values.extraEnvRaw | nindent 10 }}
{{- end }}
{{- end }}
envFrom:
- secretRef:
@@ -60,6 +63,9 @@ spec:
mountPath: {{ .Values.extraConfigMountPath | quote }}
readOnly: true
{{- end }}
{{- with .Values.extraVolumeMounts }}
{{- tpl (toYaml .) $ | nindent 10 -}}
{{- end }}
command: {{ tpl (toJson .Values.init.command) . }}
resources:
{{ toYaml .Values.init.resources | indent 10 }}
@@ -76,5 +82,8 @@ spec:
configMap:
name: {{ template "superset.fullname" . }}-extra-config
{{- end }}
{{- with .Values.extraVolumes }}
{{- tpl (toYaml .) $ | nindent 8 -}}
{{- end }}
restartPolicy: Never
{{- end }}

View File

@@ -54,11 +54,21 @@ extraEnv: {}
# GUNICORN_TIMEOUT: 300
# OAUTH_HOME_DOMAIN: ..
# OAUTH_HOME_DOMAIN: ..
# # If a whitelist is not set, any address that can use your OAuth2 endpoint will be able to login.
# # this includes any random Gmail address if your OAuth2 Web App is set to External.
# OAUTH_WHITELIST_REGEX: ...
## Extra environment variables in RAW format that will be passed into pods
##
extraEnvRaw: []
# Load DB password from other secret (e.g. for zalando operator)
# - name: DB_PASS
# valueFrom:
# secretKeyRef:
# name: superset.superset-postgres.credentials.postgresql.acid.zalan.do
# key: password
## Extra environment variables to pass as secrets
##
extraSecretEnv: {}
@@ -82,6 +92,22 @@ extraConfigs: {}
extraSecrets: {}
extraVolumes: []
# - name: customConfig
# configMap:
# name: '{{ template "superset.fullname" . }}-custom-config'
# - name: additionalSecret
# secret:
# secretName: my-secret
# defaultMode: 0600
extraVolumeMounts: []
# - name: customConfig
# mountPath: /mnt/config
# readOnly: true
# - name: additionalSecret:
# mountPath: /mnt/secret
# A dictionary of overrides to append at the end of superset_config.py - the name does not matter
# WARNING: the order is not guaranteed
configOverrides: {}
@@ -167,6 +193,15 @@ resources: {}
# cpu: 100m
# memory: 128Mi
##
## Custom hostAliases for all superset pods
## https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/
hostAliases: []
# - hostnames:
# - nodns.my.lan
# ip: 18.27.36.45
##
## Superset node configuration
supersetNode:
@@ -182,6 +217,7 @@ supersetNode:
db_user: superset
db_pass: superset
db_name: superset
env: {}
forceReload: false # If true, forces deployment to reload on each upgrade
initContainers:
- name: wait-for-postgres
@@ -276,6 +312,7 @@ init:
command: [ "/bin/sh", "-c", "until nc -zv $DB_HOST $DB_PORT -w1; do echo 'waiting for db'; sleep 1; done" ]
initscript: |-
#!/bin/sh
set -eu
echo "Upgrading DB schema..."
superset db upgrade
echo "Initializing roles..."

View File

@@ -18,3 +18,8 @@
-e file:.
pyrsistent>=0.16.1,<0.17
zipp==3.4.1
sasl==0.3.1
packaging==21.0
wrapt==1.12.1
certifi==2021.5.30
charset-normalizer==2.0.4

View File

@@ -1,4 +1,4 @@
# SHA1:0862095245a068ae2fc00217da78331e1e7ae505
# SHA1:fe363b0ea02d7589c2ba5a1cf936247a966a6d5e
#
# This file is autogenerated by pip-compile-multi
# To update, run:
@@ -7,9 +7,9 @@
#
-e file:.
# via -r requirements/base.in
aiohttp==3.7.2
aiohttp==3.7.4.post0
# via slackclient
alembic==1.4.3
alembic==1.6.5
# via flask-migrate
amqp==2.6.1
# via kombu
@@ -17,17 +17,17 @@ apispec[yaml]==3.3.2
# via flask-appbuilder
async-timeout==3.0.1
# via aiohttp
attrs==20.2.0
attrs==21.2.0
# via
# aiohttp
# jsonschema
babel==2.8.0
babel==2.9.1
# via flask-babel
backoff==1.10.0
backoff==1.11.1
# via apache-superset
billiard==3.6.3.0
billiard==3.6.4.0
# via celery
bleach==3.3.0
bleach==3.3.1
# via apache-superset
brotli==1.0.9
# via flask-compress
@@ -35,10 +35,18 @@ cachelib==0.1.1
# via apache-superset
celery==4.4.7
# via apache-superset
cffi==1.14.3
certifi==2021.5.30
# via
# -r requirements/base.in
# requests
cffi==1.14.6
# via cryptography
chardet==3.0.4
chardet==4.0.0
# via aiohttp
charset-normalizer==2.0.4
# via
# -r requirements/base.in
# requests
click==7.1.2
# via
# apache-superset
@@ -48,23 +56,23 @@ colorama==0.4.4
# via
# apache-superset
# flask-appbuilder
convertdate==2.3.0
convertdate==2.3.2
# via holidays
cron-descriptor==1.2.24
# via apache-superset
croniter==0.3.36
croniter==1.0.15
# via apache-superset
cryptography==3.3.2
cryptography==3.4.7
# via apache-superset
defusedxml==0.6.0
defusedxml==0.7.1
# via python3-openid
deprecation==2.1.0
# via apache-superset
dnspython==2.0.0
dnspython==2.1.0
# via email-validator
email-validator==1.1.1
email-validator==1.1.3
# via flask-appbuilder
flask==1.1.2
flask==1.1.4
# via
# apache-superset
# flask-appbuilder
@@ -77,35 +85,35 @@ flask==1.1.2
# flask-openid
# flask-sqlalchemy
# flask-wtf
flask-appbuilder==3.3.0
flask-appbuilder==3.3.4
# via apache-superset
flask-babel==1.0.0
# via flask-appbuilder
flask-caching==1.10.1
# via apache-superset
flask-compress==1.8.0
flask-compress==1.10.1
# via apache-superset
flask-jwt-extended==3.24.1
flask-jwt-extended==3.25.1
# via flask-appbuilder
flask-login==0.4.1
# via flask-appbuilder
flask-migrate==2.5.3
flask-migrate==3.1.0
# via apache-superset
flask-openid==1.3.0
# via flask-appbuilder
flask-sqlalchemy==2.4.4
flask-sqlalchemy==2.5.1
# via
# flask-appbuilder
# flask-migrate
flask-talisman==0.7.0
flask-talisman==0.8.1
# via apache-superset
flask-wtf==0.14.3
# via
# apache-superset
# flask-appbuilder
geographiclib==1.50
geographiclib==1.52
# via geopy
geopy==2.0.0
geopy==2.2.0
# via apache-superset
graphlib-backport==1.0.3
# via apache-superset
@@ -113,11 +121,12 @@ gunicorn==20.0.4
# via apache-superset
holidays==0.10.3
# via apache-superset
humanize==3.1.0
humanize==3.11.0
# via apache-superset
idna==2.10
idna==3.2
# via
# email-validator
# requests
# yarl
isodate==0.6.0
# via apache-superset
@@ -136,16 +145,16 @@ kombu==4.6.11
# via celery
korean-lunar-calendar==0.2.1
# via holidays
mako==1.1.3
mako==1.1.4
# via alembic
markdown==3.3.3
markdown==3.3.4
# via apache-superset
markupsafe==1.1.1
markupsafe==2.0.1
# via
# jinja2
# mako
# wtforms
marshmallow==3.9.0
marshmallow==3.13.0
# via
# flask-appbuilder
# marshmallow-enum
@@ -154,23 +163,22 @@ marshmallow-enum==1.5.1
# via flask-appbuilder
marshmallow-sqlalchemy==0.23.1
# via flask-appbuilder
msgpack==1.0.0
msgpack==1.0.2
# via apache-superset
multidict==5.0.0
multidict==5.1.0
# via
# aiohttp
# yarl
natsort==7.0.1
# via croniter
numpy==1.19.4
numpy==1.21.1
# via
# pandas
# pyarrow
packaging==20.4
packaging==21.0
# via
# -r requirements/base.in
# bleach
# deprecation
pandas==1.2.2
pandas==1.2.5
# via apache-superset
parsedatetime==2.6
# via apache-superset
@@ -178,7 +186,7 @@ pgsanity==0.2.9
# via apache-superset
polyline==1.4.0
# via apache-superset
prison==0.1.3
prison==0.2.1
# via flask-appbuilder
pyarrow==4.0.1
# via apache-superset
@@ -189,7 +197,7 @@ pyjwt==1.7.1
# apache-superset
# flask-appbuilder
# flask-jwt-extended
pymeeus==0.3.7
pymeeus==0.5.11
# via convertdate
pyparsing==2.4.7
# via
@@ -199,7 +207,7 @@ pyrsistent==0.16.1
# via
# -r requirements/base.in
# jsonschema
python-dateutil==2.8.1
python-dateutil==2.8.2
# via
# alembic
# apache-superset
@@ -207,7 +215,7 @@ python-dateutil==2.8.1
# flask-appbuilder
# holidays
# pandas
python-dotenv==0.15.0
python-dotenv==0.19.0
# via apache-superset
python-editor==1.0.4
# via alembic
@@ -215,7 +223,7 @@ python-geohash==0.8.5
# via apache-superset
python3-openid==3.2.0
# via flask-openid
pytz==2020.4
pytz==2021.1
# via
# babel
# celery
@@ -228,29 +236,32 @@ pyyaml==5.4.1
# apispec
redis==3.5.3
# via apache-superset
requests==2.26.0
# via apache-superset
sasl==0.3.1
# via -r requirements/base.in
selenium==3.141.0
# via apache-superset
simplejson==3.17.2
simplejson==3.17.3
# via apache-superset
six==1.15.0
six==1.16.0
# via
# bleach
# cryptography
# flask-jwt-extended
# flask-talisman
# holidays
# isodate
# jsonschema
# packaging
# polyline
# prison
# pyrsistent
# python-dateutil
# sasl
# sqlalchemy-utils
# wtforms-json
slackclient==2.5.0
# via apache-superset
sqlalchemy==1.3.20
sqlalchemy==1.3.24
# via
# alembic
# apache-superset
@@ -258,7 +269,7 @@ sqlalchemy==1.3.20
# flask-sqlalchemy
# marshmallow-sqlalchemy
# sqlalchemy-utils
sqlalchemy-utils==0.36.8
sqlalchemy-utils==0.37.8
# via
# apache-superset
# flask-appbuilder
@@ -266,12 +277,14 @@ sqlparse==0.3.0
# via apache-superset
tabulate==0.8.9
# via apache-superset
typing-extensions==3.7.4.3
typing-extensions==3.10.0.0
# via
# aiohttp
# apache-superset
urllib3==1.25.11
# via selenium
urllib3==1.26.6
# via
# requests
# selenium
vine==1.3.0
# via
# amqp
@@ -282,13 +295,15 @@ werkzeug==1.0.1
# via
# flask
# flask-jwt-extended
wrapt==1.12.1
# via -r requirements/base.in
wtforms==2.3.3
# via
# flask-wtf
# wtforms-json
wtforms-json==0.3.3
# via apache-superset
yarl==1.6.2
yarl==1.6.3
# via aiohttp
zipp==3.4.1
# via -r requirements/base.in

View File

@@ -18,11 +18,11 @@
-r base.in
flask-cors>=2.0.0
mysqlclient==1.4.2.post1
pillow>=7.0.0,<8.0.0
pillow>=8.3.1,<9
pydruid>=0.6.1,<0.7
pyhive[hive]>=0.6.1
psycopg2-binary==2.8.5
tableschema
thrift>=0.11.0,<1.0.0
pygithub>=1.54.1,<2.0.0
progress>=1.5,<2
pyinstrument>=4.0.2,<5

View File

@@ -1,4 +1,4 @@
# SHA1:c470411e2e9cb04b412a94f80a6a9d870bece74d
# SHA1:dbd3e93a11a36fc6b18d6194ac96ba29bd0ad2a8
#
# This file is autogenerated by pip-compile-multi
# To update, run:
@@ -8,84 +8,68 @@
-r base.txt
-e file:.
# via -r requirements/base.in
boto3==1.16.10
boto3==1.18.19
# via tabulator
botocore==1.19.10
botocore==1.21.19
# via
# boto3
# s3transfer
cached-property==1.5.2
# via tableschema
certifi==2020.6.20
# via requests
deprecated==1.2.11
# via pygithub
et-xmlfile==1.0.1
et-xmlfile==1.1.0
# via openpyxl
flask-cors==3.0.9
flask-cors==3.0.10
# via -r requirements/development.in
future==0.18.2
# via pyhive
ijson==3.1.2.post0
ijson==3.1.4
# via tabulator
jdcal==1.4.1
# via openpyxl
jmespath==0.10.0
# via
# boto3
# botocore
jsonlines==1.2.0
jsonlines==2.0.0
# via tabulator
linear-tsv==1.1.0
# via tabulator
mysqlclient==1.4.2.post1
# via -r requirements/development.in
openpyxl==3.0.5
openpyxl==3.0.7
# via tabulator
pillow==7.2.0
pillow==8.3.1
# via -r requirements/development.in
progress==1.5
progress==1.6
# via -r requirements/development.in
psycopg2-binary==2.8.5
# via -r requirements/development.in
pydruid==0.6.1
pure-sasl==0.6.2
# via thrift-sasl
pydruid==0.6.2
# via -r requirements/development.in
pygithub==1.54.1
pyhive[hive]==0.6.4
# via -r requirements/development.in
pyhive[hive]==0.6.3
pyinstrument==4.0.2
# via -r requirements/development.in
requests==2.24.0
# via
# pydruid
# pygithub
# tableschema
# tabulator
rfc3986==1.4.0
rfc3986==1.5.0
# via tableschema
s3transfer==0.3.3
s3transfer==0.5.0
# via boto3
sasl==0.2.1
# via
# pyhive
# thrift-sasl
tableschema==1.20.0
tableschema==1.20.2
# via -r requirements/development.in
tabulator==1.52.5
tabulator==1.53.5
# via tableschema
thrift==0.13.0
# via
# -r requirements/development.in
# pyhive
# thrift-sasl
thrift-sasl==0.4.2
thrift-sasl==0.4.3
# via pyhive
unicodecsv==0.14.1
# via
# tableschema
# tabulator
wrapt==1.12.1
# via deprecated
xlrd==1.2.0
xlrd==2.0.1
# via tabulator
# The following packages are considered to be unsafe in a requirements file:

View File

@@ -8,15 +8,15 @@
-r base.txt
-e file:.
# via -r requirements/base.in
gevent==20.9.0
gevent==21.8.0
# via -r requirements/docker.in
greenlet==0.4.17
greenlet==1.1.1
# via gevent
psycopg2-binary==2.8.6
psycopg2-binary==2.9.1
# via -r requirements/docker.in
zope.event==4.5.0
# via gevent
zope.interface==5.1.2
zope.interface==5.4.0
# via gevent
# The following packages are considered to be unsafe in a requirements file:

View File

@@ -17,3 +17,7 @@
pip-compile-multi!=1.5.9
pre-commit
tox
py>=1.10.0
click==7.1.2
packaging==21.0
pyparsing==2.4.7

View File

@@ -1,62 +1,76 @@
# SHA1:f95c1152ed0bcc554f3668440d63eec2a7d1567c
# SHA1:32bae3a7c758a411c20c86ff4d5bff825be46314
#
# This file is autogenerated by pip-compile-multi
# To update, run:
#
# pip-compile-multi
#
appdirs==1.4.4
backports.entry-points-selectable==1.1.0
# via virtualenv
cfgv==3.2.0
cfgv==3.3.0
# via pre-commit
click==7.1.2
# via
# -r requirements/integration.in
# pip-compile-multi
# pip-tools
distlib==0.3.1
distlib==0.3.2
# via virtualenv
filelock==3.0.12
# via
# tox
# virtualenv
identify==1.5.9
identify==2.2.13
# via pre-commit
nodeenv==1.5.0
nodeenv==1.6.0
# via pre-commit
packaging==20.4
# via tox
packaging==21.0
# via
# -r requirements/integration.in
# tox
pep517==0.11.0
# via pip-tools
pip-compile-multi==2.4.1
# via -r requirements/integration.in
pip-tools==5.3.1
pip-tools==6.2.0
# via pip-compile-multi
platformdirs==2.2.0
# via virtualenv
pluggy==0.13.1
# via tox
pre-commit==2.8.2
pre-commit==2.14.0
# via -r requirements/integration.in
py==1.9.0
# via tox
py==1.10.0
# via
# -r requirements/integration.in
# tox
pyparsing==2.4.7
# via packaging
# via
# -r requirements/integration.in
# packaging
pyyaml==5.4.1
# via pre-commit
six==1.15.0
six==1.16.0
# via
# packaging
# pip-tools
# tox
# virtualenv
toml==0.10.2
# via
# pre-commit
# tox
toposort==1.5
tomli==1.2.1
# via pep517
toposort==1.6
# via pip-compile-multi
tox==3.20.1
tox==3.24.1
# via -r requirements/integration.in
virtualenv==20.1.0
virtualenv==20.7.2
# via
# pre-commit
# tox
wheel==0.37.0
# via pip-tools
# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools

View File

@@ -22,14 +22,15 @@ freezegun
ipdb
# pinning ipython as pip-compile-multi was bringing higher version
# of the ipython that was not found in CI
ipython==7.16.1
ipython
openapi-spec-validator
openpyxl
parameterized
pyfakefs
pyhive[presto]>=0.6.3
pylint
pylint==2.9.6
pytest
pytest-cov
statsd
pytest-mock
packaging==21.0

View File

@@ -1,4 +1,4 @@
# SHA1:d39180c0eb498d1a7dd73b8428e6ab304b728484
# SHA1:97a1d3094738243d47824948a0d6fdcb4a784524
#
# This file is autogenerated by pip-compile-multi
# To update, run:
@@ -11,78 +11,86 @@
# via -r requirements/base.in
appnope==0.1.2
# via ipython
astroid==2.4.2
astroid==2.6.6
# via pylint
backcall==0.2.0
# via ipython
coverage==5.3
coverage==5.5
# via pytest-cov
decorator==5.0.9
# via ipython
docker==4.3.1
# via
# ipdb
# ipython
docker==5.0.0
# via -r requirements/testing.in
flask-testing==0.8.0
flask-testing==0.8.1
# via -r requirements/testing.in
freezegun==1.0.0
freezegun==1.1.0
# via -r requirements/testing.in
iniconfig==1.1.1
# via pytest
ipdb==0.13.4
ipdb==0.13.9
# via -r requirements/testing.in
ipython==7.16.1
ipython==7.26.0
# via
# -r requirements/testing.in
# ipdb
ipython-genutils==0.2.0
# via traitlets
isort==5.6.4
isort==5.9.3
# via pylint
jedi==0.17.2
jedi==0.18.0
# via ipython
lazy-object-proxy==1.4.3
lazy-object-proxy==1.6.0
# via astroid
matplotlib-inline==0.1.2
# via ipython
mccabe==0.6.1
# via pylint
openapi-spec-validator==0.2.9
openapi-schema-validator==0.1.5
# via openapi-spec-validator
openapi-spec-validator==0.3.1
# via -r requirements/testing.in
parameterized==0.7.4
parameterized==0.8.1
# via -r requirements/testing.in
parso==0.7.1
parso==0.8.2
# via jedi
pexpect==4.8.0
# via ipython
pickleshare==0.7.5
# via ipython
prompt-toolkit==3.0.8
prompt-toolkit==3.0.19
# via ipython
ptyprocess==0.6.0
ptyprocess==0.7.0
# via pexpect
pyfakefs==4.4.0
pyfakefs==4.5.0
# via -r requirements/testing.in
pygments==2.7.2
pygments==2.9.0
# via ipython
pyhive[hive,presto]==0.6.3
pyhive[hive,presto]==0.6.4
# via
# -r requirements/development.in
# -r requirements/testing.in
pylint==2.6.0
pylint==2.9.6
# via -r requirements/testing.in
pytest==6.1.2
pytest==6.2.4
# via
# -r requirements/testing.in
# pytest-cov
# pytest-mock
pytest-cov==2.10.1
pytest-cov==2.12.1
# via -r requirements/testing.in
pytest-mock==3.6.1
# via -r requirements/testing.in
statsd==3.3.0
# via -r requirements/testing.in
traitlets==5.0.5
# via ipython
# via
# ipython
# matplotlib-inline
wcwidth==0.2.5
# via prompt-toolkit
websocket-client==0.57.0
websocket-client==1.2.0
# via docker
# The following packages are considered to be unsafe in a requirements file:

View File

@@ -44,9 +44,13 @@ def import_migration_script(filepath: Path) -> ModuleType:
Import migration script as if it were a module.
"""
spec = importlib.util.spec_from_file_location(filepath.stem, filepath)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module) # type: ignore
return module
if spec:
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module) # type: ignore
return module
raise Exception(
"No module spec found in location: `{path}`".format(path=str(filepath))
)
def extract_modified_tables(module: ModuleType) -> Set[str]:

View File

@@ -34,10 +34,10 @@ REGEXES=()
for CHECK in "$@"
do
if [[ ${CHECK} == "python" ]]; then
REGEX="(^\.github\/workflows\/.*python|^tests\/|^superset\/|^setup\.py|^requirements\/.+\.txt)"
REGEX="(^\.github\/workflows\/.*python|^tests\/|^superset\/|^setup\.py|^requirements\/.+\.txt|^\.pylintrc)"
echo "Searching for changes in python files"
elif [[ ${CHECK} == "frontend" ]]; then
REGEX="(^\.github\/workflows\/.*(frontend|e2e)|^superset-frontend\/)"
REGEX="(^\.github\/workflows\/.*(bashlib|frontend|e2e)|^superset-frontend\/)"
echo "Searching for changes in frontend files"
else
echo "Invalid check: \"${CHECK}\". Falling back to exiting with FAILURE code"

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
REQUIRED_VERSION=2
LOCKFILE_VERSION=$(sed -n 's/[ \t]*"lockfileVersion"\: \([0-9]*\),/\1/p' "$1")
if [[ $LOCKFILE_VERSION != "$REQUIRED_VERSION" ]]; then
echo >&2 "Incorrect npm lock file version: $LOCKFILE_VERSION (Version $REQUIRED_VERSION required)"
exit 1
else
echo "Correct npm lock file version: $LOCKFILE_VERSION"
exit 0
fi

View File

@@ -18,6 +18,11 @@
#
set -e
# Temporary fix, probably related with https://bugs.launchpad.net/ubuntu/+source/opencv/+bug/1890170
# MySQL was failling with:
# from . import _mysql
# ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: cannot allocate memory in static TLS block
export LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6
export SUPERSET_CONFIG=${SUPERSET_CONFIG:-tests.integration_tests.superset_test_config}
export SUPERSET_TESTENV=true
echo "Superset config module: $SUPERSET_CONFIG"

View File

@@ -30,7 +30,7 @@ combine_as_imports = true
include_trailing_comma = true
line_length = 88
known_first_party = superset
known_third_party =alembic,apispec,backoff,bleach,cachelib,celery,click,colorama,cron_descriptor,croniter,cryptography,dateutil,deprecation,flask,flask_appbuilder,flask_babel,flask_caching,flask_compress,flask_jwt_extended,flask_login,flask_migrate,flask_sqlalchemy,flask_talisman,flask_testing,flask_wtf,freezegun,geohash,geopy,graphlib,holidays,humanize,isodate,jinja2,jwt,markdown,markupsafe,marshmallow,marshmallow_enum,msgpack,numpy,pandas,parameterized,parsedatetime,pgsanity,pkg_resources,polyline,prison,progress,pyarrow,pyhive,pyparsing,pytest,pytest_mock,pytz,redis,requests,selenium,setuptools,simplejson,slack,sqlalchemy,sqlalchemy_utils,sqlparse,tabulate,typing_extensions,werkzeug,wtforms,wtforms_json,yaml
known_third_party =alembic,apispec,backoff,bleach,cachelib,celery,click,colorama,cron_descriptor,croniter,cryptography,dateutil,deprecation,flask,flask_appbuilder,flask_babel,flask_caching,flask_compress,flask_jwt_extended,flask_login,flask_migrate,flask_sqlalchemy,flask_talisman,flask_testing,flask_wtf,freezegun,geohash,geopy,graphlib,holidays,humanize,isodate,jinja2,jwt,markdown,markupsafe,marshmallow,marshmallow_enum,msgpack,numpy,pandas,parameterized,parsedatetime,pgsanity,pkg_resources,polyline,prison,progress,pyarrow,pyhive,pyparsing,pytest,pytest_mock,pytz,redis,requests,selenium,setuptools,simplejson,slack,sqlalchemy,sqlalchemy_utils,sqlparse,typing_extensions,urllib3,werkzeug,wtforms,wtforms_json,yaml
multi_line_output = 3
order_by_type = false

View File

@@ -75,7 +75,7 @@ setup(
"cryptography>=3.3.2",
"deprecation>=2.1.0, <2.2.0",
"flask>=1.1.0, <2.0.0",
"flask-appbuilder>=3.3.0, <4.0.0",
"flask-appbuilder>=3.3.4, <4.0.0",
"flask-caching>=1.10.0",
"flask-compress",
"flask-talisman",
@@ -102,18 +102,20 @@ setup(
"pyyaml>=5.4",
"PyJWT>=1.7.1, <2",
"redis",
"requests==2.26.0",
"selenium>=3.141.0",
"simplejson>=3.15.0",
"slackclient==2.5.0", # PINNED! slack changes file upload api in the future versions
"sqlalchemy>=1.3.16, <1.4, !=1.3.21",
"sqlalchemy-utils>=0.36.6,<0.37",
"sqlalchemy-utils>=0.37.8, <0.38",
"sqlparse==0.3.0", # PINNED! see https://github.com/andialbrecht/sqlparse/issues/562
"tabulate==0.8.9",
"typing-extensions>=3.7.4.3,<4", # needed to support typing.Literal on py37
"typing-extensions>=3.10, <4", # needed to support Literal (3.8) and TypeGuard (3.10)
"wtforms-json",
],
extras_require={
"athena": ["pyathena>=1.10.8,<1.11"],
"athena": ["pyathena>=1.10.8, <1.11"],
"aurora-data-api": ["preset-sqlalchemy-aurora-data-api>=0.2.8,<0.3"],
"bigquery": [
"pandas_gbq>=0.10.0",
"pybigquery>=0.4.10",
@@ -133,6 +135,7 @@ setup(
"exasol": ["sqlalchemy-exasol>=2.1.0, <2.2"],
"excel": ["xlrd>=1.2.0, <1.3"],
"firebird": ["sqlalchemy-firebird>=0.7.0, <0.8"],
"firebolt": ["firebolt-sqlalchemy>=0.0.1"],
"gsheets": ["shillelagh[gsheetsapi]>=1.0.3, <2"],
"hana": ["hdbcli==2.4.162", "sqlalchemy_hana==0.4.0"],
"hive": ["pyhive[hive]>=0.6.1", "tableschema", "thrift>=0.11.0, <1.0.0"],
@@ -167,5 +170,6 @@ setup(
classifiers=[
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
],
)

View File

@@ -18,10 +18,10 @@
**/*.sh
coverage/**
dist/*
images/*
src/assets/images/*
src/assets/stylesheets/*
node_modules/*
node_modules*/*
stylesheets/*
vendor/*
docs/*
src/dashboard/deprecated/*

View File

@@ -167,6 +167,7 @@ module.exports = {
'src/**/*.test.tsx',
'src/**/*.test.js',
'src/**/*.test.jsx',
'src/**/fixtures.*',
],
plugins: ['jest', 'jest-dom', 'no-only-tests', 'testing-library'],
env: {

View File

@@ -22,13 +22,15 @@ const path = require('path');
const customConfig = require('../webpack.config.js');
module.exports = {
core: {
builder: 'webpack5',
},
stories: ['../src/@(components|common|filters)/**/*.stories.@(t|j)sx'],
addons: [
'@storybook/addon-essentials',
'@storybook/addon-links',
'@storybook/preset-typescript',
'storybook-addon-jsx',
'@storybook/addon-knobs/register',
'@storybook/addon-knobs',
'storybook-addon-paddings',
],
webpackFinal: config => ({

View File

@@ -20,7 +20,7 @@ import React from 'react';
import { addDecorator } from '@storybook/react';
import { jsxDecorator } from 'storybook-addon-jsx';
import { addParameters } from '@storybook/react';
import { withPaddings } from 'storybook-addon-paddings';
import WithPaddings from 'storybook-addon-paddings';
import { supersetTheme, ThemeProvider } from '@superset-ui/core';
import { combineReducers, createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
@@ -49,15 +49,18 @@ const providerDecorator = Story => (
addDecorator(jsxDecorator);
addDecorator(themeDecorator);
addDecorator(providerDecorator);
addDecorator(withPaddings);
addDecorator(WithPaddings);
addParameters({
paddings: [
{ name: 'None', value: '0px' },
{ name: 'Small', value: '16px' },
{ name: 'Medium', value: '32px', default: true },
{ name: 'Large', value: '64px' },
],
paddings: {
values: [
{ name: 'None', value: '0px' },
{ name: 'Small', value: '16px' },
{ name: 'Medium', value: '32px' },
{ name: 'Large', value: '64px' },
],
default: 'Medium',
},
options: {
storySort: {
method: 'alphabetical',

View File

@@ -82,5 +82,8 @@ module.exports = {
],
],
},
testableProduction: {
plugins: [],
},
},
};

View File

@@ -27,44 +27,34 @@ describe('chart card view filters', () => {
it('should filter by owners correctly', () => {
// filter by owners
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('[data-test="styled-card"]').should('not.exist');
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="styled-card"]').should('not.exist');
});
it('should filter by me correctly', () => {
// filter by me
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="styled-card"]').its('length').should('be.gt', 0);
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="styled-card"]').its('length').should('be.gt', 0);
});
it('should filter by created by correctly', () => {
// filter by created by
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('.ant-card').should('not.exist');
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="styled-card"]').should('not.exist');
});
xit('should filter by viz type correctly', () => {
// filter by viz type
cy.get('.Select__control').eq(2).click();
cy.get('.Select__menu').contains('area').click({ timeout: 5000 });
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('.rc-virtual-list').contains('area').click({ timeout: 5000 });
cy.get('[data-test="styled-card"]').its('length').should('be.gt', 0);
cy.get('[data-test="styled-card"]')
.contains("World's Pop Growth")
.should('be.visible');
cy.get('.Select__control').eq(2).click();
cy.get('.Select__control').eq(2).type('world_map{enter}');
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('[data-test="filters-select"]').eq(2).type('world_map{enter}');
cy.get('[data-test="styled-card"]').should('have.length', 1);
cy.get('[data-test="styled-card"]')
.contains('% Rural')
@@ -73,14 +63,16 @@ describe('chart card view filters', () => {
it('should filter by datasource correctly', () => {
// filter by datasource
cy.get('.Select__control').eq(3).click();
cy.get('.Select__menu').contains('unicode_test').click();
cy.get('[data-test="filters-select"]').eq(3).click();
cy.get('.rc-virtual-list').contains('unicode_test').click();
cy.get('[data-test="styled-card"]').should('have.length', 1);
cy.get('[data-test="styled-card"]')
.contains('Unicode Cloud')
.should('be.visible');
cy.get('.Select__control').eq(2).click();
cy.get('.Select__control').eq(2).type('energy_usage{enter}{enter}');
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('[data-test="filters-select"]')
.eq(2)
.type('energy_usage{enter}{enter}');
cy.get('[data-test="styled-card"]').its('length').should('be.gt', 0);
});
});
@@ -94,57 +86,49 @@ describe('chart list view filters', () => {
it('should filter by owners correctly', () => {
// filter by owners
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('[data-test="table-row"]').should('not.exist');
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="table-row"]').should('not.exist');
});
it('should filter by me correctly', () => {
// filter by me
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="table-row"]').its('length').should('be.gt', 0);
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="table-row"]').its('length').should('be.gt', 0);
});
it('should filter by created by correctly', () => {
// filter by created by
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('[data-test="table-row"]').should('not.exist');
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="table-row"]').should('not.exist');
});
// this is flaky, but seems to fail along with the card view test of the same name
xit('should filter by viz type correctly', () => {
// filter by viz type
cy.get('.Select__control').eq(2).click();
cy.get('.Select__menu').contains('area').click({ timeout: 5000 });
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('.rc-virtual-list').contains('area').click({ timeout: 5000 });
cy.get('[data-test="table-row"]').its('length').should('be.gt', 0);
cy.get('[data-test="table-row"]')
.contains("World's Pop Growth")
.should('exist');
cy.get('.Select__control').eq(2).click();
cy.get('.Select__control').eq(2).type('world_map{enter}');
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('[data-test="filters-select"]').eq(2).type('world_map{enter}');
cy.get('[data-test="table-row"]').should('have.length', 1);
cy.get('[data-test="table-row"]').contains('% Rural').should('exist');
});
it('should filter by datasource correctly', () => {
// filter by datasource
cy.get('.Select__control').eq(3).click();
cy.get('.Select__menu').contains('unicode_test').click();
cy.get('[data-test="filters-select"]').eq(3).click();
cy.get('.rc-virtual-list').contains('unicode_test').click();
cy.get('[data-test="table-row"]').should('have.length', 1);
cy.get('[data-test="table-row"]').contains('Unicode Cloud').should('exist');
cy.get('.Select__control').eq(3).click();
cy.get('.Select__control').eq(3).type('energy_usage{enter}{enter}');
cy.get('[data-test="filters-select"]').eq(3).click();
cy.get('[data-test="filters-select"]')
.eq(3)
.type('energy_usage{enter}{enter}');
cy.get('[data-test="table-row"]').its('length').should('be.gt', 0);
});
});

View File

@@ -24,10 +24,10 @@ import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
function selectColorScheme(color: string) {
// open color scheme dropdown
cy.get('.modal-body')
.contains('Color Scheme')
cy.get('.ant-modal-body')
.contains('Color scheme')
.parents('.ControlHeader')
.next('.Select')
.next('.ant-select')
.click()
.then($colorSelect => {
// select a new color scheme
@@ -37,7 +37,7 @@ function selectColorScheme(color: string) {
function assertMetadata(text: string) {
const regex = new RegExp(text);
cy.get('.modal-body')
cy.get('.ant-modal-body')
.find('#json_metadata')
.should('be.visible')
.then(() => {
@@ -50,12 +50,15 @@ function assertMetadata(text: string) {
}
function typeMetadata(text: string) {
cy.get('.modal-body').find('#json_metadata').should('be.visible').type(text);
cy.get('.ant-modal-body')
.find('#json_metadata')
.should('be.visible')
.type(text);
}
function openAdvancedProperties() {
return cy
.get('.modal-body')
.get('.ant-modal-body')
.contains('Advanced')
.should('be.visible')
.click();
@@ -96,11 +99,11 @@ describe('Dashboard edit action', () => {
// save edit changes
cy.get('.ant-modal-footer')
.contains('Save')
.contains('Apply')
.click()
.then(() => {
// assert that modal edit window has closed
cy.get('.ant-modal-body').should('not.exist');
cy.get('.ant-modal-body').should('not.be.visible');
// assert title has been updated
cy.get('.editable-title input').should('have.value', dashboardTitle);
@@ -146,7 +149,7 @@ describe('Dashboard edit action', () => {
.click()
.then(() => {
// assert that modal edit window has closed
cy.get('.modal-body').should('not.exist');
cy.get('.ant-modal-body').should('not.exist');
// assert color has been updated
openDashboardEditProperties();
@@ -177,7 +180,7 @@ describe('Dashboard edit action', () => {
.click()
.then(() => {
// assert that modal edit window has closed
cy.get('.modal-body')
cy.get('.ant-modal-body')
.contains('A valid color scheme is required')
.should('be.visible');
});

View File

@@ -24,11 +24,7 @@ describe('Dashboard edit markdown', () => {
cy.visit(TABBED_DASHBOARD);
});
it('should load AceEditor on demand', () => {
let numScripts = 0;
cy.get('script').then(nodes => {
numScripts = nodes.length;
});
it('should add markdown component to dashboard', () => {
cy.get('[data-test="dashboard-header"]')
.find('[aria-label="edit-alt"]')
.click();
@@ -37,11 +33,6 @@ describe('Dashboard edit markdown', () => {
cy.get('[data-test="dashboard-header"]')
.find('[aria-label="more-horiz"]')
.click();
cy.get('script').then(nodes => {
// load 5 new script chunks for css editor
expect(nodes.length).to.greaterThan(numScripts);
numScripts = nodes.length;
});
cy.get('[data-test="grid-row-background--transparent"]')
.first()
.as('component-background-first');
@@ -49,11 +40,6 @@ describe('Dashboard edit markdown', () => {
drag('[data-test="new-component"]', 'Markdown').to(
'@component-background-first',
);
cy.get('script').then(nodes => {
// load more scripts for markdown editor
expect(nodes.length).to.greaterThan(numScripts);
numScripts = nodes.length;
});
cy.get('[data-test="dashboard-markdown-editor"]')
.should(
'have.text',
@@ -75,12 +61,6 @@ describe('Dashboard edit markdown', () => {
cy.get('[data-test="dashboard-markdown-editor"]').contains('Test resize');
// entering edit mode does not add new scripts
// (though scripts may still be removed by others)
cy.get('script').then(nodes => {
expect(nodes.length).to.greaterThan(numScripts);
});
cy.get('@component-background-first').click('right');
cy.get('[data-test="dashboard-component-chart-holder"]')
.find('.ace_content')

View File

@@ -40,8 +40,8 @@ xdescribe('Nativefilters', () => {
.click();
cy.get('[data-test="query-save-button"]').click();
cy.get('[data-test="save-chart-modal-select-dashboard-form"]')
.find('#dashboard-creatable-select')
.type(`${dashboard}{enter}{enter}`);
.find('input[aria-label="Select a dashboard"]')
.type(`${dashboard}`, { force: true });
cy.get('[data-test="btn-modal-save"]').click();
});
beforeEach(() => {

View File

@@ -67,32 +67,30 @@ describe('Dashboard save action', () => {
// should load chart
WORLD_HEALTH_CHARTS.forEach(waitForChartLoad);
// remove box_plot chart from dashboard
// remove treemap chart from dashboard
cy.get('[aria-label="edit-alt"]').click({ timeout: 5000 });
cy.get('[data-test="dashboard-delete-component-button"]')
.last()
.trigger('moustenter')
.trigger('mouseenter')
.click();
cy.get('[data-test="grid-container"]')
.find('.box_plot')
.should('not.exist');
cy.get('[data-test="grid-container"]').find('.treemap').should('not.exist');
cy.intercept('POST', '/superset/save_dash/**/').as('saveRequest');
cy.intercept('PUT', '/api/v1/dashboard/**').as('putDashboardRequest');
cy.get('[data-test="dashboard-header"]')
.find('[data-test="header-save-button"]')
.contains('Save')
.click();
// go back to view mode
cy.wait('@saveRequest');
cy.wait('@putDashboardRequest');
cy.get('[data-test="dashboard-header"]')
.find('[aria-label="edit-alt"]')
.click();
// deleted boxplot should still not exist
// deleted treemap should still not exist
cy.get('[data-test="grid-container"]')
.find('.box_plot', { timeout: 20000 })
.find('.treemap', { timeout: 20000 })
.should('not.exist');
});

View File

@@ -27,44 +27,34 @@ describe('dashboard filters card view', () => {
it('should filter by owners correctly', () => {
// filter by owners
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('[data-test="styled-card"]').should('not.exist');
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="styled-card"]').should('not.exist');
});
it('should filter by me correctly', () => {
// filter by me
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="styled-card"]').its('length').should('be.gt', 0);
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="styled-card"]').its('length').should('be.gt', 0);
});
it('should filter by created by correctly', () => {
// filter by created by
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('.ant-card').should('not.exist');
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('.ant-card').should('not.exist');
});
it('should filter by published correctly', () => {
// filter by published
cy.get('.Select__control').eq(2).click();
cy.get('.Select__menu').contains('Published').click({ timeout: 5000 });
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('.rc-virtual-list').contains('Published').click({ timeout: 5000 });
cy.get('[data-test="styled-card"]').should('have.length', 3);
cy.get('[data-test="styled-card"]')
.contains('USA Births Names')
.should('be.visible');
cy.get('.Select__control').eq(1).click();
cy.get('.Select__control').eq(1).type('unpub{enter}');
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('[data-test="filters-select"]').eq(1).type('unpub{enter}');
cy.get('[data-test="styled-card"]').should('have.length', 3);
});
});
@@ -78,44 +68,34 @@ describe('dashboard filters list view', () => {
it('should filter by owners correctly', () => {
// filter by owners
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('[data-test="table-row"]').should('not.exist');
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').first().click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="table-row"]').should('not.exist');
});
it('should filter by me correctly', () => {
// filter by me
cy.get('.Select__control').first().click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="table-row"]').its('length').should('be.gt', 0);
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('me').click();
cy.get('[data-test="table-row"]').its('length').should('be.gt', 0);
});
it('should filter by created by correctly', () => {
// filter by created by
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('alpha user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('alpha user').click();
cy.get('[data-test="table-row"]').should('not.exist');
cy.get('.Select__control').eq(1).click();
cy.get('.Select__menu').contains('gamma user').click();
cy.get('[data-test="filters-select"]').eq(1).click();
cy.get('.rc-virtual-list').contains('gamma user').click();
cy.get('[data-test="table-row"]').should('not.exist');
});
it('should filter by published correctly', () => {
// filter by published
cy.get('.Select__control').eq(2).click();
cy.get('.Select__menu').contains('Published').click();
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('.rc-virtual-list').contains('Published').click();
cy.get('[data-test="table-row"]').should('have.length', 3);
cy.get('[data-test="table-row"]')
.contains('USA Births Names')
.should('be.visible');
cy.get('.Select__control').eq(2).click();
cy.get('.Select__control').eq(2).type('unpub{enter}');
cy.get('[data-test="filters-select"]').eq(2).click();
cy.get('[data-test="filters-select"]').eq(2).type('unpub{enter}');
cy.get('[data-test="table-row"]').should('have.length', 3);
});
});

View File

@@ -26,10 +26,6 @@ describe('AdhocFilters', () => {
cy.verifySliceSuccess({ waitAlias: '@postJson' });
});
xit('Should not load mathjs when not needed', () => {
cy.get('script[src*="mathjs"]').should('have.length', 0);
});
let numScripts = 0;
xit('Should load AceEditor scripts when needed', () => {
@@ -56,7 +52,7 @@ describe('AdhocFilters', () => {
});
xit('Set simple adhoc filter', () => {
cy.get('[data-test=adhoc-filter-simple-value] .Select__control').click();
cy.get('[aria-label="Comparator option"] .Select__control').click();
cy.get('[data-test=adhoc-filter-simple-value] input[type=text]')
.focus()
.type('Jack{enter}', { delay: 20 });

View File

@@ -42,8 +42,12 @@ describe('AdhocMetrics', () => {
cy.get('[data-test="AdhocMetricEditTitle#trigger"]').click();
cy.get('[data-test="AdhocMetricEditTitle#input"]').type(metricName);
cy.get('[name="select-column"]').click().type('num_girls{enter}');
cy.get('[name="select-aggregate"]').click().type('sum{enter}');
cy.get('input[aria-label="Select column"]')
.click()
.type('num_girls{enter}');
cy.get('input[aria-label="Select aggregate options"]')
.click()
.type('sum{enter}');
cy.get('[data-test="AdhocMetricEdit#save"]').contains('Save').click();

View File

@@ -29,13 +29,13 @@ describe('Advanced analytics', () => {
cy.get('.ant-collapse-header').contains('Advanced Analytics').click();
cy.get('[data-test=time_compare]').find('.Select__control').click();
cy.get('[data-test=time_compare]').find('.ant-select').click();
cy.get('[data-test=time_compare]')
.find('input[type=text]')
.find('input[type=search]')
.type('28 days{enter}');
cy.get('[data-test=time_compare]')
.find('input[type=text]')
.find('input[type=search]')
.type('1 year{enter}');
cy.get('button[data-test="run-query-button"]').click();
@@ -48,10 +48,10 @@ describe('Advanced analytics', () => {
cy.get('.ant-collapse-header').contains('Advanced Analytics').click();
cy.get('[data-test=time_compare]')
.find('.Select__multi-value__label')
.find('.ant-select-selector')
.contains('28 days');
cy.get('[data-test=time_compare]')
.find('.Select__multi-value__label')
.find('.ant-select-selector')
.contains('1 year');
});
});

View File

@@ -105,9 +105,6 @@ describe('VizType control', () => {
cy.get('[role="button"]').contains('Line Chart').click();
cy.get('button').contains('Select').click();
// should load mathjs for line chart
cy.get('script[src*="mathjs"]').should('have.length', 1);
cy.get('button[data-test="run-query-button"]').click();
cy.verifySliceSuccess({
waitAlias: '@lineChartData',
@@ -238,8 +235,8 @@ describe('Groupby control', () => {
cy.verifySliceSuccess({ waitAlias: '@chartData' });
cy.get('[data-test=groupby]').within(() => {
cy.get('.Select__control').click();
cy.get('input[type=text]').type('state{enter}');
cy.get('.ant-select').click();
cy.get('input[type=search]').type('state{enter}');
});
cy.get('button[data-test="run-query-button"]').click();
cy.verifySliceSuccess({ waitAlias: '@chartData', chartSelector: 'svg' });

View File

@@ -126,8 +126,12 @@ describe('Test explore links', () => {
cy.get('[data-test="new-chart-name"]').click().clear().type(newChartName);
// Add a new option using the "CreatableSelect" feature
cy.get('[data-test="save-chart-modal-select-dashboard-form"]')
.find('#dashboard-creatable-select')
.type(`${dashboardTitle}{enter}{enter}`);
.find('input[aria-label="Select a dashboard"]')
.type(`${dashboardTitle}`, { force: true });
cy.get(`.ant-select-item[label="${dashboardTitle}"]`).click({
force: true,
});
cy.get('[data-test="btn-modal-save"]').click();
cy.verifySliceSuccess({ waitAlias: '@chartData' });
@@ -153,8 +157,12 @@ describe('Test explore links', () => {
// This time around, typing the same dashboard name
// will select the existing one
cy.get('[data-test="save-chart-modal-select-dashboard-form"]')
.find('#dashboard-creatable-select')
.type(`${dashboardTitle}{enter}{enter}`);
.find('input[aria-label="Select a dashboard"]')
.type(`${dashboardTitle}{enter}`, { force: true });
cy.get(`.ant-select-item[label="${dashboardTitle}"]`).click({
force: true,
});
cy.get('[data-test="btn-modal-save"]').click();
cy.verifySliceSuccess({ waitAlias: '@chartData' });

View File

@@ -32,14 +32,6 @@ describe('Visualization > Line', () => {
cy.get('.ant-alert-warning').contains(`Metrics: cannot be empty`);
});
it('should preload mathjs', () => {
cy.get('script[src*="mathjs"]').should('have.length', 1);
cy.contains('Add annotation layer').scrollIntoView().click();
// should not load additional mathjs
cy.get('script[src*="mathjs"]').should('have.length', 1);
cy.contains('Layer configuration');
});
it('should not show validator error when metric added', () => {
const formData = { ...LINE_CHART_DEFAULTS, metrics: [] };
cy.visitChartByParams(JSON.stringify(formData));
@@ -53,8 +45,10 @@ describe('Visualization > Line', () => {
// Title edit for saved metrics is disabled - switch to Simple
cy.get('[id="adhoc-metric-edit-tabs-tab-SIMPLE"]').click();
cy.get('[name="select-column"]').click().type('num{enter}');
cy.get('[name="select-aggregate"]').click().type('sum{enter}');
cy.get('input[aria-label="Select column"]').click().type('num{enter}');
cy.get('input[aria-label="Select aggregate options"]')
.click()
.type('sum{enter}');
cy.get('[data-test="AdhocMetricEdit#save"]').contains('Save').click();
cy.get('.text-danger').should('not.exist');
@@ -85,7 +79,6 @@ describe('Visualization > Line', () => {
const formData = { ...LINE_CHART_DEFAULTS, metrics: [NUM_METRIC] };
cy.visitChartByParams(JSON.stringify(formData));
cy.verifySliceSuccess({ waitAlias: '@getJson', chartSelector: 'svg' });
cy.get('script[src*="mathjs"]').should('have.length', 1);
});
it('should work with groupby', () => {

View File

@@ -54,7 +54,7 @@ describe('Visualization > Table', () => {
granularity_sqla: undefined,
metrics: ['count'],
});
cy.get('input[name="select-granularity_sqla"]').should('have.value', 'ds');
cy.get('[data-test=granularity_sqla] .column-option-label').contains('ds');
});
it('Format non-numeric metrics correctly', () => {
@@ -62,7 +62,7 @@ describe('Visualization > Table', () => {
...VIZ_DEFAULTS,
include_time: true,
granularity_sqla: 'ds',
time_grain_sqla: 'P0.25Y',
time_grain_sqla: 'P3M',
metrics: [NUM_METRIC, MAX_DS, MAX_STATE],
});
// when format with smart_date, time column use format by granularity
@@ -77,7 +77,7 @@ describe('Visualization > Table', () => {
...VIZ_DEFAULTS,
include_time: true,
granularity_sqla: 'ds',
time_grain_sqla: 'P0.25Y',
time_grain_sqla: 'P3M',
table_timestamp_format: '%Y-%m-%d %H:%M',
metrics: [NUM_METRIC, MAX_DS, MAX_STATE],
});
@@ -111,7 +111,7 @@ describe('Visualization > Table', () => {
...VIZ_DEFAULTS,
include_time: true,
granularity_sqla: 'ds',
time_grain_sqla: 'P0.25Y',
time_grain_sqla: 'P3M',
metrics: [NUM_METRIC, MAX_DS],
groupby: ['name'],
});

File diff suppressed because it is too large Load Diff

View File

@@ -7,18 +7,18 @@
"cypress-run-chrome": "cypress run --browser chrome --headless",
"cypress-debug": "cypress open --config watchForFileChanges=true"
},
"author": "Apcahe",
"author": "Apache",
"license": "Apache-2.0",
"dependencies": {
"@cypress/code-coverage": "^3.9.2",
"@superset-ui/core": "^0.17.42",
"@cypress/code-coverage": "^3.9.11",
"@superset-ui/core": "^0.18.4",
"react-dom": "^16.13.0",
"rison": "^0.1.1",
"shortid": "^2.2.15"
},
"devDependencies": {
"cypress": "^6.3.0",
"eslint-plugin-cypress": "^2.11.2"
"eslint-plugin-cypress": "^2.12.1"
},
"nyc": {
"reporter": [

View File

@@ -1,22 +0,0 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.335 8.735L7.30998 1.735C7.04507 1.26004 6.54382 0.965683 5.99998 0.965683C5.45614 0.965683 4.9549 1.26004 4.68998 1.735L0.689984 8.735C0.416009 9.19706 0.410037 9.77036 0.674327 10.238C0.938617 10.7057 1.43282 10.9963 1.96998 11H10.03C10.5716 11.0053 11.0741 10.7182 11.3445 10.2489C11.6149 9.77957 11.6113 9.20091 11.335 8.735Z" fill="currentColor"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.5 4.5C5.5 4.22386 5.72386 4 6 4C6.27614 4 6.5 4.22386 6.5 4.5V6.5C6.5 6.77614 6.27614 7 6 7C5.72386 7 5.5 6.77614 5.5 6.5V4.5ZM5.5 8.5C5.5 8.22386 5.72386 8 6 8C6.27614 8 6.5 8.22386 6.5 8.5C6.5 8.77614 6.27614 9 6 9C5.72386 9 5.5 8.77614 5.5 8.5Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -19,8 +19,8 @@
module.exports = {
testRegex: '(\\/spec|\\/src)\\/.*(_spec|\\.test)\\.(j|t)sx?$',
moduleNameMapper: {
'\\.(css|less)$': '<rootDir>/spec/__mocks__/styleMock.js',
'\\.(gif|ttf|eot|png|jpg)$': '<rootDir>/spec/__mocks__/fileMock.js',
'\\.(css|less|geojson)$': '<rootDir>/spec/__mocks__/mockExportObject.js',
'\\.(gif|ttf|eot|png|jpg)$': '<rootDir>/spec/__mocks__/mockExportString.js',
'\\.svg$': '<rootDir>/spec/__mocks__/svgrMock.tsx',
'^src/(.*)$': '<rootDir>/src/$1',
'^spec/(.*)$': '<rootDir>/spec/$1',

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "superset",
"version": "1.3.2",
"version": "1.4.0",
"description": "Superset is a data exploration platform designed to be visual, intuitive, and interactive.",
"license": "Apache-2.0",
"directories": {
@@ -12,21 +12,21 @@
"test": "cross-env NODE_ENV=test jest",
"type": "tsc --noEmit",
"cover": "cross-env NODE_ENV=test jest --coverage",
"dev": "webpack --mode=development --colors --debug --watch",
"dev": "webpack --mode=development --color --watch",
"dev-server": "cross-env NODE_ENV=development BABEL_ENV=development node --max_old_space_size=4096 ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --mode=development",
"prod": "npm run build",
"build-dev": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=development webpack --mode=development --colors",
"build-instrumented": "cross-env NODE_ENV=development BABEL_ENV=instrumented webpack --mode=development --colors",
"build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=production BABEL_ENV=production webpack --mode=production --colors",
"build-dev": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=development webpack --mode=development --color",
"build-instrumented": "cross-env NODE_ENV=production BABEL_ENV=instrumented webpack --mode=production --color",
"build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 NODE_ENV=production BABEL_ENV=\"${BABEL_ENV:=production}\" webpack --mode=production --color",
"lint": "eslint --ignore-path=.eslintignore --ext .js,.jsx,.ts,.tsx . && npm run type",
"prettier-check": "prettier --check '{src,stylesheets}/**/*.{css,less,sass,scss}'",
"prettier-check": "prettier --check 'src/**/*.{css,less,sass,scss}'",
"lint-fix": "eslint --fix --ignore-path=.eslintignore --ext .js,.jsx,.ts,tsx . && npm run clean-css && npm run type",
"clean-css": "prettier --write '{src,stylesheets}/**/*.{css,less,sass,scss}'",
"format": "prettier --write './{src,spec,stylesheets,cypress-base}/**/*{.js,.jsx,.ts,.tsx,.css,.less,.scss,.sass}'",
"clean-css": "prettier --write 'src/**/*.{css,less,sass,scss}'",
"format": "prettier --write './{src,spec,cypress-base}/**/*{.js,.jsx,.ts,.tsx,.css,.less,.scss,.sass}'",
"prettier": "npm run format",
"check-translation": "prettier --check ../superset/translations/**/LC_MESSAGES/*.json",
"clean-translation": "prettier --write ../superset/translations/**/LC_MESSAGES/*.json",
"storybook": "cross-env NODE_ENV=development BABEL_ENV=development start-storybook -s ./images -p 6006",
"storybook": "cross-env NODE_ENV=development BABEL_ENV=development start-storybook -s ./src/assets/images -p 6006",
"build-storybook": "build-storybook"
},
"repository": {
@@ -56,7 +56,7 @@
"last 3 edge versions"
],
"engines": {
"node": "^14.15.5",
"node": "^16.9.1",
"npm": "^7.5.4"
},
"homepage": "https://superset.apache.org/",
@@ -65,37 +65,38 @@
"@babel/runtime-corejs3": "^7.12.5",
"@data-ui/sparkline": "^0.0.84",
"@emotion/babel-preset-css-prop": "^11.2.0",
"@emotion/cache": "^11.1.3",
"@emotion/react": "^11.1.5",
"@superset-ui/chart-controls": "^0.17.84",
"@superset-ui/core": "^0.17.81",
"@superset-ui/legacy-plugin-chart-calendar": "^0.17.84",
"@superset-ui/legacy-plugin-chart-chord": "^0.17.84",
"@superset-ui/legacy-plugin-chart-country-map": "^0.17.84",
"@superset-ui/legacy-plugin-chart-event-flow": "^0.17.84",
"@superset-ui/legacy-plugin-chart-force-directed": "^0.17.84",
"@superset-ui/legacy-plugin-chart-heatmap": "^0.17.84",
"@superset-ui/legacy-plugin-chart-histogram": "^0.17.84",
"@superset-ui/legacy-plugin-chart-horizon": "^0.17.84",
"@superset-ui/legacy-plugin-chart-map-box": "^0.17.84",
"@superset-ui/legacy-plugin-chart-paired-t-test": "^0.17.84",
"@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.17.84",
"@superset-ui/legacy-plugin-chart-partition": "^0.17.84",
"@superset-ui/legacy-plugin-chart-pivot-table": "^0.17.84",
"@superset-ui/legacy-plugin-chart-rose": "^0.17.84",
"@superset-ui/legacy-plugin-chart-sankey": "^0.17.84",
"@superset-ui/legacy-plugin-chart-sankey-loop": "^0.17.84",
"@superset-ui/legacy-plugin-chart-sunburst": "^0.17.84",
"@superset-ui/legacy-plugin-chart-treemap": "^0.17.84",
"@superset-ui/legacy-plugin-chart-world-map": "^0.17.84",
"@superset-ui/legacy-preset-chart-big-number": "^0.17.84",
"@superset-ui/legacy-preset-chart-deckgl": "^0.4.10",
"@superset-ui/legacy-preset-chart-nvd3": "^0.17.84",
"@superset-ui/plugin-chart-echarts": "^0.17.84",
"@superset-ui/plugin-chart-pivot-table": "^0.17.84",
"@superset-ui/plugin-chart-table": "^0.17.84",
"@superset-ui/plugin-chart-word-cloud": "^0.17.84",
"@superset-ui/preset-chart-xy": "^0.17.84",
"@emotion/cache": "^11.4.0",
"@emotion/react": "^11.4.1",
"@emotion/styled": "^11.3.0",
"@superset-ui/chart-controls": "^0.18.19",
"@superset-ui/core": "^0.18.19",
"@superset-ui/legacy-plugin-chart-calendar": "^0.18.19",
"@superset-ui/legacy-plugin-chart-chord": "^0.18.19",
"@superset-ui/legacy-plugin-chart-country-map": "^0.18.19",
"@superset-ui/legacy-plugin-chart-event-flow": "^0.18.19",
"@superset-ui/legacy-plugin-chart-force-directed": "^0.18.19",
"@superset-ui/legacy-plugin-chart-heatmap": "^0.18.19",
"@superset-ui/legacy-plugin-chart-histogram": "^0.18.19",
"@superset-ui/legacy-plugin-chart-horizon": "^0.18.19",
"@superset-ui/legacy-plugin-chart-map-box": "^0.18.19",
"@superset-ui/legacy-plugin-chart-paired-t-test": "^0.18.19",
"@superset-ui/legacy-plugin-chart-parallel-coordinates": "^0.18.19",
"@superset-ui/legacy-plugin-chart-partition": "^0.18.19",
"@superset-ui/legacy-plugin-chart-pivot-table": "^0.18.19",
"@superset-ui/legacy-plugin-chart-rose": "^0.18.19",
"@superset-ui/legacy-plugin-chart-sankey": "^0.18.19",
"@superset-ui/legacy-plugin-chart-sankey-loop": "^0.18.19",
"@superset-ui/legacy-plugin-chart-sunburst": "^0.18.19",
"@superset-ui/legacy-plugin-chart-treemap": "^0.18.19",
"@superset-ui/legacy-plugin-chart-world-map": "^0.18.19",
"@superset-ui/legacy-preset-chart-big-number": "^0.18.19",
"@superset-ui/legacy-preset-chart-deckgl": "^0.4.13",
"@superset-ui/legacy-preset-chart-nvd3": "^0.18.19",
"@superset-ui/plugin-chart-echarts": "^0.18.19",
"@superset-ui/plugin-chart-pivot-table": "^0.18.19",
"@superset-ui/plugin-chart-table": "^0.18.19",
"@superset-ui/plugin-chart-word-cloud": "^0.18.19",
"@superset-ui/preset-chart-xy": "^0.18.19",
"@vx/responsive": "^0.0.195",
"abortcontroller-polyfill": "^1.1.9",
"antd": "^4.9.4",
@@ -116,9 +117,8 @@
"fuse.js": "^6.4.6",
"geolib": "^2.0.24",
"global-box": "^1.2.0",
"html-webpack-plugin": "^4.5.1",
"immer": "^8.0.1",
"immutable": "^4.0.0-rc.12",
"html-webpack-plugin": "^5.3.2",
"immer": "^9.0.6",
"interweave": "^11.2.0",
"jquery": "^3.5.1",
"js-levenshtein": "^1.1.6",
@@ -128,7 +128,6 @@
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"match-sorter": "^6.1.0",
"mathjs": "^8.0.1",
"memoize-one": "^5.1.1",
"moment": "^2.26.0",
"moment-timezone": "^0.5.33",
@@ -140,13 +139,14 @@
"query-string": "^6.13.7",
"re-resizable": "^6.6.1",
"react": "^16.13.1",
"react-ace": "^5.10.0",
"react-ace": "^9.4.4",
"react-checkbox-tree": "^1.5.1",
"react-color": "^2.13.8",
"react-datetime": "^3.0.4",
"react-dnd": "^11.1.3",
"react-dnd-html5-backend": "^11.1.3",
"react-dom": "^16.13.0",
"react-draggable": "^4.4.3",
"react-gravatar": "^2.6.1",
"react-hot-loader": "^4.12.20",
"react-js-cron": "^1.2.0",
@@ -182,7 +182,7 @@
"scroll-into-view-if-needed": "^2.2.28",
"shortid": "^2.2.6",
"urijs": "^1.19.6",
"use-immer": "^0.4.2",
"use-immer": "^0.6.0",
"use-query-params": "^1.1.9"
},
"devDependencies": {
@@ -200,15 +200,16 @@
"@emotion/jest": "^11.3.0",
"@hot-loader/react-dom": "^16.13.0",
"@istanbuljs/nyc-config-typescript": "^1.0.1",
"@storybook/addon-actions": "^6.1.17",
"@storybook/addon-essentials": "^6.1.20",
"@storybook/addon-knobs": "^6.1.17",
"@storybook/addon-links": "^6.1.17",
"@storybook/addons": "^6.1.17",
"@storybook/client-api": "^6.1.17",
"@storybook/preset-typescript": "^3.0.0",
"@storybook/react": "^6.1.20",
"@svgr/webpack": "^5.4.0",
"@storybook/addon-actions": "^6.3.8",
"@storybook/addon-essentials": "^6.3.8",
"@storybook/addon-knobs": "^6.3.1",
"@storybook/addon-links": "^6.3.8",
"@storybook/addons": "^6.3.8",
"@storybook/builder-webpack5": "^6.3.8",
"@storybook/client-api": "^6.3.8",
"@storybook/manager-webpack5": "^6.3.8",
"@storybook/react": "^6.3.8",
"@svgr/webpack": "^5.5.0",
"@testing-library/dom": "^7.29.4",
"@testing-library/jest-dom": "^5.11.6",
"@testing-library/react": "^11.2.0",
@@ -250,20 +251,19 @@
"babel-plugin-dynamic-import-node": "^2.3.3",
"babel-plugin-jsx-remove-data-test-id": "^2.1.3",
"babel-plugin-lodash": "^3.3.4",
"cache-loader": "^1.2.2",
"clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^6.0.3",
"copy-webpack-plugin": "^9.0.1",
"cross-env": "^5.2.0",
"css-loader": "^1.0.0",
"css-loader": "^6.2.0",
"css-minimizer-webpack-plugin": "^3.0.2",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.14.0",
"eslint": "^7.17.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-prettier": "^7.1.0",
"eslint-import-resolver-typescript": "^2.3.0",
"eslint-import-resolver-webpack": "^0.13.0",
"eslint-import-resolver-typescript": "^2.5.0",
"eslint-import-resolver-webpack": "^0.13.1",
"eslint-plugin-cypress": "^2.11.2",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-jest": "^24.1.3",
"eslint-plugin-jest-dom": "^3.6.5",
"eslint-plugin-jsx-a11y": "^6.4.1",
@@ -275,9 +275,9 @@
"exports-loader": "^0.7.0",
"fetch-mock": "^7.7.3",
"file-loader": "^6.0.0",
"fork-ts-checker-webpack-plugin": "^0.4.9",
"fork-ts-checker-webpack-plugin": "^6.3.3",
"ignore-styles": "^5.0.1",
"imports-loader": "^0.7.1",
"imports-loader": "^3.0.0",
"jest": "^26.6.3",
"jest-environment-enzyme": "^7.1.2",
"jest-enzyme": "^7.1.2",
@@ -285,33 +285,31 @@
"jsdom": "^16.4.0",
"less": "^3.12.2",
"less-loader": "^5.0.0",
"mini-css-extract-plugin": "^0.4.0",
"mini-css-extract-plugin": "^2.3.0",
"mock-socket": "^9.0.3",
"node-fetch": "^2.6.1",
"optimize-css-assets-webpack-plugin": "^5.0.1",
"po2json": "^0.4.5",
"prettier": "^2.2.1",
"process": "^0.11.10",
"react-test-renderer": "^16.9.0",
"redux-mock-store": "^1.5.4",
"sinon": "^9.0.2",
"source-map-support": "^0.5.16",
"speed-measure-webpack-plugin": "^1.2.3",
"storybook-addon-jsx": "^7.3.3",
"storybook-addon-paddings": "^3.2.0",
"style-loader": "^1.0.0",
"terser-webpack-plugin": "^1.1.0",
"thread-loader": "^1.2.0",
"transform-loader": "^0.2.3",
"speed-measure-webpack-plugin": "^1.5.0",
"storybook-addon-jsx": "^7.3.14",
"storybook-addon-paddings": "^4.2.1",
"style-loader": "^3.2.1",
"thread-loader": "^3.0.4",
"transform-loader": "^0.2.4",
"ts-jest": "^26.4.2",
"ts-loader": "^8.0.7",
"ts-loader": "^9.2.5",
"typescript": "^4.1.6",
"url-loader": "^1.0.1",
"webpack": "^4.42.0",
"webpack-bundle-analyzer": "^3.6.1",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.11.0",
"webpack-manifest-plugin": "^2.2.0",
"webpack-sources": "^1.4.3",
"webpack": "^5.52.1",
"webpack-bundle-analyzer": "^4.4.2",
"webpack-cli": "^4.8.0",
"webpack-dev-server": "^4.2.0",
"webpack-manifest-plugin": "^4.0.2",
"webpack-sources": "^3.2.0",
"yargs": "^15.4.1"
},
"stylelint": {

View File

@@ -168,6 +168,7 @@ export default {
id,
granularity_sqla: [['ds', 'ds']],
name: 'birth_names',
owners: [{ first_name: 'joe', last_name: 'man', id: 1 }],
database: {
allow_multi_schema_metadata_fetch: null,
name: 'main',

Some files were not shown because too many files have changed in this diff Show More