Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge master #7

Merged
merged 84 commits into from
Apr 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
b427a80
fix(sqla): apply sqla type on calculated columns (#14014)
villebro Apr 8, 2021
89817d4
fix(alerts/reports): working timeout with celery kill and logic fix (…
dpgaspar Apr 8, 2021
7697bc2
feat: FE: Export for Queries II (#13981)
lyndsiWilliams Apr 8, 2021
5dd971e
fix: execution log crashes for logs with no uuid (#13998)
jfrag1 Apr 8, 2021
6a81a79
feat: Support feature flag overrides in ephemeral test envs (#14008)
robdiciuccio Apr 8, 2021
806fb73
feat(SIP-39): Websocket sidecar app (#11498)
robdiciuccio Apr 8, 2021
b5e5b3a
feat: create backend routes and API for importing saved queries (#13893)
AAfghahi Apr 8, 2021
784d29b
chore: Moves Fade component into TableElement (#13458)
michael-s-molina Apr 8, 2021
c60a93d
feat: add extract_errors to Postgres (#13997)
betodealmeida Apr 8, 2021
667eb83
use dynamic time_grains for schema (#14009)
eschutho Apr 8, 2021
a3b41e2
fix: Issue 13956 (#13980)
john-bodley Apr 9, 2021
2c96c5b
Fix broken port-forward instructions (#14039)
caleb15 Apr 9, 2021
9e03b6d
feat(helm): add pod and deployment annotations to template (#14030)
rasta-rocket Apr 9, 2021
fd201fe
Update CONTRIBUTING.md (#14025)
hughhhh Apr 9, 2021
c0017b3
Tests for ColumnSelect (#13991)
yardz Apr 9, 2021
36f101e
test: ShareMenuItems (#13860)
yardz Apr 9, 2021
ec3f8d0
test: SliceHeader (#13888)
yardz Apr 9, 2021
3d357c6
feat: handle chart/data API errors (#14040)
Apr 9, 2021
011af82
test: Tab (#13937)
yardz Apr 9, 2021
1920811
test: Tabs (#13941)
yardz Apr 9, 2021
ff08d42
Tests for ControlItems (#13975)
yardz Apr 9, 2021
bfa6140
fix(viz): bump superset-ui 0.17.30 (#14045)
villebro Apr 9, 2021
95ed873
chore: well component to card component(Updating PR #12200) (#14033)
yardz Apr 9, 2021
66201e7
test: FilterSets-utils (#14028)
yardz Apr 9, 2021
fe08b69
docs: update outdated country map tools instructions (#14027)
ktmud Apr 9, 2021
a4fd6b8
fix: Use superset generic db to catch external_metadata queries (#13974)
hughhhh Apr 10, 2021
287bc12
Use consistent chart value (#14031)
thomasv314 Apr 11, 2021
de49f0d
fix: add exception to catch session not having JWT (#14036)
hughhhh Apr 11, 2021
1c6173c
feat: Make async query JWT cookie domain configurable (#14007)
benjreinhart Apr 12, 2021
468638c
feat(native-filters): Add default first value to select filter (#13726)
simcha90 Apr 12, 2021
d6bd160
fix: fix bug when remove chart not removing it's related cross filte…
simcha90 Apr 12, 2021
bf22487
Make chart exclude itself from cross filtering (#14046)
kgabryje Apr 12, 2021
778bb8e
feat: add descriptions to report emails (#13827)
samtfm Apr 12, 2021
911462a
feat: only send alert error emails to owners of the alert (#13862)
samtfm Apr 12, 2021
7980b76
feat: Implement Celery SoftTimeLimit handling (#13740)
Apr 12, 2021
c563ea0
fix: flacky test in test_update_dataset_item_w_override_columns (#14082)
hughhhh Apr 12, 2021
786dadc
feat: invalid password error message (Postgres) (#14038)
betodealmeida Apr 12, 2021
5952d78
Add docs for configuring Docker Compose setup (#13961)
alexkreidler Apr 12, 2021
89f5785
fix(listview): update listview feature flag (#13906)
pkdotson Apr 12, 2021
4bb29b6
chore(spa refactor): refactoring dashboard to use api's instead of bo…
pkdotson Apr 12, 2021
92a6692
refactor: Bootstrap to AntD - Slider (#13989)
michael-s-molina Apr 12, 2021
80da1ca
fix: unable to apply logging format (#14074)
zhaoyongjie Apr 13, 2021
11869dc
test: Tests audit for the Dashboard FilterBar (#13916)
geido Apr 13, 2021
55257ab
chore: Adds dataMask reducer to reducerIndex (#13951)
michael-s-molina Apr 13, 2021
b394733
test: Adds tests to the UndoRedoKeyListeners component (#13919)
michael-s-molina Apr 13, 2021
9c5264a
feat(can_share): can share chart and dashboard (#14076)
amitmiran137 Apr 13, 2021
15ac075
fix(sqla): labels_expected contains mutated label (#14095)
villebro Apr 13, 2021
8c5b6b1
feat(dashboard_rbac): provide data access based on dashboard access (…
amitmiran137 Apr 13, 2021
4b23d0e
fix: logs table - user_id is NULL (#14057)
hughhhh Apr 13, 2021
6392d41
fix: Fixed saved query export (#14086)
lyndsiWilliams Apr 13, 2021
f453287
fix:fix get permission function (#14099)
simcha90 Apr 13, 2021
3a011ec
chore: stop logging `SupersetExceptions` if status < 500 (#14088)
hughhhh Apr 13, 2021
3c88d25
fix(country-map): update geojson and control layout (#14063)
ktmud Apr 13, 2021
83b8d1b
build(deps): bump y18n from 4.0.0 to 4.0.1 in /superset-frontend (#13…
dependabot[bot] Apr 13, 2021
4e15e00
build(deps): bump y18n from 4.0.0 to 4.0.1 in /docs (#13874)
dependabot[bot] Apr 13, 2021
5969386
build(deps): bump three from 0.68.87 to 0.125.0 in /docs (#13391)
dependabot[bot] Apr 13, 2021
353038e
build(deps): bump socket.io from 2.3.0 to 2.4.1 in /docs (#12636)
dependabot[bot] Apr 13, 2021
b77477a
feat: invalid hostname and password error messages (MySQL) (#14089)
AAfghahi Apr 13, 2021
c8a7943
refactor: Bootstrap to AntD - ListGroup (#13996)
michael-s-molina Apr 13, 2021
cfe927b
test: Adds tests for the FixedOrMetricControl component (#13705)
michael-s-molina Apr 13, 2021
ff71f12
Ad missing __init__.py (#14113)
betodealmeida Apr 14, 2021
321db46
feat: invalid hostname and password error messages (Redshift) (#14111)
AAfghahi Apr 14, 2021
a548b69
build(deps): bump urijs from 1.19.4 to 1.19.6 in /superset-frontend (…
dependabot[bot] Apr 14, 2021
474f1e2
test: Add tests for Dashboard Header and HeaderActionsDropdown compon…
geido Apr 14, 2021
ef1f048
feat: add Echarts gauge chart (#14072)
krsnik93 Apr 14, 2021
21f973f
feat: error messages when connecting to MSSQL (#14093)
betodealmeida Apr 14, 2021
36bd6d8
feat: FE: Import for Queries II (#14091)
lyndsiWilliams Apr 14, 2021
6755083
fix(dashboard): incorrect perm for users with multiple roles (#14148)
ktmud Apr 14, 2021
f1acb2f
horizontal scroll (#14140)
AAfghahi Apr 14, 2021
68e11cd
fix(dashboard): filter set hydration not working (#14129)
villebro Apr 15, 2021
8ef572a
refactor(native-filters): update dataMask and ExtraFormData schema (#…
simcha90 Apr 15, 2021
eadff5f
feat: invalid DB name error messages (MySQL/Postgres/Redshift) (#14146)
AAfghahi Apr 15, 2021
19d2e10
chore: update RELEASING readme (#14152)
Apr 15, 2021
fbf0149
refactor(userInfo): userinfo panel to styled component (#14090)
pkdotson Apr 15, 2021
3294f77
feat: Add health endpoint to WebSocket server (#14110)
benjreinhart Apr 15, 2021
c1cb361
feat: script to benchmark DB migrations (#13561)
betodealmeida Apr 15, 2021
21c6efe
chore: rename connection errors (#14169)
betodealmeida Apr 15, 2021
df7e2b6
feat(alert/report): chart as csv format attachment for email and slac…
Apr 15, 2021
38a1f65
chore(toggle thumbnails): use localstorage for toggle (#14013)
pkdotson Apr 16, 2021
ec75dc1
chore: Moves CronPicker to the components folder (#14125)
michael-s-molina Apr 16, 2021
e4c8084
chore: Moves DropdownButton to the components folder (#14127)
michael-s-molina Apr 16, 2021
018caa5
chore: Moves Switch to the components folder (#14135)
michael-s-molina Apr 16, 2021
be78cd1
chore: Configures Jest to ignore storybook files when collecting cove…
michael-s-molina Apr 16, 2021
cab110e
Enable the new pivot table (#14187)
kgabryje Apr 16, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .github/workflows/ephemeral-env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
slash-command: ${{ steps.eval-body.outputs.result }}
feature-flags: ${{ steps.eval-feature-flags.outputs.result }}

steps:
- name: Debug
Expand All @@ -28,6 +29,22 @@ jobs:
const result = pattern.exec(context.payload.comment.body)
return result === null ? 'noop' : result[1]

- name: Eval comment body for feature flags
uses: actions/github-script@v3
id: eval-feature-flags
with:
script: |
const pattern = /FEATURE_(\w+)=(\w+)/g;
let results = [];
[...context.payload.comment.body.matchAll(pattern)].forEach(match => {
const config = {
name: `SUPERSET_FEATURE_${match[1]}`,
value: match[2],
};
results.push(config);
});
return results;

- name: Limit to committers
if: >
steps.eval-body.outputs.result != 'noop' &&
Expand Down Expand Up @@ -100,6 +117,10 @@ jobs:
container-name: superset-ci
image: ${{ steps.login-ecr.outputs.registry }}/superset-ci:pr-${{ github.event.issue.number }}

- name: Update env vars in the Amazon ECS task definition
run: |
cat <<< "$(jq '.containerDefinitions[0].environment += ${{ needs.ephemeral_env_comment.outputs.feature-flags }}' < ${{ steps.task-def.outputs.task-definition }})" > ${{ steps.task-def.outputs.task-definition }}

- name: Describe ECS service
id: describe-services
run: |
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/superset-websocket.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: WebSocket server
on:
push:
paths:
- "superset-websocket/**"
pull_request:
paths:
- "superset-websocket/**"

jobs:
app-checks:
if: github.event.pull_request.draft == false
runs-on: ubuntu-20.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Install dependencies
working-directory: ./superset-websocket
run: npm install
- name: lint
working-directory: ./superset-websocket
run: npm run lint
- name: prettier
working-directory: ./superset-websocket
run: npm run prettier-check
- name: unit tests
working-directory: ./superset-websocket
run: npm run test
- name: build
working-directory: ./superset-websocket
run: npm run build
12 changes: 10 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,16 @@ Finally, never submit a PR that will put master branch in broken state. If the P

#### Test Environments

- Members of the Apache GitHub org can launch an ephemeral test environment directly on a pull request by creating a comment containing (only) the command `/testenv up`
- Members of the Apache GitHub org can launch an ephemeral test environment directly on a pull request by creating a comment containing (only) the command `/testenv up`.
- Note that org membership must be public in order for this validation to function properly.
- Feature flags may be set for a test environment by specifying the flag name (prefixed with `FEATURE_`) and value after the command.
- Format: `/testenv up FEATURE_<feature flag name>=true|false`
- Example: `/testenv up FEATURE_DASHBOARD_NATIVE_FILTERS=true`
- Multiple feature flags may be set in single command, separated by whitespace
- A comment will be created by the workflow script with the address and login information for the ephemeral environment.
- Test environments may be created once the Docker build CI workflow for the PR has completed successfully.
- Test environments do not currently update automatically when new commits are added to a pull request.
- Test environments do not currently support async workers, though this is planned.
- Running test environments will be shutdown upon closing the pull request.

#### Merging
Expand Down Expand Up @@ -435,7 +442,7 @@ superset db upgrade
# Create default roles and permissions
superset init

# Load some data to play with
# Load some data to play with (you must create an Admin user with the username `admin` for this command to work)
superset load-examples

# Start the Flask dev web server from inside your virtualenv.
Expand Down Expand Up @@ -1271,6 +1278,7 @@ The following configuration settings are available for async queries (see config
- `GLOBAL_ASYNC_QUERIES_REDIS_STREAM_LIMIT_FIREHOSE` - the maximum number of events for all users (FIFO eviction)
- `GLOBAL_ASYNC_QUERIES_JWT_COOKIE_NAME` - the async query feature uses a [JWT](https://tools.ietf.org/html/rfc7519) cookie for authentication, this setting is the cookie's name
- `GLOBAL_ASYNC_QUERIES_JWT_COOKIE_SECURE` - JWT cookie secure option
- `GLOBAL_ASYNC_QUERIES_JWT_COOKIE_DOMAIN` - JWT cookie domain option ([see docs for set_cookie](https://tedboy.github.io/flask/interface_api.response_object.html#flask.Response.set_cookie))
- `GLOBAL_ASYNC_QUERIES_JWT_SECRET` - JWT's use a secret key to sign and validate the contents. This value should be at least 32 bytes and have sufficient randomness for proper security
- `GLOBAL_ASYNC_QUERIES_TRANSPORT` - currently the only available option is (HTTP) `polling`, but support for a WebSocket will be added in future versions
- `GLOBAL_ASYNC_QUERIES_POLLING_DELAY` - the time (in ms) between polling requests
Expand Down
6 changes: 6 additions & 0 deletions RELEASING/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,12 @@ Example:
python changelog.py --previous_version 0.37 --current_version 0.38 changelog
```

You can get a list of pull requests with labels started with blocking, risk, hold, revert and security by using the parameter `--risk`.
Example:
```bash
python changelog.py --previous_version 0.37 --current_version 0.38 changelog --access_token {GITHUB_TOKEN} --risk
```

The script will checkout both branches and compare all the PR's, copy the output and paste it on the `CHANGELOG.md`

Then, in `UPDATING.md`, a file that contains a list of notifications around
Expand Down
2 changes: 2 additions & 0 deletions UPDATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ assists people when migrating to a new version.
## Next
- [13772](https://github.com/apache/superset/pull/13772): Row level security (RLS) is now enabled by default. To activate the feature, please run `superset init` to expose the RLS menus to Admin users.

- [13980](https://github.com/apache/superset/pull/13980): Data health checks no longer use the metadata database as an interim cache. Though non-breaking, deployments which implement complex logic should likely memoize the callback function. Refer to documentation in the confg.py file for more detail.

### Breaking Changes
### Potential Downtime
### Deprecations
Expand Down
1 change: 1 addition & 0 deletions docs/.nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v12
3 changes: 2 additions & 1 deletion docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1133,6 +1133,7 @@ The following configuration settings are available for async queries (see config
- ``GLOBAL_ASYNC_QUERIES_REDIS_STREAM_LIMIT_FIREHOSE`` - the maximum number of events for all users (FIFO eviction)
- ``GLOBAL_ASYNC_QUERIES_JWT_COOKIE_NAME`` - the async query feature uses a `JWT <https://tools.ietf.org/html/rfc7519>`_ cookie for authentication, this setting is the cookie's name
- ``GLOBAL_ASYNC_QUERIES_JWT_COOKIE_SECURE`` - JWT cookie secure option
- ``GLOBAL_ASYNC_QUERIES_JWT_COOKIE_DOMAIN`` - JWT cookie domain option (`see docs for set_cookie <https://tedboy.github.io/flask/interface_api.response_object.html#flask.Response.set_cookie>`
- ``GLOBAL_ASYNC_QUERIES_JWT_SECRET`` - JWT's use a secret key to sign and validate the contents. This value should be at least 32 bytes and have sufficient randomness for proper security
- ``GLOBAL_ASYNC_QUERIES_TRANSPORT`` - currently the only available option is (HTTP) `polling`, but support for a WebSocket will be added in future versions
- ``GLOBAL_ASYNC_QUERIES_POLLING_DELAY`` - the time (in ms) between polling requests
Expand Down Expand Up @@ -1570,7 +1571,7 @@ You can enable or disable features with flag from ``superset_config.py``:

.. code-block:: python

DEFAULT_FEATURE_FLAGS = {
FEATURE_FLAGS = {
'CLIENT_CACHE': False,
'ENABLE_EXPLORE_JSON_CSRF_PROTECTION': False,
'PRESTO_EXPAND_DATA': False,
Expand Down
169 changes: 125 additions & 44 deletions docs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"react-helmet": "^6.1.0",
"swagger-ui-react": "^3.36.2",
"theme-ui": "^0.3.1",
"three": "^0.68.0"
"three": "^0.125.0"
},
"devDependencies": {
"eslint-config-airbnb": "^18.2.1",
Expand Down
2 changes: 1 addition & 1 deletion docs/sqllab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ can optionally specify a custom formatter. Eg:
return [{"Cost": f"US$ {cost:.2f}"}]


DEFAULT_FEATURE_FLAGS = {
FEATURE_FLAGS = {
"ESTIMATE_QUERY_COST": True,
"QUERY_COST_FORMATTERS_BY_ENGINE": {"presto": presto_query_cost_formatter},
}
Expand Down
Loading