Compare commits
340 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
763a41bcdc | ||
|
|
28611108d7 | ||
|
|
ff4b103025 | ||
|
|
4ecd95a318 | ||
|
|
f3778c3c81 | ||
|
|
cefc206a36 | ||
|
|
875d0b5ad2 | ||
|
|
e8b25988e2 | ||
|
|
21967f40e7 | ||
|
|
a9d7fafd9f | ||
|
|
f6117973e9 | ||
|
|
0511d1f38d | ||
|
|
7dbb45e5fb | ||
|
|
6c3e469154 | ||
|
|
ae50845843 | ||
|
|
459267785f | ||
|
|
d38315a307 | ||
|
|
1aced9b562 | ||
|
|
c18ef89034 | ||
|
|
e30215c3d8 | ||
|
|
42d0597b90 | ||
|
|
3207116535 | ||
|
|
1aaa73b548 | ||
|
|
05061a73ce | ||
|
|
d322e48c57 | ||
|
|
fa3e4e23b3 | ||
|
|
17d6464aa9 | ||
|
|
4c44223234 | ||
|
|
b8aeb1a825 | ||
|
|
b312cdad2f | ||
|
|
973c661501 | ||
|
|
459cb701fb | ||
|
|
a746fce383 | ||
|
|
0e1fb62db2 | ||
|
|
ce0011e5fc | ||
|
|
1c9474b4ff | ||
|
|
9f66dae328 | ||
|
|
5505c116ba | ||
|
|
63115fbb87 | ||
|
|
f52f7aa7cf | ||
|
|
5a64b3f577 | ||
|
|
2ba929ac9e | ||
|
|
2bf53dad98 | ||
|
|
cf374efb3f | ||
|
|
e72c9cded3 | ||
|
|
c2eae96327 | ||
|
|
7b427d7ee0 | ||
|
|
b839608c32 | ||
|
|
7a4a89b195 | ||
|
|
ce710f8c8f | ||
|
|
b391676544 | ||
|
|
071c6a6c03 | ||
|
|
2c5200affd | ||
|
|
ad4912d601 | ||
|
|
7d5195aae3 | ||
|
|
b75942daa5 | ||
|
|
6720255868 | ||
|
|
a8514b267b | ||
|
|
8591319bde | ||
|
|
af4dd59661 | ||
|
|
94249ed20c | ||
|
|
918399d4e2 | ||
|
|
e29beba023 | ||
|
|
75df3d0f8e | ||
|
|
18e67f93de | ||
|
|
65c4499bef | ||
|
|
45ffed9976 | ||
|
|
374482bcde | ||
|
|
f21ba1aba7 | ||
|
|
415d1c092b | ||
|
|
a60d577b7d | ||
|
|
d87504cb42 | ||
|
|
ab958c67e6 | ||
|
|
89333657d8 | ||
|
|
f5b63679e0 | ||
|
|
58a02bba43 | ||
|
|
52a6bd1c7e | ||
|
|
440fb77df5 | ||
|
|
e2d5c33638 | ||
|
|
976e43e681 | ||
|
|
5d6e59aa8a | ||
|
|
e213ccd438 | ||
|
|
fa4acb1bda | ||
|
|
5f6a1cea47 | ||
|
|
13da5a8742 | ||
|
|
9c53323c93 | ||
|
|
8c94e1f710 | ||
|
|
e1d2150391 | ||
|
|
3c7feb770a | ||
|
|
709a71b89a | ||
|
|
31f426664c | ||
|
|
d533ce0967 | ||
|
|
caa72675a5 | ||
|
|
0a953714ac | ||
|
|
510ae84b3b | ||
|
|
f3d756016e | ||
|
|
3f48c005df | ||
|
|
fa3da8c888 | ||
|
|
17ae9ec3a8 | ||
|
|
7139f1e863 | ||
|
|
7193a4719d | ||
|
|
2cd016f11c | ||
|
|
5927e7dfe6 | ||
|
|
590e3462d6 | ||
|
|
370d8a2bbe | ||
|
|
937a5bc85c | ||
|
|
66fcf9b687 | ||
|
|
89347172d2 | ||
|
|
c92b56e2f6 | ||
|
|
e88b0b6c4c | ||
|
|
860a4d9123 | ||
|
|
a98c3cfdef | ||
|
|
a14dc26042 | ||
|
|
e47d8a59a4 | ||
|
|
eac97ce9f2 | ||
|
|
44c2d5bdab | ||
|
|
c0db6dbb57 | ||
|
|
2900ca345d | ||
|
|
3b18fbf9e3 | ||
|
|
23a3365cd1 | ||
|
|
8669874ec6 | ||
|
|
4c268ec678 | ||
|
|
daf9a3bfb5 | ||
|
|
fd84fd89ce | ||
|
|
2f5cff7d9f | ||
|
|
6fd4ff45ea | ||
|
|
b04359003e | ||
|
|
2a95d203ad | ||
|
|
683fb6c251 | ||
|
|
07a5f47c75 | ||
|
|
ae7e114621 | ||
|
|
dadc0574b8 | ||
|
|
725b8f94c9 | ||
|
|
e96590744f | ||
|
|
20f46eede5 | ||
|
|
3c29ca79ae | ||
|
|
adf9ec0bb1 | ||
|
|
7f1d7543d0 | ||
|
|
02a9e37f04 | ||
|
|
1627fd096b | ||
|
|
14bf45da7c | ||
|
|
1e7a294c1f | ||
|
|
64459efebd | ||
|
|
9bbe50f2f6 | ||
|
|
47c085fd00 | ||
|
|
41c158edac | ||
|
|
17e673ec87 | ||
|
|
ee15fc8aa8 | ||
|
|
627bdb2eb3 | ||
|
|
bd2cb9aada | ||
|
|
4f2c2069f1 | ||
|
|
426c34ee86 | ||
|
|
1a26485da4 | ||
|
|
91366799d3 | ||
|
|
59cabe7d8f | ||
|
|
92230b8535 | ||
|
|
df4ff05441 | ||
|
|
68999b1407 | ||
|
|
adda30bf66 | ||
|
|
3b7e0a951a | ||
|
|
9a79d33e0d | ||
|
|
7a497e2f6b | ||
|
|
f6fe11f76e | ||
|
|
aa4173dc81 | ||
|
|
8be0bde683 | ||
|
|
68bfcefb27 | ||
|
|
969ff0ce39 | ||
|
|
ab7ba20009 | ||
|
|
1ef856e57a | ||
|
|
e0f541f486 | ||
|
|
11c9e67ebb | ||
|
|
221b35f36d | ||
|
|
069d61c53f | ||
|
|
b3442a7b53 | ||
|
|
e25535c693 | ||
|
|
d49a0e7958 | ||
|
|
29678680ee | ||
|
|
ed9a56b4ab | ||
|
|
9ee78d16d4 | ||
|
|
f952ec2f06 | ||
|
|
68dec24542 | ||
|
|
7e1b6b7363 | ||
|
|
485b0c275e | ||
|
|
d8d860facc | ||
|
|
8dd052de4b | ||
|
|
f510956da2 | ||
|
|
deb211154d | ||
|
|
f9d85bd2e1 | ||
|
|
52b925fee8 | ||
|
|
336a1064d6 | ||
|
|
4ec82582c6 | ||
|
|
097a37a1a1 | ||
|
|
9abc5c724f | ||
|
|
00cab7e107 | ||
|
|
76394d3f8f | ||
|
|
f11cde9eb8 | ||
|
|
b24a6fd4b5 | ||
|
|
73f7f817d3 | ||
|
|
d427f6a322 | ||
|
|
b9965230df | ||
|
|
ec069676fd | ||
|
|
33aa976e3d | ||
|
|
fc47729233 | ||
|
|
1435840e38 | ||
|
|
8942436ece | ||
|
|
ed9867c0cc | ||
|
|
5c98f5642b | ||
|
|
ba9379b949 | ||
|
|
83f8f98ae3 | ||
|
|
e9b5b1a305 | ||
|
|
97afcd5809 | ||
|
|
3f1dfb3173 | ||
|
|
6875868cf6 | ||
|
|
b906fece68 | ||
|
|
93ec76f757 | ||
|
|
da842f113a | ||
|
|
7da164d386 | ||
|
|
1e0bcba568 | ||
|
|
e2bd40c89f | ||
|
|
7c5bc8d90c | ||
|
|
36fa6cd7df | ||
|
|
7089344623 | ||
|
|
86a03d1dc8 | ||
|
|
3371c8bd5c | ||
|
|
95a9b046f8 | ||
|
|
4250e239a2 | ||
|
|
4e494b264b | ||
|
|
de4409835e | ||
|
|
037c04102f | ||
|
|
1d0ec9fe6e | ||
|
|
882921825c | ||
|
|
9604e1dd14 | ||
|
|
8951990d6e | ||
|
|
26257d94f5 | ||
|
|
2bc089ef8d | ||
|
|
ff41f40721 | ||
|
|
ee073eee23 | ||
|
|
1d27fb30ff | ||
|
|
e1af421f0c | ||
|
|
f9881101ee | ||
|
|
1647004486 | ||
|
|
c6af4882cd | ||
|
|
d522292b01 | ||
|
|
34a081b926 | ||
|
|
4ffc56f1c9 | ||
|
|
c85eea3037 | ||
|
|
3fbadd68a4 | ||
|
|
b512da8002 | ||
|
|
402c7ddb26 | ||
|
|
9edbd64c5d | ||
|
|
42ebcaad40 | ||
|
|
9ad50c9d55 | ||
|
|
31a995714d | ||
|
|
d494c82930 | ||
|
|
0dfa3b99dd | ||
|
|
826d0631e0 | ||
|
|
1e8cd0e61e | ||
|
|
369f652bfc | ||
|
|
b63dc91cd1 | ||
|
|
d817b8ddbb | ||
|
|
ef4e5ecedf | ||
|
|
01e0a2f071 | ||
|
|
2e780e4034 | ||
|
|
71d7196137 | ||
|
|
150768ee30 | ||
|
|
06c5077691 | ||
|
|
2c5adb6dc3 | ||
|
|
6e0ece76a0 | ||
|
|
48430a1918 | ||
|
|
b01a9bba1f | ||
|
|
007ad351cf | ||
|
|
4f7258aaca | ||
|
|
413585448e | ||
|
|
41defdceaa | ||
|
|
2637d3d5e2 | ||
|
|
79bb54a173 | ||
|
|
3a58dc7ecf | ||
|
|
7440d34936 | ||
|
|
764a92cd10 | ||
|
|
849a2cecee | ||
|
|
264822b1ee | ||
|
|
404e2d552a | ||
|
|
8626793655 | ||
|
|
c2b42c49c6 | ||
|
|
83524f97d7 | ||
|
|
bcca1717f2 | ||
|
|
11ea83ecf1 | ||
|
|
56f65158a2 | ||
|
|
2932585c65 | ||
|
|
d57a37e341 | ||
|
|
ff685db4d9 | ||
|
|
094eb71f86 | ||
|
|
e112e4417c | ||
|
|
8aac63e74c | ||
|
|
cacf53c92e | ||
|
|
5830846060 | ||
|
|
0eecec10cd | ||
|
|
a373db24f0 | ||
|
|
c3176579e0 | ||
|
|
d4a2f4ef36 | ||
|
|
b60965b8fa | ||
|
|
5c35a2d210 | ||
|
|
c336fe5707 | ||
|
|
177d7c07e6 | ||
|
|
5768a1fe5e | ||
|
|
d6c197f8ac | ||
|
|
f46bb533cb | ||
|
|
15aa0c5cdd | ||
|
|
88e91e6d8f | ||
|
|
dc48673647 | ||
|
|
7e082968dd | ||
|
|
9478291bf6 | ||
|
|
4ee0833b27 | ||
|
|
6e1d169d0f | ||
|
|
7922ccfddc | ||
|
|
0c87e23877 | ||
|
|
d6f1024d99 | ||
|
|
680bfc1b43 | ||
|
|
1e99f9eb95 | ||
|
|
e943c25790 | ||
|
|
21e495c1ef | ||
|
|
fa0aa33767 | ||
|
|
22d555b14e | ||
|
|
342180b263 | ||
|
|
d2d973153f | ||
|
|
5badec38e4 | ||
|
|
e0bbb0c77e | ||
|
|
db24cef03b | ||
|
|
4a6adb2f27 | ||
|
|
d85cd5a972 | ||
|
|
5305bdb267 | ||
|
|
ae7a9dc63d | ||
|
|
f9106f80fd | ||
|
|
4ff17ffc8d | ||
|
|
1769804ffd | ||
|
|
54d387598d | ||
|
|
5ab4915a1f | ||
|
|
387bf766d3 | ||
|
|
0480fa0121 | ||
|
|
6f1150fef4 |
@@ -1,40 +0,0 @@
|
||||
engines:
|
||||
csslint:
|
||||
enabled: false
|
||||
duplication:
|
||||
enabled: false
|
||||
eslint:
|
||||
enabled: true
|
||||
checks:
|
||||
import/extensions:
|
||||
enabled: false
|
||||
import/no-extraneous-dependencies:
|
||||
enabled: false
|
||||
config:
|
||||
config: superset/assets/.eslintrc
|
||||
pep8:
|
||||
enabled: true
|
||||
fixme:
|
||||
enabled: false
|
||||
radon:
|
||||
enabled: true
|
||||
checks:
|
||||
Complexity:
|
||||
enabled: false
|
||||
ratings:
|
||||
paths:
|
||||
- "**.py"
|
||||
- "superset/assets/**.js"
|
||||
- "superset/assets/**.jsx"
|
||||
exclude_paths:
|
||||
- ".*"
|
||||
- "**.pyc"
|
||||
- "**.gz"
|
||||
- "env/"
|
||||
- "tests/"
|
||||
- "superset/assets/images/"
|
||||
- "superset/assets/vendor/"
|
||||
- "superset/assets/node_modules/"
|
||||
- "superset/assets/javascripts/dist/"
|
||||
- "superset/migrations"
|
||||
- "docs/"
|
||||
@@ -1 +0,0 @@
|
||||
repo_token: 4P9MpvLrZfJKzHdGZsdV3MzO43OZJgYFn
|
||||
6
.gitignore
vendored
@@ -11,6 +11,7 @@ _images
|
||||
_modules
|
||||
superset/bin/supersetc
|
||||
env_py3
|
||||
envpy3
|
||||
.eggs
|
||||
build
|
||||
*.db
|
||||
@@ -26,14 +27,17 @@ app.db
|
||||
*.sqllite
|
||||
.vscode
|
||||
.python-version
|
||||
.tox
|
||||
dump.rdb
|
||||
|
||||
# Node.js, webpack artifacts
|
||||
*.entry.js
|
||||
*.js.map
|
||||
node_modules
|
||||
npm-debug.log*
|
||||
yarn.lock
|
||||
superset/assets/version_info.json
|
||||
|
||||
# IntelliJ
|
||||
*.iml
|
||||
venv
|
||||
@eaDir/
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
doc-warnings: yes
|
||||
test-warnings: no
|
||||
strictness: medium
|
||||
max-line-length: 90
|
||||
uses:
|
||||
- flask
|
||||
autodetect: yes
|
||||
pylint:
|
||||
disable:
|
||||
- cyclic-import
|
||||
- invalid-name
|
||||
- logging-format-interpolation
|
||||
options:
|
||||
docstring-min-length: 10
|
||||
pep8:
|
||||
full: true
|
||||
ignore-paths:
|
||||
- docs
|
||||
- superset/migrations/env.py
|
||||
ignore-patterns:
|
||||
- ^example/doc_.*\.py$
|
||||
- (^|/)docs(/|$)
|
||||
@@ -65,7 +65,7 @@ confidence=
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||
# --disable=W"
|
||||
disable=standarderror-builtin,long-builtin,dict-view-method,intern-builtin,suppressed-message,no-absolute-import,unpacking-in-except,apply-builtin,delslice-method,indexing-exception,old-raise-syntax,print-statement,cmp-builtin,reduce-builtin,useless-suppression,coerce-method,input-builtin,cmp-method,raw_input-builtin,nonzero-method,backtick,basestring-builtin,setslice-method,reload-builtin,oct-method,map-builtin-not-iterating,execfile-builtin,old-octal-literal,zip-builtin-not-iterating,buffer-builtin,getslice-method,metaclass-assignment,xrange-builtin,long-suffix,round-builtin,range-builtin-not-iterating,next-method-called,dict-iter-method,parameter-unpacking,unicode-builtin,unichr-builtin,import-star-module-level,raising-string,filter-builtin-not-iterating,old-ne-operator,using-cmp-argument,coerce-builtin,file-builtin,old-division,hex-method,invalid-unary-operand-type
|
||||
disable=standarderror-builtin,long-builtin,dict-view-method,intern-builtin,suppressed-message,no-absolute-import,unpacking-in-except,apply-builtin,delslice-method,indexing-exception,old-raise-syntax,print-statement,cmp-builtin,reduce-builtin,useless-suppression,coerce-method,input-builtin,cmp-method,raw_input-builtin,nonzero-method,backtick,basestring-builtin,setslice-method,reload-builtin,oct-method,map-builtin-not-iterating,execfile-builtin,old-octal-literal,zip-builtin-not-iterating,buffer-builtin,getslice-method,metaclass-assignment,xrange-builtin,long-suffix,round-builtin,range-builtin-not-iterating,next-method-called,dict-iter-method,parameter-unpacking,unicode-builtin,unichr-builtin,import-star-module-level,raising-string,filter-builtin-not-iterating,old-ne-operator,using-cmp-argument,coerce-builtin,file-builtin,old-division,hex-method,invalid-unary-operand-type,missing-docstring,too-many-lines,duplicate-code
|
||||
|
||||
|
||||
[REPORTS]
|
||||
@@ -277,12 +277,12 @@ ignore-mixin-members=yes
|
||||
# (useful for modules/projects where namespaces are manipulated during runtime
|
||||
# and thus existing member attributes cannot be deduced by static analysis. It
|
||||
# supports qualified module names, as well as Unix pattern matching.
|
||||
ignored-modules=numpy,pandas,alembic.op,sqlalchemy,alembic.context,flask_appbuilder.security.sqla.PermissionView.role,flask_appbuilder.Model.metadata,flask_appbuilder.Base.metadata
|
||||
ignored-modules=numpy,pandas,alembic.op,sqlalchemy,alembic.context,flask_appbuilder.security.sqla.PermissionView.role,flask_appbuilder.Model.metadata,flask_appbuilder.Base.metadata,distutils
|
||||
|
||||
# List of class names for which member attributes should not be checked (useful
|
||||
# for classes with dynamically set attributes). This supports the use of
|
||||
# qualified names.
|
||||
ignored-classes=optparse.Values,thread._local,_thread._local
|
||||
ignored-classes=optparse.Values,thread._local,_thread._local,sqlalchemy.orm.scoping.scoped_session
|
||||
|
||||
# List of members which are set dynamically and missed by pylint inference
|
||||
# system, and so shouldn't trigger E1101 when accessed. Python regular
|
||||
@@ -292,7 +292,7 @@ generated-members=
|
||||
# List of decorators that produce context managers, such as
|
||||
# contextlib.contextmanager. Add to this list to register other decorators that
|
||||
# produce valid context managers.
|
||||
contextmanager-decorators=contextlib.contextmanager
|
||||
contextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
|
||||
55
.travis.yml
@@ -1,31 +1,46 @@
|
||||
language: python
|
||||
python:
|
||||
- 2.7
|
||||
- 3.6
|
||||
services:
|
||||
- redis-server
|
||||
addons:
|
||||
code_climate:
|
||||
repo_token: 5f3a06c425eef7be4b43627d7d07a3e46c45bdc07155217825ff7c49cb6a470c
|
||||
- mysql
|
||||
- postgres
|
||||
- redis-server
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.wheelhouse/
|
||||
env:
|
||||
global:
|
||||
- TRAVIS_CACHE=$HOME/.travis_cache/
|
||||
matrix:
|
||||
- TOX_ENV=flake8
|
||||
- TOX_ENV=javascript
|
||||
- TOX_ENV=pylint
|
||||
- TOX_ENV=py34-postgres
|
||||
- TOX_ENV=py34-sqlite
|
||||
- TOX_ENV=py27-mysql
|
||||
- TOX_ENV=py27-sqlite
|
||||
- pip
|
||||
matrix:
|
||||
include:
|
||||
- python: 2.7
|
||||
env: TOXENV=flake8
|
||||
- python: 2.7
|
||||
env: TOXENV=py27-mysql
|
||||
- python: 2.7
|
||||
env: TOXENV=py27-sqlite
|
||||
- python: 2.7
|
||||
env: TOXENV=pylint
|
||||
- python: 3.6
|
||||
env: TOXENV=flake8
|
||||
- python: 3.6
|
||||
env: TOXENV=javascript
|
||||
- python: 3.6
|
||||
env: TOXENV=py36-postgres
|
||||
- python: 3.6
|
||||
env: TOXENV=py36-sqlite
|
||||
- python: 3.6
|
||||
env: TOXENV=pylint
|
||||
exclude:
|
||||
- python: 2.7
|
||||
- python: 3.6
|
||||
before_script:
|
||||
- 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';"
|
||||
- psql -U postgres -c "CREATE DATABASE superset;"
|
||||
- psql -U postgres -c "CREATE USER postgresuser WITH PASSWORD 'pguserpassword';"
|
||||
- export PATH=${PATH}:/tmp/hive/bin
|
||||
install:
|
||||
- pip install --upgrade pip
|
||||
- pip install tox tox-travis
|
||||
script: tox -e $TOX_ENV
|
||||
- pip install codecov tox
|
||||
script:
|
||||
- tox
|
||||
after_success:
|
||||
- codecov
|
||||
|
||||
403
CHANGELOG.md
@@ -1,5 +1,408 @@
|
||||
## Change Log
|
||||
|
||||
### 0.25.0 (2018/05/08 05:20 +00:00)
|
||||
- [#4942](https://github.com/apache/incubator-superset/pull/4942) [docs] add entry for Hive in installation.rst (#4942) (@mistercrunch)
|
||||
- [#4928](https://github.com/apache/incubator-superset/pull/4928) [sql lab] handle query stop race condition (#4928) (@mistercrunch)
|
||||
- [#4930](https://github.com/apache/incubator-superset/pull/4930) Update installation.rst (#4930) (@vihar)
|
||||
- [#4833](https://github.com/apache/incubator-superset/pull/4833) Merge pull request #4833 from timifasubaa/help_sqllab_forget_the_past (@timifasubaa)
|
||||
- [ab958c6](https://github.com/apache/incubator-superset/commit/ab958c67e6b7fde14e3d79c535045ca87fc5b732) make queries older than 6 hours timeout (@timifasubaa)
|
||||
- [#4939](https://github.com/apache/incubator-superset/pull/4939) Add Portugal to country_map visualization (#4939) (@joaomg)
|
||||
- [#4938](https://github.com/apache/incubator-superset/pull/4938) add Airboxlab to Superset users list (#4938) (@antoine-galataud)
|
||||
- [#4940](https://github.com/apache/incubator-superset/pull/4940) Add Windsor.ai to the list of organizations (#4940) (@octaviancorlade)
|
||||
- [#4899](https://github.com/apache/incubator-superset/pull/4899) rm-slices (#4899) (@hughhhh)
|
||||
- [#4887](https://github.com/apache/incubator-superset/pull/4887) [druid] Updating Druid refresh metadata tests (#4887) (@john-bodley)
|
||||
- [#4900](https://github.com/apache/incubator-superset/pull/4900) Hide restricted ui elements, remove <br> from error message (#4900) (@jasnovak)
|
||||
- [#4923](https://github.com/apache/incubator-superset/pull/4923) Install superset in Kubernetes with helm chart (#4923) (@cychiang)
|
||||
- [#4925](https://github.com/apache/incubator-superset/pull/4925) Support Apache Kylin in EngineSpec (#4925) (@zhaoyongjie)
|
||||
- [#4921](https://github.com/apache/incubator-superset/pull/4921) [bufix] filtered column was removed (#4921) (@mistercrunch)
|
||||
- [#4917](https://github.com/apache/incubator-superset/pull/4917) Add doc entry for BigQuery support (#4917) (@mistercrunch)
|
||||
- [#4918](https://github.com/apache/incubator-superset/pull/4918) Fix typos from linting (#4918) (@mistercrunch)
|
||||
- [#4911](https://github.com/apache/incubator-superset/pull/4911) Fix for week_start_sunday and week_ending_saturday (#4911) (@betodealmeida)
|
||||
- [#4908](https://github.com/apache/incubator-superset/pull/4908) Replace NaN/Infinity with null (#4908) (@betodealmeida)
|
||||
- [#4913](https://github.com/apache/incubator-superset/pull/4913) Fix country_map visualization URL (#4913) (@mistercrunch)
|
||||
- [#4883](https://github.com/apache/incubator-superset/pull/4883) Add note about 0.25.0 upgrade in UPDATING.md (#4883) (@mistercrunch)
|
||||
- [#4897](https://github.com/apache/incubator-superset/pull/4897) Heatmap improvements (#4897) (@mistercrunch)
|
||||
- [#4906](https://github.com/apache/incubator-superset/pull/4906) requirements: bump gunicorn to 19.8.0 (#4906) (@xrmx)
|
||||
- [#4907](https://github.com/apache/incubator-superset/pull/4907) translations: rename pt_BR gettext files (#4907) (@xrmx)
|
||||
- [#4884](https://github.com/apache/incubator-superset/pull/4884) [pylint] prepping for enabling pylint for non-errors (#4884) (@john-bodley)
|
||||
- [#4901](https://github.com/apache/incubator-superset/pull/4901) Fix 'Uncaught TypeError: pe.clamp is not a function' (#4901) (@mistercrunch)
|
||||
- [#4896](https://github.com/apache/incubator-superset/pull/4896) [sql lab] allow stoping 'pending' queries (#4896) (@mistercrunch)
|
||||
- [#4886](https://github.com/apache/incubator-superset/pull/4886) remove hard code http scheme of short url #4656 (#4886) (@ripoul)
|
||||
- [#4891](https://github.com/apache/incubator-superset/pull/4891) Allow limiting rows on Pivot Table (#4891) (@mistercrunch)
|
||||
- [#4890](https://github.com/apache/incubator-superset/pull/4890) [bugfix] temporal columns with expression fail (#4890) (@mistercrunch)
|
||||
- [#4882](https://github.com/apache/incubator-superset/pull/4882) Implement Snowflake engine with supported time grains (#4882) (@villebro)
|
||||
- [#4841](https://github.com/apache/incubator-superset/pull/4841) Move a few JS files (#4841) (@mistercrunch)
|
||||
- [#4872](https://github.com/apache/incubator-superset/pull/4872) Remove spurious "has" from README (#4872) (@davidthewatson)
|
||||
- [#4869](https://github.com/apache/incubator-superset/pull/4869) remove DISTINCT ON statement (#4869) (@stillmatic)
|
||||
- [#4866](https://github.com/apache/incubator-superset/pull/4866) [axis formatting] Override the valueformat to be percentage when contribution is selected (#4866) (@conglei)
|
||||
- [#4836](https://github.com/apache/incubator-superset/pull/4836) Refactoring on exploreReducer.js (#4836) (@hughhhh)
|
||||
- [#4856](https://github.com/apache/incubator-superset/pull/4856) Fix 'pip install .' (#4856) (@mistercrunch)
|
||||
- [#4842](https://github.com/apache/incubator-superset/pull/4842) Safely passing data to d3.html (#4842) (@michellethomas)
|
||||
- [#4867](https://github.com/apache/incubator-superset/pull/4867) Add Astronomer to list of organizations using Apache Superset (#4867) (@ryw)
|
||||
- [#4843](https://github.com/apache/incubator-superset/pull/4843) [formats] add better defaults for time + number formatting (#4843) (@williaster)
|
||||
- [#4853](https://github.com/apache/incubator-superset/pull/4853) [sql] Using read_sql_query instead of read_sql (#4853) (@john-bodley)
|
||||
- [#4854](https://github.com/apache/incubator-superset/pull/4854) correct config language key to pt_BR (#4854) (@pld)
|
||||
- [#4850](https://github.com/apache/incubator-superset/pull/4850) Remove obsolete TODO.md (#4850) (@mistercrunch)
|
||||
- [#4844](https://github.com/apache/incubator-superset/pull/4844) [docs] minor file name and format fix for the setup document (#4844) (@sekikn)
|
||||
- [#4821](https://github.com/apache/incubator-superset/pull/4821) Fix time granularity-related issues (#4821) (@mistercrunch)
|
||||
- [#4829](https://github.com/apache/incubator-superset/pull/4829) ensure directory exists before saving csv file (#4829) (@timifasubaa)
|
||||
- [e47d8a5](https://github.com/apache/incubator-superset/commit/e47d8a59a4773f29e62d9b33d7ad6ad2b343abdd) help sqllab forget the past (@timifasubaa)
|
||||
- [#4651](https://github.com/apache/incubator-superset/pull/4651) [explore] proper filtering of NULLs and '' (#4651) (@mistercrunch)
|
||||
- [#4835](https://github.com/apache/incubator-superset/pull/4835) [setup] Dropping 3.4 and adding 3.6 (#4835) (@john-bodley)
|
||||
- [#4820](https://github.com/apache/incubator-superset/pull/4820) Moving some JS folders (#4820) (@mistercrunch)
|
||||
- [#4828](https://github.com/apache/incubator-superset/pull/4828) [travis] Fixing environments (#4828) (@john-bodley)
|
||||
- [#4831](https://github.com/apache/incubator-superset/pull/4831) db_engine_specs: use correct sqlite week time grain (#4831) (@xrmx)
|
||||
- [#4825](https://github.com/apache/incubator-superset/pull/4825) Update README with fresher screenshots (#4825) (@mistercrunch)
|
||||
- [#4736](https://github.com/apache/incubator-superset/pull/4736) [Explore] Adding custom expressions to adhoc metrics (#4736) (@GabeLoins)
|
||||
- [#4817](https://github.com/apache/incubator-superset/pull/4817) [docs] many improvements to the documentation / cleanup (#4817) (@mistercrunch)
|
||||
- [#4823](https://github.com/apache/incubator-superset/pull/4823) docs: use proper dialect for redshift (#4823) (@xrmx)
|
||||
- [#4702](https://github.com/apache/incubator-superset/pull/4702) RFC: add logger that logs into browser console (#4702) (@betodealmeida)
|
||||
- [#4798](https://github.com/apache/incubator-superset/pull/4798) [DeckGL] Added fixtures and Deck test (#4798) (@hughhhh)
|
||||
- [#4800](https://github.com/apache/incubator-superset/pull/4800) Improve the calendar heatmap (#4800) (@mistercrunch)
|
||||
- [#4746](https://github.com/apache/incubator-superset/pull/4746) Filtering out SQLLab views out of table list view by default (#4746) (@mistercrunch)
|
||||
- [#4815](https://github.com/apache/incubator-superset/pull/4815) [migrations] Fixing issue #4810 (#4815) (@john-bodley)
|
||||
- [#4807](https://github.com/apache/incubator-superset/pull/4807) Make the bottom margin a bit taller (#4807) (@mistercrunch)
|
||||
- [#4801](https://github.com/apache/incubator-superset/pull/4801) [bugfix] dedup groupby columns in Deck visualizations (#4801) (@mistercrunch)
|
||||
- [#4803](https://github.com/apache/incubator-superset/pull/4803) [explore] set working default for MetricsControl (#4803) (@mistercrunch)
|
||||
- [#4806](https://github.com/apache/incubator-superset/pull/4806) [tests] cleaning up test configuration (#4806) (@john-bodley)
|
||||
- [#4659](https://github.com/apache/incubator-superset/pull/4659) Adding tests for the time table viz (#4659) (@michellethomas)
|
||||
- [#3658](https://github.com/apache/incubator-superset/pull/3658) BugFix(#3658) (#4133) (@hidetoshiito)
|
||||
- [#4804](https://github.com/apache/incubator-superset/pull/4804) call next() the right way (#4804) (@timifasubaa)
|
||||
- [#4808](https://github.com/apache/incubator-superset/pull/4808) filter recently viewed to just have explore and dashboard types (#4808) (@hughhhh)
|
||||
- [#4525](https://github.com/apache/incubator-superset/pull/4525) adding option for multiple metrics, group by, opacity, legends (#4525) (@ArielStv)
|
||||
- [#4587](https://github.com/apache/incubator-superset/pull/4587) [logs] Dropping dt column (#4587) (@john-bodley)
|
||||
- [#4802](https://github.com/apache/incubator-superset/pull/4802) [homepage] Fix Favorites chart list (#4802) (@graceguo-supercat)
|
||||
- [#4552](https://github.com/apache/incubator-superset/pull/4552) [travis/tox] Restructuring configuration (#4552) (@john-bodley)
|
||||
- [#4799](https://github.com/apache/incubator-superset/pull/4799) [bugfix] when num_period_compare is not set (#4799) (@mistercrunch)
|
||||
- [#4756](https://github.com/apache/incubator-superset/pull/4756) Improve xAxis ticks, thinner bottom margin (#4756) (@mistercrunch)
|
||||
- [#4792](https://github.com/apache/incubator-superset/pull/4792) Add Ascendica Development in organizations list who use Superset (#4792) (@davidhassan)
|
||||
- [#4774](https://github.com/apache/incubator-superset/pull/4774) [explore] forcing .1% number format when using 'Period Ratio' (#4774) (@mistercrunch)
|
||||
- [#4647](https://github.com/apache/incubator-superset/pull/4647) Add play slider to screengrid (#4647) (@betodealmeida)
|
||||
- [#4781](https://github.com/apache/incubator-superset/pull/4781) Rename UPDATING.MD to UPDATING.md (#4781) (@john-bodley)
|
||||
- [#4765](https://github.com/apache/incubator-superset/pull/4765) [line] fix verbose names in time shift (#4765) (@mistercrunch)
|
||||
- [#4777](https://github.com/apache/incubator-superset/pull/4777) [doc] module header for controls.jsx and visTypes.jsx (#4777) (@mistercrunch)
|
||||
- [#4772](https://github.com/apache/incubator-superset/pull/4772) [dashboard] open in edit mode when adding a chart (#4772) (@mistercrunch)
|
||||
- [#4768](https://github.com/apache/incubator-superset/pull/4768) [Bug fix] Resolving key conflicts in Timeseries Annotation Layer when key is a string (#4768) (@EvelynTurner)
|
||||
- [#4767](https://github.com/apache/incubator-superset/pull/4767) Improve controls layout for Table visualization (#4767) (@mistercrunch)
|
||||
- [#4755](https://github.com/apache/incubator-superset/pull/4755) Pass granularity from backend to frontend as ISO duration (#4755) (@betodealmeida)
|
||||
- [#4773](https://github.com/apache/incubator-superset/pull/4773) Fix brush with annotations (#4773) (@betodealmeida)
|
||||
- [#4778](https://github.com/apache/incubator-superset/pull/4778) Add notes to contrib file about testing and code coverage (#4778) (@ttannis)
|
||||
- [#4766](https://github.com/apache/incubator-superset/pull/4766) [explore] set control default for *showminmax = false (#4766) (@mistercrunch)
|
||||
- [#4673](https://github.com/apache/incubator-superset/pull/4673) Add context to templates / respect slice timeout (#4673) (@daoready)
|
||||
- [#4761](https://github.com/apache/incubator-superset/pull/4761) [druid] Excluding refreshing verbose name (#4761) (@john-bodley)
|
||||
- [#4754](https://github.com/apache/incubator-superset/pull/4754) [deck_multi] fixing issues with deck_multi (#4754) (@mistercrunch)
|
||||
- [#4741](https://github.com/apache/incubator-superset/pull/4741) Set longer CSRF token duration (one week) (#4741) (@mistercrunch)
|
||||
- [#4742](https://github.com/apache/incubator-superset/pull/4742) [sql lab] preserve schema through visualize flow (#4742) (@mistercrunch)
|
||||
- [#4005](https://github.com/apache/incubator-superset/pull/4005) [BUGFIX]: JavaScripts max int is 2^53 - 1, longs are bigger (#4005) (@fabianmenges)
|
||||
- [#4728](https://github.com/apache/incubator-superset/pull/4728) [sql_lab]Disabled run query button if sql query editor is empty (#4728) (@lprashant-94)
|
||||
- [#4726](https://github.com/apache/incubator-superset/pull/4726) [bugfix] convert metrics to numeric in dataframe (#4726) (@mistercrunch)
|
||||
- [#4648](https://github.com/apache/incubator-superset/pull/4648) Pass timezone to Druid Query granularity (#4648) (@ktong)
|
||||
- [#4646](https://github.com/apache/incubator-superset/pull/4646) [BugFix] Allowing limit ordering by post-aggregation metrics (#4646) (@jeffreythewang)
|
||||
- [#4603](https://github.com/apache/incubator-superset/pull/4603) [flask-appbuilder] Bumping version to 1.10.0 (#4603) (@john-bodley)
|
||||
- [#4730](https://github.com/apache/incubator-superset/pull/4730) Fix deep equality logic (#4730) (@mistercrunch)
|
||||
- [#4654](https://github.com/apache/incubator-superset/pull/4654) Expose metrics to JS (#4654) (@betodealmeida)
|
||||
- [#4718](https://github.com/apache/incubator-superset/pull/4718) including auto generated avg metrics in druid (#4718) (@GabeLoins)
|
||||
- [#4738](https://github.com/apache/incubator-superset/pull/4738) easier tab closing in sqllab (#4738) (@GabeLoins)
|
||||
- [#4729](https://github.com/apache/incubator-superset/pull/4729) [explore] don't prompt to 'Run Query' on viewport change (#4729) (@mistercrunch)
|
||||
- [#4720](https://github.com/apache/incubator-superset/pull/4720) Add '.1%' to number format options (#4720) (@mistercrunch)
|
||||
- [#4717](https://github.com/apache/incubator-superset/pull/4717) [sqllab] fix data grid's instant search function (#4717) (@mistercrunch)
|
||||
- [#4451](https://github.com/apache/incubator-superset/pull/4451) [cli] Deprecating gunicorn/flower dependencies (#4451) (@john-bodley)
|
||||
- [#4689](https://github.com/apache/incubator-superset/pull/4689) Remove redundant has_access definition in superset (#4689) (@timifasubaa)
|
||||
- [#4669](https://github.com/apache/incubator-superset/pull/4669) [sqllab] Using app context for Celery task (#4669) (@john-bodley)
|
||||
- [#4693](https://github.com/apache/incubator-superset/pull/4693) Use 3 letters month prefix in default date format (#4693) (@mistercrunch)
|
||||
- [#4719](https://github.com/apache/incubator-superset/pull/4719) [sql lab] ctrl-r hotkey should run latest SQL (#4719) (@mistercrunch)
|
||||
- [#4714](https://github.com/apache/incubator-superset/pull/4714) Add missing perms to sql_lab role (#4714) (@mistercrunch)
|
||||
- [#4709](https://github.com/apache/incubator-superset/pull/4709) Remove trailing '/' from Mailing list link in README file (#4709) (@Alagappan)
|
||||
- [#4663](https://github.com/apache/incubator-superset/pull/4663) [Explore] Streamlined metric definitions for SQLA and Druid (#4663) (@GabeLoins)
|
||||
- [#4703](https://github.com/apache/incubator-superset/pull/4703) Rename no_reload (#4703) (@betodealmeida)
|
||||
- [#4700](https://github.com/apache/incubator-superset/pull/4700) Fixing label issue when columnType is null (#4700) (@michellethomas)
|
||||
- [#4687](https://github.com/apache/incubator-superset/pull/4687) i18n(es_es) (#4687) (@joebordes)
|
||||
- [#4565](https://github.com/apache/incubator-superset/pull/4565) [security] Refactor security code into SupersetSecurityManager (#4565) (@timifasubaa)
|
||||
- [#4680](https://github.com/apache/incubator-superset/pull/4680) Hotkeys in SQL Lab (#4680) (@mistercrunch)
|
||||
- [#4697](https://github.com/apache/incubator-superset/pull/4697) Docs on how to package a release + CHANGELOG for 0.24.0 (#4697) (@mistercrunch)
|
||||
### 0.24.0 (2018/03/27 06:50 +00:00)
|
||||
- [#4655](https://github.com/apache/incubator-superset/pull/4655) [druid] Updating refresh logic (#4655) (@john-bodley)
|
||||
- [#4683](https://github.com/apache/incubator-superset/pull/4683) Fix bug with sorting columns in group by using time shift (#4683) (@michellethomas)
|
||||
- [#4645](https://github.com/apache/incubator-superset/pull/4645) CRUD hints around SQL expressions (#4645) (@mistercrunch)
|
||||
- [#4686](https://github.com/apache/incubator-superset/pull/4686) Preprocess SQL Lab query prior to checking syntax (#4686) (@villebro)
|
||||
- [#4684](https://github.com/apache/incubator-superset/pull/4684) Fix up the Lyft color scheme (#4684) (@mistercrunch)
|
||||
- [#4682](https://github.com/apache/incubator-superset/pull/4682) Add lyftColor to the game 💯 (#4682) (@hughhhh)
|
||||
- [#4679](https://github.com/apache/incubator-superset/pull/4679) add yarn lock info to contributing.md (#4679) (@timifasubaa)
|
||||
- [#4639](https://github.com/apache/incubator-superset/pull/4639) forms: make csv import parse dates accepts a list of columns (#4639) (@xrmx)
|
||||
- [#4674](https://github.com/apache/incubator-superset/pull/4674) add yarn.lock (#4674) (@timifasubaa)
|
||||
- [#4676](https://github.com/apache/incubator-superset/pull/4676) Fix setup.py, comma makes download_url a tuple (#4676) (@mistercrunch)
|
||||
- [#4630](https://github.com/apache/incubator-superset/pull/4630) [Bug fix] Fixed/Refactored annotation layer code so that non-timeseries annotations are applied based on the updated chart object after adding all data (#4630) (@EvelynTurner)
|
||||
- [#4670](https://github.com/apache/incubator-superset/pull/4670) Update messages.po (#4670) (@aleksi75)
|
||||
- [#4664](https://github.com/apache/incubator-superset/pull/4664) fix: epoch_s and epoch_ms to date time (#4664) (@deatheyes)
|
||||
- [#4660](https://github.com/apache/incubator-superset/pull/4660) Better default for MAPBOX_API_KEY (#4660) (@betodealmeida)
|
||||
- [#4633](https://github.com/apache/incubator-superset/pull/4633) Cache the query string (#4633) (@jeffreythewang)
|
||||
- [#4628](https://github.com/apache/incubator-superset/pull/4628) [sql lab] search to use fist&last name instead of username (#4628) (@mistercrunch)
|
||||
- [#4608](https://github.com/apache/incubator-superset/pull/4608) Set filter_select_enabled default to True for Druid (#4608) (@mistercrunch)
|
||||
- [#4555](https://github.com/apache/incubator-superset/pull/4555) [examples] let's not use 'date' as a col name (#4555) (@mistercrunch)
|
||||
- [#4606](https://github.com/apache/incubator-superset/pull/4606) Use 'count' as the default metric when available (#4606) (@mistercrunch)
|
||||
- [#4629](https://github.com/apache/incubator-superset/pull/4629) Fix sqllab numpy array (#4629) (@michellethomas)
|
||||
- [#4601](https://github.com/apache/incubator-superset/pull/4601) Only show overlay if container is set (#4601) (@betodealmeida)
|
||||
- [#4638](https://github.com/apache/incubator-superset/pull/4638) [cosmetic] removing table border in ModelView list (#4638) (@mistercrunch)
|
||||
- [#4641](https://github.com/apache/incubator-superset/pull/4641) part1 (#4641) (@hughhhh)
|
||||
- [#4632](https://github.com/apache/incubator-superset/pull/4632) Adding to list of generated-members to fix pylint errors (#4632) (@michellethomas)
|
||||
- [#4566](https://github.com/apache/incubator-superset/pull/4566) Adding column type label to dropdowns (#4566) (@michellethomas)
|
||||
- [#4627](https://github.com/apache/incubator-superset/pull/4627) Merge pull request #4627 from mistercrunch/fix_run_extra (@mistercrunch)
|
||||
- [b906fec](https://github.com/apache/incubator-superset/commit/b906fece68bee8ccfba4d1f46da2221c37b5d0fa) Move run_extra_queries outsize of BaseViz init (@mistercrunch)
|
||||
- [#4593](https://github.com/apache/incubator-superset/pull/4593) [sql lab] reduce the number of metadata calls when loading a table (#4593) (@mistercrunch)
|
||||
- [#4620](https://github.com/apache/incubator-superset/pull/4620) Fix function name (#4620) (@betodealmeida)
|
||||
- [#4622](https://github.com/apache/incubator-superset/pull/4622) Remove group by from deck.gl viz (#4622) (@betodealmeida)
|
||||
- [#4617](https://github.com/apache/incubator-superset/pull/4617) Allowing config flag to turn off flask-compress (#4617) (@mistercrunch)
|
||||
- [#4194](https://github.com/apache/incubator-superset/pull/4194) [bug fixes] annotations x domains, zeros in text (#4194) (@williaster)
|
||||
- [#4621](https://github.com/apache/incubator-superset/pull/4621) fix mapbox viz (#4621) (@graceguo-supercat)
|
||||
- [#4616](https://github.com/apache/incubator-superset/pull/4616) [contributing] Removing obsolete code climate reference (#4616) (@john-bodley)
|
||||
- [#4572](https://github.com/apache/incubator-superset/pull/4572) Legend for deck.gl scatterplot (#4572) (@betodealmeida)
|
||||
- [#4604](https://github.com/apache/incubator-superset/pull/4604) Show "Range Filter" by default (#4604) (@betodealmeida)
|
||||
- [#4609](https://github.com/apache/incubator-superset/pull/4609) overriding annotation and layers control tab (#4609) (@GabeLoins)
|
||||
- [#4607](https://github.com/apache/incubator-superset/pull/4607) [slice_json] pass slice id to get_form_data() (#4607) (@williaster)
|
||||
- [#4590](https://github.com/apache/incubator-superset/pull/4590) Merge pull request #4590 from michellethomas/fixing_double_escape_presto (@michellethomas)
|
||||
- [#4579](https://github.com/apache/incubator-superset/pull/4579) Merge pull request #4579 from michellethomas/removing_title_label (@michellethomas)
|
||||
- [#4573](https://github.com/apache/incubator-superset/pull/4573) Merge pull request #4573 from john-bodley/john-bodley-cache-fix-datasource-uid (@john-bodley)
|
||||
- [#4602](https://github.com/apache/incubator-superset/pull/4602) Merge pull request #4602 from john-bodley/john-bodley-druid-sync-fix-filter (@john-bodley)
|
||||
|
||||
### 0.23.3 (2018/03/13 17:14 +00:00)
|
||||
- [#4581](https://github.com/apache/incubator-superset/pull/4581) timeseries_limit should not be required for phase 2 (#4581) (@michellethomas)
|
||||
- [8829218](https://github.com/apache/incubator-superset/commit/882921825ca6508b598dee52c9dea73e54982b1b) Changing the title for explore pages (@michellethomas)
|
||||
- [9604e1d](https://github.com/apache/incubator-superset/commit/9604e1dd1466521c0de4e81b53f2b1ae61b88942) [druid] Adding cluster filter for refresh
|
||||
- [#4597](https://github.com/apache/incubator-superset/pull/4597) [BugFix] Resizing widgets problem #4596 (#4597) (@oxydash)
|
||||
- [26257d9](https://github.com/apache/incubator-superset/commit/26257d94f5f43a5d3b745c1b08a29cc40980f211) [cache] Ensuring that the datasource UID is defined
|
||||
- [#4514](https://github.com/apache/incubator-superset/pull/4514) Added new exception class and start of better exception/error handling (#4514) (@hughhhh)
|
||||
- [#4599](https://github.com/apache/incubator-superset/pull/4599) Add ignore git @eaDir Synology directory (#4599) (@oxydash)
|
||||
- [#4591](https://github.com/apache/incubator-superset/pull/4591) Add Aktia Bank in organizations list who use Superset (#4591) (@villebro)
|
||||
- [#4594](https://github.com/apache/incubator-superset/pull/4594) docs: fixup code blocks rendering (#4594) (@xrmx)
|
||||
- [e1af421](https://github.com/apache/incubator-superset/commit/e1af421f0c7426391e7124d1bae5aae9f8a49792) Removing escape_sql so we dont double escape (@michellethomas)
|
||||
- [#4532](https://github.com/apache/incubator-superset/pull/4532) histograms: fixup left margin assigment (#4532) (@xrmx)
|
||||
- [#4504](https://github.com/apache/incubator-superset/pull/4504) Return time in Druid scan (#4504) (@betodealmeida)
|
||||
- [#4584](https://github.com/apache/incubator-superset/pull/4584) [sqllab] Added share button to bottom menu (#4584) (@hughhhh)
|
||||
- [#4551](https://github.com/apache/incubator-superset/pull/4551) [sql lab] option to disable cross schema search (#4551) (@mistercrunch)
|
||||
- [#4585](https://github.com/apache/incubator-superset/pull/4585) [sql lab] comment injection hook (#4585) (@mistercrunch)
|
||||
- [#4586](https://github.com/apache/incubator-superset/pull/4586) [Translate] Added Full Russian Translation (#4586) (@oxydash)
|
||||
- [#4582](https://github.com/apache/incubator-superset/pull/4582) Merge pull request #4582 from john-bodley/john-bodley-javascript-codecov (@john-bodley)
|
||||
- [3fbadd6](https://github.com/apache/incubator-superset/commit/3fbadd68a471e4dcbdc8f0d37352af9c556e4e94) [code-climate] Deprecating Code Climate from JavaScript tests
|
||||
- [#4570](https://github.com/apache/incubator-superset/pull/4570) Adding option to visualize negative values in Table view (#4570) (@tanvach)
|
||||
- [402c7dd](https://github.com/apache/incubator-superset/commit/402c7ddb26399d4ef984bcf786e2514eaeb7f355) Removing [dashboard] and [slice] titles to show name (@michellethomas)
|
||||
- [#4578](https://github.com/apache/incubator-superset/pull/4578) [Explore] Save custom url parameters when user save slices (#4578) (@graceguo-supercat)
|
||||
- [#4550](https://github.com/apache/incubator-superset/pull/4550) Evelynturner/annotation timezone fix2 (#4550) (@EvelynTurner)
|
||||
- [#4472](https://github.com/apache/incubator-superset/pull/4472) Basic Portuguese Brazilian Translation (#4472) (@AcNeidert)
|
||||
- [#4562](https://github.com/apache/incubator-superset/pull/4562) [bug] Fix CSV upload feature for DB with password (#4562) (@ktravis)
|
||||
- [#4563](https://github.com/apache/incubator-superset/pull/4563) [landscape.io] Deprecating .landscape.yml (#4563) (@john-bodley)
|
||||
- [#4564](https://github.com/apache/incubator-superset/pull/4564) [requires.io] Removing obsolete requires.io link (#4564) (@john-bodley)
|
||||
- [#4567](https://github.com/apache/incubator-superset/pull/4567) Merge pull request #4567 from john-bodley/john-bodley-payload-error-status-code (@john-bodley)
|
||||
- [1e8cd0e](https://github.com/apache/incubator-superset/commit/1e8cd0e61e7bb442af7eab9997da487a82c91673) [payload] Set status code on error rather than query status
|
||||
- [#4560](https://github.com/apache/incubator-superset/pull/4560) [bug] fix shortener url (#4560) (@graceguo-supercat)
|
||||
- [#4505](https://github.com/apache/incubator-superset/pull/4505) Expose hook to inject database connection logic on the fly (#4505) (@mistercrunch)
|
||||
- [#4543](https://github.com/apache/incubator-superset/pull/4543) Setting up compression using flask-compress (#4543) (@mistercrunch)
|
||||
- [#4549](https://github.com/apache/incubator-superset/pull/4549) [bugfix] Fixing regression from #4500 (#4549) (@john-bodley)
|
||||
- [#4553](https://github.com/apache/incubator-superset/pull/4553) [landing] Making Dashboards the first/default tab (#4553) (@john-bodley)
|
||||
- [#4542](https://github.com/apache/incubator-superset/pull/4542) Removing files from MANIFEST.in (#4542) (@mistercrunch)
|
||||
- [#4533](https://github.com/apache/incubator-superset/pull/4533) Merge pull request #4533 from john-bodley/john-bodley-replace-coveralls-with-codecov (@john-bodley)
|
||||
- [#4530](https://github.com/apache/incubator-superset/pull/4530) [presto] Removing patched presto (#4530) (@john-bodley)
|
||||
- [#4536](https://github.com/apache/incubator-superset/pull/4536) [dump.rdb] Removing rouge file (#4536) (@john-bodley)
|
||||
- [#4541](https://github.com/apache/incubator-superset/pull/4541) Add ScopeAI (#4541) (@lucianoiscool)
|
||||
|
||||
### 0.23.1 (2018/03/06 06:41 +00:00)
|
||||
- [#4534](https://github.com/apache/incubator-superset/pull/4534) Merge pull request #4534 from john-bodley/john-bodley-setup-url (@john-bodley)
|
||||
|
||||
### 0.23.0 (2018/03/06 00:59 +00:00)
|
||||
- [#4500](https://github.com/apache/incubator-superset/pull/4500) Merge pull request #4500 from john-bodley/john-bodley-fix-pr-4396 (@john-bodley)
|
||||
- [b01a9bb](https://github.com/apache/incubator-superset/commit/b01a9bba1f2043435e6fc1b189661e27b7dbbaea) [setup] Fixing URLs
|
||||
- [#4538](https://github.com/apache/incubator-superset/pull/4538) Pass datasource as form_data param (#4538) (@Pek1s)
|
||||
- [4f7258a](https://github.com/apache/incubator-superset/commit/4f7258aacaa5acf37c64769fa18da57f7dbd606e) [coverage] Replacing coveralls with codecov
|
||||
- [#4513](https://github.com/apache/incubator-superset/pull/4513) Superset issue #4512: fixing histogram (#4513) (@ArielStv)
|
||||
- [#4511](https://github.com/apache/incubator-superset/pull/4511) Fix how the annotation layer interpretes the timestamp string without timezone info; use it as UTC (#4511) (@EvelynTurner)
|
||||
- [#4515](https://github.com/apache/incubator-superset/pull/4515) [dashboard] (#4515) (@graceguo-supercat)
|
||||
- [#4482](https://github.com/apache/incubator-superset/pull/4482) chart style options get their own tab (#4482) (@GabeLoins)
|
||||
- [#4487](https://github.com/apache/incubator-superset/pull/4487) Make margin width based on container width instead of slice width (#4487) (@jeffreythewang)
|
||||
- [7440d34](https://github.com/apache/incubator-superset/commit/7440d34936784283f692a39402bcb11a9eeaa6a3) [payload] Fixing regression introducted in ##4396
|
||||
- [#4486](https://github.com/apache/incubator-superset/pull/4486) [Explore] applying refresh chart overlay when chart is stale (#4486) (@GabeLoins)
|
||||
- [#4480](https://github.com/apache/incubator-superset/pull/4480) Add https support for Druid (#4480) (@mistercrunch)
|
||||
- [#4491](https://github.com/apache/incubator-superset/pull/4491) Introduce an onInit method for when a new viz_type is selected (#4491) (@mistercrunch)
|
||||
- [#4488](https://github.com/apache/incubator-superset/pull/4488) fixes to csv - hive upload (#4488) (@timifasubaa)
|
||||
- [#4469](https://github.com/apache/incubator-superset/pull/4469) check for access before requesting access (#4469) (@timifasubaa)
|
||||
- [#4496](https://github.com/apache/incubator-superset/pull/4496) Change limit form 50k to 10k (#4496) (@mistercrunch)
|
||||
- [#4490](https://github.com/apache/incubator-superset/pull/4490) [WiP] Cleanup & fix URL scheme for the explore view (#4490) (@mistercrunch)
|
||||
- [#4485](https://github.com/apache/incubator-superset/pull/4485) [dashboard] Fix JS error when position_json data is empty (#4485) (@graceguo-supercat)
|
||||
- [#4463](https://github.com/apache/incubator-superset/pull/4463) New Landing Page v1.0 (#4463) (@hughhhh)
|
||||
- [#4459](https://github.com/apache/incubator-superset/pull/4459) [Explore] highlighting run query when chart is stale on explore view (#4459) (@GabeLoins)
|
||||
- [#4467](https://github.com/apache/incubator-superset/pull/4467) [geo] add controls for minRadiusPixels and maxRadiusPixels in deck_scatter (#4467) (@mistercrunch)
|
||||
- [#4477](https://github.com/apache/incubator-superset/pull/4477) [flake8] Adding flake8-coding (#4477) (@john-bodley)
|
||||
- [#4478](https://github.com/apache/incubator-superset/pull/4478) add organization (#4478) (@ailurus1991)
|
||||
- [#4466](https://github.com/apache/incubator-superset/pull/4466) [FilterBox] Make filterbox localizable (#4466) (@raffas)
|
||||
- [#4476](https://github.com/apache/incubator-superset/pull/4476) [flake8] Adding future-import check (#4476) (@john-bodley)
|
||||
- [#4474](https://github.com/apache/incubator-superset/pull/4474) [flake8] Fixing additional flake8 issue w/ the presence of ignore (#4474) (@john-bodley)
|
||||
- [#4475](https://github.com/apache/incubator-superset/pull/4475) Pass param of limit for recent activity (#4475) (@hughhhh)
|
||||
- [#4461](https://github.com/apache/incubator-superset/pull/4461) [hotfix] resolve utf-8 encoding issue in db migration (#4461) (@timifasubaa)
|
||||
- [#4457](https://github.com/apache/incubator-superset/pull/4457) [explore] allow URL shortner even if no slice exist (#4457) (@mistercrunch)
|
||||
- [#4400](https://github.com/apache/incubator-superset/pull/4400) Allowing config flag to turn off javascript controls (#4400) (@mistercrunch)
|
||||
- [#4449](https://github.com/apache/incubator-superset/pull/4449) Make instant controls store state in URL (#4449) (@betodealmeida)
|
||||
- [#4454](https://github.com/apache/incubator-superset/pull/4454) Make npm run dev-fast the default (#4454) (@mistercrunch)
|
||||
- [#4456](https://github.com/apache/incubator-superset/pull/4456) [gitignore] Adding venv to .gitignore (#4456) (@GabeLoins)
|
||||
- [#4444](https://github.com/apache/incubator-superset/pull/4444) A collection of bug fixes (#4444) (@mistercrunch)
|
||||
- [#4455](https://github.com/apache/incubator-superset/pull/4455) fixing spacing issue on internationalization dropdown (#4455) (@GabeLoins)
|
||||
- [#4452](https://github.com/apache/incubator-superset/pull/4452) [bugfix] address issue 4206 (#4452) (@mistercrunch)
|
||||
- [#4446](https://github.com/apache/incubator-superset/pull/4446) for 48 columns layout, adjust default size and layout for newly added slices (#4446) (@graceguo-supercat)
|
||||
- [#4413](https://github.com/apache/incubator-superset/pull/4413) Remove comments from queries in SQL Lab that break Explore view (#4413) (@villebro)
|
||||
- [#4450](https://github.com/apache/incubator-superset/pull/4450) fix typo. "グルプ分け可能" => "グループ分け可能" (#4450) (@m4neda)
|
||||
- [#4447](https://github.com/apache/incubator-superset/pull/4447) remove html tag in timeout error message (#4447) (@graceguo-supercat)
|
||||
- [#4442](https://github.com/apache/incubator-superset/pull/4442) Improve default placeholder text on SelectControl (#4442) (@mistercrunch)
|
||||
- [#4448](https://github.com/apache/incubator-superset/pull/4448) Removed double call to ConnectorRegistry.sources (#4448) (@villebro)
|
||||
- [#4408](https://github.com/apache/incubator-superset/pull/4408) Add link on how to get permission to permission error (#4408) (@timifasubaa)
|
||||
- [#4434](https://github.com/apache/incubator-superset/pull/4434) Added Example snippet for setting up Redis cache (#4434) (@hughhhh)
|
||||
- [#4336](https://github.com/apache/incubator-superset/pull/4336) Play scrubber (#4336) (@betodealmeida)
|
||||
- [#4430](https://github.com/apache/incubator-superset/pull/4430) Change current thumbnails to smaller ones. (#4430) (@mistercrunch)
|
||||
- [#4436](https://github.com/apache/incubator-superset/pull/4436) Pass in cache timeout for async queries (#4436) (@jeffreythewang)
|
||||
- [#4437](https://github.com/apache/incubator-superset/pull/4437) Fix separator visualization by propagating header height (#4437) (@jaylindquist)
|
||||
- [#4438](https://github.com/apache/incubator-superset/pull/4438) Make chart title backgrounds transparent to prevent buttonface color in IE (#4438) (@jaylindquist)
|
||||
- [#4416](https://github.com/apache/incubator-superset/pull/4416) [dashboard] more granular grid layout (#4416) (@mistercrunch)
|
||||
- [#4432](https://github.com/apache/incubator-superset/pull/4432) Added check cache key util (#4432) (@hughhhh)
|
||||
- [#4418](https://github.com/apache/incubator-superset/pull/4418) Updated Italian Translation (#4418) (@raffas)
|
||||
- [#4431](https://github.com/apache/incubator-superset/pull/4431) Add .1s option to D3 Format dropdown (#4431) (@raffas)
|
||||
- [#4405](https://github.com/apache/incubator-superset/pull/4405) Disable user access request (#4405) (@timifasubaa)
|
||||
- [#4427](https://github.com/apache/incubator-superset/pull/4427) Bump dependencies with security issues (#4427) (@xrmx)
|
||||
- [#3993](https://github.com/apache/incubator-superset/pull/3993) [Explore view] Use POST method for charting requests (#3993) (@graceguo-supercat)
|
||||
- [#4410](https://github.com/apache/incubator-superset/pull/4410) Unset 'series limit' default from 50 to null (#4410) (@mistercrunch)
|
||||
- [#4411](https://github.com/apache/incubator-superset/pull/4411) use full path in case of there are query params (#4411) (@Chun-LingChen)
|
||||
- [#4389](https://github.com/apache/incubator-superset/pull/4389) [geo] introduce "Auto Zoom" control (#4389) (@mistercrunch)
|
||||
- [#4401](https://github.com/apache/incubator-superset/pull/4401) [SqlLab] Fix a few UI issues (#4401) (@graceguo-supercat)
|
||||
- [#4404](https://github.com/apache/incubator-superset/pull/4404) Check class name string instead of checking the instance (#4404) (@mxmzdlv)
|
||||
- [#4380](https://github.com/apache/incubator-superset/pull/4380) [error handling] 'Time Comparison' query returns no data (#4380) (@mistercrunch)
|
||||
- [#4383](https://github.com/apache/incubator-superset/pull/4383) Typo fix: dashbaord -> dashboard. (#4383) (@xiaohanyu)
|
||||
- [#4396](https://github.com/apache/incubator-superset/pull/4396) Fix markup broken since cache related changes (#4396) (@mistercrunch)
|
||||
- [#4178](https://github.com/apache/incubator-superset/pull/4178) Add PeopleDoc in organizations list who use superset (#4178) (@rodo)
|
||||
- [#4390](https://github.com/apache/incubator-superset/pull/4390) Fix 4 security vulnerabilities (#4390) (@ddworken-sc)
|
||||
- [#4349](https://github.com/apache/incubator-superset/pull/4349) Minor fixes to sunburst (#4349) (@mistercrunch)
|
||||
- [#4346](https://github.com/apache/incubator-superset/pull/4346) Add permission checks to save_or_overwrite_slice (#4346) (@jaylindquist)
|
||||
- [#4388](https://github.com/apache/incubator-superset/pull/4388) Remove permission check for frontend logging API (#4388) (@graceguo-supercat)
|
||||
- [#4353](https://github.com/apache/incubator-superset/pull/4353) Superset issue #4323 (#4353) (@maver1ck)
|
||||
- [#4377](https://github.com/apache/incubator-superset/pull/4377) Bump pydruid to 0.4.1 (#4377) (@mistercrunch)
|
||||
- [#4359](https://github.com/apache/incubator-superset/pull/4359) [revert] Reverting PR #4062 (#4359) (@john-bodley)
|
||||
- [#4316](https://github.com/apache/incubator-superset/pull/4316) Fix caching issues (#4316) (@mistercrunch)
|
||||
- [#4372](https://github.com/apache/incubator-superset/pull/4372) Set default row_limit to 50k (#4372) (@mistercrunch)
|
||||
- [#4363](https://github.com/apache/incubator-superset/pull/4363) [line] improve feature (#4363) (@mistercrunch)
|
||||
- [#4373](https://github.com/apache/incubator-superset/pull/4373) Remove dangerouslySetInnerHTML in StackTraceMessage component (#4373) (@mistercrunch)
|
||||
- [#4341](https://github.com/apache/incubator-superset/pull/4341) Bump python dependencies (#4341) (@mistercrunch)
|
||||
- [#4333](https://github.com/apache/incubator-superset/pull/4333) Add hour grain to Sqlite (#4333) (@betodealmeida)
|
||||
- [#4358](https://github.com/apache/incubator-superset/pull/4358) [druid] fix bug around handling NULLs (#4358) (@mistercrunch)
|
||||
- [#4368](https://github.com/apache/incubator-superset/pull/4368) Add ipdb to dev dependencies. (#4368) (@xiaohanyu)
|
||||
- [#4319](https://github.com/apache/incubator-superset/pull/4319) convert postgresql date_trunc() to UTC to prevent pandas error (#4319) (@habalux)
|
||||
- [#4367](https://github.com/apache/incubator-superset/pull/4367) Remove useless empty npm-debug.log (#4367) (@xiaohanyu)
|
||||
- [#4364](https://github.com/apache/incubator-superset/pull/4364) New options for european time format in in D3_TIME_FORMAT_OPTIONS (#4364) (@raffas)
|
||||
- [#4344](https://github.com/apache/incubator-superset/pull/4344) Adding dashboard add view (#4344) (@michellethomas)
|
||||
- [#4345](https://github.com/apache/incubator-superset/pull/4345) fix uri form data' (#4345) (@timifasubaa)
|
||||
- [#4337](https://github.com/apache/incubator-superset/pull/4337) read query params for json in dashboard endpoint (#4337) (@hughhhh)
|
||||
- [#4339](https://github.com/apache/incubator-superset/pull/4339) 1. fix check filters change logic (#4339) (@graceguo-supercat)
|
||||
- [#4338](https://github.com/apache/incubator-superset/pull/4338) Fix the bug of charts/slices cannot be filtered by datasource name. (#4338) (@liutgnu)
|
||||
- [#4298](https://github.com/apache/incubator-superset/pull/4298) Refactor import csv (#4298) (@timifasubaa)
|
||||
- [#3676](https://github.com/apache/incubator-superset/pull/3676) [New Viz] Nightingale Rose Chart (#3676) (@Mogball)
|
||||
- [#4241](https://github.com/apache/incubator-superset/pull/4241) [cli] permission cleanup on 'superset init' (#4241) (@mistercrunch)
|
||||
- [#4224](https://github.com/apache/incubator-superset/pull/4224) [BugFix]: Creating a PostgresBaseEngineSpec so changes to the Postgre… (#4224) (@fabianmenges)
|
||||
- [#4325](https://github.com/apache/incubator-superset/pull/4325) Bump pyrdruid to 0.4.0 (#4325) (@mistercrunch)
|
||||
- [#4326](https://github.com/apache/incubator-superset/pull/4326) [explore] fix missing CacheLabel (#4326) (@mistercrunch)
|
||||
- [#4321](https://github.com/apache/incubator-superset/pull/4321) Update installation.rst for Ubuntu 16.04 LTS (#4321) (@raffas)
|
||||
- [#4322](https://github.com/apache/incubator-superset/pull/4322) [Bug] Resize should trigger chart re-render (#4322) (@graceguo-supercat)
|
||||
- [#4301](https://github.com/apache/incubator-superset/pull/4301) [Explore] Fix Stop Query Button behavior (#4301) (@graceguo-supercat)
|
||||
- [#4293](https://github.com/apache/incubator-superset/pull/4293) Refactoring deckgl (#4293) (@betodealmeida)
|
||||
- [#4226](https://github.com/apache/incubator-superset/pull/4226) add frontend logging utility function (#4226) (@graceguo-supercat)
|
||||
- [#4242](https://github.com/apache/incubator-superset/pull/4242) Added Path, Polygon, and Arcs to deckGL example dashboard (#4242) (@hughhhh)
|
||||
- [#4260](https://github.com/apache/incubator-superset/pull/4260) Use the query_obj as the basis for the cache key (#4260) (@mistercrunch)
|
||||
- [#4299](https://github.com/apache/incubator-superset/pull/4299) Bump sqlalchemy to 1.2.2 (#4299) (@xrmx)
|
||||
- [#4303](https://github.com/apache/incubator-superset/pull/4303) Reverts apache/incubator-superset#4244 (#4303) (@mistercrunch)
|
||||
- [#4291](https://github.com/apache/incubator-superset/pull/4291) Fixing json decode error on druiddatasourcemodelview/api/read (#4291) (@michellethomas)
|
||||
- [#4272](https://github.com/apache/incubator-superset/pull/4272) [geo] Add JS controls to remaining layers (#4272) (@hughhhh)
|
||||
- [#4261](https://github.com/apache/incubator-superset/pull/4261) Set point size control's default for deck_scatter viz (#4261) (@mistercrunch)
|
||||
- [#4270](https://github.com/apache/incubator-superset/pull/4270) deck_multi to pass down filters to layers (#4270) (@mistercrunch)
|
||||
- [#4275](https://github.com/apache/incubator-superset/pull/4275) Handle 'pd.Timestamp' when jsonifying (#4275) (@mistercrunch)
|
||||
- [#4276](https://github.com/apache/incubator-superset/pull/4276) Prevent FilterBox extra query (#4276) (@mistercrunch)
|
||||
- [#4277](https://github.com/apache/incubator-superset/pull/4277) Fix SUPERSET_WEBSERVER_TIMEOUT in VisualizeModal (#4277) (@mistercrunch)
|
||||
- [#4262](https://github.com/apache/incubator-superset/pull/4262) [geo] JS function to receive the whole data array instead of individual object (#4262) (@mistercrunch)
|
||||
- [#4265](https://github.com/apache/incubator-superset/pull/4265) Fix click on now in DateFilterControl (#4265) (@mistercrunch)
|
||||
- [#4273](https://github.com/apache/incubator-superset/pull/4273) [explore] fix empty query message in 'View Query' (#4273) (@mistercrunch)
|
||||
- [#4279](https://github.com/apache/incubator-superset/pull/4279) Always use fluid container for navbar. (#4279) (@xiaohanyu)
|
||||
- [#4108](https://github.com/apache/incubator-superset/pull/4108) [BUGFIX]: Check datatype of results before converting to DataFrame (#4108) (@marcusianlevine)
|
||||
- [#4243](https://github.com/apache/incubator-superset/pull/4243) Use json for imports and exports, not pickle (#4243) (@timifasubaa)
|
||||
- [#4251](https://github.com/apache/incubator-superset/pull/4251) Using a NullPool for external connections by default (#4251) (@mistercrunch)
|
||||
- [#4264](https://github.com/apache/incubator-superset/pull/4264) Set 'Range Filter' default to false (#4264) (@mistercrunch)
|
||||
- [#4268](https://github.com/apache/incubator-superset/pull/4268) Fix heatmap tooltip disappears under the slice's header (#4268) (@abotero)
|
||||
- [#4263](https://github.com/apache/incubator-superset/pull/4263) Bump flower==0.9.2 (#4263) (@mistercrunch)
|
||||
- [#4240](https://github.com/apache/incubator-superset/pull/4240) [cache] Fixing json.dumps for timestamp (#4240) (@john-bodley)
|
||||
- [#4246](https://github.com/apache/incubator-superset/pull/4246) [Sql Lab] Fix query results display at the bottom of screen (#4246) (@graceguo-supercat)
|
||||
- [#4244](https://github.com/apache/incubator-superset/pull/4244) [Sql Lab] Fix Autorefresh component pulling not stopped. (#4244) (@graceguo-supercat)
|
||||
- [#4237](https://github.com/apache/incubator-superset/pull/4237) Fix 'argument to reversed() must be a sequence' (#4237) (@mistercrunch)
|
||||
- [#4227](https://github.com/apache/incubator-superset/pull/4227) Added DeckGL.Polygon Layer w/ JS controls (#4227) (@hughhhh)
|
||||
- [#4235](https://github.com/apache/incubator-superset/pull/4235) remove setting spatial in DeckPathViz class (#4235) (@hughhhh)
|
||||
- [#4229](https://github.com/apache/incubator-superset/pull/4229) Don't cache if there's no cache key (#4229) (@michellethomas)
|
||||
- [#4234](https://github.com/apache/incubator-superset/pull/4234) add Ona as a user (#4234) (@pld)
|
||||
- [#4220](https://github.com/apache/incubator-superset/pull/4220) Improve deck.gl GeoJSON visualization (#4220) (@mistercrunch)
|
||||
- [#4221](https://github.com/apache/incubator-superset/pull/4221) [bugfix] time_pivot entry got missing in merge conflict (#4221) (@mistercrunch)
|
||||
- [#4225](https://github.com/apache/incubator-superset/pull/4225) [bugfix] markup and iframe viz raise 'Empty query' (#4225) (@mistercrunch)
|
||||
- [#4215](https://github.com/apache/incubator-superset/pull/4215) Fix tutorial doesn't match the current interface #4138 (#4215) (@zhaoyongjie)
|
||||
- [#4217](https://github.com/apache/incubator-superset/pull/4217) templates: open code and documentation on a new tab (#4217) (@xrmx)
|
||||
- [#4207](https://github.com/apache/incubator-superset/pull/4207) Adding limit to time_table viz to get druid query to work (#4207) (@michellethomas)
|
||||
- [#4202](https://github.com/apache/incubator-superset/pull/4202) [line chart] fix time shift color (#4202) (@mistercrunch)
|
||||
- [#4016](https://github.com/apache/incubator-superset/pull/4016) [cache] Using the query as the basis of the cache key (#4016) (@john-bodley)
|
||||
- [#4203](https://github.com/apache/incubator-superset/pull/4203) [druid] fix 2 phases queries that specify 'Sort By' on 'Series limit' (#4203) (@mistercrunch)
|
||||
- [#4200](https://github.com/apache/incubator-superset/pull/4200) [bugfix] dealing with DBAPIs that return unserilizable types (#4200) (@mistercrunch)
|
||||
- [#4134](https://github.com/apache/incubator-superset/pull/4134) [Geo] Added DeckGL Arc Layer and Refactor on BaseDeckGL class (#4134) (@hughhhh)
|
||||
- [#4126](https://github.com/apache/incubator-superset/pull/4126) Hanization (#4126) (@asdf2014)
|
||||
- [#4114](https://github.com/apache/incubator-superset/pull/4114) Superset was using undefined metrics for specifying limits (#4114) (@bolkedebruin)
|
||||
- [#4173](https://github.com/apache/incubator-superset/pull/4173) Using user-defined Javascript to customize geospatial visualization (#4173) (@mistercrunch)
|
||||
- [#4183](https://github.com/apache/incubator-superset/pull/4183) [datasource editor] click checkbox creates metrics instantly (#4183) (@mistercrunch)
|
||||
- [#4201](https://github.com/apache/incubator-superset/pull/4201) [explore] fix json highlighting for Druid queries (#4201) (@mistercrunch)
|
||||
- [#4186](https://github.com/apache/incubator-superset/pull/4186) Sort out dependencies in travis/tox (#4186) (@mistercrunch)
|
||||
- [#4184](https://github.com/apache/incubator-superset/pull/4184) Enable SQL syntax highlighting in View Query (#4184) (@betodealmeida)
|
||||
- [#4187](https://github.com/apache/incubator-superset/pull/4187) [annotations] Fixing migration for annotation layers (#4187) (@john-bodley)
|
||||
- [#4176](https://github.com/apache/incubator-superset/pull/4176) fix since or until is empty value #4170 (#4176) (@zhaoyongjie)
|
||||
- [#4182](https://github.com/apache/incubator-superset/pull/4182) Moving the custom_password_store out of Database class (#4182) (@fabianmenges)
|
||||
- [#4180](https://github.com/apache/incubator-superset/pull/4180) [security] Adding all derived FAB UserModelView views to admin only (#4180) (@john-bodley)
|
||||
- [#4101](https://github.com/apache/incubator-superset/pull/4101) Don't use fully qualified column names in metric definitions (#4101) (@mistercrunch)
|
||||
- [#4172](https://github.com/apache/incubator-superset/pull/4172) [FAB] configuring updating of permissions (#4172) (@john-bodley)
|
||||
- [#4164](https://github.com/apache/incubator-superset/pull/4164) Allow alpha role import csv (#4164) (@timifasubaa)
|
||||
- [#4147](https://github.com/apache/incubator-superset/pull/4147) Make Welcome page into a simple React app (#4147) (@mistercrunch)
|
||||
- [#4156](https://github.com/apache/incubator-superset/pull/4156) Fix chart rendering error in time series table (#4156) (@graceguo-supercat)
|
||||
- [#4157](https://github.com/apache/incubator-superset/pull/4157) [Bug] Closing change datasource modal throws JS error (#4157) (@graceguo-supercat)
|
||||
- [#4162](https://github.com/apache/incubator-superset/pull/4162) Check for non-None database before using. (#4162) (@atronchi)
|
||||
- [#4163](https://github.com/apache/incubator-superset/pull/4163) Druid support via SQLAlchemy (#4163) (@betodealmeida)
|
||||
- [#4125](https://github.com/apache/incubator-superset/pull/4125) Fix invaild gitter url (#4125) (@asdf2014)
|
||||
- [#4148](https://github.com/apache/incubator-superset/pull/4148) Adding Apache Kylin datasource for documentation (#4148) (@zhaoyongjie)
|
||||
- [#4143](https://github.com/apache/incubator-superset/pull/4143) Create DATA_DIR after importing config (#4143) (@leorochael)
|
||||
- [#4121](https://github.com/apache/incubator-superset/pull/4121) Fix USA's state geojson for 'Country Map' visualization (#4121) (@mistercrunch)
|
||||
- [#4139](https://github.com/apache/incubator-superset/pull/4139) fix variable name (#4139) (@timifasubaa)
|
||||
- [#4130](https://github.com/apache/incubator-superset/pull/4130) Remedy for dual axis annotation (#4130) (@Mogball)
|
||||
- [#4104](https://github.com/apache/incubator-superset/pull/4104) [explore] add datasource metadata (#4104) (@mistercrunch)
|
||||
- [#4135](https://github.com/apache/incubator-superset/pull/4135) better thumbnail for deck_geojson (#4135) (@hughhhh)
|
||||
- [#4124](https://github.com/apache/incubator-superset/pull/4124) Added guard statement for spatial controls (#4124) (@hughhhh)
|
||||
- [#4096](https://github.com/apache/incubator-superset/pull/4096) Multi layers DECK.GL visualization (#4096) (@mistercrunch)
|
||||
- [#4116](https://github.com/apache/incubator-superset/pull/4116) Fix rst grammar problems (#4116) (@asdf2014)
|
||||
- [#4118](https://github.com/apache/incubator-superset/pull/4118) Update UserInfo.jsx and set additional properties for react-gravatar (#4118) (@jpesculis)
|
||||
- [#4097](https://github.com/apache/incubator-superset/pull/4097) [geo] Added DeckGL GeoJson layer (#4097) (@hughhhh)
|
||||
- [#4076](https://github.com/apache/incubator-superset/pull/4076) Introduce Javascript controls (#4076) (@mistercrunch)
|
||||
- [#4042](https://github.com/apache/incubator-superset/pull/4042) [Bugfix] Issues with merge_extra_filters (#4042) (#4091) (@nbonnotte)
|
||||
- [#3996](https://github.com/apache/incubator-superset/pull/3996) [sql lab] deeper support for templating (#3996) (@mistercrunch)
|
||||
- [#4067](https://github.com/apache/incubator-superset/pull/4067) [geo] add support for deck.gl's path layer (#4067) (@mistercrunch)
|
||||
- [#4090](https://github.com/apache/incubator-superset/pull/4090) Using TextAreaControl for WHERE and HAVING clause section (#4090) (@mistercrunch)
|
||||
- [#4071](https://github.com/apache/incubator-superset/pull/4071) Fix for SQL editor throwing can't deserialize google.cloud.bigquery._helpers.Row with BigQuery (#4071) (@kuriancheeramelil)
|
||||
- [#4089](https://github.com/apache/incubator-superset/pull/4089) Bugfix: Druid having filters are broken (#4089) (@fabianmenges)
|
||||
- [#4083](https://github.com/apache/incubator-superset/pull/4083) Event annotation should have min width (#4083) (@fabianmenges)
|
||||
- [#4082](https://github.com/apache/incubator-superset/pull/4082) [bugfix] iframe and markup are broken (#4082) (@mistercrunch)
|
||||
- [#4072](https://github.com/apache/incubator-superset/pull/4072) DB migration of annotation_layers on slice objects and slimming down annotation object. (#4072) (@fabianmenges)
|
||||
- [#4073](https://github.com/apache/incubator-superset/pull/4073) [Bugfix] Issues with table filtering (#4073) (@Mogball)
|
||||
- [#3530](https://github.com/apache/incubator-superset/pull/3530) [Feature] enhanced memoized on get_sqla_engine and other functions (#3530) (@Mogball)
|
||||
- [#3518](https://github.com/apache/incubator-superset/pull/3518) Full Annotation Framework (#3518) (@fabianmenges)
|
||||
- [#4065](https://github.com/apache/incubator-superset/pull/4065) #4058 Fix Oracle timestamps (Oracle "ORA-00907: missing right parenthesis" error) (#4065) (@nichobbs)
|
||||
- [#4066](https://github.com/apache/incubator-superset/pull/4066) [geo] turn off renderTrigger on viewport control (#4066) (@mistercrunch)
|
||||
- [#4062](https://github.com/apache/incubator-superset/pull/4062) [health] Adding DB check to /health (#4062) (@john-bodley)
|
||||
- [#4059](https://github.com/apache/incubator-superset/pull/4059) Adding rowcount label to explore view header (#4059) (@mistercrunch)
|
||||
- [#4032](https://github.com/apache/incubator-superset/pull/4032) [geo] provide more flexible Spatial controls (#4032) (@mistercrunch)
|
||||
- [#4063](https://github.com/apache/incubator-superset/pull/4063) Add db_engine_spec for Druid (#4063) (@mistercrunch)
|
||||
- [#4048](https://github.com/apache/incubator-superset/pull/4048) Bump dev version on trunk (#4048) (@mistercrunch)
|
||||
- [#4045](https://github.com/apache/incubator-superset/pull/4045) Changelog for 0.21.0 (#4045) (@mistercrunch)
|
||||
- [#4047](https://github.com/apache/incubator-superset/pull/4047) Fix the pypi build (#4047) (@mistercrunch)
|
||||
- [#4049](https://github.com/apache/incubator-superset/pull/4049) Change reference for slices to chart (#4049) (@hughhhh)
|
||||
|
||||
### 0.22.1
|
||||
Fixes 0.22.0
|
||||
|
||||
|
||||
172
CONTRIBUTING.md
@@ -49,7 +49,7 @@ If you are proposing a feature:
|
||||
implement.
|
||||
- Remember that this is a volunteer-driven project, and that
|
||||
contributions are welcome :)
|
||||
|
||||
|
||||
### Questions
|
||||
|
||||
There is a dedicated [tag](https://stackoverflow.com/questions/tagged/apache-superset) on [stackoverflow](https://stackoverflow.com/). Please use it when asking questions.
|
||||
@@ -61,15 +61,19 @@ meets these guidelines:
|
||||
|
||||
1. The pull request should include tests, either as doctests,
|
||||
unit tests, or both.
|
||||
2. If the pull request adds functionality, the docs should be updated
|
||||
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.
|
||||
3. The pull request should work for Python 2.7, and ideally python 3.4+.
|
||||
4. The pull request should work for Python 2.7, and ideally Python 3.4+.
|
||||
``from __future__ import`` will be required in every `.py` file soon.
|
||||
4. Code will be reviewed by re running the unittests, flake8 and syntax
|
||||
should be as rigorous as the core Python project.
|
||||
5. Please rebase and resolve all conflicts before submitting.
|
||||
6. If you are asked to update your pull request with some changes there's
|
||||
5. 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.
|
||||
6. Please rebase and resolve all conflicts before submitting.
|
||||
7. Please ensure the necessary checks pass and that code coverage does not
|
||||
decrease.
|
||||
8. 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.
|
||||
|
||||
## Documentation
|
||||
@@ -98,11 +102,11 @@ to manage the Python packages you're about to install:
|
||||
virtualenv superset-dev
|
||||
source superset-dev/bin/activate
|
||||
|
||||
Finally, to make changes to the rst files and build the docs using Sphinx,
|
||||
Finally, to make changes to the rst files and build the docs using Sphinx,
|
||||
you'll need to install a handful of dependencies from the repo you cloned:
|
||||
|
||||
cd incubator-superset
|
||||
pip install -r dev-reqs-for-docs.txt
|
||||
pip install -r docs/requirements.txt
|
||||
|
||||
To get the feel for how to edit and build the docs, let's edit a file, build
|
||||
the docs and see our changes in action. First, you'll want to
|
||||
@@ -177,6 +181,7 @@ Check the [OS dependencies](https://superset.incubator.apache.org/installation.h
|
||||
source env/bin/activate
|
||||
|
||||
# install for development
|
||||
pip install -r requirements.txt
|
||||
pip install -e .
|
||||
|
||||
# Create an admin user
|
||||
@@ -195,6 +200,19 @@ Check the [OS dependencies](https://superset.incubator.apache.org/installation.h
|
||||
superset runserver -d
|
||||
|
||||
|
||||
### Logging to the browser console
|
||||
|
||||
When debugging your application, you can have the server logs sent directly to the browser console:
|
||||
|
||||
superset runserver -d --console-log
|
||||
|
||||
You can log anything to the browser console, including objects:
|
||||
|
||||
from superset import app
|
||||
app.logger.error('An exception occurred!')
|
||||
app.logger.info(form_data)
|
||||
|
||||
|
||||
## Setting up the node / npm javascript environment
|
||||
|
||||
`superset/assets` contains all npm-managed, front end assets.
|
||||
@@ -259,22 +277,33 @@ superset runserver -d -p 8081
|
||||
npm run dev
|
||||
```
|
||||
|
||||
#### Upgrading npm packages
|
||||
|
||||
Should you add or upgrade a npm package, which involves changing `package.json`, you'll need to re-run `yarn install` and push the newly generated `yarn.lock` file so we get the reproducible build. More information at (https://yarnpkg.com/blog/2016/11/24/lockfiles-for-all/)
|
||||
|
||||
## 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).
|
||||
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,
|
||||
|
||||
Before running python unit tests, please setup local testing environment:
|
||||
```
|
||||
pip install -r dev-reqs.txt
|
||||
```
|
||||
tox -e <environment>
|
||||
|
||||
All python tests can be run with:
|
||||
i.e.,
|
||||
|
||||
./run_tests.sh
|
||||
|
||||
Alternatively, you can run a specific test with:
|
||||
tox -e py27
|
||||
tox -e py34
|
||||
|
||||
./run_specific_test.sh tests.core_tests:CoreTests.test_function_name
|
||||
|
||||
Note that before running specific tests, you have to both setup the local testing environment and run all tests.
|
||||
Alternatively, you can run all tests in a single file via,
|
||||
|
||||
tox -e <environment> -- tests/test_file.py
|
||||
|
||||
or for a specific test via,
|
||||
|
||||
tox -e <environment> -- tests/test_file.py:TestClassName.test_method_name
|
||||
|
||||
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.
|
||||
|
||||
We use [Mocha](https://mochajs.org/), [Chai](http://chaijs.com/) and [Enzyme](http://airbnb.io/enzyme/) to test Javascript. Tests can be run with:
|
||||
|
||||
@@ -287,40 +316,17 @@ We use [Mocha](https://mochajs.org/), [Chai](http://chaijs.com/) and [Enzyme](ht
|
||||
Lint the project with:
|
||||
|
||||
# for python
|
||||
flake8
|
||||
tox -e flake8
|
||||
|
||||
# for javascript
|
||||
npm run lint
|
||||
|
||||
## Linting with codeclimate
|
||||
Codeclimate is a service we use to measure code quality and test coverage. To get codeclimate's report on your branch, ideally before sending your PR, you can setup codeclimate against your Superset fork. After you push to your fork, you should be able to get the report at http://codeclimate.com . Alternatively, if you prefer to work locally, you can install the codeclimate cli tool.
|
||||
|
||||
*Install the codeclimate cli tool*
|
||||
```
|
||||
curl -L https://github.com/docker/machine/releases/download/v0.7.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
|
||||
brew install docker
|
||||
docker-machine create --driver virtual box default
|
||||
docker-machine env default
|
||||
eval "$(docker-machine env default)"
|
||||
docker pull codeclimate/codeclimate
|
||||
brew tap codeclimate/formulae
|
||||
brew install codeclimate
|
||||
```
|
||||
|
||||
*Run the lint command:*
|
||||
```
|
||||
docker-machine start
|
||||
eval "$(docker-machine env default)”
|
||||
codeclimate analyze
|
||||
```
|
||||
More info can be found here: https://docs.codeclimate.com/docs/open-source-free
|
||||
|
||||
tox -e eslint
|
||||
|
||||
## API documentation
|
||||
|
||||
Generate the documentation with:
|
||||
|
||||
cd docs && ./build.sh
|
||||
pip install -r docs/requirements.txt
|
||||
python setup.py build_sphinx
|
||||
|
||||
## CSS Themes
|
||||
As part of the npm build process, CSS for Superset is compiled from `Less`, a dynamic stylesheet language.
|
||||
@@ -411,10 +417,9 @@ https://github.com/apache/incubator-superset/pull/3013
|
||||
Every once in a while we want to compile the documentation and publish it.
|
||||
Here's how to do it.
|
||||
|
||||
.. code::
|
||||
|
||||
```
|
||||
# install doc dependencies
|
||||
pip install -r dev-reqs-for-docs.txt
|
||||
pip install -r docs/requirements.txt
|
||||
|
||||
# build the docs
|
||||
python setup.py build_sphinx
|
||||
@@ -428,10 +433,75 @@ https://github.com/apache/incubator-superset/pull/3013
|
||||
|
||||
# copy
|
||||
cp -r /tmp/tmp_superset_docs/ ~/incubator-superset-site.git/
|
||||
|
||||
|
||||
# commit and push to `asf-site` branch
|
||||
cd ~/incubator-superset-site.git/
|
||||
git checkout asf-site
|
||||
git add .
|
||||
git commit -a -m "New doc version"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
## Publishing a Pypi release
|
||||
|
||||
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}`.
|
||||
|
||||
Following a set of cherries being picked, a release can be pushed to
|
||||
Pypi as follows:
|
||||
|
||||
```
|
||||
# branching off of master
|
||||
git checkout -b 0.25
|
||||
|
||||
# cherry-picking a SHA
|
||||
git cherry-pick -x f9d85bd2e1fd9bc233d19c76bed09467522b968a
|
||||
# repeat with other SHAs, don't forget the -x
|
||||
|
||||
# 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`
|
||||
```
|
||||
|
||||
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 formated `0.25.0rc1`, `0.25.0rc2`, ..., until consensus
|
||||
is reached.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
recursive-include superset/data *
|
||||
recursive-include superset/migrations *
|
||||
recursive-include superset/static *
|
||||
recursive-exclude superset/static/assets/docs *
|
||||
recursive-exclude superset/static/assets/images/viz_thumbnails_large *
|
||||
recursive-exclude superset/static/docs *
|
||||
recursive-exclude superset/static/spec *
|
||||
recursive-exclude superset/static/images/viz_thumbnails_large *
|
||||
recursive-exclude superset/static/assets/node_modules *
|
||||
recursive-include superset/templates *
|
||||
recursive-include superset/translations *
|
||||
|
||||
59
README.md
@@ -3,9 +3,8 @@ Superset
|
||||
|
||||
[](https://travis-ci.org/apache/incubator-superset)
|
||||
[](https://badge.fury.io/py/superset)
|
||||
[](https://coveralls.io/github/apache/incubator-superset?branch=master)
|
||||
[](https://codecov.io/github/apache/incubator-superset)
|
||||
[](https://pypi.python.org/pypi/superset)
|
||||
[](https://requires.io/github/apache/incubator-superset/requirements/?branch=master)
|
||||
[](https://gitter.im/airbnb/superset?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://superset.incubator.apache.org)
|
||||
[](https://david-dm.org/apache/incubator-superset?path=superset/assets)
|
||||
@@ -27,27 +26,23 @@ Screenshots & Gifs
|
||||
|
||||
**View Dashboards**
|
||||
|
||||

|
||||
<kbd><img title="View Dashboards" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/bank_dash.png"></kbd><br/>
|
||||
|
||||
<br/>
|
||||
**Slice & dice your data**
|
||||
|
||||
**View/Edit a Slice**
|
||||
<kbd><img title="Slice & dice your data" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/explore.png"></kbd><br/>
|
||||
|
||||

|
||||
**Query and visualize your data with SQL Lab**
|
||||
|
||||
<br/>
|
||||
<kbd><img title="SQL Lab" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/sqllab.png"></kbd><br/>
|
||||
|
||||
**Query and Visualize with SQL Lab**
|
||||
**Visualize geospatial data with deck.gl**
|
||||
|
||||

|
||||
<kbd><img title="Geospatial" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/deckgl_dash.png"></kbd><br/>
|
||||
|
||||
<br/>
|
||||
**Choose from a wide array of visualizations**
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
<kbd><img title="Visualizations" src="https://raw.githubusercontent.com/apache/incubator-superset/master/superset/assets/images/screenshots/visualizations.png"></kbd><br/>
|
||||
|
||||
Apache Superset
|
||||
---------------
|
||||
@@ -105,7 +100,7 @@ Druid!
|
||||
------
|
||||
|
||||
On top of having the ability to query your relational databases,
|
||||
Superset has ships with deep integration with Druid (a real time distributed
|
||||
Superset ships with deep integration with Druid (a real time distributed
|
||||
column-store). When querying Druid,
|
||||
Superset can query humongous amounts of data on top of real time dataset.
|
||||
Note that Superset does not require Druid in any way to function, it's simply
|
||||
@@ -129,7 +124,7 @@ Installation & Configuration
|
||||
|
||||
Resources
|
||||
-------------
|
||||
* [Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org/)
|
||||
* [Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org)
|
||||
* [Gitter (live chat) Channel](https://gitter.im/airbnb/superset)
|
||||
* [Docker image](https://hub.docker.com/r/amancevice/superset/) (community contributed)
|
||||
* [Slides from Strata (March 2016)](https://drive.google.com/open?id=0B5PVE0gzO81oOVJkdF9aNkJMSmM)
|
||||
@@ -152,10 +147,15 @@ 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/)
|
||||
@@ -163,11 +163,14 @@ the world know they are using Superset. Join our growing community!
|
||||
- [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://cloudschooling.it)
|
||||
- [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)
|
||||
@@ -176,25 +179,7 @@ the world know they are using Superset. Join our growing community!
|
||||
- [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)
|
||||
|
||||
|
||||
More screenshots
|
||||
----------------
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
48
TODO.md
@@ -1,48 +0,0 @@
|
||||
# TODO
|
||||
List of TODO items for Superset
|
||||
|
||||
## Important
|
||||
* **Getting proper JS testing:** unit tests on the Python side are pretty
|
||||
solid, but now we need a test suite for the JS part of the site,
|
||||
testing all the ajax-type calls
|
||||
* **Viz Plugins:** Allow people to define and share visualization plugins.
|
||||
ideally one would only need to drop in a set of files in a folder and
|
||||
Superset would discover and expose the plugins
|
||||
|
||||
## Features
|
||||
* **Dashboard URL filters:** `{dash_url}#fltin__fieldname__value1,value2`
|
||||
* **Default slice:** choose a default slice for the dataset instead of
|
||||
default endpoint
|
||||
* **Widget sets / chart grids:** a way to have all charts support making
|
||||
a series of charts and putting them in a grid. The same way that you
|
||||
can groupby for series, you could chart by. The form field set would be
|
||||
common and use a single field to "grid by", a limit number of chart as
|
||||
an N * N grid size.
|
||||
* **Advanced dashboard configuration:** currently you can define which
|
||||
slices in a dashboard are immune to filtering.
|
||||
* **Annotations layers:** allow for people to maintain data annotations,
|
||||
attached to a layer and time range. These layers can be added on top of
|
||||
some visualizations as annotations. An example of a layer might be
|
||||
"holidays" or "site outages", ...
|
||||
* **Slack integration** - TBD
|
||||
* **Comments:** allow for people to comment on slices and dashes
|
||||
|
||||
|
||||
## Easy-ish fix
|
||||
* Build matrix to include mysql using tox
|
||||
* CREATE VIEW button from SQL editor
|
||||
* Test button for when editing SQL expression
|
||||
* Slider form element
|
||||
* [druid] Allow for post aggregations (ratios!)
|
||||
* in/notin filters autocomplete (druid)
|
||||
|
||||
## New viz
|
||||
* Maps that use geocodes
|
||||
* Time animated scatter plots
|
||||
* Horizon charts
|
||||
* Calendar heatmap
|
||||
* Chord diagram
|
||||
* ...
|
||||
|
||||
## Community
|
||||
* Turorial vids
|
||||
33
UPDATING.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Updating Superset
|
||||
|
||||
This file documents any backwards-incompatible changes in Superset and
|
||||
assists people when migrating to a new version.
|
||||
|
||||
## Superset 0.25.0
|
||||
Superset 0.25.0 contains a backwards incompatible changes.
|
||||
If you run a production system you should schedule downtime for this
|
||||
upgrade.
|
||||
|
||||
The PRs bellow have more information around the breaking changes:
|
||||
* [4587](https://github.com/apache/incubator-superset/pull/4587) : a backward
|
||||
incompatible database migration that requires downtime. Once the
|
||||
db migration succeeds, the web server needs to be restarted with the
|
||||
new version. The previous version will fail
|
||||
* [4565](https://github.com/apache/incubator-superset/pull/4565) : we've
|
||||
changed the security model a bit where in the past you would have to
|
||||
define your authentication scheme by inheriting from Flask
|
||||
App Builder's
|
||||
`from flask_appbuilder.security.sqla.manager import SecurityManager`,
|
||||
you now have to derive Superset's
|
||||
own derivative `superset.security.SupersetSecurityManager`. This
|
||||
can provide you with more hooks to define your own logic and/or defer
|
||||
permissions to another system as needed. For all implementation, you
|
||||
simply have to import and derive `SupersetSecurityManager` in place
|
||||
of the `SecurityManager`
|
||||
* [4835](https://github.com/apache/incubator-superset/pull/4835) :
|
||||
our `setup.py` now only pins versions where required, giving you
|
||||
more latitude in using versions of libraries as needed. We do now
|
||||
provide a `requirements.txt` with pinned versions if you want to run
|
||||
the suggested versions that `Superset` builds and runs tests against.
|
||||
Simply `pip install -r requirements.txt` in your build pipeline, likely
|
||||
prior to `pip install superset==0.25.0`
|
||||
@@ -1,3 +0,0 @@
|
||||
sphinx
|
||||
sphinx-rtd-theme
|
||||
sphinxcontrib.youtube
|
||||
15
dev-reqs.txt
@@ -1,15 +0,0 @@
|
||||
codeclimate-test-reporter
|
||||
coveralls
|
||||
flake8
|
||||
flask_cors
|
||||
ipdb
|
||||
mock
|
||||
mysqlclient
|
||||
nose
|
||||
psycopg2
|
||||
pylint
|
||||
pyyaml
|
||||
redis
|
||||
statsd
|
||||
# Also install everything we need to build Sphinx docs
|
||||
-r dev-reqs-for-docs.txt
|
||||
1
docs/_build/html/README.md
vendored
@@ -1 +0,0 @@
|
||||
Folder containing the sphinx-generated documentation
|
||||
@@ -52,7 +52,7 @@ master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = "Apache Superset"
|
||||
copyright = None
|
||||
copyright = 'Apache Software Foundation'
|
||||
author = u'Maxime Beauchemin'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
Druid
|
||||
=====
|
||||
|
||||
Superset works well with Druid, though currently not all
|
||||
advanced features out of Druid are covered. This page clarifies what is
|
||||
covered and what isn't and explains how to use some of the features.
|
||||
Superset has a native connector to Druid, and a majority of Druid's
|
||||
features are accessible through Superset.
|
||||
|
||||
.. note ::
|
||||
Currently Airbnb runs against Druid ``0.8.x`` and previous /
|
||||
following versions are not tested against.
|
||||
|
||||
Supported
|
||||
'''''''''
|
||||
Druid now supports SQL and can be accessed through Superset's
|
||||
SQLAlchemy connector. The long term vision is to deprecate
|
||||
the Druid native REST connector and query Druid exclusively through
|
||||
the SQL interface.
|
||||
|
||||
Aggregations
|
||||
------------
|
||||
@@ -28,7 +26,7 @@ element correspond to Druid aggregation definition. You can create your own
|
||||
aggregations manually from the ``List Druid Metric`` tab following Druid
|
||||
documentation.
|
||||
|
||||
.. image:: _static/img/druid_agg.png
|
||||
.. image:: images/druid_agg.png
|
||||
:scale: 50 %
|
||||
|
||||
Post-Aggregations
|
||||
@@ -41,8 +39,9 @@ json post-aggregation definition (as specified in the Druid docs) in the
|
||||
Json field.
|
||||
|
||||
|
||||
Not yet supported
|
||||
'''''''''''''''''
|
||||
Unsupported Features
|
||||
--------------------
|
||||
|
||||
- Regex filters
|
||||
- Lookups / joins
|
||||
.. note ::
|
||||
Unclear at this point, this section of the documentation could use
|
||||
some input.
|
||||
|
||||
16
docs/faq.rst
@@ -48,8 +48,10 @@ https://github.com/airbnb/superset/issues?q=label%3Aexample+is%3Aclosed
|
||||
Can I upload and visualize csv data?
|
||||
------------------------------------
|
||||
|
||||
Yes, using the ``Upload a CSV`` button under the ``Sources``
|
||||
menu item. This brings up a form that allows you specify required information. After creating the table from CSV, it can then be loaded like any other on the ``Sources -> Tables``page.
|
||||
Yes, using the ``Upload a CSV`` button under the ``Sources`` menu item.
|
||||
This brings up a form that allows you specify required information.
|
||||
After creating the table from CSV, it can then be loaded like any
|
||||
other on the ``Sources -> Tables`` page.
|
||||
|
||||
|
||||
Why are my queries timing out?
|
||||
@@ -106,7 +108,7 @@ edit the ``JSON Metadata`` field, more specifically the
|
||||
never be affected by any dashboard level filtering.
|
||||
|
||||
|
||||
..code:: json
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"filter_immune_slices": [324, 65, 92],
|
||||
@@ -141,7 +143,7 @@ to be refreshed - especially if some data is slow moving, or run heavy queries.
|
||||
slices from the timed refresh process, add the ``timed_refresh_immune_slices`` key to the dashboard
|
||||
``JSON Metadata`` field:
|
||||
|
||||
..code:: json
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"filter_immune_slices": [],
|
||||
@@ -157,7 +159,7 @@ Slice refresh will also be staggered over the specified period. You can turn off
|
||||
by setting the ``stagger_refresh`` to ``false`` and modify the stagger period by setting
|
||||
``stagger_time`` to a value in milliseconds in the ``JSON Metadata`` field:
|
||||
|
||||
..code:: json
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"stagger_refresh": false,
|
||||
@@ -168,7 +170,7 @@ Here, the entire dashboard will refresh at once if periodic refresh is on. The s
|
||||
2.5 seconds is ignored.
|
||||
|
||||
Why does fabmanager or superset freezed/hung/not responding when started (my home directory is NFS mounted)?
|
||||
-----------------------------------------------------------------------------------------
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
By default, superset creates and uses an sqlite database at ``~/.superset/superset.db``. Sqlite is known to `don't work well if used on NFS`__ due to broken file locking implementation on NFS.
|
||||
|
||||
__ https://www.sqlite.org/lockingv3.html
|
||||
@@ -236,7 +238,7 @@ It is possible on a per-dashboard basis by providing a mapping of
|
||||
labels to colors in the ``JSON Metadata`` attribute using the
|
||||
``label_colors`` key.
|
||||
|
||||
..code:: json
|
||||
.. code-block:: json
|
||||
|
||||
{
|
||||
"label_colors": {
|
||||
|
||||
163
docs/gallery.rst
@@ -1,89 +1,190 @@
|
||||
Gallery
|
||||
=======
|
||||
Visualizations Gallery
|
||||
======================
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/line.png
|
||||
.. image:: images/viz_thumbnails/area.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/bubble.png
|
||||
|
||||
.. image:: images/viz_thumbnails/bar.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/table.png
|
||||
|
||||
.. image:: images/viz_thumbnails/big_number.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/pie.png
|
||||
|
||||
.. image:: images/viz_thumbnails/big_number_total.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/bar.png
|
||||
|
||||
.. image:: images/viz_thumbnails/box_plot.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/world_map.png
|
||||
|
||||
.. image:: images/viz_thumbnails/bubble.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/sankey.png
|
||||
|
||||
.. image:: images/viz_thumbnails/bullet.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/word_cloud.png
|
||||
|
||||
.. image:: images/viz_thumbnails/cal_heatmap.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/filter_box.png
|
||||
|
||||
.. image:: images/viz_thumbnails/chord.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/pivot_table.png
|
||||
|
||||
.. image:: images/viz_thumbnails/compare.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/directed_force.png
|
||||
|
||||
.. image:: images/viz_thumbnails/country_map.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/compare.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_arc.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/sunburst.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_geojson.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/area.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_grid.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/big_number.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_hex.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/big_number_total.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_multi.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/bullet.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_path.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/dist_bar.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_polygon.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/heatmap.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_scatter.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/markup.png
|
||||
|
||||
.. image:: images/viz_thumbnails/deck_screengrid.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/para.png
|
||||
|
||||
.. image:: images/viz_thumbnails/directed_force.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/iframe.png
|
||||
|
||||
.. image:: images/viz_thumbnails/dist_bar.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/box_plot.png
|
||||
|
||||
.. image:: images/viz_thumbnails/dual_line.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/treemap.png
|
||||
|
||||
.. image:: images/viz_thumbnails/event_flow.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/cal_heatmap.png
|
||||
|
||||
.. image:: images/viz_thumbnails/filter_box.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/horizon.png
|
||||
|
||||
.. image:: images/viz_thumbnails/heatmap.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/mapbox.png
|
||||
|
||||
.. image:: images/viz_thumbnails/histogram.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/separator.png
|
||||
|
||||
.. image:: images/viz_thumbnails/horizon.png
|
||||
:scale: 25 %
|
||||
|
||||
.. image:: _static/img/viz_thumbnails/histogram.png
|
||||
|
||||
.. image:: images/viz_thumbnails/iframe.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/line.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/mapbox.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/markup.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/paired_ttest.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/para.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/partition.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/pie.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/pivot_table.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/rose.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/sankey.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/separator.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/sunburst.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/table.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/time_pivot.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/time_table.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/treemap.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/word_cloud.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
.. image:: images/viz_thumbnails/world_map.png
|
||||
:scale: 25 %
|
||||
|
||||
|
||||
1
docs/images
Symbolic link
@@ -0,0 +1 @@
|
||||
../superset/assets/images/
|
||||
@@ -49,12 +49,17 @@ 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, **Druid Clusters** for clusters, **Druid Datasources** for datasources)
|
||||
2. Select the items you would like to export
|
||||
3. Click **Actions** -> **Export to YAML**
|
||||
4. If you want to import an item that you exported through the UI, you will need to nest it inside its parent element, e.g. a `database` needs to be nested under `databases` a `table` needs to be nested inside a `database` element.
|
||||
1. Open **Sources** -> **Databases** to export all tables associated to a
|
||||
single or multiple databases. (**Tables** for one or more tables,
|
||||
**Druid Clusters** for clusters, **Druid Datasources** for datasources)
|
||||
#. Select the items you would like to export
|
||||
#. Click **Actions** -> **Export to YAML**
|
||||
#. If you want to import an item that you exported through the UI, you
|
||||
will need to nest it inside its parent element, e.g. a `database`
|
||||
needs to be nested under `databases` a `table` needs to be
|
||||
nested inside a `database` element.
|
||||
|
||||
Exporting the complete supported YAML schema
|
||||
--------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. image:: _static/img/s.png
|
||||
.. image:: images/s.png
|
||||
|
||||
Apache Superset (incubating)
|
||||
''''''''''''''''''''''''''''
|
||||
@@ -45,17 +45,22 @@ Features
|
||||
- Integration with most SQL-speaking RDBMS through SQLAlchemy
|
||||
- Deep integration with Druid.io
|
||||
|
||||
------
|
||||
Screenshots
|
||||
-----------
|
||||
|
||||
.. image:: https://camo.githubusercontent.com/82e264ef777ba06e1858766fe3b8817ee108eb7e/687474703a2f2f672e7265636f726469742e636f2f784658537661475574732e676966
|
||||
.. image:: images/screenshots/bank_dash.png
|
||||
|
||||
------
|
||||
|
||||
.. image:: https://camo.githubusercontent.com/4991ff37a0005ea4e4267919a52786fda82d2d21/687474703a2f2f672e7265636f726469742e636f2f755a6767594f645235672e676966
|
||||
.. image:: images/screenshots/explore.png
|
||||
|
||||
------
|
||||
|
||||
.. image:: https://camo.githubusercontent.com/a389af15ac1e32a3d0fee941b4c62c850b1d583b/687474703a2f2f672e7265636f726469742e636f2f55373046574c704c76682e676966
|
||||
.. image:: images/screenshots/sqllab.png
|
||||
|
||||
------
|
||||
|
||||
.. image:: images/screenshots/deckgl_dash.png
|
||||
|
||||
------
|
||||
|
||||
@@ -70,10 +75,9 @@ Contents
|
||||
tutorial
|
||||
security
|
||||
sqllab
|
||||
visualization
|
||||
videos
|
||||
gallery
|
||||
druid
|
||||
misc
|
||||
faq
|
||||
|
||||
|
||||
|
||||
@@ -125,11 +125,8 @@ Follow these few simple steps to install Superset.::
|
||||
# Create default roles and permissions
|
||||
superset init
|
||||
|
||||
# Start the web server on port 8088, use -p to bind to another port
|
||||
superset runserver
|
||||
|
||||
# To start a development web server, use the -d switch
|
||||
# superset runserver -d
|
||||
# To start a development web server on port 8088, use -p to bind to another port
|
||||
superset runserver -d
|
||||
|
||||
|
||||
After installation, you should be able to point your browser to the right
|
||||
@@ -147,12 +144,8 @@ Gunicorn, preferably in **async mode**, which allows for impressive
|
||||
concurrency even and is fairly easy to install and configure. Please
|
||||
refer to the
|
||||
documentation of your preferred technology to set up this Flask WSGI
|
||||
application in a way that works well in your environment.
|
||||
|
||||
While the `superset runserver` command act as an quick wrapper
|
||||
around `gunicorn`, it doesn't expose all the options you may need,
|
||||
so you'll want to craft your own `gunicorn` command in your production
|
||||
environment. Here's an **async** setup known to work well: ::
|
||||
application in a way that works well in your environment. Here's an **async**
|
||||
setup known to work well in production: ::
|
||||
|
||||
gunicorn \
|
||||
-w 10 \
|
||||
@@ -165,7 +158,7 @@ environment. Here's an **async** setup known to work well: ::
|
||||
superset:app
|
||||
|
||||
Refer to the
|
||||
[Gunicorn documentation](http://docs.gunicorn.org/en/stable/design.html)
|
||||
`Gunicorn documentation <http://docs.gunicorn.org/en/stable/design.html>`_
|
||||
for more information.
|
||||
|
||||
Note that *gunicorn* does not
|
||||
@@ -173,6 +166,9 @@ work on Windows so the `superset runserver` command is not expected to work
|
||||
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
|
||||
by setting `ENABLE_FLASK_COMPRESS = False` in your `superset_config.py`
|
||||
|
||||
Flask-AppBuilder Permissions
|
||||
----------------------------
|
||||
|
||||
@@ -212,7 +208,7 @@ In case that the reverse proxy is used for providing ssl encryption,
|
||||
an explicit definition of the `X-Forwarded-Proto` may be required.
|
||||
For the Apache webserver this can be set as follows: ::
|
||||
|
||||
RequestHeader set X-Forwarded-Proto "https"
|
||||
RequestHeader set X-Forwarded-Proto "https"
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
@@ -225,7 +221,6 @@ of the parameters you can copy / paste in that configuration module: ::
|
||||
# Superset specific config
|
||||
#---------------------------------------------------------
|
||||
ROW_LIMIT = 5000
|
||||
SUPERSET_WORKERS = 4
|
||||
|
||||
SUPERSET_WEBSERVER_PORT = 8088
|
||||
#---------------------------------------------------------
|
||||
@@ -247,17 +242,29 @@ of the parameters you can copy / paste in that configuration module: ::
|
||||
WTF_CSRF_ENABLED = True
|
||||
# Add endpoints that need to be exempt from CSRF protection
|
||||
WTF_CSRF_EXEMPT_LIST = []
|
||||
# A CSRF token that expires in 1 year
|
||||
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365
|
||||
|
||||
# Set this API key to enable Mapbox visualizations
|
||||
MAPBOX_API_KEY = ''
|
||||
|
||||
This file also allows you to define configuration parameters used by
|
||||
Flask App Builder, the web framework used by Superset. Please consult
|
||||
All the parameters and default values defined in
|
||||
https://github.com/apache/incubator-superset/blob/master/superset/config.py
|
||||
can be altered in your local ``superset_config.py`` .
|
||||
Administrators will want to
|
||||
read through the file to understand what can be configured locally
|
||||
as well as the default values in place.
|
||||
|
||||
Since ``superset_config.py`` acts as a Flask configuration module, it
|
||||
can be used to alter the settings Flask itself,
|
||||
as well as Flask extensions like ``flask-wtf``, ``flask-cache``,
|
||||
``flask-migrate``, and ``flask-appbuilder``. Flask App Builder, the web
|
||||
framework used by Superset offers many configuration settings. Please consult
|
||||
the `Flask App Builder Documentation
|
||||
<http://flask-appbuilder.readthedocs.org/en/latest/config.html>`_
|
||||
for more information on how to configure Superset.
|
||||
for more information on how to configure it.
|
||||
|
||||
Please make sure to change:
|
||||
Make sure to change:
|
||||
|
||||
* *SQLALCHEMY_DATABASE_URI*, by default it is stored at *~/.superset/superset.db*
|
||||
* *SECRET_KEY*, to a long random string
|
||||
@@ -287,11 +294,15 @@ Here's a list of some of the recommended packages.
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| Presto | ``pip install pyhive`` | ``presto://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| Hive | ``pip install pyhive`` | ``hive://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| Oracle | ``pip install cx_Oracle`` | ``oracle://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| sqlite | | ``sqlite://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| Redshift | ``pip install sqlalchemy-redshift`` | ``postgresql+psycopg2://`` |
|
||||
| Snowflake | ``pip install snowflake-sqlalchemy``| ``snowflake://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| Redshift | ``pip install sqlalchemy-redshift`` | ``redshift+psycopg2://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| MSSQL | ``pip install pymssql`` | ``mssql://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
@@ -311,6 +322,8 @@ Here's a list of some of the recommended packages.
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| Kylin | ``pip install kylinpy`` | ``kylin://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
| BigQuery | ``pip install pybigquery`` | ``bigquery://`` |
|
||||
+---------------+-------------------------------------+-------------------------------------------------+
|
||||
|
||||
Note that many other database are supported, the main criteria being the
|
||||
existence of a functional SqlAlchemy dialect and Python driver. Googling
|
||||
@@ -349,6 +362,16 @@ For setting your timeouts, this is done in the Superset metadata and goes
|
||||
up the "timeout searchpath", from your slice configuration, to your
|
||||
data source's configuration, to your database's and ultimately falls back
|
||||
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',
|
||||
}
|
||||
|
||||
|
||||
|
||||
Deeper SQLAlchemy integration
|
||||
@@ -358,7 +381,7 @@ It is possible to tweak the database connection information using the
|
||||
parameters exposed by SQLAlchemy. In the ``Database`` edit view, you will
|
||||
find an ``extra`` field as a ``JSON`` blob.
|
||||
|
||||
.. image:: _static/img/tutorial/add_db.png
|
||||
.. image:: images/tutorial/add_db.png
|
||||
:scale: 30 %
|
||||
|
||||
This JSON string contains extra configuration elements. The ``engine_params``
|
||||
@@ -394,6 +417,16 @@ in your config file to point to that function. ::
|
||||
|
||||
SQLALCHEMY_CUSTOM_PASSWORD_STORE = example_lookup_password
|
||||
|
||||
A common pattern is to use environment variables to make secrets available.
|
||||
``SQLALCHEMY_CUSTOM_PASSWORD_STORE`` can also be used for that purpose. ::
|
||||
|
||||
def example_password_as_env_var(url):
|
||||
# assuming the uri looks like
|
||||
# mysql://localhost?superset_user:{SUPERSET_PASSWORD}
|
||||
return url.password.format(os.environ)
|
||||
|
||||
SQLALCHEMY_CUSTOM_PASSWORD_STORE = example_password_as_env_var
|
||||
|
||||
|
||||
SSL Access to databases
|
||||
-----------------------
|
||||
@@ -490,8 +523,8 @@ execute beyond the typical web request's timeout (30-60 seconds), it is
|
||||
necessary to configure an asynchronous backend for Superset which consist of:
|
||||
|
||||
* one or many Superset worker (which is implemented as a Celery worker), and
|
||||
can be started with the ``superset worker`` command, run
|
||||
``superset worker --help`` to view the related options
|
||||
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
|
||||
or RabbitMQ
|
||||
* a results backend that defines where the worker will persist the query
|
||||
@@ -511,6 +544,10 @@ have the same configuration.
|
||||
|
||||
CELERY_CONFIG = CeleryConfig
|
||||
|
||||
To start a Celery worker to leverage the configuration run: ::
|
||||
|
||||
celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair
|
||||
|
||||
To setup a result backend, you need to pass an instance of a derivative
|
||||
of ``werkzeug.contrib.cache.BaseCache`` to the ``RESULTS_BACKEND``
|
||||
configuration key in your ``superset_config.py``. It's possible to use
|
||||
@@ -551,6 +588,15 @@ in this dictionary are made available for users to use in their SQL.
|
||||
}
|
||||
|
||||
|
||||
Flower is a web based tool for monitoring the Celery cluster which you can
|
||||
install from pip: ::
|
||||
|
||||
pip install flower
|
||||
|
||||
and run via: ::
|
||||
|
||||
celery flower --app=superset.sql_lab:celery_app
|
||||
|
||||
Making your own build
|
||||
---------------------
|
||||
|
||||
@@ -578,7 +624,7 @@ at the ``/simple_page`` url. This can allow you to run other things such
|
||||
as custom data visualization applications alongside Superset, on the
|
||||
same server.
|
||||
|
||||
..code ::
|
||||
.. code-block:: python
|
||||
|
||||
from flask import Blueprint
|
||||
simple_page = Blueprint('simple_page', __name__,
|
||||
@@ -599,10 +645,25 @@ are logged as well as key events like query start and end in SQL Lab.
|
||||
To setup StatsD logging, it's a matter of configuring the logger in your
|
||||
``superset_config.py``.
|
||||
|
||||
..code ::
|
||||
.. code-block:: python
|
||||
|
||||
from superset.stats_logger import StatsdStatsLogger
|
||||
STATS_LOGGER = StatsdStatsLogger(host='localhost', port=8125, prefix='superset')
|
||||
|
||||
Note that it's also possible to implement you own logger by deriving
|
||||
``superset.stats_logger.BaseStatsLogger``.
|
||||
|
||||
|
||||
Install Superset with helm in Kubernetes
|
||||
--------------
|
||||
|
||||
You can install Superset into Kubernetes with Helm <https://helm.sh/>. The chart is
|
||||
located in ``install/helm``.
|
||||
|
||||
To install Superset into your Kubernetes:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
helm upgrade --install superset ./install/helm/superset
|
||||
|
||||
Note that the above command will install Superset into ``default`` namespace of your Kubernetes cluster.
|
||||
|
||||
10
docs/misc.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
Misc
|
||||
----
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
visualization
|
||||
videos
|
||||
import_export_datasources
|
||||
3
docs/requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
sphinx==1.7.1
|
||||
sphinx-rtd-theme==0.2.4
|
||||
sphinxcontrib.youtube==0.1.2
|
||||
@@ -70,7 +70,7 @@ sure the users with limited access have [only] the Gamma role assigned to
|
||||
them. Second, create a new role (``Menu -> Security -> List Roles``) and
|
||||
click the ``+`` sign.
|
||||
|
||||
.. image:: _static/img/create_role.png
|
||||
.. image:: images/create_role.png
|
||||
:scale: 50 %
|
||||
|
||||
This new window allows you to give this new role a name, attribute it to users
|
||||
|
||||
@@ -4,6 +4,11 @@ SQL Lab
|
||||
SQL Lab is a modern, feature-rich SQL IDE written in
|
||||
`React <https://facebook.github.io/react/>`_.
|
||||
|
||||
------
|
||||
|
||||
.. image:: images/screenshots/sqllab.png
|
||||
|
||||
------
|
||||
|
||||
Feature Overview
|
||||
----------------
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
Tutorial for Superset Administrators
|
||||
====================================
|
||||
Tutorial - Creating your first dashboard
|
||||
========================================
|
||||
|
||||
This tutorial targets a Superset administrator: someone configuring Superset
|
||||
for an organization on behalf of users. We'll show you how to connect Superset
|
||||
to a new database and configure a table in that database for analysis. You'll
|
||||
also explore the data you've exposed and add a visualization to a dashboard
|
||||
This tutorial targets someone who wants to create charts and dashboards
|
||||
in Superset. We'll show you how to connect Superset
|
||||
to a new database and configure a table in that database for analysis. You'll
|
||||
also explore the data you've exposed and add a visualization to a dashboard
|
||||
so that you get a feel for the end-to-end user experience.
|
||||
|
||||
Connecting to a new database
|
||||
----------------------------
|
||||
|
||||
We assume you already have a database configured and can connect to it from the
|
||||
instance on which you’re running Superset. If you’re just testing Superset and
|
||||
want to explore sample data, you can load some
|
||||
instance on which you’re running Superset. If you’re just testing Superset and
|
||||
want to explore sample data, you can load some
|
||||
`sample PostgreSQL datasets <https://wiki.postgresql.org/wiki/Sample_Databases>`_
|
||||
into a fresh DB, or configure the
|
||||
into a fresh DB, or configure the
|
||||
`example weather data <https://github.com/dylburger/noaa-ghcn-weather-data>`_
|
||||
we use here.
|
||||
|
||||
Under the **Sources** menu, select the *Databases* option:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_01_sources_database.png
|
||||
.. image:: images/tutorial/tutorial_01_sources_database.png
|
||||
:scale: 70%
|
||||
|
||||
On the resulting page, click on the green plus sign, near the top right:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_02_add_database.png
|
||||
.. image:: images/tutorial/tutorial_02_add_database.png
|
||||
:scale: 70%
|
||||
|
||||
You can configure a number of advanced options on this page, but for
|
||||
@@ -33,12 +33,12 @@ this walkthrough, you’ll only need to do **two things**:
|
||||
|
||||
1. Name your database connection:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_03_database_name.png
|
||||
.. image:: images/tutorial/tutorial_03_database_name.png
|
||||
:scale: 70%
|
||||
|
||||
2. Provide the SQLAlchemy Connection URI and test the connection:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_04_sqlalchemy_connection_string.png
|
||||
.. image:: images/tutorial/tutorial_04_sqlalchemy_connection_string.png
|
||||
:scale: 70%
|
||||
|
||||
This example shows the connection string for our test weather database.
|
||||
@@ -51,19 +51,19 @@ Click the **Test Connection** button to confirm things work end to end.
|
||||
Once Superset can successfully connect and authenticate, you should see
|
||||
a popup like this:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_05_connection_popup.png
|
||||
.. image:: images/tutorial/tutorial_05_connection_popup.png
|
||||
:scale: 50%
|
||||
|
||||
Moreover, you should also see the list of tables Superset can read from
|
||||
the schema you’re connected to, at the bottom of the page:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_06_list_of_tables.png
|
||||
.. image:: images/tutorial/tutorial_06_list_of_tables.png
|
||||
:scale: 70%
|
||||
|
||||
If the connection looks good, save the configuration by clicking the **Save**
|
||||
button at the bottom of the page:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_07_save_button.png
|
||||
.. image:: images/tutorial/tutorial_07_save_button.png
|
||||
:scale: 70%
|
||||
|
||||
Adding a new table
|
||||
@@ -74,25 +74,25 @@ to Superset that you’d like to query.
|
||||
|
||||
Under the **Sources** menu, select the *Tables* option:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_08_sources_tables.png
|
||||
.. image:: images/tutorial/tutorial_08_sources_tables.png
|
||||
:scale: 70%
|
||||
|
||||
On the resulting page, click on the green plus sign, near the top left:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_09_add_new_table.png
|
||||
.. image:: images/tutorial/tutorial_09_add_new_table.png
|
||||
:scale: 70%
|
||||
|
||||
You only need a few pieces of information to add a new table to Superset:
|
||||
|
||||
* The name of the table
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_10_table_name.png
|
||||
.. image:: images/tutorial/tutorial_10_table_name.png
|
||||
:scale: 70%
|
||||
|
||||
* The target database from the **Database** drop-down menu (i.e. the one
|
||||
you just added above)
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_11_choose_db.png
|
||||
.. image:: images/tutorial/tutorial_11_choose_db.png
|
||||
:scale: 70%
|
||||
|
||||
* Optionally, the database schema. If the table exists in the “default” schema
|
||||
@@ -101,13 +101,13 @@ You only need a few pieces of information to add a new table to Superset:
|
||||
|
||||
Click on the **Save** button to save the configuration:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_07_save_button.png
|
||||
.. image:: images/tutorial/tutorial_07_save_button.png
|
||||
:scale: 70%
|
||||
|
||||
When redirected back to the list of tables, you should see a message indicating
|
||||
that your table was created:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_12_table_creation_success_msg.png
|
||||
.. image:: images/tutorial/tutorial_12_table_creation_success_msg.png
|
||||
:scale: 70%
|
||||
|
||||
This message also directs you to edit the table configuration. We’ll edit a limited
|
||||
@@ -116,7 +116,7 @@ a more advanced tutorial.
|
||||
|
||||
Click on the edit button next to the table you’ve created:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_13_edit_table_config.png
|
||||
.. image:: images/tutorial/tutorial_13_edit_table_config.png
|
||||
:scale: 70%
|
||||
|
||||
On the resulting page, click on the **List Table Column** tab. Here, you’ll define the
|
||||
@@ -136,7 +136,7 @@ Here’s how we’ve configured fields for the weather data. Even for measures l
|
||||
weather measurements (precipitation, snowfall, etc.), it’s ideal to group and filter
|
||||
by these values:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_14_field_config.png
|
||||
.. image:: images/tutorial/tutorial_14_field_config.png
|
||||
|
||||
As with the configurations above, click the **Save** button to save these settings.
|
||||
|
||||
@@ -146,17 +146,17 @@ Exploring your data
|
||||
To start exploring your data, simply click on the table name you just created in
|
||||
the list of available tables:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_15_click_table_name.png
|
||||
.. image:: images/tutorial/tutorial_15_click_table_name.png
|
||||
|
||||
By default, you’ll be presented with a Table View:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_16_datasource_chart_type.png
|
||||
.. image:: images/tutorial/tutorial_16_datasource_chart_type.png
|
||||
|
||||
Let’s walk through a basic query to get the count of all records in our table.
|
||||
First, we’ll need to change the **Since** filter to capture the range of our data.
|
||||
You can use simple phrases to apply these filters, like "3 years ago":
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_17_choose_time_range.png
|
||||
.. image:: images/tutorial/tutorial_17_choose_time_range.png
|
||||
|
||||
The upper limit for time, the **Until** filter, defaults to "now", which may or may
|
||||
not be what you want.
|
||||
@@ -164,25 +164,25 @@ not be what you want.
|
||||
Look for the Metrics section under the **GROUP BY** header, and start typing "Count"
|
||||
- you’ll see a list of metrics matching what you type:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_18_choose_metric.png
|
||||
.. image:: images/tutorial/tutorial_18_choose_metric.png
|
||||
|
||||
Select the *COUNT(\*)* metric, then click the green **Query** button near the top
|
||||
of the explore:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_19_click_query.png
|
||||
.. image:: images/tutorial/tutorial_19_click_query.png
|
||||
|
||||
You’ll see your results in the table:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_20_count_star_result.png
|
||||
.. image:: images/tutorial/tutorial_20_count_star_result.png
|
||||
|
||||
Let’s group this by the *weather_description* field to get the count of records by
|
||||
the type of weather recorded by adding it to the *Group by* section:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_21_group_by.png
|
||||
.. image:: images/tutorial/tutorial_21_group_by.png
|
||||
|
||||
and run the query:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_22_group_by_result.png
|
||||
.. image:: images/tutorial/tutorial_22_group_by_result.png
|
||||
|
||||
Let’s find a more useful data point: the top 10 times and places that recorded the
|
||||
highest temperature in 2015.
|
||||
@@ -190,11 +190,11 @@ highest temperature in 2015.
|
||||
We replace *weather_description* with *latitude*, *longitude* and *measurement_date* in the
|
||||
*Group by* section:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_23_group_by_more_dimensions.png
|
||||
.. image:: images/tutorial/tutorial_23_group_by_more_dimensions.png
|
||||
|
||||
And replace *COUNT(\*)* with *max__measurement_flag*:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_24_max_metric.png
|
||||
.. image:: images/tutorial/tutorial_24_max_metric.png
|
||||
|
||||
The *max__measurement_flag* metric was created when we checked the box under **Max** and
|
||||
next to the *measurement_flag* field, indicating that this field was numeric and that
|
||||
@@ -206,16 +206,16 @@ precipitation and temperature). Therefore, we must filter our query only on reco
|
||||
where the *weather_description* is equal to "Maximum temperature", which we do in
|
||||
the **Filters** section at the bottom of the explore:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_25_max_temp_filter.png
|
||||
.. image:: images/tutorial/tutorial_25_max_temp_filter.png
|
||||
|
||||
Finally, since we only care about the top 10 measurements, we limit our results to
|
||||
10 records using the *Row limit* option under the **Options** header:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_26_row_limit.png
|
||||
.. image:: images/tutorial/tutorial_26_row_limit.png
|
||||
|
||||
We click **Query** and get the following results:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_27_top_10_max_temps.png
|
||||
.. image:: images/tutorial/tutorial_27_top_10_max_temps.png
|
||||
|
||||
In this dataset, the maximum temperature is recorded in tenths of a degree Celsius.
|
||||
The top value of 1370, measured in the middle of Nevada, is equal to 137 C, or roughly
|
||||
@@ -240,20 +240,20 @@ a dashboard.
|
||||
|
||||
We change the Chart Type to "Distribution - Bar Chart":
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_28_bar_chart.png
|
||||
.. image:: images/tutorial/tutorial_28_bar_chart.png
|
||||
|
||||
Our filter on Maximum temperature measurements was retained, but the query and
|
||||
formatting options are dependent on the chart type, so you’ll have to set the
|
||||
values again:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_29_bar_chart_series_metrics.png
|
||||
.. image:: images/tutorial/tutorial_29_bar_chart_series_metrics.png
|
||||
|
||||
You should note the extensive formatting options for this chart: the ability to
|
||||
set axis labels, margins, ticks, etc. To make the data presentable to a broad
|
||||
audience, you’ll want to apply many of these to slices that end up in dashboards.
|
||||
For now, though, we run our query and get the following chart:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_30_bar_chart_results.png
|
||||
.. image:: images/tutorial/tutorial_30_bar_chart_results.png
|
||||
:scale: 70%
|
||||
|
||||
Creating a slice and dashboard
|
||||
@@ -265,39 +265,39 @@ a saved query is called a **Slice**.
|
||||
To create a slice, click the **Save as** button near the top-left of the
|
||||
explore:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_19_click_query.png
|
||||
.. image:: images/tutorial/tutorial_19_click_query.png
|
||||
|
||||
A popup should appear, asking you to name the slice, and optionally add it to a
|
||||
dashboard. Since we haven’t yet created any dashboards, we can create one and
|
||||
immediately add our slice to it. Let’s do it:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_31_save_slice_to_dashboard.png
|
||||
.. image:: images/tutorial/tutorial_31_save_slice_to_dashboard.png
|
||||
:scale: 70%
|
||||
|
||||
Click Save, which will direct you back to your original query. We see that
|
||||
our slice and dashboard were successfully created:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_32_save_slice_confirmation.png
|
||||
.. image:: images/tutorial/tutorial_32_save_slice_confirmation.png
|
||||
:scale: 70%
|
||||
|
||||
Let’s check out our new dashboard. We click on the **Dashboards** menu:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_33_dashboard.png
|
||||
.. image:: images/tutorial/tutorial_33_dashboard.png
|
||||
|
||||
and find the dashboard we just created:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_34_weather_dashboard.png
|
||||
.. image:: images/tutorial/tutorial_34_weather_dashboard.png
|
||||
|
||||
Things seemed to have worked - our slice is here!
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_35_slice_on_dashboard.png
|
||||
.. image:: images/tutorial/tutorial_35_slice_on_dashboard.png
|
||||
:scale: 70%
|
||||
|
||||
But it’s a bit smaller than we might like. Luckily, you can adjust the size
|
||||
of slices in a dashboard by clicking, holding and dragging the bottom-right
|
||||
corner to your desired dimensions:
|
||||
|
||||
.. image:: _static/img/tutorial/tutorial_36_adjust_dimensions.gif
|
||||
.. image:: images/tutorial/tutorial_36_adjust_dimensions.gif
|
||||
:scale: 120%
|
||||
|
||||
After adjusting the size, you’ll be asked to click on the icon near the
|
||||
|
||||
@@ -1,54 +1,5 @@
|
||||
Videos
|
||||
======
|
||||
|
||||
Here is a collection of short videos showing different aspect
|
||||
of Superset.
|
||||
|
||||
Quick Intro
|
||||
'''''''''''
|
||||
This video demonstrates how Superset works at a high level, it shows how
|
||||
to navigate through datasets and dashboards that are already available.
|
||||
|
||||
.. youtube:: https://www.youtube.com/watch?v=3Txm_nj_R7M
|
||||
|
||||
Dashboard Creation
|
||||
''''''''''''''''''
|
||||
This video walk you through the creation of a simple dashboard as a
|
||||
collection of data slices.
|
||||
|
||||
- Coming soon!
|
||||
|
||||
Dashboard Filtering
|
||||
'''''''''''''''''''
|
||||
This video shows how to create dynamic filters on dashboards, how to
|
||||
immunize certain widgets from being affected by filters.
|
||||
|
||||
- Coming soon!
|
||||
|
||||
Customize CSS and dashboard themes
|
||||
''''''''''''''''''''''''''''''''''
|
||||
A quick walkthrough on how to apply existing CSS templates, alter them and
|
||||
create new ones.
|
||||
|
||||
- Coming soon!
|
||||
|
||||
Slice Annotations
|
||||
'''''''''''''''''
|
||||
A short video on how to annotate your charts, the markdown language and
|
||||
to toggle them on dashboards.
|
||||
|
||||
- Coming soon!
|
||||
|
||||
Adding a Table
|
||||
''''''''''''''
|
||||
This videos shows you how to expose a new table in Superset, and how to
|
||||
define the semantics on how this can be accessed by others in the ``Explore``
|
||||
and ``Dashboard`` views.
|
||||
|
||||
- Coming soon!
|
||||
|
||||
Define SQL Expressions
|
||||
''''''''''''''''''''''
|
||||
A walkthrough on how to create your own derived dimensions and metrics.
|
||||
|
||||
- Coming soon!
|
||||
.. note ::
|
||||
This section of the documentation has yet to be filled in.
|
||||
|
||||
@@ -1735,7 +1735,7 @@ To add a new country in country map tools, we need follow next steps :
|
||||
7. Add your country in component 'select_country'
|
||||
Example :
|
||||
|
||||
.. code:: python
|
||||
.. code-block:: javascript
|
||||
|
||||
select_country: {
|
||||
type: 'SelectControl',
|
||||
|
||||
21
install/helm/superset/.helmignore
Normal file
@@ -0,0 +1,21 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
9
install/helm/superset/Chart.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
apiVersion: v1
|
||||
appVersion: "1.0"
|
||||
description: A Helm chart for Kubernetes
|
||||
name: superset
|
||||
maintainers:
|
||||
- name: Chuan-Yen Chiang
|
||||
email: cychiang0823@gmail.com
|
||||
url: https://github.com/cychiang
|
||||
version: 0.1.0
|
||||
19
install/helm/superset/templates/NOTES.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "superset.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "superset.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "superset.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "superset.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:80
|
||||
{{- end }}
|
||||
32
install/helm/superset/templates/_helpers.tpl
Normal file
@@ -0,0 +1,32 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "superset.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "superset.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "superset.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
11
install/helm/superset/templates/configmap.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: superset-configmap
|
||||
labels:
|
||||
app: {{ template "superset.name" . }}
|
||||
chart: {{ template "superset.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
data:
|
||||
{{ (.Files.Glob "config/*").AsConfig | indent 2 }}
|
||||
50
install/helm/superset/templates/deployment.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
apiVersion: apps/v1beta2
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "superset.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "superset.name" . }}
|
||||
chart: {{ template "superset.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: {{ template "superset.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "superset.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
volumeMounts:
|
||||
- name: superset-config
|
||||
mountPath: /etc/superset/
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8088
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: "superset-config"
|
||||
configMap:
|
||||
name: superset-configmap
|
||||
38
install/helm/superset/templates/ingress.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "superset.fullname" . -}}
|
||||
{{- $ingressPath := .Values.ingress.path -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
app: {{ template "superset.name" . }}
|
||||
chart: {{ template "superset.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $ingressPath }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
19
install/helm/superset/templates/service.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "superset.fullname" . }}
|
||||
labels:
|
||||
app: {{ template "superset.name" . }}
|
||||
chart: {{ template "superset.chart" . }}
|
||||
release: {{ .Release.Name }}
|
||||
heritage: {{ .Release.Service }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app: {{ template "superset.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
45
install/helm/superset/values.yaml
Normal file
@@ -0,0 +1,45 @@
|
||||
# Default values for superset.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: amancevice/superset
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
type: NodePort
|
||||
port: 8088
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
path: /
|
||||
hosts:
|
||||
- chart-example.local
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
pylint superset --errors-only
|
||||
8
requirements-dev.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
flask-cors==3.0.3
|
||||
ipdb==0.11
|
||||
mysqlclient==1.3.12
|
||||
psycopg2==2.7.4
|
||||
redis==2.10.6
|
||||
statsd==3.2.2
|
||||
tox==2.9.1
|
||||
console_log==0.2.10
|
||||
41
requirements.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
bleach==2.1.2
|
||||
boto3==1.4.7
|
||||
celery==4.1.0
|
||||
colorama==0.3.9
|
||||
cryptography==1.9
|
||||
flask==0.12.2
|
||||
flask-appbuilder==1.10.0
|
||||
flask-caching==1.4.0
|
||||
flask-compress==1.4.0
|
||||
flask-migrate==2.1.1
|
||||
flask-script==2.0.6
|
||||
flask-testing==0.7.1
|
||||
flask-wtf==0.14.2
|
||||
flower==0.9.2
|
||||
future==0.16.0
|
||||
geopy==1.11.0
|
||||
gunicorn==19.8.0
|
||||
humanize==0.5.1
|
||||
idna==2.6
|
||||
markdown==2.6.11
|
||||
pandas==0.22.0
|
||||
parsedatetime==2.0.0
|
||||
pathlib2==2.3.0
|
||||
polyline==1.3.2
|
||||
pydruid==0.4.3
|
||||
pyhive==0.5.1
|
||||
python-dateutil==2.6.1
|
||||
python-geohash==0.8.5
|
||||
pyyaml==3.12
|
||||
requests==2.18.4
|
||||
simplejson==3.13.2
|
||||
six==1.11.0
|
||||
sqlalchemy==1.2.2
|
||||
sqlalchemy-utils==0.32.21
|
||||
sqlparse==0.2.4
|
||||
thrift==0.11.0
|
||||
thrift-sasl==0.3.0
|
||||
unicodecsv==0.14.1
|
||||
unidecode==1.0.22
|
||||
contextlib2==0.5.5
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
echo $DB
|
||||
rm -f .coverage
|
||||
export SUPERSET_CONFIG=tests.superset_test_config
|
||||
set -e
|
||||
superset/bin/superset version -v
|
||||
export SOLO_TEST=1
|
||||
# e.g. tests.core_tests:CoreTests.test_templated_sql_json
|
||||
nosetests $1
|
||||
14
run_tests.sh
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
echo $DB
|
||||
rm ~/.superset/unittests.db
|
||||
rm ~/.superset/celerydb.sqlite
|
||||
rm ~/.superset/celery_results.sqlite
|
||||
rm -f .coverage
|
||||
export SUPERSET_CONFIG=tests.superset_test_config
|
||||
set -e
|
||||
superset/bin/superset db upgrade
|
||||
superset/bin/superset version -v
|
||||
python setup.py nosetests
|
||||
if [ "$CI" = "true" ] ; then
|
||||
coveralls
|
||||
fi
|
||||
@@ -1,3 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
from superset import sm
|
||||
|
||||
16
setup.cfg
@@ -10,16 +10,16 @@ license = Apache License, Version 2.0
|
||||
packages = superset
|
||||
|
||||
[build_sphinx]
|
||||
source-dir = docs/
|
||||
build-dir = docs/_build
|
||||
all_files = 1
|
||||
source-dir = docs
|
||||
build-dir = docs/_build
|
||||
all_files = 1
|
||||
|
||||
[upload_sphinx]
|
||||
upload-dir = docs/_build/html
|
||||
|
||||
[nosetests]
|
||||
verbosity=3
|
||||
detailed-errors=1
|
||||
with-coverage=1
|
||||
nocapture=1
|
||||
cover-package=superset
|
||||
verbosity = 3
|
||||
detailed-errors = 1
|
||||
with-coverage = 1
|
||||
nocapture = 1
|
||||
cover-package = superset
|
||||
|
||||
88
setup.py
@@ -1,3 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
@@ -44,61 +50,61 @@ setup(
|
||||
zip_safe=False,
|
||||
scripts=['superset/bin/superset'],
|
||||
install_requires=[
|
||||
'bleach',
|
||||
'boto3>=1.4.6',
|
||||
'celery==4.1.0',
|
||||
'colorama==0.3.9',
|
||||
'cryptography==1.9',
|
||||
'flask==0.12.2',
|
||||
'flask-appbuilder==1.9.6',
|
||||
'flask-cache==0.13.1',
|
||||
'flask-migrate==2.1.1',
|
||||
'flask-script==2.0.6',
|
||||
'flask-sqlalchemy==2.1',
|
||||
'flask-testing==0.7.1',
|
||||
'flask-wtf==0.14.2',
|
||||
'flower==0.9.2',
|
||||
'celery',
|
||||
'colorama',
|
||||
'contextlib2',
|
||||
'cryptography',
|
||||
'flask<1.0.0',
|
||||
'flask-appbuilder',
|
||||
'flask-caching',
|
||||
'flask-compress',
|
||||
'flask-migrate',
|
||||
'flask-script',
|
||||
'flask-testing',
|
||||
'flask-wtf',
|
||||
'flower', # deprecated
|
||||
'future>=0.16.0, <0.17',
|
||||
'python-geohash==0.8.5',
|
||||
'humanize==0.5.1',
|
||||
'gunicorn==19.7.1',
|
||||
'idna==2.6',
|
||||
'markdown==2.6.11',
|
||||
'pandas==0.22.0',
|
||||
'parsedatetime==2.0.0',
|
||||
'pathlib2==2.3.0',
|
||||
'polyline==1.3.2',
|
||||
'pydruid==0.4.0',
|
||||
'PyHive>=0.4.0',
|
||||
'python-dateutil==2.6.1',
|
||||
'geopy',
|
||||
'gunicorn', # deprecated
|
||||
'humanize',
|
||||
'idna',
|
||||
'markdown',
|
||||
'pandas',
|
||||
'parsedatetime',
|
||||
'pathlib2',
|
||||
'polyline',
|
||||
'pydruid>=0.4.3',
|
||||
'pyhive>=0.4.0',
|
||||
'python-dateutil',
|
||||
'python-geohash',
|
||||
'pyyaml>=3.11',
|
||||
'requests==2.18.4',
|
||||
'simplejson==3.13.2',
|
||||
'six==1.11.0',
|
||||
'sqlalchemy==1.2.2',
|
||||
'sqlalchemy-utils==0.32.21',
|
||||
'sqlparse==0.2.4',
|
||||
'requests',
|
||||
'simplejson',
|
||||
'six',
|
||||
'sqlalchemy',
|
||||
'sqlalchemy-utils',
|
||||
'sqlparse',
|
||||
'thrift>=0.9.3',
|
||||
'thrift-sasl>=0.2.1',
|
||||
'unicodecsv',
|
||||
'unidecode>=0.04.21',
|
||||
],
|
||||
extras_require={
|
||||
'cors': ['Flask-Cors>=2.0.0'],
|
||||
'cors': ['flask-cors>=2.0.0'],
|
||||
'console_log': ['console_log==0.2.10'],
|
||||
},
|
||||
tests_require=[
|
||||
'codeclimate-test-reporter',
|
||||
'coverage',
|
||||
'mock',
|
||||
'nose',
|
||||
'redis',
|
||||
],
|
||||
author='Maxime Beauchemin',
|
||||
author_email='maximebeauchemin@gmail.com',
|
||||
url='https://github.com/airbnb/superset',
|
||||
url='https://github.com/apache/incubator-superset',
|
||||
download_url=(
|
||||
'https://github.com/airbnb/superset/tarball/' + version_string),
|
||||
'https://github.com'
|
||||
'/apache/incubator-superset/tarball/' + version_string
|
||||
),
|
||||
classifiers=[
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# pylint: disable=C,R,W
|
||||
"""Package's main module!"""
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
@@ -12,12 +14,14 @@ import os
|
||||
from flask import Flask, redirect
|
||||
from flask_appbuilder import AppBuilder, IndexView, SQLA
|
||||
from flask_appbuilder.baseviews import expose
|
||||
from flask_compress import Compress
|
||||
from flask_migrate import Migrate
|
||||
from flask_wtf.csrf import CSRFProtect
|
||||
from werkzeug.contrib.fixers import ProxyFix
|
||||
|
||||
from superset import config, utils
|
||||
from superset.connectors.connector_registry import ConnectorRegistry
|
||||
from superset import utils, config # noqa
|
||||
from superset.security import SupersetSecurityManager
|
||||
|
||||
APP_DIR = os.path.dirname(__file__)
|
||||
CONFIG_MODULE = os.environ.get('SUPERSET_CONFIG', 'superset.config')
|
||||
@@ -75,7 +79,9 @@ for bp in conf.get('BLUEPRINTS'):
|
||||
if conf.get('SILENCE_FAB'):
|
||||
logging.getLogger('flask_appbuilder').setLevel(logging.ERROR)
|
||||
|
||||
if not app.debug:
|
||||
if app.debug:
|
||||
app.logger.setLevel(logging.DEBUG)
|
||||
else:
|
||||
# In production mode, add log handler to sys.stderr.
|
||||
app.logger.addHandler(logging.StreamHandler())
|
||||
app.logger.setLevel(logging.INFO)
|
||||
@@ -147,16 +153,23 @@ class MyIndexView(IndexView):
|
||||
return redirect('/superset/welcome')
|
||||
|
||||
|
||||
custom_sm = app.config.get('CUSTOM_SECURITY_MANAGER') or SupersetSecurityManager
|
||||
if not issubclass(custom_sm, SupersetSecurityManager):
|
||||
raise Exception(
|
||||
"""Your CUSTOM_SECURITY_MANAGER must now extend SupersetSecurityManager,
|
||||
not FAB's security manager.
|
||||
See [4565] in UPDATING.md""")
|
||||
|
||||
appbuilder = AppBuilder(
|
||||
app,
|
||||
db.session,
|
||||
base_template='superset/base.html',
|
||||
indexview=MyIndexView,
|
||||
security_manager_class=app.config.get('CUSTOM_SECURITY_MANAGER'),
|
||||
security_manager_class=custom_sm,
|
||||
update_perms=utils.get_update_perms_flag(),
|
||||
)
|
||||
|
||||
sm = appbuilder.sm
|
||||
security_manager = appbuilder.sm
|
||||
|
||||
results_backend = app.config.get('RESULTS_BACKEND')
|
||||
|
||||
@@ -165,6 +178,10 @@ module_datasource_map = app.config.get('DEFAULT_MODULE_DS_MAP')
|
||||
module_datasource_map.update(app.config.get('ADDITIONAL_MODULE_DS_MAP'))
|
||||
ConnectorRegistry.register_sources(module_datasource_map)
|
||||
|
||||
# Flask-Compress
|
||||
if conf.get('ENABLE_FLASK_COMPRESS'):
|
||||
Compress(app)
|
||||
|
||||
# Hook that provides administrators a handle on the Flask APP
|
||||
# after initialization
|
||||
flask_app_mutator = app.config.get('FLASK_APP_MUTATOR')
|
||||
|
||||
@@ -38,5 +38,8 @@
|
||||
"react/no-unescaped-entities": 0,
|
||||
"react/no-unused-prop-types": 0,
|
||||
"react/no-string-refs": 0,
|
||||
"indent": 0,
|
||||
"no-multi-spaces": 0,
|
||||
"padded-blocks": 0,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2214,6 +2214,20 @@
|
||||
"default": false,
|
||||
"description": "Whether to apply filter when table cell is clicked"
|
||||
},
|
||||
"align_pn": {
|
||||
"type": "CheckboxControl",
|
||||
"label": "Align +/-",
|
||||
"renderTrigger": true,
|
||||
"default": false,
|
||||
"description": "Whether to align the background chart for +/- values"
|
||||
},
|
||||
"color_pn": {
|
||||
"type": "CheckboxControl",
|
||||
"label": "Color +/-",
|
||||
"renderTrigger": true,
|
||||
"default": true,
|
||||
"description": "Whether to color +/- values"
|
||||
},
|
||||
"show_bubbles": {
|
||||
"type": "CheckboxControl",
|
||||
"label": "Show Bubbles",
|
||||
@@ -2733,6 +2747,10 @@
|
||||
[
|
||||
"googleCategory20c",
|
||||
"googleCategory20c"
|
||||
],
|
||||
[
|
||||
"lyftColors",
|
||||
"lyftColors"
|
||||
]
|
||||
],
|
||||
"description": "The color scheme for rendering chart",
|
||||
@@ -2974,4 +2992,4 @@
|
||||
"description": "Partitions whose height to parent height proportions are below this value are pruned"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
superset/assets/images/screenshots/bank_dash.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
superset/assets/images/screenshots/deckgl_dash.png
Normal file
|
After Width: | Height: | Size: 6.5 MiB |
BIN
superset/assets/images/screenshots/explore.png
Normal file
|
After Width: | Height: | Size: 659 KiB |
BIN
superset/assets/images/screenshots/sqllab.png
Normal file
|
After Width: | Height: | Size: 503 KiB |
BIN
superset/assets/images/screenshots/visualizations.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 253 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 225 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 968 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 511 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 433 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 777 KiB After Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 578 KiB After Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 425 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 738 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 42 KiB |
BIN
superset/assets/images/viz_thumbnails/line_multi.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 743 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 460 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 494 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 22 KiB |