Compare commits
373 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fb4ba0d74 | ||
|
|
3e6f68489c | ||
|
|
c7b32ac84c | ||
|
|
b89cdbdcad | ||
|
|
0e23f2e6e6 | ||
|
|
2180434663 | ||
|
|
b32d590093 | ||
|
|
b3aa5633a5 | ||
|
|
24a595f4f5 | ||
|
|
c70abbed31 | ||
|
|
dd8c2db95d | ||
|
|
2ab07a08ab | ||
|
|
a9d548945f | ||
|
|
b959fcd2e5 | ||
|
|
2da9613fac | ||
|
|
538da2e3c3 | ||
|
|
7ce35d2a50 | ||
|
|
947f02ffbc | ||
|
|
daf2b8e51f | ||
|
|
eb4c135521 | ||
|
|
2ff721ae07 | ||
|
|
e83a07d3df | ||
|
|
76d26f3740 | ||
|
|
fe78b4ece0 | ||
|
|
d326ac7d6c | ||
|
|
c43d0fd378 | ||
|
|
b64a452a6d | ||
|
|
2357c4aabf | ||
|
|
9dd7e84a31 | ||
|
|
5d8dd1424f | ||
|
|
f454dedd28 | ||
|
|
e967b268f4 | ||
|
|
a5d9a4e005 | ||
|
|
6b8954133a | ||
|
|
8ef2789f47 | ||
|
|
0ebdb5643b | ||
|
|
b3af6a261f | ||
|
|
c54b067c6a | ||
|
|
bd65942e48 | ||
|
|
50accda9d8 | ||
|
|
5ace576948 | ||
|
|
927a584678 | ||
|
|
fafb824d9a | ||
|
|
7b72985efb | ||
|
|
b497d9e7d1 | ||
|
|
c42afa11b9 | ||
|
|
35c55278dd | ||
|
|
1c41020c73 | ||
|
|
ec7a0b22ab | ||
|
|
4655cb4c23 | ||
|
|
fb8e3208db | ||
|
|
b4cbe13d22 | ||
|
|
5b7b22fd25 | ||
|
|
5180422942 | ||
|
|
9939a52d0d | ||
|
|
c3db74d902 | ||
|
|
9940d30a7f | ||
|
|
3df2b8d57b | ||
|
|
ccb51385e4 | ||
|
|
db0235fbdb | ||
|
|
953d6dc9d6 | ||
|
|
c0eaa5f62d | ||
|
|
ebcadc1f50 | ||
|
|
5fa5acb5d5 | ||
|
|
ce76560ae8 | ||
|
|
8c549b46bd | ||
|
|
bfe18963d7 | ||
|
|
19b588b52b | ||
|
|
d7e038eaa5 | ||
|
|
38e0ddacf1 | ||
|
|
b7d2bd09a7 | ||
|
|
b7e02ab776 | ||
|
|
8a7c245c54 | ||
|
|
f24efa7250 | ||
|
|
1ddacc42d0 | ||
|
|
4f37b9aefc | ||
|
|
845c7aa91c | ||
|
|
8ea805ea0a | ||
|
|
aff43c7453 | ||
|
|
7f86517970 | ||
|
|
ed0f0ab2d8 | ||
|
|
db81dc50b1 | ||
|
|
37de92b883 | ||
|
|
4d01a02f21 | ||
|
|
0e48e05008 | ||
|
|
ae95c8930b | ||
|
|
58e3a39f55 | ||
|
|
b80b0b90e2 | ||
|
|
1fece0d2fa | ||
|
|
d628907be3 | ||
|
|
88283dc2cb | ||
|
|
f742b9876b | ||
|
|
ebb799140a | ||
|
|
3cc7cdfee0 | ||
|
|
01063ce96c | ||
|
|
057c43c56d | ||
|
|
ef79757973 | ||
|
|
00388811b6 | ||
|
|
c954fe314d | ||
|
|
b260cb66b3 | ||
|
|
31ea6817b7 | ||
|
|
7ee8afb608 | ||
|
|
055467de86 | ||
|
|
69fe50a5c9 | ||
|
|
75322ab12c | ||
|
|
6718588781 | ||
|
|
99d6dc07d6 | ||
|
|
9c7b98a27a | ||
|
|
30c911919e | ||
|
|
88964b7dfc | ||
|
|
65f7f2920d | ||
|
|
e03e276571 | ||
|
|
4c658444e4 | ||
|
|
1dd4d7a587 | ||
|
|
da813b7ee3 | ||
|
|
4667f0c288 | ||
|
|
207d9529b2 | ||
|
|
f480a52074 | ||
|
|
5055157b64 | ||
|
|
b1dbd1cab6 | ||
|
|
284a0cccd3 | ||
|
|
ae6217ba55 | ||
|
|
b2f0b2bde6 | ||
|
|
42cf929f62 | ||
|
|
8e6c114195 | ||
|
|
855228c66c | ||
|
|
a55a5e06c6 | ||
|
|
b143b16dff | ||
|
|
0053a86684 | ||
|
|
7e0e7c89ba | ||
|
|
fafa6b4dda | ||
|
|
8051818693 | ||
|
|
9d70c348d3 | ||
|
|
a2ce9974cd | ||
|
|
42437236b2 | ||
|
|
fbf9586adf | ||
|
|
f6ac0daf7e | ||
|
|
eafb4f9600 | ||
|
|
accc754a87 | ||
|
|
49e3638eee | ||
|
|
28ca07e640 | ||
|
|
3c17dac35a | ||
|
|
818a6a832c | ||
|
|
be1895f2dc | ||
|
|
68e9d2970a | ||
|
|
f291dae200 | ||
|
|
bc9c183243 | ||
|
|
3802f011d9 | ||
|
|
c01230afb7 | ||
|
|
142e7b6df7 | ||
|
|
6099519896 | ||
|
|
b16498796f | ||
|
|
d80cbbc7ec | ||
|
|
f761237260 | ||
|
|
2c3794e28d | ||
|
|
a0b2f2ca0f | ||
|
|
d99b36e892 | ||
|
|
4e03d41f17 | ||
|
|
f424af8385 | ||
|
|
fe77b57581 | ||
|
|
eff4e6362c | ||
|
|
d427db0a8b | ||
|
|
6e942c9fb3 | ||
|
|
60ccf3eb9d | ||
|
|
8c6ddbc842 | ||
|
|
fd0338614a | ||
|
|
6a95f8070a | ||
|
|
42067e077b | ||
|
|
5a1ff0f09d | ||
|
|
3f29a1dd70 | ||
|
|
926f78c21d | ||
|
|
b06941945c | ||
|
|
e2b9625d84 | ||
|
|
672c470e79 | ||
|
|
fe994900ec | ||
|
|
c4884e3c2e | ||
|
|
c6263fc096 | ||
|
|
95cdda4482 | ||
|
|
9ec3e18ecb | ||
|
|
e2854994ba | ||
|
|
5bac723df4 | ||
|
|
fe0f5e968e | ||
|
|
1fba6f7a17 | ||
|
|
852c51219b | ||
|
|
d203886e47 | ||
|
|
96a0105f7a | ||
|
|
56aa7ac7c6 | ||
|
|
808622414c | ||
|
|
f366bbe735 | ||
|
|
23a2ab1077 | ||
|
|
96f510619c | ||
|
|
f5a277cc72 | ||
|
|
4109e893d3 | ||
|
|
5168c69a25 | ||
|
|
eb408d71c4 | ||
|
|
fc8acf27c8 | ||
|
|
fd54de7856 | ||
|
|
8307716d72 | ||
|
|
13f374aa9e | ||
|
|
fcec748b62 | ||
|
|
cc3a625a4b | ||
|
|
002518ba49 | ||
|
|
8e14e0bd67 | ||
|
|
20e1ac6242 | ||
|
|
5f7817a6a3 | ||
|
|
5261d8a9fe | ||
|
|
e715cdb9ac | ||
|
|
e06f87304c | ||
|
|
a4597afee0 | ||
|
|
c11e9c8b67 | ||
|
|
2731a010ca | ||
|
|
f1cae2ecdd | ||
|
|
4579b12732 | ||
|
|
71a713dcec | ||
|
|
2931baa294 | ||
|
|
529cb5cab1 | ||
|
|
b0a55743b3 | ||
|
|
8a8e840819 | ||
|
|
52bb92d0d4 | ||
|
|
02aa3c6395 | ||
|
|
3e4742fa7b | ||
|
|
1eb0d0d835 | ||
|
|
2b2c650040 | ||
|
|
2489876bc9 | ||
|
|
5ca8c0ba3c | ||
|
|
3c6e882d28 | ||
|
|
7eb46843cb | ||
|
|
0b830ced93 | ||
|
|
9dffe3abb0 | ||
|
|
2916c48567 | ||
|
|
91b758f3bc | ||
|
|
a6f013270d | ||
|
|
8155f4bf30 | ||
|
|
4c4b6c41a1 | ||
|
|
d1a3ba85dd | ||
|
|
8f3d911149 | ||
|
|
5913c27830 | ||
|
|
e469086d61 | ||
|
|
8177fa17fa | ||
|
|
4c94447635 | ||
|
|
8b2cae007d | ||
|
|
c42bcf81bc | ||
|
|
8c4f723a61 | ||
|
|
c17de3940c | ||
|
|
ec1316a5a8 | ||
|
|
e66b0469b4 | ||
|
|
d6953210b8 | ||
|
|
a5b528c688 | ||
|
|
4690563d40 | ||
|
|
cb556688ec | ||
|
|
d9a7d565a0 | ||
|
|
8e2d28dd6e | ||
|
|
e0b3927ece | ||
|
|
b44c8349ee | ||
|
|
0873abde12 | ||
|
|
74f0817bf0 | ||
|
|
1a5ca35a55 | ||
|
|
a7b52da6ce | ||
|
|
841d5e6338 | ||
|
|
81349df625 | ||
|
|
3ffb48c492 | ||
|
|
8bf9a5b9a3 | ||
|
|
5a3773223d | ||
|
|
04865f0280 | ||
|
|
62dcce890c | ||
|
|
3d7752600b | ||
|
|
4934605043 | ||
|
|
1fcfda4fdc | ||
|
|
2607d0a6a0 | ||
|
|
70327ca42c | ||
|
|
ede5c710ed | ||
|
|
77845ab081 | ||
|
|
8c0551ed46 | ||
|
|
4ce475f287 | ||
|
|
a57603adb4 | ||
|
|
0584e3629f | ||
|
|
aed774e18b | ||
|
|
69e8df404d | ||
|
|
1a4199af7a | ||
|
|
cd05d44340 | ||
|
|
a1d867cf2f | ||
|
|
c653ab1e9b | ||
|
|
124c55c117 | ||
|
|
c7f8abc6c5 | ||
|
|
7fe8e8aff2 | ||
|
|
7373be7163 | ||
|
|
a1e408a299 | ||
|
|
08cdb09714 | ||
|
|
fb13218472 | ||
|
|
c041b6673e | ||
|
|
8dbc20b60a | ||
|
|
3115eec892 | ||
|
|
da24b0e0d7 | ||
|
|
7d8e3219fc | ||
|
|
02f0616025 | ||
|
|
d1cbb0d000 | ||
|
|
2fd18eede7 | ||
|
|
d34217ef97 | ||
|
|
59109f62b4 | ||
|
|
e46ab4db52 | ||
|
|
7b3095d6ff | ||
|
|
9710369d52 | ||
|
|
bfec5916ed | ||
|
|
6d0069230c | ||
|
|
bc8c8a2168 | ||
|
|
db93dca947 | ||
|
|
0a701d6115 | ||
|
|
c552c125d7 | ||
|
|
af38d254f0 | ||
|
|
2ad8e2ee2b | ||
|
|
2d4a1ab68a | ||
|
|
1190ebb1a8 | ||
|
|
1473e2cced | ||
|
|
1c4b3e999b | ||
|
|
1fbdd24820 | ||
|
|
e1a3a680f4 | ||
|
|
0f6b39a6f7 | ||
|
|
7d6a4291e1 | ||
|
|
71d6ff40d0 | ||
|
|
acb44165b4 | ||
|
|
7db11d95b0 | ||
|
|
81fc3dfbee | ||
|
|
5403f31007 | ||
|
|
d6908eef49 | ||
|
|
735499cb53 | ||
|
|
87161a6d5d | ||
|
|
dcf048c52e | ||
|
|
5c02e3199b | ||
|
|
9580103c22 | ||
|
|
d57614f8ad | ||
|
|
71db0736be | ||
|
|
a0479d57b2 | ||
|
|
bfbd83bdab | ||
|
|
9c5fc42fee | ||
|
|
e21e6a7600 | ||
|
|
e7e8e9d00d | ||
|
|
ef8429cbf5 | ||
|
|
90809f6d39 | ||
|
|
f1089c40a4 | ||
|
|
ca5be1c1e2 | ||
|
|
9cb2dceeb5 | ||
|
|
60796da38c | ||
|
|
6ec9e1a4e9 | ||
|
|
47b1a081ab | ||
|
|
5f1eaa49f2 | ||
|
|
9e6b171ee9 | ||
|
|
9595adb452 | ||
|
|
d8d50a168d | ||
|
|
8573fdec12 | ||
|
|
fc3b68e234 | ||
|
|
b9257b2a09 | ||
|
|
a71e6eb0a3 | ||
|
|
96228adda9 | ||
|
|
546d150b91 | ||
|
|
bc3a2efa0e | ||
|
|
fc3422eaeb | ||
|
|
bc4dfad6c8 | ||
|
|
04e5e87114 | ||
|
|
9d01af201e | ||
|
|
d662e36442 | ||
|
|
4e2341a131 | ||
|
|
7d0a17aef5 | ||
|
|
0aa6d90429 | ||
|
|
58be31af3f | ||
|
|
e163dfe744 | ||
|
|
273991fd4e | ||
|
|
bbfd69a138 | ||
|
|
af0ffa44ab | ||
|
|
dcfbae1ab9 | ||
|
|
462c58ee67 | ||
|
|
177bed3bb6 | ||
|
|
7d49255926 | ||
|
|
b4a1983303 |
39
.dockerignore
Normal file
@@ -0,0 +1,39 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
**/__pycache__/
|
||||
**/.mypy_cache
|
||||
**/.pytest_cache
|
||||
**/.tox
|
||||
**/.vscode
|
||||
**/.idea
|
||||
**/.coverage
|
||||
**/.DS_Store
|
||||
**/.eggs
|
||||
**/.python-version
|
||||
**/*.egg-info
|
||||
**/*.bak
|
||||
**/*.db
|
||||
**/*.pyc
|
||||
**/*.sqllite
|
||||
**/*.swp
|
||||
|
||||
tests/
|
||||
docs/
|
||||
install/
|
||||
superset/assets/node_modules/
|
||||
superset/assets/cypress/
|
||||
superset/assets/coverage/
|
||||
18
.flaskenv
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
FLASK_APP=superset:app
|
||||
FLASK_ENV=development
|
||||
38
.gitignore
vendored
@@ -1,8 +1,25 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
*.bak
|
||||
*.db
|
||||
*.pyc
|
||||
*.sqllite
|
||||
*.swp
|
||||
.cache-loader
|
||||
.coverage
|
||||
.DS_Store
|
||||
.eggs
|
||||
@@ -44,9 +61,18 @@ yarn-error.log
|
||||
venv
|
||||
@eaDir/
|
||||
|
||||
# docker
|
||||
/Dockerfile
|
||||
/docker-build.sh
|
||||
/docker-compose.yml
|
||||
/docker-entrypoint.sh
|
||||
/docker-init.sh
|
||||
# Docker
|
||||
./Dockerfile
|
||||
./docker-build.sh
|
||||
./docker-compose.yml
|
||||
./docker-entrypoint.sh
|
||||
./docker-init.sh
|
||||
|
||||
# Test data
|
||||
celery_results.sqlite
|
||||
celerybeat-schedule
|
||||
celerydb.sqlite
|
||||
celerybeat.pid
|
||||
geckodriver.log
|
||||
ghostdriver.log
|
||||
testCSV.csv
|
||||
|
||||
20
.pylintrc
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
[MASTER]
|
||||
|
||||
# Specify a configuration file.
|
||||
@@ -99,7 +115,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=i,j,k,ex,Run,_,d,e,v,o,l,x,ts
|
||||
good-names=i,j,k,ex,Run,_,d,e,v,o,l,x,ts,f
|
||||
|
||||
# Bad variable names which should always be refused, separated by a comma
|
||||
bad-names=foo,bar,baz,toto,tutu,tata,d,fd
|
||||
@@ -232,7 +248,7 @@ logging-modules=logging
|
||||
[MISCELLANEOUS]
|
||||
|
||||
# List of note tags to take in consideration, separated by a comma.
|
||||
notes=FIXME,XXX,TODO
|
||||
notes=FIXME,XXX
|
||||
|
||||
|
||||
[SIMILARITIES]
|
||||
|
||||
40
.rat-excludes
Normal file
@@ -0,0 +1,40 @@
|
||||
.gitignore
|
||||
.gitattributes
|
||||
.coverage
|
||||
.coveragerc
|
||||
.codecov.yml
|
||||
.eslintrc
|
||||
.eslintignore
|
||||
.flake8
|
||||
.prettierrc
|
||||
.rat-excludes
|
||||
.*log
|
||||
.*pyc
|
||||
.*lock
|
||||
.*geojson
|
||||
DISCLAIMER
|
||||
licenses/*
|
||||
node_modules/*
|
||||
rat-results.txt
|
||||
babel-node
|
||||
dist
|
||||
build
|
||||
superset.egg-info
|
||||
apache_superset.egg-info
|
||||
.idea
|
||||
.*sql
|
||||
.*zip
|
||||
.*lock
|
||||
# json and csv in general cannot have comments
|
||||
.*json
|
||||
.*csv
|
||||
# Generated doc files
|
||||
docs/_build/*
|
||||
_build/*
|
||||
_static/*
|
||||
.buildinfo
|
||||
searchindex.js
|
||||
# auto generated
|
||||
requirements.txt
|
||||
# vendorized
|
||||
vendor/*
|
||||
68
.travis.yml
@@ -1,20 +1,44 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
cache:
|
||||
pip: true
|
||||
jobs:
|
||||
include:
|
||||
- language: python
|
||||
python: 3.6
|
||||
env: TOXENV=cypress
|
||||
cache:
|
||||
pip: true
|
||||
yarn: true
|
||||
directories:
|
||||
- ~/.npm
|
||||
- ~/.cache
|
||||
env: TOXENV=cypress-dashboard
|
||||
services:
|
||||
- redis-server
|
||||
before_install:
|
||||
- nvm install 8.9
|
||||
- nvm install 10.14.2
|
||||
- language: python
|
||||
python: 3.6
|
||||
env: TOXENV=cypress-explore
|
||||
services:
|
||||
- redis-server
|
||||
before_install:
|
||||
- nvm install 10.14.2
|
||||
- language: python
|
||||
python: 3.6
|
||||
env: TOXENV=cypress-sqllab
|
||||
services:
|
||||
- redis-server
|
||||
before_install:
|
||||
- nvm install 10.14.2
|
||||
- language: python
|
||||
python: 3.6
|
||||
env: TOXENV=py36-mysql
|
||||
@@ -25,17 +49,10 @@ jobs:
|
||||
- mysql -u root -e "DROP DATABASE IF EXISTS superset; CREATE DATABASE superset DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci"
|
||||
- mysql -u root -e "CREATE USER 'mysqluser'@'localhost' IDENTIFIED BY 'mysqluserpassword';"
|
||||
- mysql -u root -e "GRANT ALL ON superset.* TO 'mysqluser'@'localhost';"
|
||||
- language: node_js
|
||||
node_js: 8.9
|
||||
cache:
|
||||
yarn: true
|
||||
- language: python
|
||||
env: TOXENV=javascript
|
||||
before_install:
|
||||
- cd superset/assets
|
||||
install:
|
||||
- yarn install --frozen-lockfile
|
||||
script:
|
||||
- npm run lint
|
||||
- npm run cover
|
||||
- nvm install 10.14.2
|
||||
- language: python
|
||||
python: 3.6
|
||||
env: TOXENV=flake8
|
||||
@@ -56,6 +73,15 @@ jobs:
|
||||
- language: python
|
||||
python: 3.6
|
||||
env: TOXENV=pylint
|
||||
- language: python
|
||||
env:
|
||||
- TOXENV=license-check
|
||||
- TRAVIS_CACHE=$HOME/.travis_cache/
|
||||
jdk:
|
||||
- oraclejdk8
|
||||
before_install:
|
||||
- jdk_switcher use oraclejdk8
|
||||
|
||||
install:
|
||||
- pip install --upgrade pip
|
||||
- pip install codecov tox
|
||||
@@ -63,3 +89,9 @@ script:
|
||||
- tox
|
||||
after_success:
|
||||
- codecov
|
||||
cache:
|
||||
pip: true
|
||||
directories:
|
||||
- ~/.npm
|
||||
- ~/.cache
|
||||
- ~/.travis_cache/
|
||||
|
||||
430
CHANGELOG.md
@@ -1,5 +1,435 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
## Change Log
|
||||
|
||||
### 0.28.1 (2018/10/18 17:48 +00:00)
|
||||
- Bump FAB to 1.18.1
|
||||
|
||||
### 0.28.0 (2018/10/17 ??:?? +00:00)
|
||||
- [#5896](https://github.com/apache/incubator-superset/pull/5896) [SIP-4] replace SQL Lab ajax calls with `SupersetClient` (#5896) (@williaster)
|
||||
- [#6104](https://github.com/apache/incubator-superset/pull/6104) Use @vx/responsive to provide Chart width on Explore page (#6104) (@kristw)
|
||||
- [#6095](https://github.com/apache/incubator-superset/pull/6095) [utils.py] gathering/refactoring into a "utils/" folder (#6095) (@mistercrunch)
|
||||
- [#5869](https://github.com/apache/incubator-superset/pull/5869) [SIP-4] replace explorer ajax calls with `SupersetClient` (#5869) (@williaster)
|
||||
- [#6058](https://github.com/apache/incubator-superset/pull/6058) [SIP-5&6] Refactor line_multi (#6058) (@kristw)
|
||||
- [#5854](https://github.com/apache/incubator-superset/pull/5854) [SIP-4] replace dashboard ajax calls with `SupersetClient` (#5854) (@williaster)
|
||||
- [#6078](https://github.com/apache/incubator-superset/pull/6078) allow cache and force refresh on table list (#6078) (@youngyjd)
|
||||
- [#6121](https://github.com/apache/incubator-superset/pull/6121) This control test is flaky and affecting travis runs, turning it off for now (#6121) (@michellethomas)
|
||||
- [#6038](https://github.com/apache/incubator-superset/pull/6038) Fixes to the CategoricalDeckGLContainer and filter box (#6038) (@betodealmeida)
|
||||
- [#6113](https://github.com/apache/incubator-superset/pull/6113) send username in sync request (#6113) (@youngyjd)
|
||||
- [#5875](https://github.com/apache/incubator-superset/pull/5875) [SIP-4] replace chart ajax calls with `SupersetClient` (#5875) (@williaster)
|
||||
- [#6079](https://github.com/apache/incubator-superset/pull/6079) [refactor] Migrate from Mocha+Chai to Jest (#6079) (@xtinec)
|
||||
- [#6096](https://github.com/apache/incubator-superset/pull/6096) remove utf8 declaration (#6096) (@timifasubaa)
|
||||
- [#6102](https://github.com/apache/incubator-superset/pull/6102) fix dependency issue #6086 (#6102) (@aflyhorse)
|
||||
- [#6103](https://github.com/apache/incubator-superset/pull/6103) Rename onTooltip to setTooltip (#6103) (@kristw)
|
||||
- [#6105](https://github.com/apache/incubator-superset/pull/6105) make BigNumber PureComponent (#6105) (@kristw)
|
||||
- [#6097](https://github.com/apache/incubator-superset/pull/6097) Fix link formating in README.md (#6097) (@ad-m)
|
||||
- [#6088](https://github.com/apache/incubator-superset/pull/6088) move countries directory under CountryMap (#6088) (@kristw)
|
||||
- [#6065](https://github.com/apache/incubator-superset/pull/6065) remove future (#6065) (@timifasubaa)
|
||||
- [#6091](https://github.com/apache/incubator-superset/pull/6091) remove six dependency (#6091) (@timifasubaa)
|
||||
- [#6090](https://github.com/apache/incubator-superset/pull/6090) Add ChartPlugin and metadata for deck.gl vis (#6090) (@kristw)
|
||||
- [#6085](https://github.com/apache/incubator-superset/pull/6085) Add ChartPlugin and metadata for nvd3 and BigNumber vis (#6085) (@kristw)
|
||||
- [#6089](https://github.com/apache/incubator-superset/pull/6089) [cypress][sqllab] increase timeout for sqllab results (#6089) (@williaster)
|
||||
- [#6039](https://github.com/apache/incubator-superset/pull/6039) [SIP-5] Remove references to slice from all deck.gl components. (#6039) (@kristw)
|
||||
- [#6072](https://github.com/apache/incubator-superset/pull/6072) Create chart plugins and metadata (#6072) (@kristw)
|
||||
- [#6063](https://github.com/apache/incubator-superset/pull/6063) remove future imports from db migrations (#6063) (@timifasubaa)
|
||||
- [#6069](https://github.com/apache/incubator-superset/pull/6069) Cypress tests for controls and explore links (#6069) (@michellethomas)
|
||||
- [#6074](https://github.com/apache/incubator-superset/pull/6074) Rename color constants and move util function into separate file (#6074) (@kristw)
|
||||
- [#5998](https://github.com/apache/incubator-superset/pull/5998) Fix the horizon title only show the first key (#5998) (@Narcissus7)
|
||||
- [#6050](https://github.com/apache/incubator-superset/pull/6050) remove future imports (#6050) (@timifasubaa)
|
||||
- [#6073](https://github.com/apache/incubator-superset/pull/6073) Fix top groups with user defined metrics (#6073) (@betodealmeida)
|
||||
- [#5974](https://github.com/apache/incubator-superset/pull/5974) [cypress] add SQL lab tests (#5974) (@williaster)
|
||||
- [#6061](https://github.com/apache/incubator-superset/pull/6061) feat: import/export dashboards via cli (#6061) (@arpit-agarwal)
|
||||
- [#6054](https://github.com/apache/incubator-superset/pull/6054) [setup] Using pip-tools to create requirements.txt (#6054) (@john-bodley)
|
||||
- [#6062](https://github.com/apache/incubator-superset/pull/6062) Add increment back arrow to time player (#6062) (@betodealmeida)
|
||||
- [#6028](https://github.com/apache/incubator-superset/pull/6028) Add data structures for chart plugin system (#6028) (@kristw)
|
||||
- [#6002](https://github.com/apache/incubator-superset/pull/6002) [cypress] add integration tests for dashboard (#6002) (@graceguo-supercat)
|
||||
- [#6037](https://github.com/apache/incubator-superset/pull/6037) [Dashboard] Fix margin issue in dashboard modal (#6037) (@graceguo-supercat)
|
||||
- [#6004](https://github.com/apache/incubator-superset/pull/6004) check db extra and metadata params preemptively (#6004) (@youngyjd)
|
||||
- [#5933](https://github.com/apache/incubator-superset/pull/5933) Allow user to force refresh metadata (#5933) (@youngyjd)
|
||||
- [#6051](https://github.com/apache/incubator-superset/pull/6051) [select-star] Adding optional schema to view (#6051) (@john-bodley)
|
||||
- [#6030](https://github.com/apache/incubator-superset/pull/6030) Upgrade flask-appbuilder to latest. (#6030) (@jmcarp)
|
||||
- [#6056](https://github.com/apache/incubator-superset/pull/6056) Revert old precision formatters (#6056) (@theikkila)
|
||||
- [#6043](https://github.com/apache/incubator-superset/pull/6043) Search queries when enter is pressed (#6043) (@betodealmeida)
|
||||
- [#6047](https://github.com/apache/incubator-superset/pull/6047) fix for annotation layer bug (#6047) (@yuguang)
|
||||
- [#6049](https://github.com/apache/incubator-superset/pull/6049) remove redundant mysql (#6049) (@timifasubaa)
|
||||
- [#6023](https://github.com/apache/incubator-superset/pull/6023) [tablemodelview] Fixing JSON api/read serializable issue (#6023) (@john-bodley)
|
||||
- [#5985](https://github.com/apache/incubator-superset/pull/5985) Deprecate support for Python 3_6 (#5985) (@mistercrunch)
|
||||
- [#6031](https://github.com/apache/incubator-superset/pull/6031) refer to default color scheme in colorpickercontrol instead of pointing to specific scheme (#6031) (@kristw)
|
||||
- [#6027](https://github.com/apache/incubator-superset/pull/6027) Sorting tables by "modified" is broken (#6027) (@betodealmeida)
|
||||
- [#6016](https://github.com/apache/incubator-superset/pull/6016) [ci] Update ci config to reduce javascript test time and some of cypress. (#6016) (@kristw)
|
||||
- [#6029](https://github.com/apache/incubator-superset/pull/6029) use world map only bundle (#6029) (@kristw)
|
||||
- [#5997](https://github.com/apache/incubator-superset/pull/5997) [SIP-6] Migrate visualizations to new directory structure (part 2) (#5997) (@kristw)
|
||||
- [#6035](https://github.com/apache/incubator-superset/pull/6035) Revert #5991 (#6035) (@graceguo-supercat)
|
||||
- [#6033](https://github.com/apache/incubator-superset/pull/6033) log query fetch time (#6033) (@timifasubaa)
|
||||
- [#5566](https://github.com/apache/incubator-superset/pull/5566) [bugfix] Fix Tableviz metrics column disorder (#5566) (@yamyamyuo)
|
||||
- [#5924](https://github.com/apache/incubator-superset/pull/5924) [cypress] Add integration test for area, pie, pivot_table, world_map, dual_line, sunburst, sankey, big_number, bubble, box_plot, treemap (#5924) (@kristw)
|
||||
- [#6006](https://github.com/apache/incubator-superset/pull/6006) [SIP-6] Migrate visualizations to new directory structure (part 3 - nvd3) (#6006) (@kristw)
|
||||
- [#6019](https://github.com/apache/incubator-superset/pull/6019) [cypress] Combine multiple tests under visualizations into single test to save running time (#6019) (@kristw)
|
||||
- [#5991](https://github.com/apache/incubator-superset/pull/5991) feat: import/export dashboards via cli (#5991) (@arpit-agarwal)
|
||||
- [#5960](https://github.com/apache/incubator-superset/pull/5960) [feat] Feature flag system via config (#5960) (@xtinec)
|
||||
- [#6005](https://github.com/apache/incubator-superset/pull/6005) Removing the key from cypress build and removing parallel flag (#6005) (@michellethomas)
|
||||
- [#6008](https://github.com/apache/incubator-superset/pull/6008) disable dashboard test (#6008) (@kristw)
|
||||
- [#5995](https://github.com/apache/incubator-superset/pull/5995) wait and verify one-by-one (#5995) (@kristw)
|
||||
- [#5949](https://github.com/apache/incubator-superset/pull/5949) [SIP-6] Migrate visualizations to new directory structure. (#5949) (@kristw)
|
||||
- [#5983](https://github.com/apache/incubator-superset/pull/5983) Update webpack bundle configuration (#5983) (@kristw)
|
||||
- [#5957](https://github.com/apache/incubator-superset/pull/5957) [cypress] Update dashboard test to remove 10s timeout (#5957) (@kristw)
|
||||
- [#5959](https://github.com/apache/incubator-superset/pull/5959) Explicit set markdown version to >= 3.0 (#5959) (@manhtai)
|
||||
- [#5946](https://github.com/apache/incubator-superset/pull/5946) Remove lodash.throttle and replace underscore calls with lodash (#5946) (@kristw)
|
||||
- [#5975](https://github.com/apache/incubator-superset/pull/5975) Pinning a version of click to fix travis (#5975) (@michellethomas)
|
||||
- [#5970](https://github.com/apache/incubator-superset/pull/5970) Add fordeal to superset user list (#5970) (@Renkai)
|
||||
- [#5967](https://github.com/apache/incubator-superset/pull/5967) Constrain the max version of markdown (#5967) (@victornoel)
|
||||
- [#5937](https://github.com/apache/incubator-superset/pull/5937) Deprecate getColorFromSchem (#5937) (@kristw)
|
||||
- [#5906](https://github.com/apache/incubator-superset/pull/5906) fix sqllab querysearch typeahead permission error (#5906) (@youngyjd)
|
||||
- [#5934](https://github.com/apache/incubator-superset/pull/5934) ensure npm run build is in production mode (#5934) (@kristw)
|
||||
- [#5952](https://github.com/apache/incubator-superset/pull/5952) [deck_polyline] show metric in geohash (#5952) (@mistercrunch)
|
||||
- [#5948](https://github.com/apache/incubator-superset/pull/5948) [deck_polygon] implement null locations flag (#5948) (@mistercrunch)
|
||||
- [#5931](https://github.com/apache/incubator-superset/pull/5931) [bugfix] metrics issue in 'Periodicity Pivot' (#5931) (@mistercrunch)
|
||||
- [#5770](https://github.com/apache/incubator-superset/pull/5770) [explore] add "View samples" modal to action buttons (#5770) (@mistercrunch)
|
||||
- [#5923](https://github.com/apache/incubator-superset/pull/5923) [docs] iterating to get to ASF compliance on project site (#5923) (@mistercrunch)
|
||||
- [#5945](https://github.com/apache/incubator-superset/pull/5945) [eslint] add no-only-tests (#5945) (@williaster)
|
||||
- [#5926](https://github.com/apache/incubator-superset/pull/5926) Adding configuration to cypress to enable dashboard (#5926) (@michellethomas)
|
||||
- [#5787](https://github.com/apache/incubator-superset/pull/5787) Add schema level access control on csv upload (#5787) (@youngyjd)
|
||||
- [#5848](https://github.com/apache/incubator-superset/pull/5848) fix sqlab progress bar and status inconsistency (#5848) (@youngyjd)
|
||||
- [#5943](https://github.com/apache/incubator-superset/pull/5943) remove .only (#5943) (@kristw)
|
||||
- [#5940](https://github.com/apache/incubator-superset/pull/5940) fix csv upload bugs (#5940) (@timifasubaa)
|
||||
- [#5938](https://github.com/apache/incubator-superset/pull/5938) use es6 import (#5938) (@kristw)
|
||||
- [#5790](https://github.com/apache/incubator-superset/pull/5790) Some linting (#5790) (@mistercrunch)
|
||||
- [#5932](https://github.com/apache/incubator-superset/pull/5932) Allow removing legend (#5932) (@betodealmeida)
|
||||
- [#5866](https://github.com/apache/incubator-superset/pull/5866) Fix regression around low row limit for CSV exports (#5866) (@mistercrunch)
|
||||
- [#5911](https://github.com/apache/incubator-superset/pull/5911) Clean up CONTRIBUTING.md: (#5911) (@alekstorm)
|
||||
- [#5893](https://github.com/apache/incubator-superset/pull/5893) [SIP-6] Add reactify function and convert world map to new directory structure. (#5893) (@kristw)
|
||||
- [#5778](https://github.com/apache/incubator-superset/pull/5778) [explore flow] handling duplicated column aliases (#5778) (@mistercrunch)
|
||||
- [#5905](https://github.com/apache/incubator-superset/pull/5905) [bugfix] ignore history.pushState errors (#5905) (@mistercrunch)
|
||||
- [#5890](https://github.com/apache/incubator-superset/pull/5890) [bugfix] De-dup script tags. #5883 (#5890) (@kristw)
|
||||
- [#5901](https://github.com/apache/incubator-superset/pull/5901) Table and dist bar tests (#5901) (@michellethomas)
|
||||
- [#5921](https://github.com/apache/incubator-superset/pull/5921) [contributing.md] swap cypress command order (#5921) (@williaster)
|
||||
- [#5902](https://github.com/apache/incubator-superset/pull/5902) [refactor] Remove dependency on personal fork of supercluster from mapbox visualizations (#5902) (@xtinec)
|
||||
- [#5917](https://github.com/apache/incubator-superset/pull/5917) [bugfix] Fix percent metric display and check for string columns in table (#5917) (@kristw)
|
||||
- [#5868](https://github.com/apache/incubator-superset/pull/5868) Remove unused functions and jquery dependency (#5868) (@kristw)
|
||||
- [#5891](https://github.com/apache/incubator-superset/pull/5891) [bugfix] Fix color scheme picker (#5891) (@kristw)
|
||||
- [#5918](https://github.com/apache/incubator-superset/pull/5918) Fixing linting error in macro_tests (#5918) (@xtinec)
|
||||
- [#5907](https://github.com/apache/incubator-superset/pull/5907) Remove jquery usage to highlight sql lab menu (#5907) (@kristw)
|
||||
- [#5547](https://github.com/apache/incubator-superset/pull/5547) Adds a new macro to allow getting filter values easily (#5547) (@mjsilva)
|
||||
- [#5838](https://github.com/apache/incubator-superset/pull/5838) [SIP-5] Refactor nvd3 (#5838) (@kristw)
|
||||
- [#5903](https://github.com/apache/incubator-superset/pull/5903) [react16] fix React type checking (#5903) (@mistercrunch)
|
||||
- [#5900](https://github.com/apache/incubator-superset/pull/5900) Add cypress artifacts directory (videos/screenshots) to gitignore and sort items in gitignore (#5900) (@kristw)
|
||||
- [#5811](https://github.com/apache/incubator-superset/pull/5811) [treemap] add row_limit control (#5811) (@mistercrunch)
|
||||
- [#5851](https://github.com/apache/incubator-superset/pull/5851) remove duplicated utils (#5851) (@youngyjd)
|
||||
- [#5879](https://github.com/apache/incubator-superset/pull/5879) [lint] turn no-undef back on, set browser, cypress, and mocha env's (#5879) (@williaster)
|
||||
- [#5775](https://github.com/apache/incubator-superset/pull/5775) [SIP-5] Refactor Time Series Table (#5775) (@kristw)
|
||||
- [#5885](https://github.com/apache/incubator-superset/pull/5885) Addded documentation for Teradata DB (#5885) (@livinm)
|
||||
- [#5870](https://github.com/apache/incubator-superset/pull/5870) Enable Teradata (#5870) (@livinm)
|
||||
- [#5877](https://github.com/apache/incubator-superset/pull/5877) [bug fix] Fixed adhoc metric is not working for WordCloud (#5877) (@conglei)
|
||||
- [#5865](https://github.com/apache/incubator-superset/pull/5865) fixed modal close issue (#5865) (@conglei)
|
||||
- [#5861](https://github.com/apache/incubator-superset/pull/5861) [SIP-6] removed get_data for BigNumber (#5861) (@conglei)
|
||||
|
||||
### 0.28.0rc6 (2018/09/13 00:37 +00:00)
|
||||
- [#5880](https://github.com/apache/incubator-superset/pull/5880) Fix CSS theme flickering on FAB pages (#5880) (@mistercrunch)
|
||||
- [#5878](https://github.com/apache/incubator-superset/pull/5878) remove getColorFromScheme in favor of CategoricalColorNamespace.getScale() for histogram (#5878) (@kristw)
|
||||
- [#5709](https://github.com/apache/incubator-superset/pull/5709) fix: Pivot table not sorting formatted numeric column properly (#5709) (@arpit-agarwal)
|
||||
- [#5815](https://github.com/apache/incubator-superset/pull/5815) Improve categorical color management (#5815) (@kristw)
|
||||
- [#5874](https://github.com/apache/incubator-superset/pull/5874) [tests] fix sqllab/TableElement_spec (#5874) (@williaster)
|
||||
- [#5863](https://github.com/apache/incubator-superset/pull/5863) [time table] fix sorting on missing values (#5863) (@mistercrunch)
|
||||
- [#5748](https://github.com/apache/incubator-superset/pull/5748) [Docs] Running DB migration (#5748) (@hughhhh)
|
||||
- [#5867](https://github.com/apache/incubator-superset/pull/5867) correctly compute slice width in dashboard (#5867) (@kristw)
|
||||
- [#5864](https://github.com/apache/incubator-superset/pull/5864) Moving get_main_db out of tests and into superset utils (#5864) (@michellethomas)
|
||||
- [#5862](https://github.com/apache/incubator-superset/pull/5862) fix sqllab logging (#5862) (@timifasubaa)
|
||||
- [#5860](https://github.com/apache/incubator-superset/pull/5860) fix Object.assign try to write to read-only option.style (#5860) (@kristw)
|
||||
- [#5859](https://github.com/apache/incubator-superset/pull/5859) make access request open new tab (#5859) (@timifasubaa)
|
||||
- [#5858](https://github.com/apache/incubator-superset/pull/5858) [bugfix] mapbox pan on filter (#5858) (@xtinec)
|
||||
- [#5846](https://github.com/apache/incubator-superset/pull/5846) Adding line and big number total integration tests (#5846) (@michellethomas)
|
||||
- [#5855](https://github.com/apache/incubator-superset/pull/5855) [dev] fix redux devtools (#5855) (@williaster)
|
||||
- [#5850](https://github.com/apache/incubator-superset/pull/5850) update dashboard sidepane title (#5850) (@graceguo-supercat)
|
||||
- [#5736](https://github.com/apache/incubator-superset/pull/5736) [sqllab]More granular sqllab logging (#5736) (@timifasubaa)
|
||||
- [#5849](https://github.com/apache/incubator-superset/pull/5849) [bugfix] fix rows not showing on welcome page (retry) (#5849) (@kristw)
|
||||
- [#5853](https://github.com/apache/incubator-superset/pull/5853) [bugfix] 'No numeric types to aggregate' in NVD3 chart (#5853) (@mistercrunch)
|
||||
- [#5829](https://github.com/apache/incubator-superset/pull/5829) [sql lab] handle large ints, prevent overflow (#5829) (@mistercrunch)
|
||||
- [#5359](https://github.com/apache/incubator-superset/pull/5359) Upgrade to React==16.4.1 & Enzyme==3.3.0 (#5359) (@mistercrunch)
|
||||
- [#5844](https://github.com/apache/incubator-superset/pull/5844) add timing to stats logger (#5844) (@timifasubaa)
|
||||
- [#5785](https://github.com/apache/incubator-superset/pull/5785) Handle "ambiguous durations" (#5785) (@betodealmeida)
|
||||
- [#5819](https://github.com/apache/incubator-superset/pull/5819) Update time filter to use `react-datetime` (#5819) (@betodealmeida)
|
||||
- [#5841](https://github.com/apache/incubator-superset/pull/5841) Enable hot module replacement for React via react-hot-loader (#5841) (@kristw)
|
||||
- [#5834](https://github.com/apache/incubator-superset/pull/5834) [docs] suggest using python3.6 in installation docs (#5834) (@mistercrunch)
|
||||
- [#5828](https://github.com/apache/incubator-superset/pull/5828) Fix cache for multiple time comparisons (#5828) (@betodealmeida)
|
||||
- [#5830](https://github.com/apache/incubator-superset/pull/5830) Get 'Test Connection' button to take 'engine_params' into account (#5830) (@mistercrunch)
|
||||
- [#5840](https://github.com/apache/incubator-superset/pull/5840) Adding instructions on how to run Cypress in Contributing.md (#5840) (@michellethomas)
|
||||
- [#5839](https://github.com/apache/incubator-superset/pull/5839) [bugfix] Fix bignumber overflow in dashboard (#5839) (@kristw)
|
||||
- [#5762](https://github.com/apache/incubator-superset/pull/5762) [SIP-5] Refactor Paired t-test (#5762) (@kristw)
|
||||
- [#5789](https://github.com/apache/incubator-superset/pull/5789) [SIP-5] Refactor filterbox (#5789) (@kristw)
|
||||
- [#5693](https://github.com/apache/incubator-superset/pull/5693) Adding simple Cypress tests (#5693) (@michellethomas)
|
||||
- [#5771](https://github.com/apache/incubator-superset/pull/5771) [dashboard] Add alert on user delete root level tab (#5771) (@graceguo-supercat)
|
||||
- [#5730](https://github.com/apache/incubator-superset/pull/5730) [sql_json] allow not specifying client_id (#5730) (@mistercrunch)
|
||||
- [#5818](https://github.com/apache/incubator-superset/pull/5818) Update Readme that support Apache Kylin (#5818) (@zhaoyongjie)
|
||||
- [#5823](https://github.com/apache/incubator-superset/pull/5823) Adding 'Resources' section to the docs (#5823) (@mistercrunch)
|
||||
- [#5826](https://github.com/apache/incubator-superset/pull/5826) fix bug with react-syntax-highlighter import (#5826) (@kristw)
|
||||
- [#5705](https://github.com/apache/incubator-superset/pull/5705) [SIP-5] Refactor pivot table (#5705) (@kristw)
|
||||
- [#5825](https://github.com/apache/incubator-superset/pull/5825) [SIP-5] Remove unused function #easy-review (#5825) (@kristw)
|
||||
- [#5761](https://github.com/apache/incubator-superset/pull/5761) [SIP-5] Refactor parallel coordinates (#5761) (@kristw)
|
||||
- [#5783](https://github.com/apache/incubator-superset/pull/5783) [SIP-5] Refactor MapBox (#5783) (@kristw)
|
||||
- [#5758](https://github.com/apache/incubator-superset/pull/5758) [SIP-5] Refactor and improve histogram (#5758) (@kristw)
|
||||
- [#5760](https://github.com/apache/incubator-superset/pull/5760) [SIP-5] Refactor calendar chart (#5760) (@kristw)
|
||||
- [#5813](https://github.com/apache/incubator-superset/pull/5813) Enable CSS Hot Module Replacement and optimize css output for production (#5813) (@kristw)
|
||||
- [#5814](https://github.com/apache/incubator-superset/pull/5814) bug: don't show query overlay when panning mapbox maps (#5814) (@xtinec)
|
||||
- [#5812](https://github.com/apache/incubator-superset/pull/5812) [celery] setting default (#5812) (@john-bodley)
|
||||
- [#5786](https://github.com/apache/incubator-superset/pull/5786) Configure webpack-dev-server (#5786) (@kristw)
|
||||
- [#5796](https://github.com/apache/incubator-superset/pull/5796) make some text in [druid,CRUD,datasource] localizable (#5796) (@hitdemo)
|
||||
- [#5686](https://github.com/apache/incubator-superset/pull/5686) Force quoted column aliases for Oracle-like databases (#5686) (@villebro)
|
||||
- [#5707](https://github.com/apache/incubator-superset/pull/5707) [SIP-5] Refactor table (#5707) (@kristw)
|
||||
- [#5745](https://github.com/apache/incubator-superset/pull/5745) Update annotation model to have JSON Metadata field (#5745) (@hughhhh)
|
||||
- [#5782](https://github.com/apache/incubator-superset/pull/5782) update thumbnail (#5782) (@hughhhh)
|
||||
- [#5721](https://github.com/apache/incubator-superset/pull/5721) [SIP-5] Repair and refactor CountryMap (#5721) (@kristw)
|
||||
- [#5753](https://github.com/apache/incubator-superset/pull/5753) remove backend logic for wordcloud (#5753) (@conglei)
|
||||
- [#5777](https://github.com/apache/incubator-superset/pull/5777) Fix redirect to SQL Lab (#5777) (@betodealmeida)
|
||||
- [#5776](https://github.com/apache/incubator-superset/pull/5776) New branding images (#5776) (@elibrumbaugh)
|
||||
- [#5767](https://github.com/apache/incubator-superset/pull/5767) Fix multilayer geoviz and color picker error (#5767) (@youngyjd)
|
||||
- [#5718](https://github.com/apache/incubator-superset/pull/5718) [SIP-5] Refactor and repair partition (#5718) (@kristw)
|
||||
- [#5763](https://github.com/apache/incubator-superset/pull/5763) [SIP-5] Refactor rose (#5763) (@kristw)
|
||||
- [#5719](https://github.com/apache/incubator-superset/pull/5719) [SIP-5] Refactor World Map (#5719) (@kristw)
|
||||
- [#5722](https://github.com/apache/incubator-superset/pull/5722) [dashboard] Update font style for markdown component (#5722) (@graceguo-supercat)
|
||||
- [#5768](https://github.com/apache/incubator-superset/pull/5768) fix sqlparse bug and refactor (#5768) (@timifasubaa)
|
||||
|
||||
### 0.28.0rc5 (2018/08/29 04:05 +00:00)
|
||||
- [#5765](https://github.com/apache/incubator-superset/pull/5765) [bugfix] 'DruidCluster' object has no attribute 'db_engine_spec' (#5765) (@mistercrunch)
|
||||
- [#5715](https://github.com/apache/incubator-superset/pull/5715) [Table view] Handle empty arrays in fd.timeseries_limit_metric (#5715) (@betodealmeida)
|
||||
- [#5759](https://github.com/apache/incubator-superset/pull/5759) Bug: fixing async syntax for python 3.7 (#5759) (@xtinec)
|
||||
- [#5766](https://github.com/apache/incubator-superset/pull/5766) Disable input when IS (NOT) NULL selected in filters (#5766) (@betodealmeida)
|
||||
- [#5764](https://github.com/apache/incubator-superset/pull/5764) [bugfix] IS NOT NULL filter triggers KeyError: 'val' (#5764) (@mistercrunch)
|
||||
- [#5756](https://github.com/apache/incubator-superset/pull/5756) Add Myra Labs to user list in README (#5756) (@viksit)
|
||||
- [#5712](https://github.com/apache/incubator-superset/pull/5712) [deck polygon] add support for geohash (#5712) (@mistercrunch)
|
||||
- [#5729](https://github.com/apache/incubator-superset/pull/5729) Silence error on migration 4736ec66ce19 constraint drop (#5729) (@mistercrunch)
|
||||
- [#5749](https://github.com/apache/incubator-superset/pull/5749) Prevent deleting databases that have attached tables (#5749) (@mistercrunch)
|
||||
- [#5750](https://github.com/apache/incubator-superset/pull/5750) Merge pull request #5750 from mistercrunch/updating_0_28 (@mistercrunch)
|
||||
- [#5732](https://github.com/apache/incubator-superset/pull/5732) Merge pull request #5732 from mistercrunch/build_docs (@mistercrunch)
|
||||
- [#5731](https://github.com/apache/incubator-superset/pull/5731) Merge pull request #5731 from mistercrunch/faq_db_engines (@mistercrunch)
|
||||
- [#5701](https://github.com/apache/incubator-superset/pull/5701) [SIP-5] Refactor sankey (#5701) (@kristw)
|
||||
- [#5704](https://github.com/apache/incubator-superset/pull/5704) [SIP-5] Refactor and update heatmap (#5704) (@kristw)
|
||||
- [13e48e8](https://github.com/apache/incubator-superset/commit/13e48e8c8eff626f0a6543d440bf3399c0938765) typo-delipo (@mistercrunch)
|
||||
- [#5725](https://github.com/apache/incubator-superset/pull/5725) Merge pull request #5725 from mistercrunch/label_verbose_name (@mistercrunch)
|
||||
- [ceda309](https://github.com/apache/incubator-superset/commit/ceda3092e3fed092a4ff5f11096a0718b9446145) UPDATING.md entry about dashboard v2 forced migration in 0.28 (@mistercrunch)
|
||||
- [#5744](https://github.com/apache/incubator-superset/pull/5744) update webpack (#5744) (@hughhhh)
|
||||
- [#5706](https://github.com/apache/incubator-superset/pull/5706) Merge pull request #5706 from mistercrunch/color_arcs (@mistercrunch)
|
||||
- [#5724](https://github.com/apache/incubator-superset/pull/5724) Merge pull request #5724 from mistercrunch/css_editable_input (@mistercrunch)
|
||||
- [#5723](https://github.com/apache/incubator-superset/pull/5723) Merge pull request #5723 from mistercrunch/fix_autocomplete_filters (@mistercrunch)
|
||||
- [#5746](https://github.com/apache/incubator-superset/pull/5746) [bugfix] BigNumber crash, Horizon indent and Myanmar geojson (#5746) (@kristw)
|
||||
- [#5699](https://github.com/apache/incubator-superset/pull/5699) [SIP-5] Refactor sunburst (#5699) (@kristw)
|
||||
- [#5690](https://github.com/apache/incubator-superset/pull/5690) [SIP-5] Repair and refactor Horizon Chart (#5690) (@kristw)
|
||||
- [#5738](https://github.com/apache/incubator-superset/pull/5738) remove unneeded console.log (#5738) (@hughhhh)
|
||||
- [#5726](https://github.com/apache/incubator-superset/pull/5726) [celery] Using preferred configuration proceedure (#5726) (@john-bodley)
|
||||
- [09d46a7](https://github.com/apache/incubator-superset/commit/09d46a7864a67d3e2ef70fb41a5c43b28d6c14c9) Fix tests (@mistercrunch)
|
||||
- [#5717](https://github.com/apache/incubator-superset/pull/5717) Autofocus aggregation in metric control (#5717) (@betodealmeida)
|
||||
- [#5735](https://github.com/apache/incubator-superset/pull/5735) make some text localizable, mainly in explore, query (#5735) (@hitdemo)
|
||||
- [12cc2fb](https://github.com/apache/incubator-superset/commit/12cc2fbe15533c673b12bd3cf6bed2a5c8b8a46e) [docs] note as to how to build and view the docs (@mistercrunch)
|
||||
- [bddc952](https://github.com/apache/incubator-superset/commit/bddc9522e82f77942e0797694fd619fe1653ff48) [docs] FAQ entry 'Does Superset work with [database engine]?' (@mistercrunch)
|
||||
- [#5720](https://github.com/apache/incubator-superset/pull/5720) Fix FAQ on filters (#5720) (@betodealmeida)
|
||||
- [e964d83](https://github.com/apache/incubator-superset/commit/e964d83b45b21b95f21218fa0f25fb44c7f95b18) [table editor] better table header for Metrics tab (@mistercrunch)
|
||||
- [c447a97](https://github.com/apache/incubator-superset/commit/c447a970de3e6d240a5a9a0d7a1a5b737bd2332c) [css] show border around editable input while editing (@mistercrunch)
|
||||
- [ba32944](https://github.com/apache/incubator-superset/commit/ba329440bcece3f2e7033b8c02bd27460b7dfb11) [table editor] fix 'Autocomplete filters' checkbox doesn't stick (@mistercrunch)
|
||||
- [#5670](https://github.com/apache/incubator-superset/pull/5670) [SIP-5] Refactor treemap (#5670) (@kristw)
|
||||
- [#5714](https://github.com/apache/incubator-superset/pull/5714) [bugfix] add item is missing on table editor metrics tab (#5714) (@mistercrunch)
|
||||
- [#5716](https://github.com/apache/incubator-superset/pull/5716) Merge pull request #5716 from lyft/DPTOOLS-976 (@lyft)
|
||||
- [c567a89](https://github.com/apache/incubator-superset/commit/c567a89ee7529e88649d78f415a54988b01e218e) Use 403 (@betodealmeida)
|
||||
- [9827925](https://github.com/apache/incubator-superset/commit/9827925015a42a47d12db82595fd88de6a259d62) Return 401 on no authorization (@betodealmeida)
|
||||
- [#5708](https://github.com/apache/incubator-superset/pull/5708) Geojson property names (#5708) (@joshbrooks)
|
||||
- [#5702](https://github.com/apache/incubator-superset/pull/5702) remove console.log and change wording (#5702) (@kristw)
|
||||
- [#5672](https://github.com/apache/incubator-superset/pull/5672) Revise markup.js and iframe.js (#5672) (@kristw)
|
||||
- [#5703](https://github.com/apache/incubator-superset/pull/5703) [sqlparse] fix sqlparse bug (#5703) (@timifasubaa)
|
||||
- [71866f6](https://github.com/apache/incubator-superset/commit/71866f6a127c616da07f221572ca04a95902e7e0) [deck arcs] add JS hooks for sourceColor & targetColor (@mistercrunch)
|
||||
|
||||
- [#5684](https://github.com/apache/incubator-superset/pull/5684) [security] Moving set/merge perm to security manager (#5684) (@john-bodley)
|
||||
- [#5623](https://github.com/apache/incubator-superset/pull/5623) Merge pull request #5623 from mistercrunch/fix_templates (@mistercrunch)
|
||||
- [#5694](https://github.com/apache/incubator-superset/pull/5694) Allow users to select color for big number (#5694) (@hughhhh)
|
||||
- [#5697](https://github.com/apache/incubator-superset/pull/5697) Adds geodata for Myanmar (#5697) (@joshbrooks)
|
||||
- [#5698](https://github.com/apache/incubator-superset/pull/5698) adds TimorLeste geodata (#5698) (@joshbrooks)
|
||||
- [#5695](https://github.com/apache/incubator-superset/pull/5695) [bugfix] geohash lat/long is reversed (#5695) (@mistercrunch)
|
||||
- [#5663](https://github.com/apache/incubator-superset/pull/5663) Make brush send events (#5663) (@betodealmeida)
|
||||
- [#5634](https://github.com/apache/incubator-superset/pull/5634) [viz flow] detect TIMESTAMP, transition to line chart (#5634) (@mistercrunch)
|
||||
- [#5638](https://github.com/apache/incubator-superset/pull/5638) Add categories and time slider to arc deck.gl viz (#5638) (@betodealmeida)
|
||||
- [#5675](https://github.com/apache/incubator-superset/pull/5675) Fixes to the play slider (#5675) (@betodealmeida)
|
||||
- [#5646](https://github.com/apache/incubator-superset/pull/5646) Increase pylint jobs (#5646) (@betodealmeida)
|
||||
- [#5669](https://github.com/apache/incubator-superset/pull/5669) Repair and refactor Word Cloud (#5669) (@kristw)
|
||||
- [#5691](https://github.com/apache/incubator-superset/pull/5691) Refactor force-directed graph (#5691) (@kristw)
|
||||
- [#5687](https://github.com/apache/incubator-superset/pull/5687) [bugfix] Encode unicode error message response (#5687) (@zhaoyongjie)
|
||||
- [#5641](https://github.com/apache/incubator-superset/pull/5641) Field names in big query can contain only alphanumeric and underscore (#5641) (@sumedhsakdeo)
|
||||
|
||||
### 0.27.0 (2018/08/21 20:16 +00:00)
|
||||
- [#5682](https://github.com/apache/incubator-superset/pull/5682) [bugfix] making secondary_metric optional (#5682) (@mistercrunch)
|
||||
- [#5665](https://github.com/apache/incubator-superset/pull/5665) Upgrade mysqlclient to 1.3.13 (#5665) (@emlittleworth)
|
||||
- [#5640](https://github.com/apache/incubator-superset/pull/5640) Fix CSS (#5640) (@betodealmeida)
|
||||
- [#5688](https://github.com/apache/incubator-superset/pull/5688) change title from hotkeys to keyboard shortcuts (#5688) (@kristw)
|
||||
|
||||
### 0.28.0rc3 (2018/08/21 17:19 +00:00)
|
||||
- [#5683](https://github.com/apache/incubator-superset/pull/5683) [bug] 'an error has ooccured' when saving datasource (#5683) (@mistercrunch)
|
||||
- [#5685](https://github.com/apache/incubator-superset/pull/5685) make some text localizable, mainly in dashboard, explore, datasource editor, webpage title (#5685) (@hitdemo)
|
||||
- [#5655](https://github.com/apache/incubator-superset/pull/5655) Handling bigquery dialect when previewing data (#5655) (@sumedhsakdeo)
|
||||
- [#5657](https://github.com/apache/incubator-superset/pull/5657) [bugfix] df is None breaks df.empty check (#5657) (@mistercrunch)
|
||||
- [#5671](https://github.com/apache/incubator-superset/pull/5671) Refactor Chord vis (#5671) (@kristw)
|
||||
- [#5681](https://github.com/apache/incubator-superset/pull/5681) Fix time filter in cache (#5681) (@betodealmeida)
|
||||
- [#5662](https://github.com/apache/incubator-superset/pull/5662) Minor improvements to SQL Lab UI (#5662) (@kristw)
|
||||
- [#5642](https://github.com/apache/incubator-superset/pull/5642) Filter out null locations by default (#5642) (@betodealmeida)
|
||||
- [#5668](https://github.com/apache/incubator-superset/pull/5668) Update CONTRIBUTING.md (#5668) (@hughhhh)
|
||||
- [#5652](https://github.com/apache/incubator-superset/pull/5652) [sqllab] call out transient state of tabs to users (#5652) (@williaster)
|
||||
- [#5661](https://github.com/apache/incubator-superset/pull/5661) [bugfix] TypeError: adhocMetric.comparator.join is not a function (#5661) (@mistercrunch)
|
||||
- [#5645](https://github.com/apache/incubator-superset/pull/5645) Fix checkbox is fails When disable Druid datasource (#5645) (@zhaoyongjie)
|
||||
- [#5649](https://github.com/apache/incubator-superset/pull/5649) fix multilayer viz backend error (#5649) (@youngyjd)
|
||||
- [#5644](https://github.com/apache/incubator-superset/pull/5644) handle exception and set dtype value to JSON, when column type JSON (#5644) (@sumedhsakdeo)
|
||||
- [#5567](https://github.com/apache/incubator-superset/pull/5567) make filters use security manager (#5567) (@timifasubaa)
|
||||
- [#5648](https://github.com/apache/incubator-superset/pull/5648) Updating yarn.lock for the vx upgrade (#5648) (@michellethomas)
|
||||
- [#5647](https://github.com/apache/incubator-superset/pull/5647) Upgrading vx responsive to fix ResizeObserver issue (#5647) (@michellethomas)
|
||||
- [#5643](https://github.com/apache/incubator-superset/pull/5643) use_slice_data in slice_json calls (#5643) (@michellethomas)
|
||||
- [#5637](https://github.com/apache/incubator-superset/pull/5637) Explore View Perf Fix (#5637) (@sumedhsakdeo)
|
||||
- [#5100](https://github.com/apache/incubator-superset/pull/5100) Fix form data issue switching viz types (#5100) (@michellethomas)
|
||||
- [#5433](https://github.com/apache/incubator-superset/pull/5433) [title] Fix issue with non-string names in series title (#5433) (@john-bodley)
|
||||
- [#5632](https://github.com/apache/incubator-superset/pull/5632) Fetch a batch of rows from bigquery (#5632) (@sumedhsakdeo)
|
||||
- [#5630](https://github.com/apache/incubator-superset/pull/5630) [bubble] Fixing ad-hoc metric labels (#5630) (@john-bodley)
|
||||
- [#5626](https://github.com/apache/incubator-superset/pull/5626) Tackling late-arriving comments from #5186 (#5626) (@mistercrunch)
|
||||
- [#5612](https://github.com/apache/incubator-superset/pull/5612) [sql lab] always use NullPool (#5612) (@mistercrunch)
|
||||
- [#5631](https://github.com/apache/incubator-superset/pull/5631) [bug fix] Fixed forced percentage format on tooltips and bubble chart tooltips format. (#5631) (@conglei)
|
||||
- [#5629](https://github.com/apache/incubator-superset/pull/5629) [bugfix] TIMESTAMP not detected as date (#5629) (@mistercrunch)
|
||||
- [#5621](https://github.com/apache/incubator-superset/pull/5621) Fix annotation_json endpoint (#5621) (@hughhhh)
|
||||
- [#5624](https://github.com/apache/incubator-superset/pull/5624) [Dashobard]Fix bad merge (#5624) (@graceguo-supercat)
|
||||
- [#5568](https://github.com/apache/incubator-superset/pull/5568) [bugfix] line_multi chart crashed on chosen (#5568) (#5572) (@kristw)
|
||||
- [#5549](https://github.com/apache/incubator-superset/pull/5549) Add additional heatmap schemas (#5549) (@jerowe)
|
||||
- [#5597](https://github.com/apache/incubator-superset/pull/5597) No exception on no data (#5597) (@betodealmeida)
|
||||
- [d04d714](https://github.com/apache/incubator-superset/commit/d04d714fe594798f9a27a395cef1b748d7b13f37) Fix menu on 'import dashboards' page (@mistercrunch)
|
||||
- [#5622](https://github.com/apache/incubator-superset/pull/5622) Add option to run query with ctrl+enter (#5622) (@betodealmeida)
|
||||
- [#5603](https://github.com/apache/incubator-superset/pull/5603) [feature] Allow min/max value for the sparkline in time series table (#5603) (@kristw)
|
||||
- [#5618](https://github.com/apache/incubator-superset/pull/5618) [dashboards] Increasing position_json to MEDIUMTEXT for MySQL (#5618) (@john-bodley)
|
||||
- [#5584](https://github.com/apache/incubator-superset/pull/5584) [fix] Enforcing main dttm column (#5584) (@john-bodley)
|
||||
- [#5611](https://github.com/apache/incubator-superset/pull/5611) make some text localizable (#5611) (@hitdemo)
|
||||
- [#5480](https://github.com/apache/incubator-superset/pull/5480) fix cal_heatmap tips location error (#5480) (#5587) (@Narcissus7)
|
||||
|
||||
### 0.27.0rc1 (2018/08/12 17:03 +00:00)
|
||||
- [#5589](https://github.com/apache/incubator-superset/pull/5589) [ad-hoc filters] Fixing legacy conversion (#5589) (@john-bodley)
|
||||
- [#5596](https://github.com/apache/incubator-superset/pull/5596) [sql lab - explore flow] make sure groupby is empty (#5596) (@mistercrunch)
|
||||
- [#5592](https://github.com/apache/incubator-superset/pull/5592) [bug]Fix load_examples dashboard version key name (#5592) (@graceguo-supercat)
|
||||
- [#5579](https://github.com/apache/incubator-superset/pull/5579) [sql lab] visualization flow to detect unaliased columns (#5579) (@mistercrunch)
|
||||
- [#5580](https://github.com/apache/incubator-superset/pull/5580) [table editor] disable 'Sync table metadata' button for Superset views (#5580) (@mistercrunch)
|
||||
- [#5550](https://github.com/apache/incubator-superset/pull/5550) Template dashboard (#5550) (@betodealmeida)
|
||||
- [#5562](https://github.com/apache/incubator-superset/pull/5562) update python3 version for testing to 3.6 (#5562) (@octaviancorlade)
|
||||
- [#5574](https://github.com/apache/incubator-superset/pull/5574) Fixed the wrong icon for Source -> Table (#5574) (@conglei)
|
||||
- [#5573](https://github.com/apache/incubator-superset/pull/5573) remove deep-equal and use _.isEqual instead (#5573) (@kristw)
|
||||
- [#5186](https://github.com/apache/incubator-superset/pull/5186) Implement a React-based table editor (#5186) (@mistercrunch)
|
||||
- [#5552](https://github.com/apache/incubator-superset/pull/5552) Add option for BigNumber to not start y-axis at 0 (#5552) (@kristw)
|
||||
- [#5561](https://github.com/apache/incubator-superset/pull/5561) A collection of small bug fixes on master (#5561) (@mistercrunch)
|
||||
- [#5564](https://github.com/apache/incubator-superset/pull/5564) remove uneccessary comma (#5564) (@hitdemo)
|
||||
- [#5560](https://github.com/apache/incubator-superset/pull/5560) Remove function since_until_to_time_range (#5560) (@mistercrunch)
|
||||
- [#5558](https://github.com/apache/incubator-superset/pull/5558) [sql lab] allow EXPlAIN queries (#5558) (@mistercrunch)
|
||||
- [#5515](https://github.com/apache/incubator-superset/pull/5515) convert position to v2 for Superset load_examples (#5515) (@graceguo-supercat)
|
||||
- [#5544](https://github.com/apache/incubator-superset/pull/5544) Improve URLs for Chart and Dashboard ModelViews (#5544) (@mistercrunch)
|
||||
- [#5559](https://github.com/apache/incubator-superset/pull/5559) permissions bug fixes (#5559) (@timifasubaa)
|
||||
- [#5546](https://github.com/apache/incubator-superset/pull/5546) [bugfix] time filter on dashboard view (#5546) (@mistercrunch)
|
||||
- [#5543](https://github.com/apache/incubator-superset/pull/5543) Reduce dashboard position_json data size (#5543) (@graceguo-supercat)
|
||||
- [#5487](https://github.com/apache/incubator-superset/pull/5487) Match viz dataframe column case to form_data fields for Snowflake, Oracle and Redshift (#5487) (@villebro)
|
||||
- [#5398](https://github.com/apache/incubator-superset/pull/5398) Re-add dashboard short links (#5398) (@jaylindquist)
|
||||
- [#5554](https://github.com/apache/incubator-superset/pull/5554) Add Thailand country map (#5554) (@ekasitk)
|
||||
- [#5514](https://github.com/apache/incubator-superset/pull/5514) remove js packages that are not referenced in js code (#5514) (@kristw)
|
||||
- [#4874](https://github.com/apache/incubator-superset/pull/4874) Portuguese translation (#4874) (@nunohelibeires)
|
||||
- [#5523](https://github.com/apache/incubator-superset/pull/5523) [sql lab] simplify the visualize flow (#5523) (@mistercrunch)
|
||||
- [#5469](https://github.com/apache/incubator-superset/pull/5469) Update BigNumber design (#5469) (@kristw)
|
||||
- [#5536](https://github.com/apache/incubator-superset/pull/5536) Replace metadata refresh stacktrace with danger flash (#5536) (@villebro)
|
||||
- [#5540](https://github.com/apache/incubator-superset/pull/5540) fix superset error message flow (#5540) (@timifasubaa)
|
||||
- [#5531](https://github.com/apache/incubator-superset/pull/5531) Include README in MANIFEST (#5531) (@jeffreythewang)
|
||||
- [#5437](https://github.com/apache/incubator-superset/pull/5437) Annotation Styles for Time Series Annotations (#5437) (@JamshedRahman)
|
||||
- [#5538](https://github.com/apache/incubator-superset/pull/5538) Stop pretty printing dashboard json (#5538) (@michellethomas)
|
||||
- [#5533](https://github.com/apache/incubator-superset/pull/5533) [ad-hoc filters] Remove legacy split in /explore (#5533) (@john-bodley)
|
||||
- [#5517](https://github.com/apache/incubator-superset/pull/5517) [get_df] Updating multi-statement logic (#5517) (@john-bodley)
|
||||
- [#5521](https://github.com/apache/incubator-superset/pull/5521) Adding 364 days to time compare option (#5521) (@michellethomas)
|
||||
- [#5525](https://github.com/apache/incubator-superset/pull/5525) [ad-hoc filters] Fixing issue with legacy filters (#5525) (@john-bodley)
|
||||
- [#5529](https://github.com/apache/incubator-superset/pull/5529) Fix time shift (#5529) (@betodealmeida)
|
||||
- [#5380](https://github.com/apache/incubator-superset/pull/5380) Add time grain blacklist and addons to config.py (#5380) (@villebro)
|
||||
- [#5522](https://github.com/apache/incubator-superset/pull/5522) added clickhouse as supported db (#5522) (@The-Alchemist)
|
||||
- [#5512](https://github.com/apache/incubator-superset/pull/5512) hotfix - pass link not error message (#5512) (@timifasubaa)
|
||||
- [#5504](https://github.com/apache/incubator-superset/pull/5504) Set max width for tooltips (#5504) (@jeffreythewang)
|
||||
- [#5516](https://github.com/apache/incubator-superset/pull/5516) Fixed the issue of Zambia country map. (#5516) (@visshaljagtap)
|
||||
- [#5500](https://github.com/apache/incubator-superset/pull/5500) allow security manager provide error message (#5500) (@timifasubaa)
|
||||
- [#5425](https://github.com/apache/incubator-superset/pull/5425) set default layout for new added charts (#5425) (@graceguo-supercat)
|
||||
- [#5459](https://github.com/apache/incubator-superset/pull/5459) Added India in country map visualizaion. (#5459) (@visshaljagtap)
|
||||
- [#5508](https://github.com/apache/incubator-superset/pull/5508) Fix 5479 - unicode columns issue. (#5508) (@mmuru)
|
||||
- [#5502](https://github.com/apache/incubator-superset/pull/5502) Improve hive/pyhive error message regex (#5502) (@mistercrunch)
|
||||
- [#5505](https://github.com/apache/incubator-superset/pull/5505) Remove dashboard transition related config (#5505) (@graceguo-supercat)
|
||||
- [#5490](https://github.com/apache/incubator-superset/pull/5490) [sqllab] fix unexpected keyword argument 'ignore_nan' (#5490) (@mistercrunch)
|
||||
- [#5493](https://github.com/apache/incubator-superset/pull/5493) Apply SQL_QUERY_MUTATOR to explore & dashboard (#5493) (@mistercrunch)
|
||||
- [#5494](https://github.com/apache/incubator-superset/pull/5494) [sql lab] fix Hive 'Transport' not open issue (#5494) (@mistercrunch)
|
||||
- [#5495](https://github.com/apache/incubator-superset/pull/5495) [sql lab] extract Hive error messages (#5495) (@mistercrunch)
|
||||
- [#5387](https://github.com/apache/incubator-superset/pull/5387) Visualization Unicode bug fix (#5387) (@JamshedRahman)
|
||||
- [#5497](https://github.com/apache/incubator-superset/pull/5497) [migration] bug fix in dashboard migration (bebcf3fed1fe_) (#5497) (@graceguo-supercat)
|
||||
- [#5492](https://github.com/apache/incubator-superset/pull/5492) Modify Athena connection description (#5492) (@yoonian)
|
||||
- [#5478](https://github.com/apache/incubator-superset/pull/5478) Remove is-react dep (#5478) (@betodealmeida)
|
||||
- [#5418](https://github.com/apache/incubator-superset/pull/5418) retire dashboard v1 (js and python) (#5418) (@graceguo-supercat)
|
||||
- [#5463](https://github.com/apache/incubator-superset/pull/5463) Migrate dashboard positions data from v1 to v2 format (#5463) (@graceguo-supercat)
|
||||
- [#5471](https://github.com/apache/incubator-superset/pull/5471) [migration] Fix migration 3dda56f1c (#5471) (@john-bodley)
|
||||
- [#5468](https://github.com/apache/incubator-superset/pull/5468) fix migration 3dda56f1c (#5468) (@timifasubaa)
|
||||
- [#5460](https://github.com/apache/incubator-superset/pull/5460) Move flake8-related packages deps to reqs-dev.txt (#5460) (@mistercrunch)
|
||||
- [#5426](https://github.com/apache/incubator-superset/pull/5426) Add row_limit control to line chart (#5426) (@mistercrunch)
|
||||
- [#5467](https://github.com/apache/incubator-superset/pull/5467) Fix broken dedup and remove redundant db_spec logic (#5467) (@villebro)
|
||||
- [#5464](https://github.com/apache/incubator-superset/pull/5464) Fix the build by merging both db migrations heads (#5464) (@mistercrunch)
|
||||
- [#5178](https://github.com/apache/incubator-superset/pull/5178) [sql] Correct SQL parameter formatting (#5178) (@john-bodley)
|
||||
- [#5454](https://github.com/apache/incubator-superset/pull/5454) Clarify title when importing a table (#5454) (@mistercrunch)
|
||||
- [#5455](https://github.com/apache/incubator-superset/pull/5455) Add week granularity for Clickhouse (#5455) (@qeorqe)
|
||||
- [#5436](https://github.com/apache/incubator-superset/pull/5436) Added Zambia geojson up to district level. (#5436) (@AndreLesa)
|
||||
- [#5410](https://github.com/apache/incubator-superset/pull/5410) Migrated to click (#5410) (@gbates101)
|
||||
- [#5443](https://github.com/apache/incubator-superset/pull/5443) Add Snowflake connection string instructions (#5443) (@villebro)
|
||||
- [#5448](https://github.com/apache/incubator-superset/pull/5448) Time filter fixes (#5448) (@betodealmeida)
|
||||
- [#5413](https://github.com/apache/incubator-superset/pull/5413) remove limiting at the display level (#5413) (@timifasubaa)
|
||||
- [#5432](https://github.com/apache/incubator-superset/pull/5432) Typo fixes in viz.py and CONTRIBUTING.md (#5432) (@visshaljagtap)
|
||||
- [#5416](https://github.com/apache/incubator-superset/pull/5416) Add pylint back as a tox env (#5416) (@mistercrunch)
|
||||
- [#5424](https://github.com/apache/incubator-superset/pull/5424) Avoid expensive select_star on dashboard bootstrap data (#5424) (@mistercrunch)
|
||||
- [#5419](https://github.com/apache/incubator-superset/pull/5419) Fixed typos in currently modified files (#5419) (@visshaljagtap)
|
||||
- [#5393](https://github.com/apache/incubator-superset/pull/5393) allow selection of dbs where csv can be uploaded to (#5393) (@timifasubaa)
|
||||
- [#5415](https://github.com/apache/incubator-superset/pull/5415) Fix db migration 3dda56f1c4c6 (#5415) (@mistercrunch)
|
||||
- [#5370](https://github.com/apache/incubator-superset/pull/5370) [webpack 4] third time's the charm ;) (#5370) (@williaster)
|
||||
- [#5412](https://github.com/apache/incubator-superset/pull/5412) Fix time filter in dashboard v2 (#5412) (@betodealmeida)
|
||||
- [#5411](https://github.com/apache/incubator-superset/pull/5411) allow 7 tabs, remove 'slice_' prefix in logs (#5411) (@williaster)
|
||||
- [#5177](https://github.com/apache/incubator-superset/pull/5177) Time shift difference (#5177) (@betodealmeida)
|
||||
- [#5295](https://github.com/apache/incubator-superset/pull/5295) [sqllab] Fix sqllab limit regex issue with sqlparse (#5295) (@timifasubaa)
|
||||
- [#5101](https://github.com/apache/incubator-superset/pull/5101) Explore to SQL Lab (#5101) (@betodealmeida)
|
||||
- [#5404](https://github.com/apache/incubator-superset/pull/5404) [big_number] tooltip shows in the wrong place (#5404) (@mistercrunch)
|
||||
- [#4981](https://github.com/apache/incubator-superset/pull/4981) Make time filter more usable (#4981) (@betodealmeida)
|
||||
- [#5329](https://github.com/apache/incubator-superset/pull/5329) [Table Viz] columns not match with group_by control (#5329) (@graceguo-supercat)
|
||||
- [#5376](https://github.com/apache/incubator-superset/pull/5376) [bugfix] make MetricsControl work with DECK visualizations (#5376) (@mistercrunch)
|
||||
- [#5375](https://github.com/apache/incubator-superset/pull/5375) Add `IS NOT NULL` and `IS NULL` as filter options (#5375) (@hughhhh)
|
||||
- [#5352](https://github.com/apache/incubator-superset/pull/5352) Make Pypi upload support markdown (#5352) (@mistercrunch)
|
||||
- [#5392](https://github.com/apache/incubator-superset/pull/5392) Fix display limit in sql lab (#5392) (@villebro)
|
||||
- [#5403](https://github.com/apache/incubator-superset/pull/5403) Fix the build (#5403) (@mistercrunch)
|
||||
- [#5368](https://github.com/apache/incubator-superset/pull/5368) quote hive column names (#5368) (@timifasubaa)
|
||||
- [#5355](https://github.com/apache/incubator-superset/pull/5355) get rid of global `notify` (#5355) (@williaster)
|
||||
- [#5236](https://github.com/apache/incubator-superset/pull/5236) [pie] improvements to pie charts (#5236) (@mistercrunch)
|
||||
- [#5357](https://github.com/apache/incubator-superset/pull/5357) Set control 'percent_metrics's default to [] (#5357) (@mistercrunch)
|
||||
- [#5379](https://github.com/apache/incubator-superset/pull/5379) Adding Druid Time Granularities (#5379) (@JamshedRahman)
|
||||
- [#5371](https://github.com/apache/incubator-superset/pull/5371) Set ignore NaN as true for TableViz (#5371) (@hughhhh)
|
||||
- [#5362](https://github.com/apache/incubator-superset/pull/5362) [dashboard] should use forceV2Edit property name (#5362) (@graceguo-supercat)
|
||||
- [#5360](https://github.com/apache/incubator-superset/pull/5360) [dashboard] Fix save issue at Force_V2_Edit mode (#5360) (@graceguo-supercat)
|
||||
- [#5334](https://github.com/apache/incubator-superset/pull/5334) CHANGELOG entry for 0.25.0 to 0.26.0 (#5334) (@mistercrunch)
|
||||
- [#5303](https://github.com/apache/incubator-superset/pull/5303) use schema form field in upload csv (#5303) (@timifasubaa)
|
||||
- [#5354](https://github.com/apache/incubator-superset/pull/5354) [cache] Adding description for a zero cache timeout (#5354) (@john-bodley)
|
||||
- [#5356](https://github.com/apache/incubator-superset/pull/5356) added a 'no_trend_line' option (#5356) (@xiaoyugit)
|
||||
|
||||
### 0.26.2 (2018/07/05 13:37 +00:00)
|
||||
- [#5349](https://github.com/apache/incubator-superset/pull/5349) impala support for epoch timestamps (#5349) (@aaronbannin)
|
||||
- [#5211](https://github.com/apache/incubator-superset/pull/5211) [Bug fix] Divide by 1000.000 in epoch_ms_to_dttm() to not lose precision in Presto (#5211) (@EvelynTurner)
|
||||
- [#5328](https://github.com/apache/incubator-superset/pull/5328) Implement rolling api introduced in pandas 0.18 (#5328) (@villebro)
|
||||
- [#5337](https://github.com/apache/incubator-superset/pull/5337) normalize column names for Redshift (#5337) (@minh5)
|
||||
|
||||
### 0.26.1 (2018/07/04 21:16 +00:00)
|
||||
- [#5338](https://github.com/apache/incubator-superset/pull/5338) A couple of setup.py fixes (#5338) (@xrmx)
|
||||
- [#5346](https://github.com/apache/incubator-superset/pull/5346) RST formatting fix for Installation docs (#5346) (@kulte)
|
||||
- [#5348](https://github.com/apache/incubator-superset/pull/5348) Fix typo in Start with Docker (#5348) (@kulte)
|
||||
### 0.26.0 (2018/07/03 14:13 +00:00)
|
||||
- [#5315](https://github.com/apache/incubator-superset/pull/5315) [cache] Allowing zero cache-timeout (#5315) (@john-bodley)
|
||||
- [#5313](https://github.com/apache/incubator-superset/pull/5313) Fix flaky unit test - remove 'Markup' object in data (#5313) (@mistercrunch)
|
||||
|
||||
@@ -1,84 +1,22 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
# Code of Conduct
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
A primary goal of Apache Superset is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).
|
||||
|
||||
This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
|
||||
|
||||
We invite all those who participate in Apache Superset to help us create safe and positive experiences for everyone.
|
||||
|
||||
## 2. Open Source Citizenship
|
||||
|
||||
A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.
|
||||
|
||||
Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.
|
||||
|
||||
If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.
|
||||
|
||||
## 3. Expected Behavior
|
||||
|
||||
The following behaviors are expected and requested of all community members:
|
||||
|
||||
* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
|
||||
* Exercise consideration and respect in your speech and actions.
|
||||
* Attempt collaboration before conflict.
|
||||
* Refrain from demeaning, discriminatory, or harassing behavior and speech.
|
||||
* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
|
||||
* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.
|
||||
|
||||
## 4. Unacceptable Behavior
|
||||
|
||||
The following behaviors are considered harassment and are unacceptable within our community:
|
||||
|
||||
* Violence, threats of violence or violent language directed against another person.
|
||||
* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
|
||||
* Posting or displaying sexually explicit or violent material.
|
||||
* Posting or threatening to post other people’s personally identifying information ("doxing").
|
||||
* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
|
||||
* Inappropriate photography or recording.
|
||||
* Inappropriate physical contact. You should have someone’s consent before touching them.
|
||||
* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
|
||||
* Deliberate intimidation, stalking or following (online or in person).
|
||||
* Advocating for, or encouraging, any of the above behavior.
|
||||
* Sustained disruption of community events, including talks and presentations.
|
||||
|
||||
## 5. Consequences of Unacceptable Behavior
|
||||
|
||||
Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.
|
||||
|
||||
Anyone asked to stop unacceptable behavior is expected to comply immediately.
|
||||
|
||||
If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).
|
||||
|
||||
## 6. Reporting Guidelines
|
||||
|
||||
If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. dev@superset.incubator.apache.org .
|
||||
|
||||
|
||||
|
||||
Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.
|
||||
|
||||
## 7. Addressing Grievances
|
||||
|
||||
If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify Apache with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.
|
||||
|
||||
|
||||
|
||||
## 8. Scope
|
||||
|
||||
We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business.
|
||||
|
||||
This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.
|
||||
|
||||
## 9. Contact info
|
||||
|
||||
dev@superset.incubator.apache.org
|
||||
|
||||
## 10. License and attribution
|
||||
|
||||
This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
|
||||
|
||||
Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).
|
||||
|
||||
Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/)
|
||||
We follow the
|
||||
[Apache Software Foundation's Code of Conduct](https://www.apache.org/foundation/policies/conduct.html)
|
||||
|
||||
297
CONTRIBUTING.md
@@ -1,3 +1,22 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
|
||||
# Contributing
|
||||
|
||||
Contributions are welcome and are greatly appreciated! Every
|
||||
@@ -7,13 +26,15 @@ little bit helps, and credit will always be given.
|
||||
|
||||
- [Types of Contributions](#types-of-contributions)
|
||||
- [Report Bugs](#report-bugs)
|
||||
- [Submit Ideas or Feature Requests](#submit-ideas-or-feature-requests)
|
||||
- [Ask Questions](#ask-questions)
|
||||
- [Fix Bugs](#fix-bugs)
|
||||
- [Implement Features](#implement-features)
|
||||
- [Improve Documentation](#improve-documentation)
|
||||
- [Add Translations](#add-translations)
|
||||
- [Submit Feedback](#submit-feedback)
|
||||
- [Ask Questions](#ask-questions)
|
||||
- [Pull Request Guidelines](#pull-request-guidelines)
|
||||
- [Protocol](#protocol)
|
||||
- [Managing Issues and PRs](#managing-issues-and-prs)
|
||||
- [Local development](#local-development)
|
||||
- [Documentation](#documentation)
|
||||
- [Flask server](#flask-server)
|
||||
@@ -34,26 +55,37 @@ little bit helps, and credit will always be given.
|
||||
|
||||
## Types of Contributions
|
||||
|
||||
### Report Bugs
|
||||
### Report Bug
|
||||
|
||||
Report bugs through GitHub. If you are reporting a bug, please include:
|
||||
The best way to report a bug is to file an issue on GitHub. Please include:
|
||||
|
||||
- Your operating system name and version.
|
||||
- Any details about your local setup that might be helpful in troubleshooting.
|
||||
- Superset version.
|
||||
- Detailed steps to reproduce the bug.
|
||||
- Any details about your local setup that might be helpful in troubleshooting.
|
||||
|
||||
When posting Python stack traces, please quote them using
|
||||
[Markdown blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/).
|
||||
|
||||
### Submit Ideas or Feature Requests
|
||||
|
||||
The best way is to file an issue on GitHub:
|
||||
|
||||
- Explain in detail how it would work.
|
||||
- Keep the scope as narrow as possible, to make it easier to implement.
|
||||
- Remember that this is a volunteer-driven project, and that contributions are welcome :)
|
||||
|
||||
For large features or major changes to codebase, please create **Superset Improvement Proposal (SIP)**. See template from [SIP-0](https://github.com/apache/incubator-superset/issues/5602)
|
||||
|
||||
### Fix Bugs
|
||||
|
||||
Look through the GitHub issues for bugs. Anything tagged with `bug` is
|
||||
Look through the GitHub issues. Issues tagged with `#bug` is
|
||||
open to whoever wants to implement it.
|
||||
|
||||
### Implement Features
|
||||
|
||||
Look through the GitHub issues for features. Anything tagged with
|
||||
`feature` or `starter_task` is open to whoever wants to implement it.
|
||||
Look through the GitHub issues. Issues tagged with
|
||||
`#feature` is open to whoever wants to implement it.
|
||||
|
||||
### Improve Documentation
|
||||
|
||||
@@ -66,41 +98,104 @@ articles. See [Documentation](#documentation) for more details.
|
||||
|
||||
If you are proficient in a non-English language, you can help translate text strings from Superset's UI. You can jump in to the existing language dictionaries at `superset/translations/<language_code>/LC_MESSAGES/messages.po`, or even create a dictionary for a new language altogether. See [Translating](#translating) for more details.
|
||||
|
||||
### Submit Feedback
|
||||
|
||||
The best way to send feedback is to file an issue on GitHub. If you are proposing a feature:
|
||||
|
||||
- Explain in detail how it would work.
|
||||
- Keep the scope as narrow as possible, to make it easier to implement.
|
||||
- Remember that this is a volunteer-driven project, and that contributions are welcome :)
|
||||
|
||||
### Ask Questions
|
||||
|
||||
There is a dedicated [`apache-superset` tag](https://stackoverflow.com/questions/tagged/apache-superset) on [StackOverflow](https://stackoverflow.com/). Please use it when asking questions.
|
||||
|
||||
## Pull Request Guidelines
|
||||
|
||||
Before you submit a pull request from your forked repo, check that it
|
||||
meets these guidelines:
|
||||
A philosophy we would like to strongly encourage is
|
||||
|
||||
1. The pull request should include tests, either as doctests,
|
||||
unit tests, or both.
|
||||
2. Run `tox` and resolve all errors and test failures.
|
||||
3. If the pull request adds functionality, the docs should be updated
|
||||
as part of the same PR. Doc string are often sufficient, make
|
||||
sure to follow the sphinx compatible standards.
|
||||
4. If the pull request adds a Python dependency include it in `setup.py`
|
||||
denoting any specific restrictions and in `requirements.txt` pinned to a
|
||||
specific version which ensures that the application build is deterministic.
|
||||
5. Please rebase and resolve all conflicts before submitting.
|
||||
6. Please ensure the necessary checks pass and that code coverage does not
|
||||
decrease.
|
||||
7. If you are asked to update your pull request with some changes there's
|
||||
no need to create a new one. Push your changes to the same branch.
|
||||
> Before creating a PR, create an issue.
|
||||
|
||||
## Local development
|
||||
The purpose is to separate problem from possible solutions.
|
||||
|
||||
First, [fork the repository on GitHub](https://help.github.com/articles/about-forks/), then clone it. You can clone the main repository directly instead, but you won't be able to send pull requests.
|
||||
**Bug fixes:** If you’re only fixing a small bug, it’s fine to submit a pull request right away but we highly recommend to file an issue detailing what you’re fixing. This is helpful in case we don’t accept that specific fix but want to keep track of the issue. Please keep in mind that the project maintainers reserve the rights to accept or reject incoming PRs, so it is better to separate the issue and the code to fix it from each other. In some cases, project maintainers may request you to create a separate issue from PR before proceeding.
|
||||
|
||||
**Refactor:** For small refactors, it can be a standalone PR itself detailing what you are refactoring and why. If there are concerns, project maintainers may request you to create a `#SIP` for the PR before proceeding.
|
||||
|
||||
**Feature/Large changes:** If you intend to change the public API, or make any non-trivial changes to the implementation, we requires you to file a new issue as `#SIP` (Superset Improvement Proposal). This lets us reach an agreement on your proposal before you put significant effort into it. You are welcome to submit a PR along with the SIP (sometimes necessary for demonstration), but we will not review/merge the code until the SIP is approved.
|
||||
|
||||
In general, small PRs are always easier to review than large PRs. The best practice is to break your work into smaller independent PRs and refer to the same issue. This will greatly reduce turnaround time.
|
||||
|
||||
Finally, never submit a PR that will put master branch in broken state. If the PR is part of multiple PRs to complete a large feature and cannot work on its own, you can create a feature branch and merge all related PRs into the feature branch before creating a PR from feature branch to master.
|
||||
|
||||
### Protocol
|
||||
|
||||
#### Authoring
|
||||
|
||||
- Fill in all sections of the PR template.
|
||||
- Add prefix `[WIP]` to title if not ready for review (WIP = work-in-progress). We recommend creating a PR with `[WIP]` first and remove it once you have passed CI test and read through your code changes at least once.
|
||||
- **Screenshots/GIFs:** Changes to user interface require before/after screenshots, or GIF for interactions
|
||||
- Recommended capture tools ([Kap](https://getkap.co/), [LICEcap](https://www.cockos.com/licecap/), [Skitch](https://download.cnet.com/Skitch/3000-13455_4-189876.html))
|
||||
- If no screenshot is provided, the committers will mark the PR with `need:screenshot` label and will not review until screenshot is provided.
|
||||
- **Dependencies:** Be careful about adding new dependency and avoid unnecessary dependencies.
|
||||
- For Python, include it in `setup.py` denoting any specific restrictions and in `requirements.txt` pinned to a specific version which ensures that the application build is deterministic.
|
||||
- For Javascript, include new libraries in `package.json`
|
||||
- **Tests:** The pull request should include tests, either as doctests, unit tests, or both. Make sure to resolve all errors and test failures. See [Testing](#testing) for how to run tests.
|
||||
- **Documentation:** If the pull request adds functionality, the docs should be updated as part of the same PR. Doc string are often sufficient, make sure to follow the sphinx compatible standards.
|
||||
- **CI:** Reviewers will not review the code until all CI tests are passed. Sometimes there can be flaky tests. You can close and open PR to re-run CI test. Please report if the issue persists. After the CI fix has been deployed to `master`, please rebase your PR.
|
||||
- **Code coverage:** Please ensure that code coverage does not decrease.
|
||||
- Remove `[WIP]` when ready for review. Please note that it may be merged soon after approved so please make sure the PR is ready to merge and do not expect more time for post-approval edits.
|
||||
- If the PR was not ready for review and inactive for > 30 days, we will close it due to inactivity. The author is welcome to re-open and update.
|
||||
|
||||
#### Reviewing
|
||||
|
||||
- Use constructive tone when writing reviews.
|
||||
- If there are changes required, state clearly what needs to be done before the PR can be approved.
|
||||
- If you are asked to update your pull request with some changes there's no need to create a new one. Push your changes to the same branch.
|
||||
- The committers reserve the right to reject any PR and in some cases may request the author to file an issue.
|
||||
|
||||
#### Merging
|
||||
|
||||
- At least one approval is required for merging a PR.
|
||||
- PR is usually left open for at least 24 hours before merging.
|
||||
- After the PR is merged, [close the corresponding issue(s)](https://help.github.com/articles/closing-issues-using-keywords/).
|
||||
|
||||
#### Post-merge Responsibility
|
||||
|
||||
- Project maintainers may contact the PR author if new issues are introduced by the PR.
|
||||
- Project maintainers may revert your changes if a critical issue is found, such as breaking master branch CI.
|
||||
|
||||
## Managing Issues and PRs
|
||||
|
||||
To handle issues and PRs that are coming in, committers read issues/PRs and flag them with labels to categorize and help contributors spot where to take actions, as contributors usually have different expertises.
|
||||
|
||||
Triaging goals
|
||||
|
||||
- **For issues:** Categorize, screen issues, flag required actions from authors.
|
||||
- **For PRs:** Categorize, flag required actions from authors. If PR is ready for review, flag required actions from reviewers.
|
||||
|
||||
First, add **Category labels (a.k.a. hash labels)**. Every issue/PR must have one hash label (except spam entry). Labels that begin with `#` defines issue/PR type:
|
||||
|
||||
| Label | for Issue | for PR |
|
||||
|-------------------|-----------|--------|
|
||||
| `#bug` | Bug report | Bug fix |
|
||||
| `#code-quality` | Describe problem with code, architecture or productivity | Refactor, tests, tooling |
|
||||
| `#feature` | New feature request | New feature implementation |
|
||||
| `#refine` | Propose improvement that does not provide new features and is also not a bug fix nor refactor, such as adjust padding, refine UI style. | Implementation of improvement that does not provide new features and is also not a bug fix nor refactor, such as adjust padding, refine UI style. |
|
||||
| `#doc` | Documentation | Documentation |
|
||||
| `#question` | Troubleshooting: Installation, Running locally, Ask how to do something. Can be changed to `#bug` later. | N/A |
|
||||
| `#SIP` | Superset Improvement Proposal | N/A |
|
||||
| `#ASF` | Tasks related to Apache Software Foundation policy | Tasks related to Apache Software Foundation policy |
|
||||
|
||||
Then add other types of labels as appropriate.
|
||||
|
||||
- **Descriptive labels (a.k.a. dot labels):** These labels that begin with `.` describe the details of the issue/PR, such as `.ui`, `.js`, `.install`, `.backend`, etc. Each issue/PR can have zero or more dot labels.
|
||||
- **Need labels:** These labels have pattern `need:xxx`, which describe the work required to progress, such as `need:rebase`, `need:update`, `need:screenshot`.
|
||||
- **Risk labels:** These labels have pattern `risk:xxx`, which describe the potential risk on adopting the work, such as `risk:db-migration`. The intention was to better understand the impact and create awareness for PRs that need more rigorous testing.
|
||||
- **Status labels:** These labels describe the status (`abandoned`, `wontfix`, `cant-reproduce`, etc.) Issue/PRs that are rejected or closed without completion should have one or more status labels.
|
||||
- **Version labels:** These have the pattern `vx.x` such as `v0.28`. Version labels on issues describe the version the bug was reported on. Version labels on PR describe the first release that will include the PR.
|
||||
|
||||
Committers may also update title to reflect the issue/PR content if the author-provided title is not descriptive enough.
|
||||
|
||||
If the PR passes CI tests and does not have any `need:` labels, it is ready for review, add label `review` and/or `design-review`.
|
||||
|
||||
If an issue/PR has been inactive for >=30 days, it will be closed. If it does not have any status label, add `inactive`.
|
||||
|
||||
## Setup Local Environment for Development
|
||||
|
||||
First, [fork the repository on GitHub](https://help.github.com/articles/about-forks/), then clone it. You can clone the main repository directly, but you won't be able to send pull requests.
|
||||
|
||||
```bash
|
||||
git clone git@github.com:your-username/incubator-superset.git
|
||||
@@ -153,7 +248,8 @@ and start a simple web server so we can check out the docs in a browser:
|
||||
|
||||
```bash
|
||||
cd docs/_build/html
|
||||
python -m SimpleHTTPServer
|
||||
python -m http.server # Python2 users should use SimpleHTTPServer
|
||||
|
||||
```
|
||||
|
||||
This will start a small Python web server listening on port 8000. Point your
|
||||
@@ -201,11 +297,12 @@ Make sure your machine meets the [OS dependencies](https://superset.incubator.ap
|
||||
|
||||
```bash
|
||||
# Create a virtual environemnt and activate it (recommended)
|
||||
virtualenv venv
|
||||
virtualenv -p python3 venv # setup a python3.6 virtualenv
|
||||
source venv/bin/activate
|
||||
|
||||
# Install external dependencies
|
||||
pip install -r requirements.txt
|
||||
pip install -r requirements-dev.txt
|
||||
# Install Superset in editable (development) mode
|
||||
pip install -e .
|
||||
|
||||
@@ -221,8 +318,11 @@ superset init
|
||||
# Load some data to play with
|
||||
superset load_examples
|
||||
|
||||
# Start the Flask web server (but see below for frontend asset compilation)
|
||||
superset runserver -d
|
||||
# Start the Flask dev web server from inside the `superset` dir at port 8088
|
||||
# Note that your page may not have css at this point.
|
||||
# See instructions below how to build the front-end assets.
|
||||
cd superset
|
||||
FLASK_ENV=development flask run -p 8088 --with-threads --reload --debugger
|
||||
```
|
||||
|
||||
#### Logging to the browser console
|
||||
@@ -230,7 +330,7 @@ superset runserver -d
|
||||
This feature is only available on Python 3. When debugging your application, you can have the server logs sent directly to the browser console:
|
||||
|
||||
```bash
|
||||
superset runserver -d --console-log
|
||||
FLASK_ENV=development flask run -p 8088 --with-threads --reload --debugger --console-log
|
||||
```
|
||||
|
||||
You can log anything to the browser console, including objects:
|
||||
@@ -241,41 +341,29 @@ app.logger.error('An exception occurred!')
|
||||
app.logger.info(form_data)
|
||||
```
|
||||
|
||||
### Frontend assets
|
||||
### Frontend Assets
|
||||
|
||||
Frontend assets (JavaScript, CSS, and images) must be compiled in order to properly display the web UI. The `superset/assets` directory contains all NPM-managed front end assets. Note that there are additional frontend assets bundled with Flask-Appbuilder (e.g. jQuery and bootstrap); these are not managed by NPM, and may be phased out in the future.
|
||||
|
||||
First, be sure you are using recent versions of NodeJS and npm. Using [nvm](https://github.com/creationix/nvm) to manage them is recommended.
|
||||
|
||||
#### Prerequisite
|
||||
|
||||
#### Installing Dependencies
|
||||
|
||||
Install third-party dependencies listed in `package.json`:
|
||||
|
||||
```bash
|
||||
# From the root of the repository
|
||||
cd superset/assets
|
||||
|
||||
# Install yarn, a replacement for `npm install`
|
||||
npm install -g yarn
|
||||
|
||||
# Install dependencies
|
||||
yarn install
|
||||
# Install dependencies from `package-lock.json`
|
||||
npm ci
|
||||
```
|
||||
|
||||
Finally, to compile frontend assets, run any of the following commands.
|
||||
#### Building
|
||||
|
||||
```bash
|
||||
# Start a watcher that recompiles your assets as you modify them (reload your browser to see changes)
|
||||
npm run dev
|
||||
|
||||
# Compile the Javascript and CSS in production/optimized mode for official releases
|
||||
npm run prod
|
||||
|
||||
# Copy a conf file from the frontend to the backend
|
||||
npm run sync-backend
|
||||
```
|
||||
|
||||
#### Webpack dev server
|
||||
|
||||
Alternatively, you can run the Webpack dev server, which runs on port 9000 and proxies non-asset requests to the Flask server on port 8088. After pointing your browser to it, updates to asset sources will be reflected in-browser without a refresh.
|
||||
You can run the Webpack dev server (in a separate terminal from Flask), which runs on port 9000 and proxies non-asset requests to the Flask server on port 8088. After pointing your browser to `http://localhost:9000`, updates to asset sources will be reflected in-browser without a refresh.
|
||||
|
||||
```bash
|
||||
# Run the dev server
|
||||
@@ -288,24 +376,69 @@ npm run dev-server -- --port=9001
|
||||
npm run dev-server -- --supersetPort=8081
|
||||
```
|
||||
|
||||
#### Upgrading NPM packages
|
||||
Alternatively you can use one of the following commands.
|
||||
|
||||
After adding or upgrading an NPM package by changing `package.json`, you must run `yarn install`, which will regenerate the `yarn.lock` file. Then, be sure to commit the new `yarn.lock` so that other users' builds are reproducible. See [the Yarn docs](https://yarnpkg.com/blog/2016/11/24/lockfiles-for-all/) for more information.
|
||||
```bash
|
||||
# Start a watcher that recompiles your assets as you modify them (but have to manually reload your browser to see changes.)
|
||||
npm run dev
|
||||
|
||||
# Compile the Javascript and CSS in production/optimized mode for official releases
|
||||
npm run prod
|
||||
|
||||
# Copy a conf file from the frontend to the backend
|
||||
npm run sync-backend
|
||||
```
|
||||
|
||||
#### Updating NPM packages
|
||||
|
||||
Use npm in the prescribed way, making sure that
|
||||
`superset/assets/package-lock.json` is updated according to `npm`-prescribed
|
||||
best practices.
|
||||
|
||||
#### Feature flags
|
||||
|
||||
Superset supports a server-wide feature flag system, which eases the incremental development of features. To add a new feature flag, simply modify `superset_config.py` with something like the following:
|
||||
```
|
||||
FEATURE_FLAGS = {
|
||||
'SCOPED_FILTER': True,
|
||||
}
|
||||
```
|
||||
If you want to use the same flag in the client code, also add it to the FeatureFlag TypeScript enum in `superset/assets/src/featureFlags.ts`. For example,
|
||||
```
|
||||
export enum FeatureFlag {
|
||||
SCOPED_FILTER = 'SCOPED_FILTER',
|
||||
}
|
||||
```
|
||||
|
||||
## Linting
|
||||
|
||||
Lint the project with:
|
||||
|
||||
```bash
|
||||
# for python
|
||||
tox -e flake8
|
||||
|
||||
# for javascript
|
||||
cd superset/assets
|
||||
npm ci
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
All tests are carried out in [tox](http://tox.readthedocs.io/en/latest/index.html)
|
||||
a standardized testing framework mostly for Python (though we also used it for Javascript).
|
||||
### Python Testing
|
||||
|
||||
All python tests are carried out in [tox](http://tox.readthedocs.io/en/latest/index.html)
|
||||
a standardized testing framework.
|
||||
All python tests can be run with any of the tox [environments](http://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via,
|
||||
|
||||
```bash
|
||||
tox -e <environment>
|
||||
```
|
||||
|
||||
i.e.,
|
||||
For example,
|
||||
|
||||
```bash
|
||||
tox -e py27
|
||||
tox -e py36
|
||||
```
|
||||
|
||||
@@ -325,17 +458,16 @@ 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.
|
||||
|
||||
### JavaScript testing
|
||||
### JavaScript Testing
|
||||
|
||||
We use [Jest](https://jestjs.io/) and [Enzyme](http://airbnb.io/enzyme/) to test Javascript. Tests can be run with:
|
||||
|
||||
```bash
|
||||
cd superset/assets/spec
|
||||
npm install
|
||||
cd superset/assets
|
||||
npm run test
|
||||
```
|
||||
|
||||
### Integration testing
|
||||
### Integration Testing
|
||||
|
||||
We use [Cypress](https://www.cypress.io/) for integration tests. Tests can be run by `tox -e cypress`. To open Cypress and explore tests first setup and run test server:
|
||||
|
||||
@@ -356,18 +488,6 @@ npm run build
|
||||
npm run cypress run
|
||||
```
|
||||
|
||||
### Linting
|
||||
|
||||
Lint the project with:
|
||||
|
||||
```bash
|
||||
# for python
|
||||
tox -e flake8
|
||||
|
||||
# for javascript
|
||||
tox -e eslint
|
||||
```
|
||||
|
||||
## Translating
|
||||
|
||||
We use [Babel](http://babel.pocoo.org/en/latest/) to translate Superset. In Python files, we import the magic `_` function using:
|
||||
@@ -379,10 +499,10 @@ from flask_babel import lazy_gettext as _
|
||||
then wrap our translatable strings with it, e.g. `_('Translate me')`. During extraction, string literals passed to `_` will be added to the generated `.po` file for each language for later translation.
|
||||
At runtime, the `_` function will return the translation of the given string for the current language, or the given string itself if no translation is available.
|
||||
|
||||
In JavaScript, the technique is similar: we import `t` (simple translation), `tn` (translation containing a number), and `TCT` (translating entire React Components).
|
||||
In JavaScript, the technique is similar: we import `t` (simple translation), `tn` (translation containing a number).
|
||||
|
||||
```javascript
|
||||
import {t, tn, TCT} from locales;
|
||||
import { t, tn } from '@superset-ui/translation';
|
||||
```
|
||||
|
||||
### Enabling language selection
|
||||
@@ -406,8 +526,11 @@ fabmanager babel-extract --target superset/translations --output superset/transl
|
||||
```
|
||||
|
||||
You can then translate the strings gathered in files located under
|
||||
`superset/translation`, where there's one per language. For the translations
|
||||
to take effect:
|
||||
`superset/translation`, where there's one per language. You can use [Poedit](https://poedit.net/features)
|
||||
to translate the `po` file more conveniently.
|
||||
There are some [tutorials in the wiki](https://wiki.lxde.org/en/Translate_*.po_files_with_Poedit).
|
||||
|
||||
For the translations to take effect:
|
||||
|
||||
```bash
|
||||
# In the case of JS translation, we need to convert the PO file into a JSON file, and we need the global download of the npm package po2json.
|
||||
@@ -421,6 +544,8 @@ If you get errors running `po2json`, you might be running the Ubuntu package wit
|
||||
name, rather than the NodeJS package (they have a different format for the arguments). If
|
||||
there is a conflict, you may need to update your `PATH` environment variable or fully qualify
|
||||
the executable path (e.g. `/usr/local/bin/po2json` instead of `po2json`).
|
||||
If you get a lot of `[null,***]` in `messages.json`, just delete all the `null,`.
|
||||
For example, `"year":["年"]` is correct while `"year":[null,"年"]`is incorrect.
|
||||
|
||||
### Creating a new language dictionary
|
||||
|
||||
|
||||
11
DISCLAIMER
Normal file
@@ -0,0 +1,11 @@
|
||||
DISCLAIMER
|
||||
|
||||
Apache Superset (incubating) is an effort undergoing incubation at the Apache
|
||||
Software Foundation (ASF), sponsored by the Apache Incubator PMC.
|
||||
Incubation is required of all newly accepted projects until a further review
|
||||
indicates that the infrastructure, communications, and decision making process
|
||||
have stabilized in a manner consistent with other successful ASF projects.
|
||||
|
||||
While incubation status is not necessarily a reflection of the completeness or
|
||||
stability of the code, it does indicate that the project has yet to be fully
|
||||
endorsed by the ASF.
|
||||
@@ -1,8 +1,26 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
Make sure these boxes are checked before submitting your issue - thank you!
|
||||
|
||||
- [ ] I have checked the superset logs for python stacktraces and included it here as text if any
|
||||
- [ ] I have reproduced the issue with at least the latest released version of superset
|
||||
- [ ] I have checked the issue tracker for the same issue and I haven't found one similar
|
||||
- [ ] I have checked the superset logs for python stacktraces and included it here as text if there are any.
|
||||
- [ ] I have reproduced the issue with at least the latest released version of superset.
|
||||
- [ ] I have checked the issue tracker for the same issue and I haven't found one similar.
|
||||
|
||||
|
||||
### Superset version
|
||||
|
||||
32
LICENSE.txt
@@ -199,3 +199,35 @@ 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.
|
||||
|
||||
============================================================================
|
||||
APACHE SUPERSET SUBCOMPONENTS:
|
||||
|
||||
The Apache Superset project contains subcomponents with separate copyright
|
||||
notices and license terms. Your use of the source code for the these
|
||||
subcomponents is subject to the terms and conditions of the following
|
||||
licenses.
|
||||
|
||||
========================================================================
|
||||
Third party Apache 2.0 licenses
|
||||
========================================================================
|
||||
|
||||
========================================================================
|
||||
MIT licenses
|
||||
========================================================================
|
||||
|
||||
(MIT License) cal-heatmap v3.6.2 (https://github.com/wa0x6e/cal-heatmap)
|
||||
|
||||
========================================================================
|
||||
BSD 2-Clause licenses
|
||||
========================================================================
|
||||
|
||||
========================================================================
|
||||
BSD 3-Clause licenses
|
||||
========================================================================
|
||||
|
||||
(BSD 3 License) parallel-coordinates v0.7.0 (http://syntagmatic.github.com/parallel-coordinates/)
|
||||
|
||||
========================================================================
|
||||
Creative Commons Attribution 4.0
|
||||
========================================================================
|
||||
|
||||
19
MANIFEST.in
@@ -1,3 +1,22 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
include NOTICE
|
||||
include LICENSE.txt
|
||||
graft licenses/
|
||||
include README.md
|
||||
recursive-include superset/data *
|
||||
recursive-include superset/migrations *
|
||||
|
||||
8
NOTICE
Normal file
@@ -0,0 +1,8 @@
|
||||
Apache Superset
|
||||
Copyright 2016-2019 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at The Apache Software
|
||||
Foundation (http://www.apache.org/).
|
||||
|
||||
This product includes data licensed under a Creative Commons Attribution 4.0
|
||||
License (http://www.diva-gis.org/Data).
|
||||
113
README.md
@@ -1,3 +1,21 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
Superset
|
||||
=========
|
||||
|
||||
@@ -98,7 +116,7 @@ Superset can be used to visualize data out of most databases:
|
||||
to find out whether it will work with Superset
|
||||
|
||||
|
||||
Druid!
|
||||
Apache Druid (Incubating)!
|
||||
------
|
||||
|
||||
On top of having the ability to query your relational databases,
|
||||
@@ -148,45 +166,54 @@ Who uses Apache Superset (incubating)?
|
||||
Here's a list of organizations who have taken the time to send a PR to let
|
||||
the world know they are using Superset. Join our growing community!
|
||||
|
||||
- [AiHello](https://www.aihello.com)
|
||||
- [Airbnb](https://github.com/airbnb)
|
||||
- [Airboxlab](https://foobot.io)
|
||||
- [Aktia Bank plc](https://www.aktia.com)
|
||||
- [Amino](https://amino.com)
|
||||
- [Ascendica Development](http://ascendicadevelopment.com)
|
||||
- [Astronomer](https://www.astronomer.io)
|
||||
- [Brilliant.org](https://brilliant.org/)
|
||||
- [Capital Service S.A.](http://capitalservice.pl)
|
||||
- [Clark.de](http://clark.de/)
|
||||
- [CnOvit](http://www.cnovit.com/)
|
||||
- [Digit Game Studios](https://www.digitgaming.com/)
|
||||
- [Douban](https://www.douban.com/)
|
||||
- [Endress+Hauser](http://www.endress.com/)
|
||||
- [FBK - ICT center](http://ict.fbk.eu)
|
||||
- [Faasos](http://faasos.com/)
|
||||
- [GfK Data Lab](http://datalab.gfk.com)
|
||||
- [Konfío](http://konfio.mx)
|
||||
- [Lime](https://www.limebike.com/)
|
||||
- [Lyft](https://www.lyft.com/)
|
||||
- [Maieutical Labs](https://maieuticallabs.it)
|
||||
- [Myra Labs](http://www.myralabs.com/)
|
||||
- [PeopleDoc](https://www.people-doc.com)
|
||||
- [Ona](https://ona.io)
|
||||
- [Pronto Tools](http://www.prontotools.io)
|
||||
- [Qunar](https://www.qunar.com/)
|
||||
- [ScopeAI](https://www.getscopeai.com)
|
||||
- [Shopee](https://shopee.sg)
|
||||
- [Shopkick](https://www.shopkick.com)
|
||||
- [Tails.com](https://tails.com)
|
||||
- [THEICONIC](http://theiconic.com.au/)
|
||||
- [Tobii](http://www.tobii.com/)
|
||||
- [Tooploox](https://www.tooploox.com/)
|
||||
- [Twitter](https://twitter.com/)
|
||||
- [Udemy](https://www.udemy.com/)
|
||||
- [VIPKID](https://www.vipkid.com.cn/)
|
||||
- [Windsor.ai](https://www.windsor.ai/)
|
||||
- [Yahoo!](https://yahoo.com/)
|
||||
- [Zaihang](http://www.zaih.com/)
|
||||
- [Zalando](https://www.zalando.com)
|
||||
- [Fordeal](http://www.fordeal.com)
|
||||
|
||||
1. [AiHello](https://www.aihello.com)
|
||||
1. [Airbnb](https://github.com/airbnb)
|
||||
1. [Airboxlab](https://foobot.io)
|
||||
1. [Aktia Bank plc](https://www.aktia.com)
|
||||
1. [Amino](https://amino.com)
|
||||
1. [Apollo GraphQL](https://www.apollographql.com/)
|
||||
1. [Ascendica Development](http://ascendicadevelopment.com)
|
||||
1. [Astronomer](https://www.astronomer.io)
|
||||
1. [Brilliant.org](https://brilliant.org/)
|
||||
1. [Capital Service S.A.](http://capitalservice.pl)
|
||||
1. [Clark.de](http://clark.de/)
|
||||
1. [CnOvit](http://www.cnovit.com/)
|
||||
1. [Dial Once](https://www.dial-once.com/en/)
|
||||
1. [Digit Game Studios](https://www.digitgaming.com/)
|
||||
1. [Douban](https://www.douban.com/)
|
||||
1. [Endress+Hauser](http://www.endress.com/)
|
||||
1. [FBK - ICT center](http://ict.fbk.eu)
|
||||
1. [Faasos](http://faasos.com/)
|
||||
1. [Fordeal](http://www.fordeal.com)
|
||||
1. [GfK Data Lab](http://datalab.gfk.com)
|
||||
1. [Grassroot](https://www.grassrootinstitute.org/)
|
||||
1. [HuiShouBao](http://www.huishoubao.com/)
|
||||
1. [jampp](https://jampp.com/)
|
||||
1. [Konfío](http://konfio.mx)
|
||||
1. [Kuaishou](https://www.kuaishou.com/)
|
||||
1. [Lime](https://www.limebike.com/)
|
||||
1. [Lyft](https://www.lyft.com/)
|
||||
1. [Maieutical Labs](https://maieuticallabs.it)
|
||||
1. [Myra Labs](http://www.myralabs.com/)
|
||||
1. [PeopleDoc](https://www.people-doc.com)
|
||||
1. [Ona](https://ona.io)
|
||||
1. [Pronto Tools](http://www.prontotools.io)
|
||||
1. [QPID Health](http://www.qpidhealth.com/ )
|
||||
1. [Qunar](https://www.qunar.com/)
|
||||
1. [ScopeAI](https://www.getscopeai.com)
|
||||
1. [Shopee](https://shopee.sg)
|
||||
1. [Shopkick](https://www.shopkick.com)
|
||||
1. [Steamroot](https://streamroot.io/)
|
||||
1. [Showmax](https://tech.showmax.com)
|
||||
1. [Tails.com](https://tails.com)
|
||||
1. [THEICONIC](http://theiconic.com.au/)
|
||||
1. [Tobii](http://www.tobii.com/)
|
||||
1. [Tooploox](https://www.tooploox.com/)
|
||||
1. [TrustMedis](https://trustmedis.com)
|
||||
1. [Twitter](https://twitter.com/)
|
||||
1. [Udemy](https://www.udemy.com/)
|
||||
1. [VIPKID](https://www.vipkid.com.cn/)
|
||||
1. [Windsor.ai](https://www.windsor.ai/)
|
||||
1. [Yahoo!](https://yahoo.com/)
|
||||
1. [Zaihang](http://www.zaih.com/)
|
||||
1. [Zalando](https://www.zalando.com)
|
||||
|
||||
138
RELEASING.md
@@ -1,3 +1,21 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
## Refresh documentation website
|
||||
|
||||
Every once in a while we want to compile the documentation and publish it.
|
||||
@@ -28,66 +46,80 @@ git commit -a -m "New doc version"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
## Publishing a PyPI release
|
||||
# Apache Releases
|
||||
|
||||
We create a branch that goes along each minor release `0.24`
|
||||
and micro releases get corresponding tags as in `0.24.0`. Git history should
|
||||
never be altered in release branches.
|
||||
Bug fixes and security-related patches get cherry-picked
|
||||
(usually from master) as in `git cherry-pick -x {SHA}`.
|
||||
You'll probably want to run these commands manually and understand what
|
||||
they do prior to doing so.
|
||||
|
||||
Following a set of cherries being picked, a release can be pushed to
|
||||
PyPI as follows:
|
||||
First you need to setup a few things. This is a one-off and doesn't
|
||||
need to be done at every release.
|
||||
|
||||
```bash
|
||||
# branching off of master
|
||||
git checkout -b 0.25
|
||||
# Create PGP Key
|
||||
gpg --gen-key
|
||||
|
||||
# Checkout ASF dist repo
|
||||
|
||||
# cherry-picking a SHA
|
||||
git cherry-pick -x f9d85bd2e1fd9bc233d19c76bed09467522b968a
|
||||
# repeat with other SHAs, don't forget the -x
|
||||
svn checkout https://dist.apache.org/repos/dist/dev/incubator/superset/ ~/svn/superset_dev
|
||||
|
||||
# source of thruth for release numbers live in package.json
|
||||
vi superset/assets/package.json
|
||||
# hard code release in file, commit to the release branch
|
||||
git commit -a -m "0.25.0"
|
||||
|
||||
# create the release tag in the release branch
|
||||
git tag 0.25.0
|
||||
git push apache 0.25 --tags
|
||||
|
||||
# check travis to confirm the build succeeded as
|
||||
# you shouldn't assume that a clean cherry will be clean
|
||||
# when landing on a new sundae
|
||||
|
||||
# compile the JS, and push to pypi
|
||||
# to run this part you'll need a pypi account and rights on the
|
||||
# superset package. Committers that want to ship releases
|
||||
# should have this access.
|
||||
# You'll also need a `.pypirc` as specified here:
|
||||
# http://peterdowns.com/posts/first-time-with-pypi.html
|
||||
./pypi_push.sh
|
||||
|
||||
# publish an update to the CHANGELOG.md for the right version range
|
||||
# looking the latest CHANGELOG entry for the second argument
|
||||
./gen_changelog.sh 0.22.1 0.25.0
|
||||
# this will overwrite the CHANGELOG.md with only the version range
|
||||
# so you'll want to copy paste that on top of the previous CHANGELOG.md
|
||||
# open a PR against `master`
|
||||
svn checkout https://dist.apache.org/repos/dist/incubator/superset/ ~/svn/superset
|
||||
cd ~/svn/superset
|
||||
|
||||
|
||||
# Add your GPG pub key to KEYS file. Replace "Maxime Beauchemin" with your name
|
||||
export FULLNAME="Maxime Beauchemin"
|
||||
(gpg --list-sigs $FULLNAME && gpg --armor --export $FULLNAME ) >> KEYS
|
||||
|
||||
|
||||
# Commit the changes
|
||||
svn commit -m "Add PGP keys of new Superset committer"
|
||||
```
|
||||
|
||||
In the future we'll start publishing release candidates for minor releases
|
||||
only, but typically not for micro release.
|
||||
The process will be similar to the process described above, expect the
|
||||
tags will be formatted `0.25.0rc1`, `0.25.0rc2`, ..., until consensus
|
||||
is reached.
|
||||
Now let's craft a source release
|
||||
```bash
|
||||
# Assuming these commands are executed from the root of the repo
|
||||
# Setting a VERSION var will be useful
|
||||
export VERSION=0.31.0rc18
|
||||
|
||||
We should also have a Github PR label process to target the proper
|
||||
release, and tooling helping keeping track of all the cherries and
|
||||
target versions.
|
||||
# Let's create a git tag
|
||||
git tag -f ${VERSION}
|
||||
|
||||
For Apache releases, the process will be a bit heavier and should get
|
||||
documented here. There will be extra steps for signing the binaries,
|
||||
with a PGP key and providing MD5, Apache voting, as well as
|
||||
publishing to Apache's SVN repository. View the ASF docs for more
|
||||
information.
|
||||
# [WARNING!] This command wipes everything in your repo that is
|
||||
# gitignored in preparation for the source release.
|
||||
# You may want to check that there's nothing your care about here first.
|
||||
# Alternatively you could clone the repo into another location as in
|
||||
# git clone git@github.com:apache/incubator-superset.git superset-releases
|
||||
git clean -fxd
|
||||
# Create the target folder
|
||||
mkdir -p ~/svn/superset_dev/${VERSION}/
|
||||
git archive \
|
||||
--format=tar.gz ${VERSION} \
|
||||
--prefix=apache-superset-${VERSION}/ \
|
||||
-o ~/svn/superset_dev/${VERSION}/apache-superset-${VERSION}-source.tar.gz
|
||||
|
||||
cd ~/svn/superset_dev/
|
||||
scripts/sign.sh apache-superset-${VERSION}-source.tar.gz
|
||||
```
|
||||
|
||||
Now let's ship this RC into svn's dev folder
|
||||
|
||||
```bash
|
||||
# cp or mv the files over to the svn repo
|
||||
cd ~/svn/superset_dev/
|
||||
svn add ${VERSION}
|
||||
svn commit
|
||||
```
|
||||
|
||||
Now you're ready to start the VOTE thread.
|
||||
|
||||
Upon a successful vote, you'll have to copy the folder into the non-"dev/"
|
||||
folder.
|
||||
```bash
|
||||
cp -r ~/svn/superset_dev/${VERSION}/ ~/svn/superset/${VERSION}/
|
||||
cd ~/svn/superset/
|
||||
svn add ${VERSION}
|
||||
svn commit
|
||||
```
|
||||
|
||||
Now you can announce the release on the mailing list, make sure to use the
|
||||
proper template
|
||||
|
||||
43
UPDATING.md
@@ -1,8 +1,51 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
# Updating Superset
|
||||
|
||||
This file documents any backwards-incompatible changes in Superset and
|
||||
assists people when migrating to a new version.
|
||||
|
||||
## Superset 0.32.0
|
||||
* If you use `Hive` or `Presto`, we've moved some dependencies that were
|
||||
in the main package as optional now. To get these packages,
|
||||
run `pip install superset[presto]` and/or `pip install superset[hive]` as
|
||||
required.
|
||||
|
||||
* [5445](https://github.com/apache/incubator-superset/pull/5445) : a change
|
||||
which prevents encoding of empty string from form data in the datanbase.
|
||||
This involves a non-schema changing migration which does potentially impact
|
||||
a large number of records. Scheduled downtime may be advised.
|
||||
|
||||
## Superset 0.31.0
|
||||
* boto3 / botocore was removed from the dependency list. If you use s3
|
||||
as a place to store your SQL Lab result set or Hive uploads, you may
|
||||
have to rely on an alternate requirements.txt file to install those
|
||||
dependencies.
|
||||
* From 0.31.0 onwards, we recommend not using the npm package `yarn` in
|
||||
favor of good old `npm install`. While yarn should still work just fine,
|
||||
you should probably align to guarantee builds similar to the ones we
|
||||
use in testing and across the community in general.
|
||||
|
||||
## Superset 0.29.0
|
||||
* India was removed from the "Country Map" visualization as the geojson
|
||||
file included in the package was very large
|
||||
|
||||
## Superset 0.28.0
|
||||
* Support for Python 2 is deprecated, we only support >=3.6 from
|
||||
`0.28.0` onwards
|
||||
|
||||
17
alembic.ini
@@ -1,3 +1,20 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# A generic, single database configuration.
|
||||
|
||||
[alembic]
|
||||
|
||||
17
contrib/docker/.env
Normal file
@@ -0,0 +1,17 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
COMPOSE_PROJECT_NAME=superset
|
||||
@@ -1,60 +1,72 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
FROM python:3.6
|
||||
|
||||
MAINTAINER Xiao Hanyu <hanyu.xiao@shopeemobile.com>
|
||||
|
||||
# Add a normal user
|
||||
RUN useradd --user-group --create-home --shell /bin/bash work
|
||||
RUN useradd --user-group --create-home --no-log-init --shell /bin/bash superset
|
||||
|
||||
# Configure environment
|
||||
ENV LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
HOME=/home/work
|
||||
LC_ALL=C.UTF-8
|
||||
|
||||
RUN apt-get update -y
|
||||
|
||||
# Install some dependencies
|
||||
# http://airbnb.io/superset/installation.html#os-dependencies
|
||||
RUN apt-get update -y && apt-get install -y build-essential libssl-dev \
|
||||
# Install dependencies to fix `curl https support error` and `elaying package configuration warning`
|
||||
RUN apt-get install -y apt-transport-https apt-utils
|
||||
|
||||
# Install superset dependencies
|
||||
# https://superset.incubator.apache.org/installation.html#os-dependencies
|
||||
RUN apt-get install -y build-essential libssl-dev \
|
||||
libffi-dev python3-dev libsasl2-dev libldap2-dev libxi-dev
|
||||
|
||||
# Install extra useful tool for development
|
||||
RUN apt-get install -y vim less postgresql-client redis-tools
|
||||
|
||||
# Install nodejs for custom build
|
||||
# https://github.com/apache/incubator-superset/blob/master/docs/installation.rst#making-your-own-build
|
||||
# https://superset.incubator.apache.org/installation.html#making-your-own-build
|
||||
# https://nodejs.org/en/download/package-manager/
|
||||
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
||||
RUN apt-get install -y nodejs
|
||||
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -; \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list; \
|
||||
apt-get update; \
|
||||
apt-get install -y yarn
|
||||
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
|
||||
&& apt-get install -y nodejs
|
||||
|
||||
RUN mkdir $HOME/incubator-superset
|
||||
WORKDIR /home/superset
|
||||
|
||||
WORKDIR $HOME/incubator-superset
|
||||
COPY requirements.txt .
|
||||
COPY requirements-dev.txt .
|
||||
|
||||
COPY ./ ./
|
||||
RUN pip install --upgrade setuptools pip \
|
||||
&& pip install -r requirements.txt -r requirements-dev.txt \
|
||||
&& rm -rf /root/.cache/pip
|
||||
|
||||
RUN pip install --upgrade setuptools pip
|
||||
RUN pip install -e . && pip install -r requirements-dev.txt
|
||||
COPY --chown=superset:superset superset superset
|
||||
|
||||
ENV PATH=/home/work/incubator-superset/superset/bin:$PATH \
|
||||
PYTHONPATH=./superset/:$PYTHONPATH
|
||||
ENV PATH=/home/superset/superset/bin:$PATH \
|
||||
PYTHONPATH=/home/superset/superset/:$PYTHONPATH
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
|
||||
USER superset
|
||||
|
||||
COPY ./superset ./superset
|
||||
RUN chown -R work:work $HOME
|
||||
RUN cd superset/assets \
|
||||
&& npm ci \
|
||||
&& npm run sync-backend \
|
||||
&& npm run build \
|
||||
&& rm -rf node_modules
|
||||
|
||||
USER work
|
||||
|
||||
RUN cd superset/assets && yarn
|
||||
RUN cd superset/assets && npm run build
|
||||
COPY contrib/docker/docker-init.sh .
|
||||
COPY contrib/docker/docker-entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
HEALTHCHECK CMD ["curl", "-f", "http://localhost:8088/health"]
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
|
||||
EXPOSE 8088
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
docker build -t apache/incubator-superset -f Dockerfile .
|
||||
@@ -1,15 +1,32 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
version: '3'
|
||||
services:
|
||||
redis:
|
||||
image: redis:3.2
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 6379:6379
|
||||
volumes:
|
||||
- redis:/data
|
||||
|
||||
postgres:
|
||||
image: postgres:10
|
||||
restart: always
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: superset
|
||||
POSTGRES_PASSWORD: superset
|
||||
@@ -18,9 +35,12 @@ services:
|
||||
- 5432:5432
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
|
||||
superset:
|
||||
image: apache/incubator-superset
|
||||
restart: always
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: contrib/docker/Dockerfile
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: superset
|
||||
POSTGRES_USER: superset
|
||||
@@ -29,20 +49,22 @@ services:
|
||||
POSTGRES_PORT: 5432
|
||||
REDIS_HOST: redis
|
||||
REDIS_PORT: 6379
|
||||
SUPERSET_ENV: local
|
||||
# If using production, comment development volume below
|
||||
#SUPERSET_ENV: production
|
||||
SUPERSET_ENV: development
|
||||
ports:
|
||||
- 8088:8088
|
||||
command: "tail -f /dev/null"
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
volumes:
|
||||
- .:/home/work/incubator-superset
|
||||
- superset-node-modules:/home/work/incubator-superset/superset/assets/node_modules
|
||||
# this is needed to communicate with the postgres and redis services
|
||||
- ./superset_config.py:/home/superset/superset/superset_config.py
|
||||
# this is needed for development, remove with SUPERSET_ENV=production
|
||||
- ../../superset:/home/superset/superset
|
||||
|
||||
volumes:
|
||||
postgres:
|
||||
external: false
|
||||
redis:
|
||||
external: false
|
||||
superset-node-modules:
|
||||
external: false
|
||||
|
||||
32
contrib/docker/docker-entrypoint.sh
Normal file → Executable file
@@ -1,12 +1,38 @@
|
||||
#!/bin/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.
|
||||
#
|
||||
set -ex
|
||||
|
||||
if [ "$#" -ne 0 ]; then
|
||||
exec "$@"
|
||||
elif [ "$SUPERSET_ENV" = "local" ]; then
|
||||
superset runserver -d
|
||||
elif [ "$SUPERSET_ENV" = "development" ]; then
|
||||
celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair &
|
||||
# needed by superset runserver
|
||||
(cd superset/assets/ && npm ci && npm run sync-backend)
|
||||
(cd superset/assets/ && npm run dev) &
|
||||
FLASK_APP=superset:app flask run -p 8088 --with-threads --reload --debugger --host=0.0.0.0
|
||||
elif [ "$SUPERSET_ENV" = "production" ]; then
|
||||
superset runserver -a 0.0.0.0 -w $((2 * $(getconf _NPROCESSORS_ONLN) + 1))
|
||||
celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair &
|
||||
gunicorn --bind 0.0.0.0:8088 \
|
||||
--workers $((2 * $(getconf _NPROCESSORS_ONLN) + 1)) \
|
||||
--timeout 60 \
|
||||
--limit-request-line 0 \
|
||||
--limit-request-field_size 0 \
|
||||
superset:app
|
||||
else
|
||||
superset --help
|
||||
fi
|
||||
|
||||
32
contrib/docker/docker-init.sh
Normal file → Executable file
@@ -1,5 +1,20 @@
|
||||
#!/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.
|
||||
#
|
||||
set -ex
|
||||
|
||||
# Create an admin user (you will be prompted to set username, first and last name before setting a password)
|
||||
@@ -8,17 +23,10 @@ fabmanager create-admin --app superset
|
||||
# Initialize the database
|
||||
superset db upgrade
|
||||
|
||||
# Load some data to play with
|
||||
superset load_examples
|
||||
if [ "$SUPERSET_LOAD_EXAMPLES" = "yes" ]; then
|
||||
# Load some data to play with
|
||||
superset load_examples
|
||||
fi
|
||||
|
||||
# Create default roles and permissions
|
||||
superset init
|
||||
|
||||
# Need to run `npm run build` when enter contains for first time
|
||||
cd superset/assets && npm run build && cd ../../
|
||||
|
||||
# Start superset worker for SQL Lab
|
||||
superset worker &
|
||||
|
||||
# To start a development web server, use the -d switch
|
||||
superset runserver -d
|
||||
|
||||
@@ -1,9 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
# 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.
|
||||
import os
|
||||
|
||||
|
||||
|
||||
0
cypress.json
Normal file
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
|
||||
18
docs/_static/docs.css
vendored
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
body {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
95
docs/_templates/layout.html
vendored
@@ -1,95 +0,0 @@
|
||||
{% extends "!layout.html" %}
|
||||
|
||||
{% set bootswatch_css_custom = ['_static/docs.css'] %}
|
||||
|
||||
{%- block content %}
|
||||
{{ navBar() }}
|
||||
{% if pagename == 'index' %}
|
||||
<div id="carousel" class="carousel slide" data-ride="carousel">
|
||||
<!-- Indicators -->
|
||||
<ol class="carousel-indicators">
|
||||
<li data-target="#carousel" data-slide-to="0" class="active"></li>
|
||||
<li data-target="#carousel" data-slide-to="1"></li>
|
||||
<li data-target="#carousel" data-slide-to="2"></li>
|
||||
<li data-target="#carousel" data-slide-to="3"></li>
|
||||
<li data-target="#carousel" data-slide-to="4"></li>
|
||||
</ol>
|
||||
|
||||
<!-- Wrapper for slides -->
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="item active text-center">
|
||||
<img src="_static/img/dash.png">
|
||||
<div class="carousel-caption">
|
||||
<div>
|
||||
<h1>Superset</h1>
|
||||
<p>
|
||||
an open source data visualization platform
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="_static/img/bubble.png">
|
||||
<div class="carousel-caption">
|
||||
<h2>Explore your data
|
||||
</h2>
|
||||
<p>
|
||||
Intuitively navigate your data while slicing, dicing, and
|
||||
visualizing through a rich set of widgets
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="_static/img/dash.png">
|
||||
<div class="carousel-caption">
|
||||
<h2>Create and share dashboards</h2>
|
||||
<p>Assemble many data visualization "slices" into a rich collection</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="_static/img/cloud.png">
|
||||
<div class="carousel-caption">
|
||||
<h2>Extend</h2>
|
||||
<p>Join the community and take part in extending the widget library</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<img src="_static/img/servers.jpg">
|
||||
<div class="carousel-caption">
|
||||
<h2>Connect</h2>
|
||||
<p>
|
||||
Access data from MySql, Presto.db, Postgres, RedShift, Oracle, MsSql,
|
||||
SQLite, and more through the SqlAlchemy integration. You can also
|
||||
query realtime data blazingly fast out of Druid.io
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Controls -->
|
||||
<div>
|
||||
<a class="left carousel-control" href="#carousel" role="button" data-slide="prev">
|
||||
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#carousel" role="button" data-slide="next">
|
||||
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="container">
|
||||
<div class="jumbotron">
|
||||
<h1>Superset</h1>
|
||||
<p>
|
||||
is an open source data visualization platform that provides easy
|
||||
exploration of your data and allows you to create and share
|
||||
beautiful charts and dashboards
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="container mainbody">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
{%- endblock %}
|
||||
@@ -1,4 +1,20 @@
|
||||
#!/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.
|
||||
#
|
||||
rm -rf _build
|
||||
make html
|
||||
#cp -r ../superset/assets/images/ _build/html/_static/img/
|
||||
|
||||
20
docs/conf.py
@@ -1,3 +1,19 @@
|
||||
# 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.
|
||||
# superset documentation build configuration file, created by
|
||||
# sphinx-quickstart on Thu Dec 17 15:42:06 2015.
|
||||
#
|
||||
@@ -50,7 +66,7 @@ master_doc = 'index'
|
||||
# General information about the project.
|
||||
project = "Apache Superset"
|
||||
copyright = 'Copyright © 2018 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.'
|
||||
author = u'Maxime Beauchemin'
|
||||
author = u'Apache Superset Dev'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
@@ -226,7 +242,7 @@ latex_elements = {
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'superset.tex', u'Superset Documentation',
|
||||
u'Maxime Beauchemin', 'manual'),
|
||||
u'Apache Superset Dev', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
|
||||
@@ -1,19 +1,36 @@
|
||||
.. 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.
|
||||
|
||||
Druid
|
||||
=====
|
||||
|
||||
Superset has a native connector to Druid, and a majority of Druid's
|
||||
Superset has a native connector to Druid and a majority of Druid's
|
||||
features are accessible through Superset.
|
||||
|
||||
.. note ::
|
||||
Druid now supports SQL and can be accessed through Superset's
|
||||
SQLAlchemy connector. The long term vision is to deprecate
|
||||
SQLAlchemy connector. The long-term vision is to deprecate
|
||||
the Druid native REST connector and query Druid exclusively through
|
||||
the SQL interface.
|
||||
|
||||
Aggregations
|
||||
------------
|
||||
|
||||
Common aggregations, or Druid metrics can be defined and used in Superset.
|
||||
Common aggregations or Druid metrics can be defined and used in Superset.
|
||||
The first and simpler use case is to use the checkbox matrix expose in your
|
||||
datasource's edit view (``Sources -> Druid Datasources ->
|
||||
[your datasource] -> Edit -> [tab] List Druid Column``).
|
||||
@@ -21,8 +38,8 @@ Clicking the ``GroupBy`` and ``Filterable`` checkboxes will make the column
|
||||
appear in the related dropdowns while in explore view. Checking
|
||||
``Count Distinct``, ``Min``, ``Max`` or ``Sum`` will result in creating
|
||||
new metrics that will appear in the ``List Druid Metric`` tab upon saving the
|
||||
datasource. By editing these metrics, you'll notice that they their ``json``
|
||||
element correspond to Druid aggregation definition. You can create your own
|
||||
datasource. By editing these metrics, you'll notice that their ``json``
|
||||
element corresponds to Druid aggregation definition. You can create your own
|
||||
aggregations manually from the ``List Druid Metric`` tab following Druid
|
||||
documentation.
|
||||
|
||||
@@ -33,7 +50,7 @@ Post-Aggregations
|
||||
-----------------
|
||||
|
||||
Druid supports post aggregation and this works in Superset. All you have to
|
||||
do is creating a metric, much like you would create an aggregation manually,
|
||||
do is create a metric, much like you would create an aggregation manually,
|
||||
but specify ``postagg`` as a ``Metric Type``. You then have to provide a valid
|
||||
json post-aggregation definition (as specified in the Druid docs) in the
|
||||
Json field.
|
||||
|
||||
19
docs/faq.rst
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
FAQ
|
||||
===
|
||||
|
||||
@@ -88,7 +105,7 @@ It's easy: use the ``Filter Box`` widget, build a slice, and add it to your
|
||||
dashboard.
|
||||
|
||||
The ``Filter Box`` widget allows you to define a query to populate dropdowns
|
||||
that can be use for filtering. To build the list of distinct values, we
|
||||
that can be used for filtering. To build the list of distinct values, we
|
||||
run a query, and sort the result by the metric you provide, sorting
|
||||
descending.
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Visualizations Gallery
|
||||
======================
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Importing and Exporting Datasources
|
||||
===================================
|
||||
|
||||
@@ -49,7 +66,7 @@ By default, default (null) values will be omitted. Use the ``-d`` flag to includ
|
||||
If you want back references to be included (e.g. a column to include the table id
|
||||
it belongs to) use the ``-b`` flag.
|
||||
|
||||
Alternatively you can export datasources using the UI:
|
||||
Alternatively, you can export datasources using the UI:
|
||||
|
||||
1. Open **Sources** -> **Databases** to export all tables associated to a
|
||||
single or multiple databases. (**Tables** for one or more tables,
|
||||
@@ -95,7 +112,7 @@ those would be synchronised as well.
|
||||
|
||||
|
||||
If you don't supply the sync flag (``-s``) importing will only add and update (override) fields.
|
||||
E.g. you can add a ``verbose_name`` to the the column ``ds`` in the table ``random_time_series`` from the example datasets
|
||||
E.g. you can add a ``verbose_name`` to the column ``ds`` in the table ``random_time_series`` from the example datasets
|
||||
by saving the following YAML to file and then running the ``import_datasources`` command. ::
|
||||
|
||||
databases:
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
|apache_img| |superset_img|
|
||||
|
||||
.. |apache_img| image:: images/apache_feather.png
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Installation & Configuration
|
||||
============================
|
||||
|
||||
@@ -23,7 +40,7 @@ flexible and lets you choose your web server (Gunicorn, Nginx, Apache),
|
||||
your metadata database engine (MySQL, Postgres, MariaDB, ...),
|
||||
your message queue (Redis, RabbitMQ, SQS, ...),
|
||||
your results backend (S3, Redis, Memcached, ...), your caching layer
|
||||
(memcached, Redis, ...), works well with services like NewRelic, StatsD and
|
||||
(Memcached, Redis, ...), works well with services like NewRelic, StatsD and
|
||||
DataDog, and has the ability to run analytic workloads against
|
||||
most popular database technologies.
|
||||
|
||||
@@ -43,29 +60,36 @@ If you know docker, then you're lucky, we have shortcut road for you to
|
||||
initialize development environment: ::
|
||||
|
||||
git clone https://github.com/apache/incubator-superset/
|
||||
cd incubator-superset
|
||||
cp contrib/docker/{docker-build.sh,docker-compose.yml,docker-entrypoint.sh,docker-init.sh,Dockerfile} .
|
||||
cp contrib/docker/superset_config.py superset/
|
||||
bash -x docker-build.sh
|
||||
docker-compose up -d
|
||||
docker-compose exec superset bash
|
||||
bash docker-init.sh
|
||||
cd incubator-superset/contrib/docker
|
||||
# prefix with SUPERSET_LOAD_EXAMPLES=yes to load examples:
|
||||
docker-compose run --rm superset ./docker-init.sh
|
||||
# you can run this command everytime you need to start superset now:
|
||||
docker-compose up
|
||||
|
||||
After several minutes for superset initialization to finish, you can open
|
||||
a browser and view `http://localhost:8088` to start your journey.
|
||||
|
||||
From there, the container server will reload on modification of the superset python
|
||||
and javascript source code.
|
||||
Don't forget to reload the page to take the new frontend into account though.
|
||||
|
||||
See also `CONTRIBUTING.md <https://github.com/apache/incubator-superset/blob/master/CONTRIBUTING.md#webpack-dev-server>`_,
|
||||
for alternative way of serving the frontend.
|
||||
|
||||
It is also possible to run Superset in non-development mode: in the `docker-compose.yml` file remove
|
||||
the volumes needed for development and change the variable `SUPERSET_ENV` to `production`.
|
||||
|
||||
If you are attempting to build on a Mac and it exits with 137 you need to increase your docker resources.
|
||||
OSX instructions: https://docs.docker.com/docker-for-mac/#advanced (Search for memory)
|
||||
|
||||
Or if you're curious and want to install superset from bottom up, then go
|
||||
ahead.
|
||||
Or if you're curious and want to install superset from bottom up, then go ahead.
|
||||
|
||||
OS dependencies
|
||||
---------------
|
||||
|
||||
Superset stores database connection information in its metadata database.
|
||||
For that purpose, we use the ``cryptography`` Python library to encrypt
|
||||
connection passwords. Unfortunately this library has OS level dependencies.
|
||||
connection passwords. Unfortunately, this library has OS level dependencies.
|
||||
|
||||
You may want to attempt the next step
|
||||
("Superset installation and initialization") and come back to this step if
|
||||
@@ -78,11 +102,11 @@ the required dependencies are installed: ::
|
||||
|
||||
sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev
|
||||
|
||||
**Ubuntu 16.04** If you have python3.5 installed alongside with python2.7, as is default on **Ubuntu 16.04 LTS**, run this command also: ::
|
||||
**Ubuntu 18.04** If you have python3.6 installed alongside with python2.7, as is default on **Ubuntu 18.04 LTS**, run this command also: ::
|
||||
|
||||
sudo apt-get install build-essential libssl-dev libffi-dev python3.5-dev python-pip libsasl2-dev libldap2-dev
|
||||
sudo apt-get install build-essential libssl-dev libffi-dev python3.6-dev python-pip libsasl2-dev libldap2-dev
|
||||
|
||||
otherwhise build for ``cryptography`` fails.
|
||||
otherwise build for ``cryptography`` fails.
|
||||
|
||||
For **Fedora** and **RHEL-derivatives**, the following command will ensure
|
||||
that the required dependencies are installed: ::
|
||||
@@ -105,17 +129,18 @@ attempt it, download `get-pip.py <https://bootstrap.pypa.io/get-pip.py>`_, and r
|
||||
|
||||
Python virtualenv
|
||||
-----------------
|
||||
It is recommended to install Superset inside a virtualenv. Python 3 already ships virtualenv, for
|
||||
Python 2 you need to install it. If it's packaged for your operating systems install it from there
|
||||
otherwise you can install from pip: ::
|
||||
It is recommended to install Superset inside a virtualenv. Python 3 already ships virtualenv.
|
||||
But if it's not installed in your environment for some reason, you can install it
|
||||
via the package for your operating systems, otherwise you can install from pip: ::
|
||||
|
||||
pip install virtualenv
|
||||
|
||||
You can create and activate a virtualenv by: ::
|
||||
|
||||
# virtualenv is shipped in Python 3 as pyvenv
|
||||
virtualenv venv
|
||||
. ./venv/bin/activate
|
||||
# virtualenv is shipped in Python 3.6+ as venv instead of pyvenv.
|
||||
# See https://docs.python.org/3.6/library/venv.html
|
||||
python3 -m venv venv
|
||||
. venv/bin/activate
|
||||
|
||||
On windows the syntax for activating it is a bit different: ::
|
||||
|
||||
@@ -138,7 +163,7 @@ Follow these few simple steps to install Superset.::
|
||||
# Install superset
|
||||
pip install superset
|
||||
|
||||
# Create an admin user (you will be prompted to set username, first and last name before setting a password)
|
||||
# Create an admin user (you will be prompted to set a username, first and last name before setting a password)
|
||||
fabmanager create-admin --app superset
|
||||
|
||||
# Initialize the database
|
||||
@@ -173,14 +198,14 @@ application in a way that works well in your environment. Here's an **async**
|
||||
setup known to work well in production: ::
|
||||
|
||||
gunicorn \
|
||||
-w 10 \
|
||||
-k gevent \
|
||||
--timeout 120 \
|
||||
-b 0.0.0.0:6666 \
|
||||
--limit-request-line 0 \
|
||||
--limit-request-field_size 0 \
|
||||
--statsd-host localhost:8125 \
|
||||
superset:app
|
||||
-w 10 \
|
||||
-k gevent \
|
||||
--timeout 120 \
|
||||
-b 0.0.0.0:6666 \
|
||||
--limit-request-line 0 \
|
||||
--limit-request-field_size 0 \
|
||||
--statsd-host localhost:8125 \
|
||||
superset:app
|
||||
|
||||
Refer to the
|
||||
`Gunicorn documentation <http://docs.gunicorn.org/en/stable/design.html>`_
|
||||
@@ -188,7 +213,7 @@ for more information.
|
||||
|
||||
Note that *gunicorn* does not
|
||||
work on Windows so the `superset runserver` command is not expected to work
|
||||
in that context. Also note that the development web
|
||||
in that context. Also, note that the development web
|
||||
server (`superset runserver -d`) is not intended for production use.
|
||||
|
||||
If not using gunicorn, you may want to disable the use of flask-compress
|
||||
@@ -197,9 +222,9 @@ by setting `ENABLE_FLASK_COMPRESS = False` in your `superset_config.py`
|
||||
Flask-AppBuilder Permissions
|
||||
----------------------------
|
||||
|
||||
By default every time the Flask-AppBuilder (FAB) app is initialized the
|
||||
By default, every time the Flask-AppBuilder (FAB) app is initialized the
|
||||
permissions and views are added automatically to the backend and associated with
|
||||
the ‘Admin’ role. The issue however is when you are running multiple concurrent
|
||||
the ‘Admin’ role. The issue, however, is when you are running multiple concurrent
|
||||
workers this creates a lot of contention and race conditions when defining
|
||||
permissions and views.
|
||||
|
||||
@@ -224,7 +249,7 @@ If you are running superset behind a load balancer or reverse proxy (e.g. NGINX
|
||||
or ELB on AWS), you may need to utilise a healthcheck endpoint so that your
|
||||
load balancer knows if your superset instance is running. This is provided
|
||||
at ``/health`` which will return a 200 response containing "OK" if the
|
||||
webserver is running.
|
||||
the webserver is running.
|
||||
|
||||
If the load balancer is inserting X-Forwarded-For/X-Forwarded-Proto headers, you
|
||||
should set `ENABLE_PROXY_FIX = True` in the superset config file to extract and use
|
||||
@@ -358,7 +383,7 @@ Here's a list of some of the recommended packages.
|
||||
| Teradata | ``pip install sqlalchemy-teradata`` | ``teradata://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
|
||||
Note that many other database are supported, the main criteria being the
|
||||
Note that many other databases are supported, the main criteria being the
|
||||
existence of a functional SqlAlchemy dialect and Python driver. Googling
|
||||
the keyword ``sqlalchemy`` in addition of a keyword that describes the
|
||||
database you want to connect to should get you to the right place.
|
||||
@@ -396,10 +421,6 @@ Make sure the user has privileges to access and use all required
|
||||
databases/schemas/tables/views/warehouses, as the Snowflake SQLAlchemy engine does
|
||||
not test for user rights during engine creation.
|
||||
|
||||
*Note*: At the time of writing, there is a regression in the current stable version (1.1.2) of
|
||||
snowflake-sqlalchemy package that causes problems when used with Superset. It is recommended to
|
||||
use version 1.1.0 or try a newer version.
|
||||
|
||||
See `Snowflake SQLAlchemy <https://github.com/snowflakedb/snowflake-sqlalchemy>`_.
|
||||
|
||||
Teradata
|
||||
@@ -442,11 +463,11 @@ into your global default defined in ``CACHE_CONFIG``.
|
||||
.. code-block:: python
|
||||
|
||||
CACHE_CONFIG = {
|
||||
'CACHE_TYPE': 'redis',
|
||||
'CACHE_DEFAULT_TIMEOUT': 60 * 60 * 24, # 1 day default (in secs)
|
||||
'CACHE_KEY_PREFIX': 'superset_results',
|
||||
'CACHE_REDIS_URL': 'redis://localhost:6379/0',
|
||||
}
|
||||
'CACHE_TYPE': 'redis',
|
||||
'CACHE_DEFAULT_TIMEOUT': 60 * 60 * 24, # 1 day default (in secs)
|
||||
'CACHE_KEY_PREFIX': 'superset_results',
|
||||
'CACHE_REDIS_URL': 'redis://localhost:6379/0',
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -470,7 +491,7 @@ while the ``metadata_params`` get unpacked into the
|
||||
Schemas (Postgres & Redshift)
|
||||
-----------------------------
|
||||
|
||||
Postgres and Redshift, as well as other database,
|
||||
Postgres and Redshift, as well as other databases,
|
||||
use the concept of **schema** as a logical entity
|
||||
on top of the **database**. For Superset to connect to a specific schema,
|
||||
there's a **schema** parameter you can set in the table form.
|
||||
@@ -551,6 +572,18 @@ The following keys in `superset_config.py` can be specified to configure CORS:
|
||||
* ``CORS_OPTIONS``: options passed to Flask-CORS (`documentation <http://flask-cors.corydolphin.com/en/latest/api.html#extension>`)
|
||||
|
||||
|
||||
DOMAIN SHARDING
|
||||
---------------
|
||||
|
||||
Chrome allows up to 6 open connections per domain at a time. When there are more
|
||||
than 6 slices in dashboard, a lot of time fetch requests are queued up and wait for
|
||||
next available socket. PR (`#5039 <https://github.com/apache/incubator-superset/pull/5039>`) adds domain sharding to Superset,
|
||||
and this feature will be enabled by configuration only (by default Superset
|
||||
doesn't allow cross-domain request).
|
||||
|
||||
*``SUPERSET_WEBSERVER_DOMAINS``: list of allowed hostnames for domain sharding feature. default `None`
|
||||
|
||||
|
||||
MIDDLEWARE
|
||||
----------
|
||||
|
||||
@@ -583,22 +616,20 @@ Upgrading should be as straightforward as running::
|
||||
superset db upgrade
|
||||
superset init
|
||||
|
||||
SQL Lab
|
||||
-------
|
||||
SQL Lab is a powerful SQL IDE that works with all SQLAlchemy compatible
|
||||
databases. By default, queries are executed in the scope of a web
|
||||
request so they
|
||||
may eventually timeout as queries exceed the maximum duration of a web
|
||||
request in your environment, whether it'd be a reverse proxy or the Superset
|
||||
server itself.
|
||||
Celery Tasks
|
||||
------------
|
||||
On large analytic databases, it's common to run background jobs, reports
|
||||
and/or queries that execute for minutes or hours. In certain cases, we need
|
||||
to support long running tasks that execute beyond the typical web request's
|
||||
timeout (30-60 seconds).
|
||||
|
||||
On large analytic databases, it's common to run queries that
|
||||
execute for minutes or hours.
|
||||
To enable support for long running queries that
|
||||
execute beyond the typical web request's timeout (30-60 seconds), it is
|
||||
necessary to configure an asynchronous backend for Superset which consist of:
|
||||
necessary to configure an asynchronous backend for Superset which consists of:
|
||||
|
||||
* one or many Superset worker (which is implemented as a Celery worker), and
|
||||
* one or many Superset workers (which is implemented as a Celery worker), and
|
||||
can be started with the ``celery worker`` command, run
|
||||
``celery worker --help`` to view the related options.
|
||||
* a celery broker (message queue) for which we recommend using Redis
|
||||
@@ -614,15 +645,41 @@ have the same configuration.
|
||||
|
||||
class CeleryConfig(object):
|
||||
BROKER_URL = 'redis://localhost:6379/0'
|
||||
CELERY_IMPORTS = ('superset.sql_lab', )
|
||||
CELERY_IMPORTS = (
|
||||
'superset.sql_lab',
|
||||
'superset.tasks',
|
||||
)
|
||||
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
|
||||
CELERY_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}}
|
||||
CELERYD_LOG_LEVEL = 'DEBUG'
|
||||
CELERYD_PREFETCH_MULTIPLIER = 10
|
||||
CELERY_ACKS_LATE = True
|
||||
CELERY_ANNOTATIONS = {
|
||||
'sql_lab.get_sql_results': {
|
||||
'rate_limit': '100/s',
|
||||
},
|
||||
'email_reports.send': {
|
||||
'rate_limit': '1/s',
|
||||
'time_limit': 120,
|
||||
'soft_time_limit': 150,
|
||||
'ignore_result': True,
|
||||
},
|
||||
}
|
||||
CELERYBEAT_SCHEDULE = {
|
||||
'email_reports.schedule_hourly': {
|
||||
'task': 'email_reports.schedule_hourly',
|
||||
'schedule': crontab(minute=1, hour='*'),
|
||||
},
|
||||
}
|
||||
|
||||
CELERY_CONFIG = CeleryConfig
|
||||
|
||||
To start a Celery worker to leverage the configuration run: ::
|
||||
* To start a Celery worker to leverage the configuration run: ::
|
||||
|
||||
celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair
|
||||
celery worker --app=superset.tasks.celery_app:app --pool=prefork -Ofair -c 4
|
||||
|
||||
* To start a job which schedules periodic background jobs, run ::
|
||||
|
||||
celery beat --app=superset.tasks.celery_app:app
|
||||
|
||||
To setup a result backend, you need to pass an instance of a derivative
|
||||
of ``werkzeug.contrib.cache.BaseCache`` to the ``RESULTS_BACKEND``
|
||||
@@ -645,13 +702,67 @@ look something like:
|
||||
RESULTS_BACKEND = RedisCache(
|
||||
host='localhost', port=6379, key_prefix='superset_results')
|
||||
|
||||
Note that it's important that all the worker nodes and web servers in
|
||||
the Superset cluster share a common metadata database.
|
||||
This means that SQLite will not work in this context since it has
|
||||
limited support for concurrency and
|
||||
typically lives on the local file system.
|
||||
**Important notes**
|
||||
|
||||
Also note that SQL Lab supports Jinja templating in queries, and that it's
|
||||
* It is important that all the worker nodes and web servers in
|
||||
the Superset cluster share a common metadata database.
|
||||
This means that SQLite will not work in this context since it has
|
||||
limited support for concurrency and
|
||||
typically lives on the local file system.
|
||||
|
||||
* There should only be one instance of ``celery beat`` running in your
|
||||
entire setup. If not, background jobs can get scheduled multiple times
|
||||
resulting in weird behaviors like duplicate delivery of reports,
|
||||
higher than expected load / traffic etc.
|
||||
|
||||
|
||||
Email Reports
|
||||
-------------
|
||||
Email reports allow users to schedule email reports for
|
||||
|
||||
* slice and dashboard visualization (Attachment or inline)
|
||||
* slice data (CSV attachment on inline table)
|
||||
|
||||
Schedules are defined in crontab format and each schedule
|
||||
can have a list of recipients (all of them can receive a single mail,
|
||||
or separate mails). For audit purposes, all outgoing mails can have a
|
||||
mandatory bcc.
|
||||
|
||||
**Requirements**
|
||||
|
||||
* A selenium compatible driver & headless browser
|
||||
|
||||
* `geckodriver <https://github.com/mozilla/geckodriver>`_ and Firefox is preferred
|
||||
* `chromedriver <http://chromedriver.chromium.org/>`_ is a good option too
|
||||
* Run `celery worker` and `celery beat` as follows ::
|
||||
|
||||
celery worker --app=superset.tasks.celery_app:app --pool=prefork -Ofair -c 4
|
||||
celery beat --app=superset.tasks.celery_app:app
|
||||
|
||||
**Important notes**
|
||||
|
||||
* Be mindful of the concurrency setting for celery (using ``-c 4``).
|
||||
Selenium/webdriver instances can consume a lot of CPU / memory on your servers.
|
||||
|
||||
* In some cases, if you notice a lot of leaked ``geckodriver`` processes, try running
|
||||
your celery processes with ::
|
||||
|
||||
celery worker --pool=prefork --max-tasks-per-child=128 ...
|
||||
|
||||
* It is recommended to run separate workers for ``sql_lab`` and
|
||||
``email_reports`` tasks. Can be done by using ``queue`` field in ``CELERY_ANNOTATIONS``
|
||||
|
||||
SQL Lab
|
||||
-------
|
||||
SQL Lab is a powerful SQL IDE that works with all SQLAlchemy compatible
|
||||
databases. By default, queries are executed in the scope of a web
|
||||
request so they may eventually timeout as queries exceed the maximum duration of a web
|
||||
request in your environment, whether it'd be a reverse proxy or the Superset
|
||||
server itself. In such cases, it is preferred to use ``celery`` to run the queries
|
||||
in the background. Please follow the examples/notes mentioned above to get your
|
||||
celery setup working.
|
||||
|
||||
Also note that SQL Lab supports Jinja templating in queries and that it's
|
||||
possible to overload
|
||||
the default Jinja context in your environment by defining the
|
||||
``JINJA_CONTEXT_ADDONS`` in your superset configuration. Objects referenced
|
||||
@@ -664,6 +775,8 @@ in this dictionary are made available for users to use in their SQL.
|
||||
}
|
||||
|
||||
|
||||
Celery Flower
|
||||
-------------
|
||||
Flower is a web based tool for monitoring the Celery cluster which you can
|
||||
install from pip: ::
|
||||
|
||||
@@ -671,7 +784,7 @@ install from pip: ::
|
||||
|
||||
and run via: ::
|
||||
|
||||
celery flower --app=superset.sql_lab:celery_app
|
||||
celery flower --app=superset.tasks.celery_app:app
|
||||
|
||||
Building from source
|
||||
---------------------
|
||||
@@ -686,7 +799,7 @@ Blueprints
|
||||
`Blueprints are Flask's reusable apps <http://flask.pocoo.org/docs/0.12/blueprints/>`_.
|
||||
Superset allows you to specify an array of Blueprints
|
||||
in your ``superset_config`` module. Here's
|
||||
an example on how this can work with a simple Blueprint. By doing
|
||||
an example of how this can work with a simple Blueprint. By doing
|
||||
so, you can expect Superset to serve a page that says "OK"
|
||||
at the ``/simple_page`` url. This can allow you to run other things such
|
||||
as custom data visualization applications alongside Superset, on the
|
||||
@@ -739,7 +852,7 @@ Note that the above command will install Superset into ``default`` namespace of
|
||||
Custom OAuth2 configuration
|
||||
---------------------------
|
||||
|
||||
Beyond FAB supported providers (github, twitter, linkedin, google, azure), its easy to connect Superset with other OAuth2 Authorization Server implementations that supports "code" authorization.
|
||||
Beyond FAB supported providers (github, twitter, linkedin, google, azure), its easy to connect Superset with other OAuth2 Authorization Server implementations that support "code" authorization.
|
||||
|
||||
The first step: Configure authorization in Superset ``superset_config.py``.
|
||||
|
||||
@@ -756,11 +869,11 @@ The first step: Configure authorization in Superset ``superset_config.py``.
|
||||
'request_token_params':{
|
||||
'scope': 'read' # Scope for the Authorization
|
||||
},
|
||||
'access_token_method':'POST', # HTTP Method to call access_token_url
|
||||
'access_token_params':{ # Additional parameters for calls to access_token_url
|
||||
'client_id':'myClientId'
|
||||
'access_token_method':'POST', # HTTP Method to call access_token_url
|
||||
'access_token_params':{ # Additional parameters for calls to access_token_url
|
||||
'client_id':'myClientId'
|
||||
},
|
||||
'access_token_headers':{ # Additional headers for calls to access_token_url
|
||||
'access_token_headers':{ # Additional headers for calls to access_token_url
|
||||
'Authorization': 'Basic Base64EncodedClientIdAndSecret'
|
||||
},
|
||||
'base_url':'https://myAuthorizationServer/oauth2AuthorizationServer/',
|
||||
@@ -788,11 +901,11 @@ Second step: Create a `CustomSsoSecurityManager` that extends `SupersetSecurityM
|
||||
logging.debug("Oauth2 provider: {0}.".format(provider))
|
||||
if provider == 'egaSSO':
|
||||
# As example, this line request a GET to base_url + '/' + userDetails with Bearer Authentication,
|
||||
# and expects that authorization server checks the token, and response with user details
|
||||
# and expects that authorization server checks the token, and response with user details
|
||||
me = self.appbuilder.sm.oauth_remotes[provider].get('userDetails').data
|
||||
logging.debug("user_data: {0}".format(me))
|
||||
return { 'name' : me['name'], 'email' : me['email'], 'id' : me['user_name'], 'username' : me['user_name'], 'first_name':'', 'last_name':''}
|
||||
...
|
||||
...
|
||||
|
||||
This file must be located at the same directory than ``superset_config.py`` with the name ``custom_sso_security_manager.py``.
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
|
||||
Misc
|
||||
----
|
||||
|
||||
@@ -1,2 +1,18 @@
|
||||
sphinx==1.7.1
|
||||
sphinx-rtd-theme==0.2.4
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
sphinx==1.8.1
|
||||
sphinx-rtd-theme==0.3.1
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Security
|
||||
========
|
||||
Security in Superset is handled by Flask AppBuilder (FAB). FAB is a
|
||||
@@ -18,7 +35,7 @@ their original values as you run your next ``superset init`` command.
|
||||
Since it's not recommended to alter the roles described here, it's right
|
||||
to assume that your security strategy should be to compose user access based
|
||||
on these base roles and roles that you create. For instance you could
|
||||
create a role ``Financial Analyst`` that would be made of set of permissions
|
||||
create a role ``Financial Analyst`` that would be made of a set of permissions
|
||||
to a set of data sources (tables) and/or databases. Users would then be
|
||||
granted ``Gamma``, ``Financial Analyst``, and perhaps ``sql_lab``.
|
||||
|
||||
@@ -29,13 +46,13 @@ other users and altering other people's slices and dashboards.
|
||||
|
||||
Alpha
|
||||
"""""
|
||||
Alpha have access to all data sources, but they cannot grant or revoke access
|
||||
Alpha users have access to all data sources, but they cannot grant or revoke access
|
||||
from other users. They are also limited to altering the objects that they
|
||||
own. Alpha users can add and alter data sources.
|
||||
|
||||
Gamma
|
||||
"""""
|
||||
Gamma have limited access. They can only consume data coming from data sources
|
||||
Gamma users have limited access. They can only consume data coming from data sources
|
||||
they have been given access to through another complementary role.
|
||||
They only have access to view the slices and
|
||||
dashboards made from data sources that they have access to. Currently Gamma
|
||||
@@ -75,7 +92,7 @@ click the ``+`` sign.
|
||||
|
||||
This new window allows you to give this new role a name, attribute it to users
|
||||
and select the tables in the ``Permissions`` dropdown. To select the data
|
||||
sources you want to associate with this role, simply click in the dropdown
|
||||
sources you want to associate with this role, simply click on the dropdown
|
||||
and use the typeahead to search for your table names.
|
||||
|
||||
You can then confirm with your Gamma users that they see the objects
|
||||
@@ -87,12 +104,12 @@ Customizing
|
||||
|
||||
The permissions exposed by FAB are very granular and allow for a great level
|
||||
of customization. FAB creates many permissions automagically for each model
|
||||
that is create (can_add, can_delete, can_show, can_edit, ...) as well as for
|
||||
that is created (can_add, can_delete, can_show, can_edit, ...) as well as for
|
||||
each view. On top of that, Superset can expose more granular permissions like
|
||||
``all_datasource_access``.
|
||||
|
||||
We do not recommend altering the 3 base roles as there
|
||||
are a set of assumptions that Superset build upon. It is possible though for
|
||||
are a set of assumptions that Superset is built upon. It is possible though for
|
||||
you to create your own roles, and union them to existing ones.
|
||||
|
||||
Permissions
|
||||
@@ -107,8 +124,7 @@ of permissions. Here are the different categories of permissions:
|
||||
so on. By adding ``can_delete on Dashboard`` to a role, and granting that
|
||||
role to a user, this user will be able to delete dashboards.
|
||||
- **Views**: views are individual web pages, like the ``explore`` view or the
|
||||
``SQL Lab`` view. When granted to a user, he/she will see that view in
|
||||
the its menu items, and be able to load that page.
|
||||
``SQL Lab`` view. When granted to a user, he/she will see that view in its menu items, and be able to load that page.
|
||||
- **Data source**: For each data source, a permission is created. If the user
|
||||
does not have the ``all_datasource_access`` permission granted, the user
|
||||
will only be able to see Slices or explore the data sources that are granted
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
SQL Lab
|
||||
=======
|
||||
|
||||
@@ -19,7 +36,7 @@ Feature Overview
|
||||
- Browse database metadata: tables, columns, indexes, partitions
|
||||
- Support for long-running queries
|
||||
|
||||
- uses the `Celery distributed queue <http://www.python.org/>`_
|
||||
- uses the `Celery distributed queue <http://www.celeryproject.org/>`_
|
||||
to dispatch query handling to workers
|
||||
- supports defining a "results backend" to persist query results
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Tutorial - Creating your first dashboard
|
||||
========================================
|
||||
|
||||
@@ -231,7 +248,7 @@ You may want to do a couple more things with this measure:
|
||||
Config > List Sql Metric > Edit Metric > D3Format*)
|
||||
* Moreover, you may want to see the temperature measurements in plain degrees C,
|
||||
not tenths of a degree. Or you may want to convert the temperature to degrees
|
||||
Fahrenheit. You can change the SQL that gets executed agains the database, baking
|
||||
Fahrenheit. You can change the SQL that gets executed against the database, baking
|
||||
the logic into the measure itself (*Edit Table Config > List Sql Metric > Edit
|
||||
Metric > SQL Expression*)
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Videos
|
||||
======
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
.. 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.
|
||||
|
||||
Visualization Tools
|
||||
===================
|
||||
|
||||
@@ -496,11 +513,11 @@ List of Countries
|
||||
+------+------------------------------------+
|
||||
|IT-PE |Pescara |
|
||||
+------+------------------------------------+
|
||||
|IT-TE |Teramo |
|
||||
|IT-TE |Teramo |
|
||||
+------+------------------------------------+
|
||||
|IT-BA |Bari |
|
||||
+------+------------------------------------+
|
||||
|IT-BT |Barletta-Andria-Trani |
|
||||
|IT-BT |Barletta-Andria-Trani |
|
||||
+------+------------------------------------+
|
||||
|IT-BR |Brindisi |
|
||||
+------+------------------------------------+
|
||||
@@ -536,181 +553,283 @@ List of Countries
|
||||
+------+------------------------------------+
|
||||
|IT-BO |Bologna |
|
||||
+------+------------------------------------+
|
||||
|IT-FE |Ferrara |
|
||||
|IT-FE |Ferrara |
|
||||
+------+------------------------------------+
|
||||
|IT-FC | Forli' - Cesena |
|
||||
+------+------------------------------------+
|
||||
|IT-MO |Modena |
|
||||
|IT-MO |Modena |
|
||||
+------+------------------------------------+
|
||||
|IT-PR |Parma |
|
||||
+------+------------------------------------+
|
||||
|IT-PC |Piacenza |
|
||||
|IT-PC |Piacenza |
|
||||
+------+------------------------------------+
|
||||
|IT-RA |Ravenna |
|
||||
|IT-RA |Ravenna |
|
||||
+------+------------------------------------+
|
||||
|IT-RE |Reggio Nell'Emilia |
|
||||
|IT-RE |Reggio Nell'Emilia |
|
||||
+------+------------------------------------+
|
||||
|IT-RN |Rimini |
|
||||
|IT-RN |Rimini |
|
||||
+------+------------------------------------+
|
||||
|IT-GO |Gorizia |
|
||||
|IT-GO |Gorizia |
|
||||
+------+------------------------------------+
|
||||
|IT-PN |Pordenone |
|
||||
|IT-PN |Pordenone |
|
||||
+------+------------------------------------+
|
||||
|IT-TS |Trieste |
|
||||
|IT-TS |Trieste |
|
||||
+------+------------------------------------+
|
||||
|IT-UD |Udine |
|
||||
|IT-UD |Udine |
|
||||
+------+------------------------------------+
|
||||
|IT-FR |Frosinone |
|
||||
|IT-FR |Frosinone |
|
||||
+------+------------------------------------+
|
||||
|IT-LT |Latina |
|
||||
|IT-LT |Latina |
|
||||
+------+------------------------------------+
|
||||
|IT-RI |Rieti |
|
||||
|IT-RI |Rieti |
|
||||
+------+------------------------------------+
|
||||
|IT-RM |Roma |
|
||||
|IT-RM |Roma |
|
||||
+------+------------------------------------+
|
||||
|IT-VT |Viterbo |
|
||||
|IT-VT |Viterbo |
|
||||
+------+------------------------------------+
|
||||
|IT-GE |Genova |
|
||||
|IT-GE |Genova |
|
||||
+------+------------------------------------+
|
||||
|IT-IM |Imperia |
|
||||
|IT-IM |Imperia |
|
||||
+------+------------------------------------+
|
||||
|IT-SP |La Spezia |
|
||||
|IT-SP |La Spezia |
|
||||
+------+------------------------------------+
|
||||
|IT-SV |Savona |
|
||||
|IT-SV |Savona |
|
||||
+------+------------------------------------+
|
||||
|IT-BG |Bergamo |
|
||||
|IT-BG |Bergamo |
|
||||
+------+------------------------------------+
|
||||
|IT-BS |Brescia |
|
||||
|IT-BS |Brescia |
|
||||
+------+------------------------------------+
|
||||
|IT-CO |Como |
|
||||
|IT-CO |Como |
|
||||
+------+------------------------------------+
|
||||
|IT-CR |Cremona |
|
||||
|IT-CR |Cremona |
|
||||
+------+------------------------------------+
|
||||
|IT-LC |Lecco |
|
||||
|IT-LC |Lecco |
|
||||
+------+------------------------------------+
|
||||
|IT-LO |Lodi |
|
||||
|IT-LO |Lodi |
|
||||
+------+------------------------------------+
|
||||
|IT-MN |Mantua |
|
||||
|IT-MN |Mantua |
|
||||
+------+------------------------------------+
|
||||
|IT-MI |Milano |
|
||||
|IT-MI |Milano |
|
||||
+------+------------------------------------+
|
||||
|IT-MB |Monza and Brianza |
|
||||
|IT-MB |Monza and Brianza |
|
||||
+------+------------------------------------+
|
||||
|IT-PV |Pavia |
|
||||
|IT-PV |Pavia |
|
||||
+------+------------------------------------+
|
||||
|IT-SO |Sondrio |
|
||||
|IT-SO |Sondrio |
|
||||
+------+------------------------------------+
|
||||
|IT-VA |Varese |
|
||||
|IT-VA |Varese |
|
||||
+------+------------------------------------+
|
||||
|IT-AN |Ancona |
|
||||
|IT-AN |Ancona |
|
||||
+------+------------------------------------+
|
||||
|IT-AP |Ascoli Piceno |
|
||||
|IT-AP |Ascoli Piceno |
|
||||
+------+------------------------------------+
|
||||
|IT-FM |Fermo |
|
||||
|IT-FM |Fermo |
|
||||
+------+------------------------------------+
|
||||
|IT-MC |Macerata |
|
||||
|IT-MC |Macerata |
|
||||
+------+------------------------------------+
|
||||
|IT-PU |Pesaro E Urbino |
|
||||
|IT-PU |Pesaro E Urbino |
|
||||
+------+------------------------------------+
|
||||
|IT-CB |Campobasso |
|
||||
|IT-CB |Campobasso |
|
||||
+------+------------------------------------+
|
||||
|IT-IS |Isernia |
|
||||
|IT-IS |Isernia |
|
||||
+------+------------------------------------+
|
||||
|IT-AL |Alessandria |
|
||||
|IT-AL |Alessandria |
|
||||
+------+------------------------------------+
|
||||
|IT-AT |Asti |
|
||||
|IT-AT |Asti |
|
||||
+------+------------------------------------+
|
||||
|IT-BI |Biella |
|
||||
|IT-BI |Biella |
|
||||
+------+------------------------------------+
|
||||
|IT-CN |Cuneo |
|
||||
|IT-CN |Cuneo |
|
||||
+------+------------------------------------+
|
||||
|IT-NO |Novara |
|
||||
|IT-NO |Novara |
|
||||
+------+------------------------------------+
|
||||
|IT-TO |Torino |
|
||||
|IT-TO |Torino |
|
||||
+------+------------------------------------+
|
||||
|IT-VB |Verbano-Cusio-Ossola |
|
||||
|IT-VB |Verbano-Cusio-Ossola |
|
||||
+------+------------------------------------+
|
||||
|IT-VC |Vercelli |
|
||||
|IT-VC |Vercelli |
|
||||
+------+------------------------------------+
|
||||
|IT-CA |Cagliari |
|
||||
|IT-CA |Cagliari |
|
||||
+------+------------------------------------+
|
||||
|IT-CI |Carbonia-Iglesias |
|
||||
|IT-CI |Carbonia-Iglesias |
|
||||
+------+------------------------------------+
|
||||
|IT-VS |Medio Campidano |
|
||||
|IT-VS |Medio Campidano |
|
||||
+------+------------------------------------+
|
||||
|IT-NU |Nuoro |
|
||||
|IT-NU |Nuoro |
|
||||
+------+------------------------------------+
|
||||
|IT-OG |Ogliastra |
|
||||
|IT-OG |Ogliastra |
|
||||
+------+------------------------------------+
|
||||
|IT-OT |Olbia-Tempio |
|
||||
|IT-OT |Olbia-Tempio |
|
||||
+------+------------------------------------+
|
||||
|IT-OR |Oristano |
|
||||
|IT-OR |Oristano |
|
||||
+------+------------------------------------+
|
||||
|IT-SS |Sassari |
|
||||
|IT-SS |Sassari |
|
||||
+------+------------------------------------+
|
||||
|IT-AG |Agrigento |
|
||||
|IT-AG |Agrigento |
|
||||
+------+------------------------------------+
|
||||
|IT-CL |Caltanissetta |
|
||||
|IT-CL |Caltanissetta |
|
||||
+------+------------------------------------+
|
||||
|IT-CT |Catania |
|
||||
+------+------------------------------------+
|
||||
|IT-EN |Enna |
|
||||
+------+------------------------------------+
|
||||
|IT-ME |Messina |
|
||||
|IT-ME |Messina |
|
||||
+------+------------------------------------+
|
||||
|IT-PA |Palermo |
|
||||
+------+------------------------------------+
|
||||
|IT-RG |Ragusa |
|
||||
+------+------------------------------------+
|
||||
|IT-SR |Syracuse |
|
||||
|IT-SR |Syracuse |
|
||||
+------+------------------------------------+
|
||||
|IT-TP |Trapani |
|
||||
+------+------------------------------------+
|
||||
|IT-AR |Arezzo |
|
||||
|IT-AR |Arezzo |
|
||||
+------+------------------------------------+
|
||||
|IT-FI |Florence |
|
||||
|IT-FI |Florence |
|
||||
+------+------------------------------------+
|
||||
|IT-GR |Grosseto |
|
||||
|IT-GR |Grosseto |
|
||||
+------+------------------------------------+
|
||||
|IT-LI |Livorno |
|
||||
|IT-LI |Livorno |
|
||||
+------+------------------------------------+
|
||||
|IT-LU |Lucca |
|
||||
+------+------------------------------------+
|
||||
|IT-MS |Massa Carrara |
|
||||
|IT-MS |Massa Carrara |
|
||||
+------+------------------------------------+
|
||||
|IT-PI |Pisa |
|
||||
+------+------------------------------------+
|
||||
|IT-PT |Pistoia |
|
||||
|IT-PT |Pistoia |
|
||||
+------+------------------------------------+
|
||||
|IT-PO |Prato |
|
||||
+------+------------------------------------+
|
||||
|IT-SI |Siena |
|
||||
+------+------------------------------------+
|
||||
|IT-BZ |Bolzano |
|
||||
|IT-BZ |Bolzano |
|
||||
+------+------------------------------------+
|
||||
|IT-TN |Trento |
|
||||
|IT-TN |Trento |
|
||||
+------+------------------------------------+
|
||||
|IT-PG |Perugia |
|
||||
|IT-PG |Perugia |
|
||||
+------+------------------------------------+
|
||||
|IT-TR |Terni |
|
||||
|IT-TR |Terni |
|
||||
+------+------------------------------------+
|
||||
|IT-AO |Aosta |
|
||||
|IT-AO |Aosta |
|
||||
+------+------------------------------------+
|
||||
|IT-BL |Belluno |
|
||||
|IT-BL |Belluno |
|
||||
+------+------------------------------------+
|
||||
|IT-PD |Padua |
|
||||
|IT-PD |Padua |
|
||||
+------+------------------------------------+
|
||||
|IT-RO |Rovigo |
|
||||
|IT-RO |Rovigo |
|
||||
+------+------------------------------------+
|
||||
|IT-TV |Treviso |
|
||||
|IT-TV |Treviso |
|
||||
+------+------------------------------------+
|
||||
|IT-VE |Venezia |
|
||||
|IT-VE |Venezia |
|
||||
+------+------------------------------------+
|
||||
|IT-VR |Verona |
|
||||
|IT-VR |Verona |
|
||||
+------+------------------------------------+
|
||||
|IT-VI |Vicenza |
|
||||
+------+------------------------------------+
|
||||
|
||||
|
||||
* Japan
|
||||
|
||||
+-------+----------------+
|
||||
| ISO | Name of region |
|
||||
+=======+================+
|
||||
| JP-01 | Hokkaido |
|
||||
+-------+----------------+
|
||||
| JP-02 | Aomori |
|
||||
+-------+----------------+
|
||||
| JP-03 | Iwate |
|
||||
+-------+----------------+
|
||||
| JP-04 | Miyagi |
|
||||
+-------+----------------+
|
||||
| JP-05 | Akita |
|
||||
+-------+----------------+
|
||||
| JP-06 | Yamagata |
|
||||
+-------+----------------+
|
||||
| JP-07 | Fukushima |
|
||||
+-------+----------------+
|
||||
| JP-08 | Ibaraki |
|
||||
+-------+----------------+
|
||||
| JP-09 | Tochigi |
|
||||
+-------+----------------+
|
||||
| JP-10 | Gunma |
|
||||
+-------+----------------+
|
||||
| JP-11 | Saitama |
|
||||
+-------+----------------+
|
||||
| JP-12 | Chiba |
|
||||
+-------+----------------+
|
||||
| JP-13 | Tokyo |
|
||||
+-------+----------------+
|
||||
| JP-14 | Kanagawa |
|
||||
+-------+----------------+
|
||||
| JP-15 | Niigata |
|
||||
+-------+----------------+
|
||||
| JP-16 | Toyama |
|
||||
+-------+----------------+
|
||||
| JP-17 | Ishikawa |
|
||||
+-------+----------------+
|
||||
| JP-18 | Fukui |
|
||||
+-------+----------------+
|
||||
| JP-19 | Yamanashi |
|
||||
+-------+----------------+
|
||||
| JP-20 | Nagano |
|
||||
+-------+----------------+
|
||||
| JP-21 | Gifu |
|
||||
+-------+----------------+
|
||||
| JP-22 | Shizuoka |
|
||||
+-------+----------------+
|
||||
| JP-23 | Aichi |
|
||||
+-------+----------------+
|
||||
| JP-24 | Mie |
|
||||
+-------+----------------+
|
||||
| JP-25 | Shiga |
|
||||
+-------+----------------+
|
||||
| JP-26 | Kyoto |
|
||||
+-------+----------------+
|
||||
| JP-27 | Osaka |
|
||||
+-------+----------------+
|
||||
| JP-28 | Hyogo |
|
||||
+-------+----------------+
|
||||
| JP-29 | Nara |
|
||||
+-------+----------------+
|
||||
| JP-30 | Wakayama |
|
||||
+-------+----------------+
|
||||
| JP-31 | Tottori |
|
||||
+-------+----------------+
|
||||
| JP-32 | Shimane |
|
||||
+-------+----------------+
|
||||
| JP-33 | Okayama |
|
||||
+-------+----------------+
|
||||
| JP-34 | Hiroshima |
|
||||
+-------+----------------+
|
||||
| JP-35 | Yamaguchi |
|
||||
+-------+----------------+
|
||||
| JP-36 | Tokushima |
|
||||
+-------+----------------+
|
||||
| JP-37 | Kagawa |
|
||||
+-------+----------------+
|
||||
| JP-38 | Ehime |
|
||||
+-------+----------------+
|
||||
| JP-39 | Kochi |
|
||||
+-------+----------------+
|
||||
| JP-40 | Fukuoka |
|
||||
+-------+----------------+
|
||||
| JP-41 | Saga |
|
||||
+-------+----------------+
|
||||
| JP-42 | Nagasaki |
|
||||
+-------+----------------+
|
||||
| JP-43 | Kumamoto |
|
||||
+-------+----------------+
|
||||
| JP-44 | Oita |
|
||||
+-------+----------------+
|
||||
| JP-45 | Miyazaki |
|
||||
+-------+----------------+
|
||||
| JP-46 | Kagoshima |
|
||||
+-------+----------------+
|
||||
| JP-47 | Okinawa |
|
||||
+-------+----------------+
|
||||
|
||||
|
||||
* Morocco
|
||||
|
||||
+-------+------------------------------+
|
||||
@@ -1471,7 +1590,7 @@ List of Countries
|
||||
+-------+------------------------------+
|
||||
|GB-MRY | Moray |
|
||||
+-------+------------------------------+
|
||||
|GB-NAY | North Ayshire |
|
||||
|GB-NAY | North Ayrshire |
|
||||
+-------+------------------------------+
|
||||
|GB-NLK | North Lanarkshire |
|
||||
+-------+------------------------------+
|
||||
@@ -1712,25 +1831,25 @@ List of Countries
|
||||
+------+------------------------------+
|
||||
|
||||
|
||||
You need to add a new Country ?
|
||||
Need to add a new Country?
|
||||
-------------------------------
|
||||
|
||||
To add a new country in country map tools, we need follow next steps :
|
||||
To add a new country in country map tools, we need to follow the following steps :
|
||||
|
||||
1. You need shapfiles why contains data of your map.
|
||||
You can get this file in this site : http://www.diva-gis.org/gdata
|
||||
1. You need shapefiles which contain data of your map.
|
||||
You can get this file on this site: http://www.diva-gis.org/gdata
|
||||
|
||||
2. You need to add ISO 3166-2 with column name ISO for all record in your file.
|
||||
It's important because, it's a norm for mapping your data with geojson file
|
||||
It's important because it's a norm for mapping your data with geojson file
|
||||
|
||||
3. You need to convert shapfile to geojson file.
|
||||
This action can make with ogr2ogr tools : http://www.gdal.org/ogr2ogr.html
|
||||
3. You need to convert shapefile to geojson file.
|
||||
This action can make with ogr2ogr tools: http://www.gdal.org/ogr2ogr.html
|
||||
|
||||
4. Put your geojson file in next folder : superset/assets/visualizations/countries with the next name : nameofyourcountries.geojson
|
||||
4. Put your geojson file in next folder : superset/assets/src/visualizations/CountryMap/countries with the next name : nameofyourcountries.geojson
|
||||
|
||||
5. You can to reduce size of geojson file ont this site : http://mapshaper.org/
|
||||
5. You can to reduce size of geojson file on this site: http://mapshaper.org/
|
||||
|
||||
6. Go in file superset/assets/javascripts/explorev2/stores/controls.jsx
|
||||
6. Go in file superset/assets/src/explore/controls.jsx
|
||||
|
||||
7. Add your country in component 'select_country'
|
||||
Example :
|
||||
@@ -1749,6 +1868,7 @@ To add a new country in country map tools, we need follow next steps :
|
||||
'France',
|
||||
'Germany',
|
||||
'Italy',
|
||||
'Japan',
|
||||
'Morocco',
|
||||
'Netherlands',
|
||||
'Russia',
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# requires github-changes, run
|
||||
# `npm install -g github-changes`
|
||||
# requires $GITHUB_TOKEN to be set
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
{{/*
|
||||
|
||||
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.
|
||||
|
||||
*/}}
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
{{/*
|
||||
|
||||
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.
|
||||
|
||||
*/}}
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "superset.fullname" . -}}
|
||||
{{- $ingressPath := .Values.ingress.path -}}
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Default values for superset.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
22
licenses/LICENSE-cal-heatmap.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2012 Tyler Kellen, contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
395
licenses/LICENSE-diva-gis.txt
Normal file
@@ -0,0 +1,395 @@
|
||||
Attribution 4.0 International
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are
|
||||
intended for use by those authorized to give the public
|
||||
permission to use material in ways otherwise restricted by
|
||||
copyright and certain other rights. Our licenses are
|
||||
irrevocable. Licensors should read and understand the terms
|
||||
and conditions of the license they choose before applying it.
|
||||
Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the
|
||||
material as expected. Licensors should clearly mark any
|
||||
material not subject to the license. This includes other CC-
|
||||
licensed material, or material used under an exception or
|
||||
limitation to copyright. More considerations for licensors:
|
||||
wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public
|
||||
licenses, a licensor grants the public permission to use the
|
||||
licensed material under specified terms and conditions. If
|
||||
the licensor's permission is not necessary for any reason--for
|
||||
example, because of any applicable exception or limitation to
|
||||
copyright--then that use is not regulated by the license. Our
|
||||
licenses grant only permissions under copyright and certain
|
||||
other rights that a licensor has authority to grant. Use of
|
||||
the licensed material may still be restricted for other
|
||||
reasons, including because others have copyright or other
|
||||
rights in the material. A licensor may make special requests,
|
||||
such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to
|
||||
respect those requests where reasonable. More considerations
|
||||
for the public:
|
||||
wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Attribution 4.0 International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution 4.0 International Public License ("Public License"). To the
|
||||
extent this Public License may be interpreted as a contract, You are
|
||||
granted the Licensed Rights in consideration of Your acceptance of
|
||||
these terms and conditions, and the Licensor grants You such rights in
|
||||
consideration of benefits the Licensor receives from making the
|
||||
Licensed Material available under these terms and conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
d. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
e. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
f. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
g. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
h. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
i. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
j. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
k. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part; and
|
||||
|
||||
b. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified
|
||||
form), You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
4. If You Share Adapted Material You produce, the Adapter's
|
||||
License You apply must not prevent recipients of the Adapted
|
||||
Material from complying with this Public License.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material; and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
otherwise permitted by the Creative Commons policies published at
|
||||
creativecommons.org/policies, Creative Commons does not authorize the
|
||||
use of the trademark "Creative Commons" or any other trademark or logo
|
||||
of Creative Commons without its prior written consent including,
|
||||
without limitation, in connection with any unauthorized modifications
|
||||
to any of its public licenses or any other arrangements,
|
||||
understandings, or agreements concerning use of licensed material. For
|
||||
the avoidance of doubt, this paragraph does not form part of the
|
||||
public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
||||
26
licenses/LICENSE-parallel-coordinates.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
Copyright (c) 2012, Kai Chang
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* The name Kai Chang may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
16
pypi_push.sh
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# first bump up package.json manually, commit and tag
|
||||
rm superset/assets/dist/*
|
||||
cd superset/assets/
|
||||
|
||||
@@ -1,15 +1,34 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
console_log==0.2.10
|
||||
flake8-commas==2.0.0
|
||||
flake8-import-order==0.18
|
||||
flake8-quotes==1.0.0
|
||||
flake8==3.5.0
|
||||
flask-cors==3.0.3
|
||||
flake8==3.6.0
|
||||
flask-cors==3.0.6
|
||||
ipdb==0.11
|
||||
mysqlclient==1.3.13
|
||||
pip-tools==3.1.0
|
||||
psycopg2-binary==2.7.5
|
||||
pycodestyle==2.3.1
|
||||
pycodestyle==2.4.0
|
||||
pyhive==0.6.1
|
||||
pylint==1.9.2
|
||||
python-dotenv==0.10.1
|
||||
redis==2.10.6
|
||||
statsd==3.2.2
|
||||
tox==3.1.2
|
||||
statsd==3.3.0
|
||||
thrift==0.11.0
|
||||
tox==3.5.3
|
||||
|
||||
@@ -7,87 +7,67 @@
|
||||
alembic==1.0.0 # via flask-migrate
|
||||
amqp==2.3.2 # via kombu
|
||||
asn1crypto==0.24.0 # via cryptography
|
||||
babel==2.6.0 # via flask-babel, flower
|
||||
babel==2.6.0 # via flask-babel
|
||||
billiard==3.5.0.4 # via celery
|
||||
bleach==2.1.2
|
||||
boto3==1.4.7
|
||||
botocore==1.7.48
|
||||
cchardet==1.1.3 # via tabulator
|
||||
bleach==3.0.2
|
||||
celery==4.2.0
|
||||
certifi==2018.8.24 # via requests
|
||||
cffi==1.11.5 # via cryptography
|
||||
chardet==3.0.4 # via requests
|
||||
click==6.7 # via flask, flask-appbuilder, tableschema, tabulator
|
||||
click==6.7
|
||||
colorama==0.3.9
|
||||
contextlib2==0.5.5
|
||||
cryptography==1.9
|
||||
croniter==0.3.29
|
||||
cryptography==2.4.2
|
||||
decorator==4.3.0 # via retry
|
||||
defusedxml==0.5.0 # via python3-openid
|
||||
docutils==0.14 # via botocore
|
||||
et-xmlfile==1.0.1 # via openpyxl
|
||||
flask-appbuilder==1.12.0
|
||||
flask-appbuilder==1.12.1
|
||||
flask-babel==0.11.1 # via flask-appbuilder
|
||||
flask-caching==1.4.0
|
||||
flask-compress==1.4.0
|
||||
flask-login==0.4.1 # via flask-appbuilder
|
||||
flask-migrate==2.1.1
|
||||
flask-openid==1.2.5 # via flask-appbuilder
|
||||
flask-sqlalchemy==2.1 # via flask-appbuilder, flask-migrate
|
||||
flask-sqlalchemy==2.3.2 # via flask-appbuilder, flask-migrate
|
||||
flask-wtf==0.14.2
|
||||
flask==0.12.2
|
||||
flower==0.9.2
|
||||
future==0.16.0
|
||||
futures==3.1.1 # via flower
|
||||
flask==1.0.2
|
||||
geopy==1.11.0
|
||||
gunicorn==19.8.0
|
||||
html5lib==1.0.1 # via bleach
|
||||
humanize==0.5.1
|
||||
idna==2.6
|
||||
ijson==2.3 # via tabulator
|
||||
isodate==0.6.0
|
||||
itsdangerous==0.24 # via flask
|
||||
jdcal==1.4 # via openpyxl
|
||||
jinja2==2.10 # via flask, flask-babel
|
||||
jmespath==0.9.3 # via boto3, botocore
|
||||
jsonlines==1.2.0 # via tabulator
|
||||
jsonschema==2.6.0 # via tableschema
|
||||
kombu==4.2.1 # via celery
|
||||
linear-tsv==1.1.0 # via tabulator
|
||||
mako==1.0.7 # via alembic
|
||||
markdown==3.0
|
||||
markupsafe==1.0 # via jinja2, mako
|
||||
numpy==1.15.2 # via pandas
|
||||
openpyxl==2.4.11 # via tabulator
|
||||
pandas==0.23.1
|
||||
pandas==0.23.4
|
||||
parsedatetime==2.0.0
|
||||
pathlib2==2.3.0
|
||||
polyline==1.3.2
|
||||
py==1.7.0 # via retry
|
||||
pycparser==2.19 # via cffi
|
||||
pydruid==0.4.4
|
||||
pyhive==0.5.1
|
||||
pydruid==0.5.0
|
||||
python-dateutil==2.6.1
|
||||
python-editor==1.0.3 # via alembic
|
||||
python-geohash==0.8.5
|
||||
python3-openid==3.1.0 # via flask-openid
|
||||
pytz==2018.5 # via babel, celery, flower, pandas
|
||||
pyyaml==3.12
|
||||
requests==2.18.4
|
||||
rfc3986==1.1.0 # via tableschema
|
||||
s3transfer==0.1.13 # via boto3
|
||||
sasl==0.2.1 # via thrift-sasl
|
||||
pytz==2018.5 # via babel, celery, pandas
|
||||
pyyaml==3.13
|
||||
requests==2.20.0
|
||||
retry==0.9.2
|
||||
selenium==3.141.0
|
||||
simplejson==3.15.0
|
||||
six==1.11.0 # via bleach, cryptography, isodate, pathlib2, polyline, pydruid, python-dateutil, sqlalchemy-utils, wtforms-json
|
||||
sqlalchemy-utils==0.32.21
|
||||
sqlalchemy==1.2.2
|
||||
sqlparse==0.2.4
|
||||
tableschema==1.1.0
|
||||
tabulator==1.15.0 # via tableschema
|
||||
thrift-sasl==0.3.0
|
||||
thrift==0.11.0
|
||||
tornado==5.1.1 # via flower
|
||||
unicodecsv==0.14.1
|
||||
unidecode==1.0.22
|
||||
urllib3==1.22 # via requests
|
||||
urllib3==1.22 # via requests, selenium
|
||||
vine==1.1.4 # via amqp
|
||||
webencodings==0.5.1 # via html5lib
|
||||
webencodings==0.5.1 # via bleach
|
||||
werkzeug==0.14.1 # via flask
|
||||
wtforms==2.2.1 # via flask-wtf
|
||||
xlrd==1.1.0 # via tabulator
|
||||
wtforms-json==0.3.3
|
||||
wtforms==2.2.1 # via flask-wtf, wtforms-json
|
||||
|
||||
94
scripts/check_license.sh
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/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.
|
||||
#
|
||||
|
||||
|
||||
acquire_rat_jar () {
|
||||
|
||||
URL="http://repo1.maven.org/maven2/org/apache/rat/apache-rat/${RAT_VERSION}/apache-rat-${RAT_VERSION}.jar"
|
||||
|
||||
JAR="$rat_jar"
|
||||
|
||||
# Download rat launch jar if it hasn't been downloaded yet
|
||||
if [ ! -f "$JAR" ]; then
|
||||
# Download
|
||||
printf "Attempting to fetch rat\n"
|
||||
JAR_DL="${JAR}.part"
|
||||
if [ $(command -v curl) ]; then
|
||||
curl -L --silent "${URL}" > "$JAR_DL" && mv "$JAR_DL" "$JAR"
|
||||
elif [ $(command -v wget) ]; then
|
||||
wget --quiet ${URL} -O "$JAR_DL" && mv "$JAR_DL" "$JAR"
|
||||
else
|
||||
printf "You do not have curl or wget installed, please install rat manually.\n"
|
||||
exit -1
|
||||
fi
|
||||
fi
|
||||
|
||||
unzip -tq "$JAR" &> /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
# We failed to download
|
||||
rm "$JAR"
|
||||
printf "Our attempt to download rat locally to ${JAR} failed. Please install rat manually.\n"
|
||||
exit -1
|
||||
fi
|
||||
printf "Done downloading.\n"
|
||||
}
|
||||
|
||||
# Go to the project root directory
|
||||
FWDIR="$(cd "`dirname "$0"`"/..; pwd)"
|
||||
cd "$FWDIR"
|
||||
|
||||
TMP_DIR=/tmp
|
||||
|
||||
if test -x "$JAVA_HOME/bin/java"; then
|
||||
declare java_cmd="$JAVA_HOME/bin/java"
|
||||
else
|
||||
declare java_cmd=java
|
||||
fi
|
||||
|
||||
export RAT_VERSION=0.13
|
||||
export rat_jar="${TMP_DIR}"/lib/apache-rat-${RAT_VERSION}.jar
|
||||
mkdir -p ${TMP_DIR}/lib
|
||||
|
||||
|
||||
[[ -f "$rat_jar" ]] || acquire_rat_jar || {
|
||||
echo "Download failed. Obtain the rat jar manually and place it at $rat_jar"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# This is the target of a symlink in superset/assets/docs - and rat exclude doesn't cope with the symlink target doesn't exist
|
||||
mkdir -p docs/_build/html/
|
||||
|
||||
echo "Running license checks. This can take a while."
|
||||
echo "$FWDIR"/.rat-excludes
|
||||
$java_cmd -jar "$rat_jar" -E "$FWDIR"/.rat-excludes -d "$FWDIR" > rat-results.txt
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "RAT exited abnormally"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ERRORS="$(cat rat-results.txt | grep -e "??")"
|
||||
|
||||
if test ! -z "$ERRORS"; then
|
||||
echo >&2 "Could not find Apache license headers in the following files:"
|
||||
echo >&2 "$ERRORS"
|
||||
exit 1
|
||||
else
|
||||
echo -e "RAT checks passed."
|
||||
fi
|
||||
@@ -1,3 +1,19 @@
|
||||
# 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.
|
||||
from collections import defaultdict
|
||||
|
||||
from superset import sm
|
||||
|
||||
28
scripts/sign.sh
Executable 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.
|
||||
#
|
||||
|
||||
# Use this to sign the tar balls generated from
|
||||
# python setup.py sdist --formats=gztar
|
||||
# ie. sign.sh <my_tar_ball>
|
||||
# you will still be required to type in your signing key password
|
||||
# or it needs to be available in your keychain
|
||||
|
||||
NAME=${1}
|
||||
|
||||
gpg --armor --output ${NAME}.asc --detach-sig ${NAME}
|
||||
gpg --print-md SHA512 ${NAME} > ${NAME}.sha512
|
||||
20
setup.cfg
@@ -1,9 +1,25 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
[metadata]
|
||||
name = Superset
|
||||
summary = a data exploration platform
|
||||
description-file = README.md
|
||||
author = Maxime Beauchemin
|
||||
author-email = maximebeauchemin@gmail.com
|
||||
author = Apache Superset Dev
|
||||
author-email = dev@superset.incubator.apache.org
|
||||
license = Apache License, Version 2.0
|
||||
|
||||
[files]
|
||||
|
||||
66
setup.py
@@ -1,3 +1,19 @@
|
||||
# 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.
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
@@ -42,7 +58,7 @@ with open(os.path.join(PACKAGE_DIR, 'version_info.json'), 'w') as version_file:
|
||||
|
||||
|
||||
setup(
|
||||
name='superset',
|
||||
name='apache-superset',
|
||||
description=(
|
||||
'A modern, enterprise-ready business intelligence web application'),
|
||||
long_description=long_description,
|
||||
@@ -53,22 +69,19 @@ setup(
|
||||
zip_safe=False,
|
||||
scripts=['superset/bin/superset'],
|
||||
install_requires=[
|
||||
'bleach',
|
||||
'boto3==1.4.7',
|
||||
'botocore>=1.7.0, <1.8.0',
|
||||
'celery>=4.2.0',
|
||||
'click==6.7',
|
||||
'colorama==0.3.9',
|
||||
'bleach>=3.0.2, <4.0.0',
|
||||
'celery>=4.2.0, <5.0.0',
|
||||
'click>=6.0, <7.0.0', # click >=7 forces "-" instead of "_"
|
||||
'colorama',
|
||||
'contextlib2',
|
||||
'cryptography',
|
||||
'flask<1.0.0',
|
||||
'flask-appbuilder>=1.12.0',
|
||||
'croniter>=0.3.28',
|
||||
'cryptography>=2.4.2',
|
||||
'flask>=1.0.0, <2.0.0',
|
||||
'flask-appbuilder>=1.12.1, <2.0.0',
|
||||
'flask-caching',
|
||||
'flask-compress',
|
||||
'flask-migrate',
|
||||
'flask-wtf',
|
||||
'flower', # deprecated
|
||||
'future>=0.16.0, <0.17',
|
||||
'geopy',
|
||||
'gunicorn', # deprecated
|
||||
'humanize',
|
||||
@@ -80,31 +93,36 @@ setup(
|
||||
'pathlib2',
|
||||
'polyline',
|
||||
'pydruid>=0.4.3',
|
||||
'pyhive>=0.4.0',
|
||||
'python-dateutil',
|
||||
'python-geohash',
|
||||
'pyyaml>=3.11',
|
||||
'requests',
|
||||
'pyyaml>=3.13',
|
||||
'requests>=2.20.0',
|
||||
'retry>=0.9.2',
|
||||
'selenium>=3.141.0',
|
||||
'simplejson>=3.15.0',
|
||||
'sqlalchemy',
|
||||
'sqlalchemy-utils',
|
||||
'sqlparse',
|
||||
'tableschema',
|
||||
'thrift>=0.9.3',
|
||||
'thrift-sasl>=0.2.1',
|
||||
'unicodecsv',
|
||||
'unidecode>=0.04.21',
|
||||
'wtforms-json',
|
||||
],
|
||||
extras_require={
|
||||
'cors': ['flask-cors>=2.0.0'],
|
||||
'console_log': ['console_log==0.2.10'],
|
||||
'hive': [
|
||||
'pyhive>=0.4.0',
|
||||
'tableschema',
|
||||
'thrift-sasl>=0.2.1',
|
||||
'thrift>=0.9.3',
|
||||
],
|
||||
'presto': ['pyhive>=0.4.0'],
|
||||
'gsheets': ['gsheetsdb>=0.1.9'],
|
||||
},
|
||||
author='Maxime Beauchemin',
|
||||
author_email='maximebeauchemin@gmail.com',
|
||||
url='https://github.com/apache/incubator-superset',
|
||||
author='Apache Software Foundation',
|
||||
author_email='dev@superset.incubator.apache.org',
|
||||
url='http://superset.apache.org/',
|
||||
download_url=(
|
||||
'https://github.com'
|
||||
'/apache/incubator-superset/tarball/' + version_string
|
||||
'https://dist.apache.org/repos/dist/release/superset/' + version_string
|
||||
),
|
||||
classifiers=[
|
||||
'Programming Language :: Python :: 3.6',
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
# 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.
|
||||
# pylint: disable=C,R,W
|
||||
"""Package's main module!"""
|
||||
import json
|
||||
@@ -12,10 +28,15 @@ from flask_compress import Compress
|
||||
from flask_migrate import Migrate
|
||||
from flask_wtf.csrf import CSRFProtect
|
||||
from werkzeug.contrib.fixers import ProxyFix
|
||||
import wtforms_json
|
||||
|
||||
from superset import config, utils
|
||||
from superset import config
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset.security import SupersetSecurityManager
|
||||
from superset.utils.core import (
|
||||
get_update_perms_flag, pessimistic_connection_handling, setup_cache)
|
||||
|
||||
wtforms_json.init()
|
||||
|
||||
APP_DIR = os.path.dirname(__file__)
|
||||
CONFIG_MODULE = os.environ.get('SUPERSET_CONFIG', 'superset.config')
|
||||
@@ -23,7 +44,7 @@ CONFIG_MODULE = os.environ.get('SUPERSET_CONFIG', 'superset.config')
|
||||
if not os.path.exists(config.DATA_DIR):
|
||||
os.makedirs(config.DATA_DIR)
|
||||
|
||||
with open(APP_DIR + '/static/assets/backendSync.json', 'r') as f:
|
||||
with open(APP_DIR + '/static/assets/backendSync.json', 'r', encoding='utf-8') as f:
|
||||
frontend_config = json.load(f)
|
||||
|
||||
app = Flask(__name__)
|
||||
@@ -97,11 +118,11 @@ if conf.get('SILENCE_FAB'):
|
||||
logging.getLogger('flask_appbuilder').setLevel(logging.ERROR)
|
||||
|
||||
if app.debug:
|
||||
app.logger.setLevel(logging.DEBUG)
|
||||
app.logger.setLevel(logging.DEBUG) # pylint: disable=no-member
|
||||
else:
|
||||
# In production mode, add log handler to sys.stderr.
|
||||
app.logger.addHandler(logging.StreamHandler())
|
||||
app.logger.setLevel(logging.INFO)
|
||||
app.logger.addHandler(logging.StreamHandler()) # pylint: disable=no-member
|
||||
app.logger.setLevel(logging.INFO) # pylint: disable=no-member
|
||||
logging.getLogger('pyhive.presto').setLevel(logging.INFO)
|
||||
|
||||
db = SQLA(app)
|
||||
@@ -112,10 +133,10 @@ if conf.get('WTF_CSRF_ENABLED'):
|
||||
for ex in csrf_exempt_list:
|
||||
csrf.exempt(ex)
|
||||
|
||||
utils.pessimistic_connection_handling(db.engine)
|
||||
pessimistic_connection_handling(db.engine)
|
||||
|
||||
cache = utils.setup_cache(app, conf.get('CACHE_CONFIG'))
|
||||
tables_cache = utils.setup_cache(app, conf.get('TABLE_NAMES_CACHE_CONFIG'))
|
||||
cache = setup_cache(app, conf.get('CACHE_CONFIG'))
|
||||
tables_cache = setup_cache(app, conf.get('TABLE_NAMES_CACHE_CONFIG'))
|
||||
|
||||
migrate = Migrate(app, db, directory=APP_DIR + '/migrations')
|
||||
|
||||
@@ -183,7 +204,7 @@ appbuilder = AppBuilder(
|
||||
base_template='superset/base.html',
|
||||
indexview=MyIndexView,
|
||||
security_manager_class=custom_sm,
|
||||
update_perms=utils.get_update_perms_flag(),
|
||||
update_perms=get_update_perms_flag(),
|
||||
)
|
||||
|
||||
security_manager = appbuilder.sm
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
{
|
||||
"presets" : ["airbnb", "react", "env"],
|
||||
"presets" : ["airbnb", "@babel/preset-react", "@babel/preset-env"],
|
||||
"plugins": ["lodash", "syntax-dynamic-import", "react-hot-loader/babel"],
|
||||
"env": {
|
||||
"test": {
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
**/*{.,-}min.js
|
||||
**/*.sh
|
||||
coverage/**
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
{
|
||||
"extends": "airbnb",
|
||||
"parser": "babel-eslint",
|
||||
@@ -18,7 +36,6 @@
|
||||
"func-names": 0,
|
||||
"react/jsx-no-bind": 0,
|
||||
"no-confusing-arrow": 0,
|
||||
|
||||
"jsx-a11y/no-static-element-interactions": 0,
|
||||
"jsx-a11y/anchor-has-content": 0,
|
||||
"react/require-default-props": 0,
|
||||
@@ -40,6 +57,10 @@
|
||||
"react/no-string-refs": 0,
|
||||
"indent": 0,
|
||||
"no-multi-spaces": 0,
|
||||
"padded-blocks": 0
|
||||
"padded-blocks": 0,
|
||||
"import/extensions": [".js", ".jsx", ".ts", ".tsx", ".json"]
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": "webpack"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
verbose: true
|
||||
instrumentation:
|
||||
root: './src'
|
||||
extensions: ['.js', '.jsx']
|
||||
excludes: [
|
||||
'dist/**',
|
||||
'visualizations/index.js',
|
||||
'visualizations/**/*ChartPlugin.js',
|
||||
]
|
||||
embed-source: false
|
||||
variable: __coverage__
|
||||
compact: true
|
||||
preserve-comments: false
|
||||
complete-copy: false
|
||||
save-baseline: true
|
||||
baseline-file: ./coverage/coverage-baseline.json
|
||||
include-all-sources: true
|
||||
include-pid: false
|
||||
es-modules: true
|
||||
reporting:
|
||||
print: summary
|
||||
reports:
|
||||
- lcov
|
||||
dir: ./coverage
|
||||
watermarks:
|
||||
statements: [50, 80]
|
||||
lines: [50, 80]
|
||||
functions: [50, 80]
|
||||
branches: [50, 80]
|
||||
report-config:
|
||||
clover: {file: clover.xml}
|
||||
cobertura: {file: cobertura-coverage.xml}
|
||||
json: {file: coverage-final.json}
|
||||
json-summary: {file: coverage-summary.json}
|
||||
lcovonly: {file: lcov.info}
|
||||
teamcity: {file: null, blockName: Code Coverage Summary}
|
||||
text: {file: null, maxCols: 0}
|
||||
text-lcov: {file: lcov.info}
|
||||
text-summary: {file: null}
|
||||
hooks:
|
||||
hook-run-in-context: false
|
||||
post-require-hook: null
|
||||
handle-sigint: false
|
||||
check:
|
||||
global:
|
||||
statements: 0
|
||||
lines: 0
|
||||
branches: 0
|
||||
functions: 0
|
||||
excludes: []
|
||||
each:
|
||||
statements: 0
|
||||
lines: 0
|
||||
branches: 0
|
||||
functions: 0
|
||||
excludes: []
|
||||
@@ -1,4 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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="210px" height="202px" viewBox="0 0 210 202" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Full Lockup With Text</title>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 7.4 KiB |
@@ -1,4 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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="210px" height="146px" viewBox="0 0 210 146" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Full Lockup Without Text@1x</title>
|
||||
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.9 KiB |
@@ -1,4 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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="350px" height="66px" viewBox="0 0 350 66" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Horizontal</title>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,4 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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="123px" height="66px" viewBox="0 0 123 66" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Solo Mark@1x</title>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 9.3 KiB |
@@ -1,4 +1,22 @@
|
||||
<svg width="269" height="69" viewBox="0 0 269 69" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
<rect width="269" height="69" fill="black" fill-opacity="0"/>
|
||||
<rect width="269" height="69" fill="black" fill-opacity="0"/>
|
||||
<rect width="70" height="35" fill="black" fill-opacity="0" transform="translate(0 23)"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 10 KiB |
@@ -1,4 +1,22 @@
|
||||
<svg width="100" height="50" viewBox="0 0 100 50" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
<rect width="100" height="50" fill="black" fill-opacity="0"/>
|
||||
<rect width="100" height="50" fill="black" fill-opacity="0"/>
|
||||
<rect width="100" height="50" fill="black" fill-opacity="0"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -1,4 +1,22 @@
|
||||
<svg width="187" height="119" viewBox="0 0 187 119" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
<rect width="187" height="119" fill="black" fill-opacity="0"/>
|
||||
<rect width="187" height="119" fill="black" fill-opacity="0"/>
|
||||
<rect width="70" height="35" fill="black" fill-opacity="0" transform="translate(59)"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 10 KiB |
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"baseUrl": "http://localhost:8081",
|
||||
"videoUploadOnPasses": false,
|
||||
"video": false,
|
||||
"ignoreTestFiles": ["**/!(*.test.js)"],
|
||||
"projectId": "fbf96q"
|
||||
"projectId": "fbf96q",
|
||||
"defaultCommandTimeout": 10000,
|
||||
"viewportWidth": 1280,
|
||||
"viewportHeight": 800
|
||||
}
|
||||
|
||||
@@ -1,71 +1,103 @@
|
||||
import { WORLD_HEALTH_DASHBOARD, CHECK_DASHBOARD_FAVORITE_ENDPOINT } from './dashboard.helper';
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
|
||||
import readResponseBlob from '../../utils/readResponseBlob';
|
||||
|
||||
export default () => describe('top-level controls', () => {
|
||||
let sliceIds = [];
|
||||
let dashboard = {};
|
||||
let isFavoriteDashboard = false;
|
||||
const sliceRequests = [];
|
||||
const forceRefreshRequests = [];
|
||||
let mapId;
|
||||
|
||||
beforeEach(() => {
|
||||
cy.server();
|
||||
cy.login();
|
||||
|
||||
cy.route(CHECK_DASHBOARD_FAVORITE_ENDPOINT).as('countFavStar');
|
||||
cy.visit(WORLD_HEALTH_DASHBOARD);
|
||||
|
||||
cy.get('#app').then((data) => {
|
||||
const bootstrapData = JSON.parse(data[0].dataset.bootstrap);
|
||||
dashboard = bootstrapData.dashboard_data;
|
||||
sliceIds = dashboard.slices.map(slice => (slice.slice_id));
|
||||
});
|
||||
const dashboard = bootstrapData.dashboard_data;
|
||||
const sliceIds = dashboard.slices.map(slice => (slice.slice_id));
|
||||
mapId = dashboard.slices.find(slice => (slice.form_data.viz_type === 'world_map')).slice_id;
|
||||
|
||||
cy.wait('@countFavStar').then((xhr) => {
|
||||
isFavoriteDashboard = xhr.response.body.count === 1;
|
||||
sliceIds
|
||||
.forEach((id) => {
|
||||
const sliceRequest = `getJson_${id}`;
|
||||
sliceRequests.push(`@${sliceRequest}`);
|
||||
cy.route('POST', `/superset/explore_json/?form_data={"slice_id":${id}}`).as(sliceRequest);
|
||||
|
||||
const forceRefresh = `getJson_${id}_force`;
|
||||
forceRefreshRequests.push(`@${forceRefresh}`);
|
||||
cy.route('POST', `/superset/explore_json/?form_data={"slice_id":${id}}&force=true`).as(forceRefresh);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should allow favor/unfavor', () => {
|
||||
if (!isFavoriteDashboard) {
|
||||
cy.get('.favstar').find('i').should('have.class', 'fa-star-o');
|
||||
cy.get('.favstar').trigger('click');
|
||||
cy.get('.favstar').find('i').should('have.class', 'fa-star')
|
||||
.and('not.have.class', 'fa-star-o');
|
||||
} else {
|
||||
cy.get('.favstar').find('i').should('have.class', 'fa-star')
|
||||
.and('not.have.class', 'fa-star-o');
|
||||
cy.get('.favstar').trigger('click');
|
||||
cy.get('.fave-unfave-icon').find('i').should('have.class', 'fa-star-o')
|
||||
.and('not.have.class', 'fa-star');
|
||||
}
|
||||
|
||||
// reset to original fav state
|
||||
cy.get('.favstar').trigger('click');
|
||||
afterEach(() => {
|
||||
sliceRequests.length = 0;
|
||||
forceRefreshRequests.length = 0;
|
||||
});
|
||||
|
||||
it('should allow auto refresh', () => {
|
||||
const sliceRequests = [];
|
||||
const forceRefreshRequests = [];
|
||||
sliceIds
|
||||
.forEach((id) => {
|
||||
const sliceRequest = `getJson_${id}`;
|
||||
sliceRequests.push(`@${sliceRequest}`);
|
||||
cy.route('POST', `/superset/explore_json/?form_data={"slice_id":${id}}`).as(sliceRequest);
|
||||
it('should allow chart level refresh', () => {
|
||||
cy.wait(sliceRequests);
|
||||
cy.get('.grid-container .world_map').should('be.exist');
|
||||
cy.get(`#slice_${mapId}-controls`).click();
|
||||
cy.get(`#slice_${mapId}-controls`).next()
|
||||
.find('.refresh-tooltip').trigger('click', { force: true });
|
||||
|
||||
const forceRefresh = `getJson_${id}_force`;
|
||||
forceRefreshRequests.push(`@${forceRefresh}`);
|
||||
cy.route('POST', `/superset/explore_json/?form_data={"slice_id":${id}}&force=true`).as(forceRefresh);
|
||||
});
|
||||
// not allow dashboard level force refresh when any chart is loading
|
||||
cy.get('#save-dash-split-button').trigger('click', { forece: true });
|
||||
cy.contains('Force refresh dashboard').parent().should('have.class', 'disabled');
|
||||
// not allow chart level force refresh when it is loading
|
||||
cy.get(`#slice_${mapId}-controls`).next()
|
||||
.find('.refresh-tooltip')
|
||||
.parent()
|
||||
.parent()
|
||||
.should('have.class', 'disabled');
|
||||
|
||||
cy.wait(`@getJson_${mapId}_force`);
|
||||
cy.get('#save-dash-split-button').trigger('click');
|
||||
cy.contains('Force refresh dashboard').parent().not('have.class', 'disabled');
|
||||
});
|
||||
|
||||
it('should allow dashboard level force refresh', () => {
|
||||
// when charts are not start loading, for example, under a secondary tab,
|
||||
// should allow force refresh
|
||||
cy.get('#save-dash-split-button').trigger('click');
|
||||
cy.contains('Force refresh dashboard').parent().not('have.class', 'disabled');
|
||||
|
||||
// wait the all dash finish loading.
|
||||
cy.wait(sliceRequests);
|
||||
cy.get('#save-dash-split-button').trigger('click');
|
||||
cy.contains('Force refresh dashboard').click();
|
||||
cy.contains('Force refresh dashboard').trigger('click', { force: true });
|
||||
cy.get('#save-dash-split-button').trigger('click');
|
||||
cy.contains('Force refresh dashboard').parent().should('have.class', 'disabled');
|
||||
|
||||
// wait all charts force refreshed
|
||||
cy.wait(forceRefreshRequests).then((xhrs) => {
|
||||
// is_cached in response should be false
|
||||
xhrs.forEach(async (xhr) => {
|
||||
const responseBody = await readResponseBlob(xhr.response.body);
|
||||
expect(responseBody.is_cached).to.equal(false);
|
||||
xhrs.forEach((xhr) => {
|
||||
readResponseBlob(xhr.response.body).then((responseBody) => {
|
||||
expect(responseBody.is_cached).to.equal(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
cy.get('#save-dash-split-button').trigger('click');
|
||||
cy.contains('Force refresh dashboard').parent().not('have.class', 'disabled');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
export const WORLD_HEALTH_DASHBOARD = '/superset/dashboard/world_health';
|
||||
|
||||
export const CHECK_DASHBOARD_FAVORITE_ENDPOINT = '/superset/favstar/Dashboard/*/count';
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
|
||||
|
||||
export default () => describe('edit mode', () => {
|
||||
|
||||
53
superset/assets/cypress/integration/dashboard/fav_star.js
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { WORLD_HEALTH_DASHBOARD, CHECK_DASHBOARD_FAVORITE_ENDPOINT } from './dashboard.helper';
|
||||
|
||||
export default () => describe('favorite dashboard', () => {
|
||||
let isFavoriteDashboard = false;
|
||||
|
||||
beforeEach(() => {
|
||||
cy.server();
|
||||
cy.login();
|
||||
|
||||
cy.route(CHECK_DASHBOARD_FAVORITE_ENDPOINT).as('countFavStar');
|
||||
cy.visit(WORLD_HEALTH_DASHBOARD);
|
||||
|
||||
cy.wait('@countFavStar').then((xhr) => {
|
||||
isFavoriteDashboard = xhr.response.body.count === 1;
|
||||
});
|
||||
});
|
||||
|
||||
it('should allow favor/unfavor', () => {
|
||||
if (!isFavoriteDashboard) {
|
||||
cy.get('.favstar').find('i').should('have.class', 'fa-star-o');
|
||||
cy.get('.favstar').trigger('click');
|
||||
cy.get('.favstar').find('i').should('have.class', 'fa-star')
|
||||
.and('not.have.class', 'fa-star-o');
|
||||
} else {
|
||||
cy.get('.favstar').find('i').should('have.class', 'fa-star')
|
||||
.and('not.have.class', 'fa-star-o');
|
||||
cy.get('.favstar').trigger('click');
|
||||
cy.get('.fave-unfave-icon').find('i').should('have.class', 'fa-star-o')
|
||||
.and('not.have.class', 'fa-star');
|
||||
}
|
||||
|
||||
// reset to original fav state
|
||||
cy.get('.favstar').trigger('click');
|
||||
});
|
||||
});
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
|
||||
|
||||
export default () => describe('dashboard filter', () => {
|
||||
|
||||
@@ -1,11 +1,33 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import DashboardControlsTest from './controls';
|
||||
import DashboardEditModeTest from './edit_mode';
|
||||
import DashboardFavStarTest from './fav_star';
|
||||
import DashboardFilterTest from './filter';
|
||||
import DashboardLoadTest from './load';
|
||||
import DashboardSaveTest from './save';
|
||||
|
||||
describe('Dashboard', () => {
|
||||
DashboardControlsTest();
|
||||
DashboardEditModeTest();
|
||||
DashboardFavStarTest();
|
||||
DashboardFilterTest();
|
||||
DashboardLoadTest();
|
||||
DashboardSaveTest();
|
||||
});
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import readResponseBlob from '../../utils/readResponseBlob';
|
||||
import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
|
||||
|
||||
|
||||
77
superset/assets/cypress/integration/dashboard/save.js
Normal file
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import readResponseBlob from '../../utils/readResponseBlob';
|
||||
import { WORLD_HEALTH_DASHBOARD } from './dashboard.helper';
|
||||
|
||||
export default () => describe('save', () => {
|
||||
let dashboardId;
|
||||
let boxplotChartId;
|
||||
|
||||
beforeEach(() => {
|
||||
cy.server();
|
||||
cy.login();
|
||||
cy.visit(WORLD_HEALTH_DASHBOARD);
|
||||
|
||||
cy.get('#app').then((data) => {
|
||||
const bootstrapData = JSON.parse(data[0].dataset.bootstrap);
|
||||
const dashboard = bootstrapData.dashboard_data;
|
||||
dashboardId = dashboard.id;
|
||||
boxplotChartId = dashboard.slices.find(slice => (slice.form_data.viz_type === 'box_plot')).slice_id;
|
||||
|
||||
cy.route('POST', `/superset/copy_dash/${dashboardId}/`).as('copyRequest');
|
||||
});
|
||||
|
||||
cy.get('#save-dash-split-button').trigger('click', { force: true });
|
||||
cy.contains('Save as').trigger('click', { force: true });
|
||||
cy.get('.modal-footer').contains('Save').trigger('click', { force: true });
|
||||
});
|
||||
|
||||
it('should save as new dashboard', () => {
|
||||
cy.wait('@copyRequest').then((xhr) => {
|
||||
expect(xhr.status).to.eq(200);
|
||||
|
||||
readResponseBlob(xhr.response.body).then((json) => {
|
||||
expect(json.id).to.be.gt(dashboardId);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should save/overwrite dashboard', () => {
|
||||
cy.wait('@copyRequest');
|
||||
|
||||
// should have box_plot chart
|
||||
const boxplotRequest = `/superset/explore_json/?form_data={"slice_id":${boxplotChartId}}`;
|
||||
cy.route('POST', boxplotRequest).as('boxplotRequest');
|
||||
cy.wait('@boxplotRequest');
|
||||
cy.get('.grid-container .box_plot').should('be.exist');
|
||||
|
||||
// remove box_plot chart from dashboard
|
||||
cy.get('.dashboard-header').contains('Edit dashboard').trigger('click', { force: true });
|
||||
cy.get('.fa.fa-trash').last().trigger('click', { force: true });
|
||||
cy.get('.grid-container .box_plot').should('not.exist');
|
||||
|
||||
cy.route('POST', '/superset/save_dash/**/').as('saveRequest');
|
||||
cy.get('.dashboard-header').contains('Save changes').trigger('click', { force: true });
|
||||
|
||||
// go back to view mode
|
||||
cy.wait('@saveRequest');
|
||||
cy.get('.dashboard-header').contains('Edit dashboard');
|
||||
cy.get('.grid-container .box_plot').should('not.exist');
|
||||
});
|
||||
});
|
||||
57
superset/assets/cypress/integration/explore/chart.test.js
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { FORM_DATA_DEFAULTS, NUM_METRIC } from './visualizations/shared.helper';
|
||||
import readResponseBlob from '../../utils/readResponseBlob';
|
||||
|
||||
describe('Error', () => {
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
cy.server();
|
||||
cy.route('POST', '/superset/explore_json/**').as('getJson');
|
||||
});
|
||||
|
||||
it('No data error message shows up', () => {
|
||||
const formData = {
|
||||
...FORM_DATA_DEFAULTS,
|
||||
metrics: [NUM_METRIC],
|
||||
viz_type: 'line',
|
||||
adhoc_filters: [{
|
||||
expressionType: 'SIMPLE',
|
||||
subject: 'state',
|
||||
operator: 'in',
|
||||
comparator: ['Fake State'],
|
||||
clause: 'WHERE',
|
||||
sqlExpression: null,
|
||||
fromFormData: true,
|
||||
}],
|
||||
};
|
||||
|
||||
cy.visitChartByParams(JSON.stringify(formData));
|
||||
cy.wait('@getJson').then(async (xhr) => {
|
||||
expect(xhr.status).to.eq(400);
|
||||
|
||||
const responseBody = await readResponseBlob(xhr.response.body);
|
||||
|
||||
if (responseBody.error) {
|
||||
expect(responseBody.error).to.eq('No data');
|
||||
}
|
||||
});
|
||||
cy.get('div.alert').contains('No data');
|
||||
});
|
||||
});
|
||||
@@ -1,6 +1,25 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
// ***********************************************
|
||||
// Tests for setting controls in the UI
|
||||
// ***********************************************
|
||||
import { FORM_DATA_DEFAULTS, NUM_METRIC } from './visualizations/shared.helper';
|
||||
|
||||
describe('Groupby', () => {
|
||||
it('Set groupby', () => {
|
||||
@@ -70,7 +89,7 @@ describe('AdhocMetrics', () => {
|
||||
cy.get('[data-test=metrics]').within(() => {
|
||||
cy.get('.select-clear').click();
|
||||
cy.get('.Select-control').click({ force: true });
|
||||
cy.get('input').type('num', { force: true });
|
||||
cy.get('input').type('num{downarrow}', { force: true });
|
||||
cy.get('.VirtualizedSelectFocusedOption')
|
||||
.trigger('mousedown')
|
||||
.click();
|
||||
@@ -80,7 +99,7 @@ describe('AdhocMetrics', () => {
|
||||
cy.get('#adhoc-metric-edit-tabs-tab-SQL').click();
|
||||
cy.get('.ace_content').click();
|
||||
cy.get('.ace_text-input')
|
||||
.type(`{selectall}{backspace}${metric}`, { force: true });
|
||||
.type('/COUNT(DISTINCT name)', { force: true });
|
||||
cy.get('button').contains('Save').click();
|
||||
});
|
||||
|
||||
@@ -207,6 +226,7 @@ describe('Advanced analytics', () => {
|
||||
|
||||
cy.get('span')
|
||||
.contains('Advanced Analytics')
|
||||
.parent()
|
||||
.siblings()
|
||||
.first()
|
||||
.click();
|
||||
@@ -267,3 +287,36 @@ describe('Annotations', () => {
|
||||
cy.get('.nv-legend-text').should('have.length', 2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Time range filter', () => {
|
||||
beforeEach(() => {
|
||||
cy.login();
|
||||
cy.server();
|
||||
cy.route('POST', '/superset/explore_json/**').as('getJson');
|
||||
});
|
||||
|
||||
it('Defaults to the correct tab for time_range params', () => {
|
||||
const formData = {
|
||||
...FORM_DATA_DEFAULTS,
|
||||
metrics: [NUM_METRIC],
|
||||
viz_type: 'line',
|
||||
time_range: '100 years ago : now',
|
||||
};
|
||||
|
||||
cy.visitChartByParams(JSON.stringify(formData));
|
||||
cy.verifySliceSuccess({ waitAlias: '@getJson' });
|
||||
|
||||
cy.get('[data-test=time_range]').within(() => {
|
||||
cy.get('span.label').click();
|
||||
});
|
||||
|
||||
cy.get('#filter-popover').within(() => {
|
||||
cy.get('div.tab-pane.active').within(() => {
|
||||
cy.get('div.PopoverSection :not(.dimmed)').within(() => {
|
||||
cy.get('input[value="100 years ago"]');
|
||||
cy.get('input[value="now"]');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
// ***********************************************
|
||||
// Tests for links in the explore UI
|
||||
// ***********************************************
|
||||
@@ -26,19 +44,22 @@ describe('Test explore links', () => {
|
||||
});
|
||||
|
||||
it('Visit short link', () => {
|
||||
cy.route('POST', 'r/shortner/').as('getShortUrl');
|
||||
|
||||
cy.visitChartByName('Growth Rate');
|
||||
cy.verifySliceSuccess({ waitAlias: '@getJson' });
|
||||
|
||||
cy.get('[data-test=short-link-button]').click();
|
||||
cy.get('#shorturl-popover').within(() => {
|
||||
cy.get('i[title="Copy to clipboard"]')
|
||||
.siblings()
|
||||
.first()
|
||||
.invoke('text')
|
||||
.then((text) => {
|
||||
cy.visit(text);
|
||||
|
||||
// explicitly wait for the url response
|
||||
cy.wait('@getShortUrl');
|
||||
|
||||
cy.wait(100);
|
||||
|
||||
cy.get('#shorturl-popover [data-test="short-url"]').invoke('text')
|
||||
.then((text) => {
|
||||
cy.visit(text);
|
||||
});
|
||||
});
|
||||
cy.verifySliceSuccess({ waitAlias: '@getJson' });
|
||||
});
|
||||
|
||||
@@ -52,7 +73,7 @@ describe('Test explore links', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('Test chart save as', () => {
|
||||
xit('Test chart save as', () => {
|
||||
const formData = {
|
||||
...HEALTH_POP_FORM_DATA_DEFAULTS,
|
||||
viz_type: 'table',
|
||||
@@ -76,7 +97,7 @@ describe('Test explore links', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('Test chart save', () => {
|
||||
xit('Test chart save', () => {
|
||||
const chartName = 'Test chart';
|
||||
cy.visitChartByName(chartName);
|
||||
cy.verifySliceSuccess({ waitAlias: '@getJson' });
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import readResponseBlob from '../../../utils/readResponseBlob';
|
||||
|
||||
export default () => describe('Area', () => {
|
||||
const AREA_FORM_DATA = {
|
||||
datasource: '2__table',
|
||||
@@ -53,11 +73,12 @@ export default () => describe('Area', () => {
|
||||
...AREA_FORM_DATA,
|
||||
groupby: ['region'],
|
||||
});
|
||||
|
||||
cy.get('.nv-area').should('have.length', 7);
|
||||
});
|
||||
|
||||
it('should work with groupby and filter', () => {
|
||||
verify({
|
||||
cy.visitChartByParams(JSON.stringify({
|
||||
...AREA_FORM_DATA,
|
||||
groupby: ['region'],
|
||||
adhoc_filters: [{
|
||||
@@ -70,6 +91,18 @@ export default () => describe('Area', () => {
|
||||
fromFormData: true,
|
||||
filterOptionName: 'filter_txje2ikiv6_wxmn0qwd1xo',
|
||||
}],
|
||||
}));
|
||||
|
||||
cy.wait('@getJson').then(async (xhr) => {
|
||||
cy.verifyResponseCodes(xhr);
|
||||
|
||||
const responseBody = await readResponseBlob(xhr.response.body);
|
||||
|
||||
// Make sure data is sorted correctly
|
||||
const firstRow = responseBody.data[0].values;
|
||||
const secondRow = responseBody.data[1].values;
|
||||
expect(firstRow[firstRow.length - 1].y).to.be.greaterThan(secondRow[secondRow.length - 1].y);
|
||||
cy.verifySliceContainer('svg');
|
||||
});
|
||||
cy.get('.nv-area').should('have.length', 2);
|
||||
});
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
export default () => describe('Big Number', () => {
|
||||
const BIG_NUMBER_FORM_DATA = {
|
||||
datasource: '2__table',
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { FORM_DATA_DEFAULTS, NUM_METRIC } from './shared.helper';
|
||||
import readResponseBlob from '../../../utils/readResponseBlob';
|
||||
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
export default () => describe('Box Plot', () => {
|
||||
const BOX_PLOT_FORM_DATA = {
|
||||
datasource: '2__table',
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
export default () => describe('Bubble', () => {
|
||||
const BUBBLE_FORM_DATA = {
|
||||
datasource: '2__table',
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
export default () => describe('Compare', () => {
|
||||
const COMPARE_FORM_DATA = {
|
||||
datasource: '3__table',
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { FORM_DATA_DEFAULTS, NUM_METRIC } from './shared.helper';
|
||||
|
||||
// Dist bar
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
export default () => describe('Dual Line', () => {
|
||||
const DUAL_LINE_FORM_DATA = {
|
||||
datasource: '3__table',
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
import { FORM_DATA_DEFAULTS } from './shared.helper';
|
||||
|
||||
export default () => describe('FilterBox', () => {
|
||||
const VIZ_DEFAULTS = { ...FORM_DATA_DEFAULTS, viz_type: 'filter_box' };
|
||||
|
||||
function verify(formData) {
|
||||
cy.visitChartByParams(JSON.stringify(formData));
|
||||
cy.verifySliceSuccess({ waitAlias: '@getJson' });
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
cy.server();
|
||||
cy.login();
|
||||
cy.route('POST', '/superset/explore_json/**').as('getJson');
|
||||
});
|
||||
|
||||
it('should work with default date filter', () => {
|
||||
verify(VIZ_DEFAULTS);
|
||||
// Filter box should default to having a date filter with no filter selected
|
||||
cy.get('div.filter_box').within(() => {
|
||||
cy.get('span').contains('No filter');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||