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

Update no select following review #1

Merged
merged 150 commits into from
Oct 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
a15cc8c
disable data selection from results table
MialLewis Jul 17, 2024
2a58dd7
disable selection from chart table
MialLewis Jul 17, 2024
62f5b00
disable pivot chart select
MialLewis Jul 17, 2024
ca17002
add user select to permissions model
MialLewis Jul 22, 2024
06a44d8
change perms to can_export_csv
MialLewis Jul 22, 2024
71018c8
pass dataSelectionMode prop to plugin
MialLewis Jul 29, 2024
703e7ef
remove unneeded prop
MialLewis Jul 29, 2024
fafe95b
get permissions from role TableChart
MialLewis Jul 30, 2024
27d22d1
add user permissions to pivot table
MialLewis Jul 31, 2024
6b35723
apply linter and fix compiler errors
MialLewis Jul 31, 2024
6156e5f
update permissions to inline with previous features
MialLewis Jul 31, 2024
4b16a68
fix filterable table test
MialLewis Aug 2, 2024
1f7ff0e
Merge pull request #1 from MialLewis/disable_data_selection_konza
bcook-konza Aug 2, 2024
3aafd29
fix: Disable cross filtering on charts with no dimensions (#30176)
kgabryje Sep 9, 2024
05197db
build(deps): bump @types/node from 20.12.7 to 22.5.4 in /superset-fro…
dependabot[bot] Sep 9, 2024
1f89071
feat: `is_mutating` method (#30177)
betodealmeida Sep 9, 2024
d685497
build(deps): bump antd from 5.20.0 to 5.20.5 in /docs (#30179)
dependabot[bot] Sep 9, 2024
0080374
build(deps-dev): bump webpack from 5.93.0 to 5.94.0 in /docs (#30036)
dependabot[bot] Sep 9, 2024
100b31c
build(deps-dev): bump @types/react from 18.3.3 to 18.3.5 in /docs (#3…
dependabot[bot] Sep 9, 2024
ff5cc09
chore(docs): Removing dead link from INTHEWILD.md (#30199)
rusackas Sep 9, 2024
fed117f
build(deps-dev): update @babel/types requirement from ^7.25.2 to ^7.2…
dependabot[bot] Sep 9, 2024
6baeb65
fix: set default mysql isolation level to 'READ COMMITTED' (#30174)
mistercrunch Sep 10, 2024
52a03f1
fix(Embedded): Dashboard screenshot should use GuestUser (#30200)
geido Sep 10, 2024
cddf153
chore: remove duplicate `_process_sql_expression` (#30213)
betodealmeida Sep 10, 2024
d191e67
fix(Dashboard download): Download dashboard screenshot/PDF using Supe…
Vitor-Avila Sep 10, 2024
dd4f223
fix(sdk): use latest @supserset-ui/switchboard version to avoid pulli…
hainenber Sep 10, 2024
d0c9cde
chore(frontend): Spelling (#25452)
jsoref Sep 10, 2024
5a0e887
build(deps): update @babel/runtime requirement from ^7.1.2 to ^7.25.6…
dependabot[bot] Sep 10, 2024
7bb6a14
feat: Displaying details to Dataset/Database deletion modals (#30016)
rusackas Sep 10, 2024
a31a4ee
feat(embedded): add hook to allow superset admins to validate guest t…
dmarkey Sep 11, 2024
e2a6d37
build(deps): bump send and express in /superset-websocket/utils/clien…
dependabot[bot] Sep 11, 2024
dca9709
build(deps): bump serve-static and express in /superset-websocket/uti…
dependabot[bot] Sep 11, 2024
1b34ad6
fix(Celery): Pass guest_token as user context is not available in Cel…
geido Sep 11, 2024
4385b44
chore(docs): note that release-tagged docker images no longer ship wi…
sfirke Sep 11, 2024
750888f
fix(docs): change flask-oidc url (#30237)
drblack666 Sep 11, 2024
0f44362
refactor(explore): Migrate MetricsControl test suite to RTL (#30232)
rtexelm Sep 11, 2024
88b698c
fix(deps): release new embedded sdk (#30234)
rusackas Sep 11, 2024
be0a0ce
fix: filters panel broken due to tabs scroll (#30180)
justinpark Sep 11, 2024
f8a7753
fix(uploads): respect db engine spec's supports_multivalues_insert va…
sfirke Sep 12, 2024
c4c0845
build(deps): bump serve-static and express in /superset-frontend (#30…
dependabot[bot] Sep 12, 2024
2e10739
build(deps): bump send and express in /superset-frontend (#30228)
dependabot[bot] Sep 12, 2024
8c0b873
build(deps, deps-dev): upgrade major versions for dependencies of `@s…
hainenber Sep 12, 2024
23467bd
fix(Fave): Charts and Dashboards fave/unfave do not commit transactio…
geido Sep 12, 2024
ff3b86b
feat(sqllab): Add timeout on fetching query results (#29959)
justinpark Sep 12, 2024
c5594f2
feat(explore): Add time shift color control to ECharts (#29897)
rtexelm Sep 12, 2024
dbab2fb
fix(CrossFilters): Do not reload unrelated filters in global scope (#…
geido Sep 13, 2024
3877355
build(ci): make linkinator advisory (#30257)
rusackas Sep 13, 2024
8cd18ca
chore(build): remove extraneous prettier step in superset-frontend CI…
hainenber Sep 13, 2024
bdf29cb
chore: organize SQL parsing files (#30258)
betodealmeida Sep 13, 2024
e909465
refactor(frontend): migrate 6 tests from Enzyme to RTL (#30151)
hainenber Sep 13, 2024
bcbd679
chore(docker): move mysql os-level deps (GPL) to dev image only (#29771)
mistercrunch Sep 15, 2024
d1bdbd8
docs: Update kubernetes.mdx (#30268)
nyandajr Sep 15, 2024
3ad0fd4
chore(deps): bump dremio deps (#25910)
gnought Sep 16, 2024
0679454
fix(Screenshot): Dashboard screenshot cache key to include state (#30…
geido Sep 16, 2024
f553344
chore(sqllab): Add shortcuts for switching tabs (#30173)
justinpark Sep 16, 2024
63f4f4f
chore: remove redundant code (#30261)
villebro Sep 16, 2024
2166cbd
fix(install/docker): use zstd-baked image for building superset-front…
hainenber Sep 16, 2024
46b1d86
fix: Move copying translation files before npm run build in Docker (#…
martyngigg Sep 16, 2024
f315a4f
chore: move SLACK_ENABLE_AVATARS from config to feature flag (#30274)
mistercrunch Sep 16, 2024
c33d49e
fix(dashboard): invalid button style in undo/redo button (#30273)
justinpark Sep 17, 2024
2f0c994
fix(dashboard): Invalid owner's name displayed after updates (#30272)
justinpark Sep 17, 2024
cd8b567
fix: unable to disallow csv upload on header menu (#30271)
justinpark Sep 17, 2024
930078b
chore(explore): Medium font weight for section headers (#30321)
kasiazjc Sep 18, 2024
a395205
feat(jinja): add option to format time filters using strftime (#30323)
villebro Sep 18, 2024
08145d8
style(explore): clarify ambiguously named "sort by" field (#30254)
sfirke Sep 18, 2024
e54353c
docs: HTML embedding of charts/dashboards without authentication (#30…
lindner-tj Sep 18, 2024
0dcfe74
build(deps): bump express from 4.19.2 to 4.20.0 in /docs (#30227)
dependabot[bot] Sep 18, 2024
1441ad8
chore(UPDATING.md): Add item to UPDATING describing translations buil…
martyngigg Sep 18, 2024
78099b0
fix(migration): 87d38ad83218 failing on upgrade (#30275)
villebro Sep 19, 2024
a90aa05
chore: bump cypress to v 11 (#30262)
eschutho Sep 19, 2024
68594d9
chore(helm): correct a typo (#30123)
dl57934 Sep 19, 2024
6c2bd2a
fix(table): Use extras in queries (#30335)
Antonio-RiveroMartnez Sep 19, 2024
186e75f
docs: Update cache.mdx, add needed space (#30333)
varfigstar Sep 19, 2024
9b87ca9
docs: sql-templating (#30337)
torgge Sep 19, 2024
ef9e5e5
fix: KeyError 'sql' when opening a Trino virtual dataset (#30339)
michael-s-molina Sep 19, 2024
36f3cd1
build(deps): bump path-to-regexp from 1.8.0 to 1.9.0 in /superset-fro…
dependabot[bot] Sep 19, 2024
994de1f
build(deps): bump dompurify from 3.1.0 to 3.1.3 in /superset-frontend…
dependabot[bot] Sep 19, 2024
038ef32
fix(explore): Missing markarea component broke annotations in echarts…
kgabryje Sep 20, 2024
ac66ae8
fix(db_engine_specs): add a few missing time grains to Postgres spec …
sfirke Sep 20, 2024
d435166
fix(CI): increase node JS heap size (#30340)
rusackas Sep 20, 2024
f3e4347
build(deps): bump deck.gl from 9.0.24 to 9.0.28 in /superset-frontend…
dependabot[bot] Sep 20, 2024
55d9d57
build(websocket): upgrade ESLint to v9 (#30359)
hainenber Sep 22, 2024
bfdab40
build(deps-dev): bump @storybook/react-webpack5 from 8.1.11 to 8.2.9 …
dependabot[bot] Sep 23, 2024
a095b08
build(deps): update dompurify requirement from ^3.1.0 to ^3.1.2 in /s…
dependabot[bot] Sep 23, 2024
ee3a567
docs: add HANA database logo in README.md (#30346)
axuew Sep 23, 2024
710406a
feat: allow configuring an engine context manager (#30266)
betodealmeida Sep 23, 2024
30ca303
chore(docs): fix an agreement error in caching docs (#30352)
sfirke Sep 23, 2024
cc1bb69
docs: Corrected Dremio connection string (#30315)
doernemt Sep 23, 2024
de3af85
feat(Digest): Add RLS at digest generation for Charts and Dashboards …
geido Sep 24, 2024
046c096
fix(ECharts): Revert ECharts version bump (#30388)
geido Sep 25, 2024
0baac62
build(deps-dev): bump sinon from 18.0.0 to 18.0.1 in /superset-fronte…
dependabot[bot] Sep 25, 2024
39f1b71
refactor: Migration of AnnotationLayerControl to TypeScript (#28346)
EnxDev Sep 25, 2024
18c2376
feat(datasets): Allow swap dataset after deletion (#30364)
Antonio-RiveroMartnez Sep 25, 2024
69d5f76
feat(auth): when user is not logged in, failure to access a dashboard…
sfirke Sep 25, 2024
ad29985
fix: Pre-query normalization with custom SQL (#30389)
michael-s-molina Sep 25, 2024
0e8fa54
fix: parse pandas pivot null values (#29898)
eschutho Sep 25, 2024
43721f1
chore: split cypress files for less memory (#30354)
eschutho Sep 25, 2024
abf2943
fix: Allows X-Axis Sort By for custom SQL (#30393)
michael-s-molina Sep 25, 2024
b7ac697
build(deps): bump @emotion/react from 11.4.1 to 11.11.4 in /superset-…
dependabot[bot] Sep 26, 2024
20b1eab
build(deps): update @emotion/react requirement from ^11.4.1 to ^11.13…
dependabot[bot] Sep 26, 2024
0fdcd8b
chore(legacy-plugin-chart-map-box): bump supercluster to v8 (#30305)
birkskyum Sep 26, 2024
36f7a3f
fix: Incorrect hovered items in tooltips (#30405)
michael-s-molina Sep 26, 2024
4f5f8fd
chore: Merge description and reproduction steps in the issue template…
michael-s-molina Sep 27, 2024
92680b3
fix(plugin/country/map): rectify naming for some Vietnamese provinces…
hainenber Sep 27, 2024
4ac0bb1
chore(View): Remove unnecessary theme view and defer basic styles (#3…
geido Sep 27, 2024
96b0bcf
chore: add logging for dashboards/get warnings (#30365)
eschutho Sep 27, 2024
cc9fd88
chore: improve DML check (#30417)
betodealmeida Sep 27, 2024
a3bfbd0
chore: alter scripts/cypress_run to run one file per command + retry …
mistercrunch Sep 28, 2024
63e17ca
fix: CI remove cypress command --headed (#30429)
mistercrunch Sep 29, 2024
999dca7
fix: cypress on master doesn't work because of --parallel flag (#30430)
mistercrunch Sep 30, 2024
bdd50c7
feat(dashboard): update tab drag and drop reordering with positional …
rtexelm Sep 30, 2024
4834390
fix: Histogram chart not able to use decimal datatype column (#30416)
michael-s-molina Sep 30, 2024
c7aeb21
chore(Dashboard): Unblock Global Styles (#30440)
geido Sep 30, 2024
daa4b1d
fix: battling cypress' dashboard feature (#30441)
mistercrunch Sep 30, 2024
9a5e8a4
chore: document upper bound for python lib 'holidays' >= 0.26 (#28747)
mistercrunch Sep 30, 2024
2e50167
chore: log warnings for database tables api (#30410)
eschutho Sep 30, 2024
70ef40e
fix(language): pt_BR translation (#30406)
diegolnasc Oct 1, 2024
9f476b2
fix(Package.json): Bump dayjs version (#30493)
geido Oct 1, 2024
d1d9011
docs(dashboard): add docs for named and index colors (#30445)
villebro Oct 1, 2024
54679c5
build(deps-dev): bump @types/yargs from 17.0.32 to 17.0.33 in /supers…
dependabot[bot] Oct 1, 2024
fa34e0f
build(deps): bump handlebars from 4.7.7 to 4.7.8 in /superset-fronten…
dependabot[bot] Oct 1, 2024
8a68a96
build(deps): bump @docsearch/react from 3.6.1 to 3.6.2 in /docs (#30483)
dependabot[bot] Oct 1, 2024
7468904
build(deps-dev): bump @types/react from 18.3.5 to 18.3.10 in /docs (#…
dependabot[bot] Oct 1, 2024
ee9ece8
build(deps-dev): bump webpack-manifest-plugin from 4.1.1 to 5.0.0 in …
dependabot[bot] Oct 1, 2024
a8500ab
build(deps): bump re-resizable from 6.9.11 to 6.10.0 in /superset-fro…
dependabot[bot] Oct 1, 2024
f425c9d
build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.6.0 to …
dependabot[bot] Oct 1, 2024
e5ddb3b
build(deps-dev): bump @cypress/react from 5.12.5 to 8.0.2 in /superse…
dependabot[bot] Oct 1, 2024
62350f2
build(deps-dev): bump eslint-plugin-file-progress from 1.4.0 to 1.5.0…
dependabot[bot] Oct 1, 2024
15f3ea8
build(deps-dev): bump esbuild-loader from 4.1.0 to 4.2.2 in /superset…
dependabot[bot] Oct 1, 2024
da7a74e
refactor(frontend): migrate 6 Enzyme-based tests to RTL, part 2 (#30281)
hainenber Oct 1, 2024
553932d
build(deps): bump debug from 4.3.6 to 4.3.7 in /superset-websocket/ut…
dependabot[bot] Oct 1, 2024
7d0cb39
build(deps): bump @types/react-loadable from 5.5.6 to 5.5.11 in /supe…
dependabot[bot] Oct 1, 2024
d3a208e
build(deps): bump @types/prop-types from 15.7.5 to 15.7.13 in /supers…
dependabot[bot] Oct 1, 2024
4c73b04
build(deps-dev): bump @types/node from 22.0.2 to 22.7.4 in /superset-…
dependabot[bot] Oct 1, 2024
8019c8b
build(deps-dev): bump typescript-eslint from 8.6.0 to 8.8.0 in /super…
dependabot[bot] Oct 1, 2024
657377b
build(deps): bump @rjsf/core from 5.19.4 to 5.21.1 in /superset-front…
dependabot[bot] Oct 1, 2024
f409482
build(deps-dev): bump typescript from 5.5.4 to 5.6.2 in /docs (#30476)
dependabot[bot] Oct 1, 2024
b7a785d
move access to redux state outside of filterable table comp
MialLewis Sep 9, 2024
0ef5633
move state query to DashboardBuilder
MialLewis Sep 9, 2024
5d66273
revert redundant changes to filt table test
MialLewis Sep 9, 2024
bb67c04
ammend transform props test
MialLewis Sep 9, 2024
fa24412
remove unneeded import
MialLewis Sep 9, 2024
0df6fef
access state from explorechartpanel
MialLewis Sep 10, 2024
45732ad
correct chart props
MialLewis Sep 10, 2024
fef1e90
remove canExportData from DashboardBuilder and component, pass in fro…
MialLewis Sep 11, 2024
38215d2
run prettier
MialLewis Sep 11, 2024
7e2e1fa
remove unneeded test change
MialLewis Sep 11, 2024
8a31bf2
remove redundant filt table test var
MialLewis Sep 11, 2024
7d7f5f7
update buildQuery test with DataSelectionMode
MialLewis Sep 24, 2024
aa02fc6
Merge branch 'master' into update_no_select_following_review
MialLewis Oct 2, 2024
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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
docker/**/*.sh text eol=lf
*.svg binary
9 changes: 2 additions & 7 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,9 @@ body:
id: bug-description
attributes:
label: Bug description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: repro-steps
attributes:
label: How to reproduce the bug
description: A clear description of what the bug is, including reproduction steps and expected behavior.
placeholder: |
The bug is that...
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
Expand Down
21 changes: 20 additions & 1 deletion .github/workflows/bashlib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,11 @@ cypress-run-all() {
USE_DASHBOARD_FLAG='--use-dashboard'
fi

python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID $USE_DASHBOARD_FLAG
# UNCOMMENT the next few commands to monitor memory usage
# monitor_memory & # Start memory monitoring in the background
# memoryMonitorPid=$!
python ../../scripts/cypress_run.py --parallelism $PARALLELISM --parallelism-id $PARALLEL_ID --group $PARALLEL_ID --retries 5 $USE_DASHBOARD_FLAG
# kill $memoryMonitorPid

# After job is done, print out Flask log for debugging
echo "::group::Flask log for default run"
Expand All @@ -178,6 +182,21 @@ eyes-storybook-dependencies() {
say "::endgroup::"
}

monitor_memory() {
# This is a small utility to monitor memory usage. Useful for debugging memory in GHA.
# To use wrap your command as follows
#
# monitor_memory & # Start memory monitoring in the background
# memoryMonitorPid=$!
# YOUR_COMMAND_HERE
# kill $memoryMonitorPid
while true; do
echo "$(date) - Top 5 memory-consuming processes:"
ps -eo pid,comm,%mem --sort=-%mem | head -n 6 # First line is the header, next 5 are top processes
sleep 2
done
}

cypress-run-applitools() {
cd "$GITHUB_WORKSPACE/superset-frontend/cypress-base"

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/superset-docs-verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
# See docs here: https://github.com/marketplace/actions/linkinator
name: Link Checking
runs-on: ubuntu-latest
continue-on-error: true # This will make the job advisory (non-blocking, no red X)
steps:
- uses: actions/checkout@v4
- uses: JustinBeckwith/linkinator-action@v1.10.4
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/superset-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ jobs:
PYTHONPATH: ${{ github.workspace }}
REDIS_PORT: 16379
GITHUB_TOKEN: ${{ github.token }}
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard || (github.ref == 'refs/heads/master' && 'true') || 'false' }}
# use the dashboard feature when running manually OR merging to master
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard == 'true'|| (github.ref == 'refs/heads/master' && 'true') || 'false' }}
services:
postgres:
image: postgres:15-alpine
Expand Down Expand Up @@ -131,6 +132,7 @@ jobs:
PARALLEL_ID: ${{ matrix.parallel_id }}
PARALLELISM: 6
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
NODE_OPTIONS: "--max-old-space-size=4096"
with:
run: cypress-run-all ${{ env.USE_DASHBOARD }}
- name: Upload Artifacts
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/superset-frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,6 @@ jobs:
working-directory: ./superset-frontend
run: |
npm run type
- name: prettier
if: steps.check.outputs.frontend
working-directory: ./superset-frontend
run: |
npm run prettier-check
- name: Build plugins packages
if: steps.check.outputs.frontend
working-directory: ./superset-frontend
Expand Down
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ repos:
- id: debug-statements
- id: end-of-file-fixer
- id: trailing-whitespace
exclude: ^.*\.(snap)
args: ["--markdown-linebreak-ext=md"]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.1.0 # Use the sha or tag you want to point at
Expand Down
3 changes: 3 additions & 0 deletions .rat-excludes
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ tsconfig.tsbuildinfo
generator-superset/*
temporary_superset_ui/*

# skip license checks for auto-generated test snapshots
.*snap

# docs overrides for third party logos we don't have the rights to
google-big-query.svg
google-sheets.svg
Expand Down
52 changes: 34 additions & 18 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ FROM --platform=${BUILDPLATFORM} node:20-bullseye-slim AS superset-node

ARG NPM_BUILD_CMD="build"

# Include translations in the final build. The default supports en only to
# reduce complexity and weight for those only using en
ARG BUILD_TRANSLATIONS="false"

# Used by docker-compose to skip the frontend build,
# in dev we mount the repo and build the frontend inside docker
ARG DEV_MODE="false"
Expand All @@ -51,7 +55,7 @@ RUN --mount=type=bind,target=/frontend-mem-nag.sh,src=./docker/frontend-mem-nag.

WORKDIR /app/superset-frontend
# Creating empty folders to avoid errors when running COPY later on
RUN mkdir -p /app/superset/static/assets && mkdir -p /app/superset/translations
RUN mkdir -p /app/superset/static/assets
RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json \
--mount=type=bind,target=./package-lock.json,src=./superset-frontend/package-lock.json \
if [ "$DEV_MODE" = "false" ]; then \
Expand All @@ -62,20 +66,21 @@ RUN --mount=type=bind,target=./package.json,src=./superset-frontend/package.json

# Runs the webpack build process
COPY superset-frontend /app/superset-frontend
# This copies the .po files needed for translation
RUN mkdir -p /app/superset/translations
COPY superset/translations /app/superset/translations
RUN if [ "$DEV_MODE" = "false" ]; then \
npm run ${BUILD_CMD}; \
BUILD_TRANSLATIONS=$BUILD_TRANSLATIONS npm run ${BUILD_CMD}; \
else \
echo "Skipping 'npm run ${BUILD_CMD}' in dev mode"; \
fi

# This copies the .po files needed for translation
RUN mkdir -p /app/superset/translations
COPY superset/translations /app/superset/translations

# Compiles .json files from the .po files, then deletes the .po files
RUN if [ "$DEV_MODE" = "false" ]; then \
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
npm run build-translation; \
else \
echo "Skipping translations in dev mode"; \
echo "Skipping translations as requested by build flag"; \
fi
RUN rm /app/superset/translations/*/LC_MESSAGES/*.po
RUN rm /app/superset/translations/messages.pot
Expand All @@ -85,6 +90,10 @@ RUN rm /app/superset/translations/messages.pot
######################################################################
FROM python:${PY_VER} AS lean

# Include translations in the final build. The default supports en only to
# reduce complexity and weight for those only using en
ARG BUILD_TRANSLATIONS="false"

WORKDIR /app
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
Expand All @@ -98,7 +107,6 @@ RUN mkdir -p ${PYTHONPATH} superset/static requirements superset-frontend apache
&& useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
&& apt-get update -qq && apt-get install -yqq --no-install-recommends \
curl \
default-libmysqlclient-dev \
libsasl2-dev \
libsasl2-modules-gssapi-mit \
libpq-dev \
Expand All @@ -115,8 +123,8 @@ COPY --chown=superset:superset requirements/base.txt requirements/
RUN --mount=type=cache,target=/root/.cache/pip \
apt-get update -qq && apt-get install -yqq --no-install-recommends \
build-essential \
&& pip install --upgrade setuptools pip \
&& pip install -r requirements/base.txt \
&& pip install --no-cache-dir --upgrade setuptools pip \
&& pip install --no-cache-dir -r requirements/base.txt \
&& apt-get autoremove -yqq --purge build-essential \
&& rm -rf /var/lib/apt/lists/*

Expand All @@ -126,17 +134,21 @@ COPY --chown=superset:superset --from=superset-node /app/superset/static/assets
## Lastly, let's install superset itself
COPY --chown=superset:superset superset superset
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -e .
pip install --no-cache-dir -e .

# Copy the .json translations from the frontend layer
COPY --chown=superset:superset --from=superset-node /app/superset/translations superset/translations

# Compile translations for the backend - this generates .mo files, then deletes the .po files
COPY ./scripts/translations/generate_mo_files.sh ./scripts/translations/
RUN ./scripts/translations/generate_mo_files.sh \
&& chown -R superset:superset superset/translations \
&& rm superset/translations/messages.pot \
&& rm superset/translations/*/LC_MESSAGES/*.po
RUN if [ "$BUILD_TRANSLATIONS" = "true" ]; then \
./scripts/translations/generate_mo_files.sh \
&& chown -R superset:superset superset/translations \
&& rm superset/translations/messages.pot \
&& rm superset/translations/*/LC_MESSAGES/*.po; \
else \
echo "Skipping translations as requested by build flag"; \
fi

COPY --chmod=755 ./docker/run-server.sh /usr/bin/
USER superset
Expand Down Expand Up @@ -166,7 +178,7 @@ RUN apt-get update -qq \
&& rm -rf /var/lib/apt/lists/*

RUN --mount=type=cache,target=/root/.cache/pip \
pip install playwright
pip install --no-cache-dir playwright
RUN playwright install-deps

RUN if [ "$INCLUDE_CHROMIUM" = "true" ]; then \
Expand All @@ -188,12 +200,16 @@ RUN if [ "$INCLUDE_FIREFOX" = "true" ]; then \
&& apt-get autoremove -yqq --purge wget bzip2 && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/*; \
fi

# Cache everything for dev purposes...
# Installing mysql client os-level dependencies in dev image only because GPL
RUN apt-get install -yqq --no-install-recommends \
default-libmysqlclient-dev \
&& rm -rf /var/lib/apt/lists/*

COPY --chown=superset:superset requirements/development.txt requirements/
RUN --mount=type=cache,target=/root/.cache/pip \
apt-get update -qq && apt-get install -yqq --no-install-recommends \
build-essential \
&& pip install -r requirements/development.txt \
&& pip install --no-cache-dir -r requirements/development.txt \
&& apt-get autoremove -yqq --purge build-essential \
&& rm -rf /var/lib/apt/lists/*

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ Here are some of the major database solutions that are supported:
<img src="https://superset.apache.org/img/databases/starrocks.png" alt="starrocks" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/doris.png" alt="doris" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/oceanbase.svg" alt="oceanbase" border="0" width="220" />
<img src="https://superset.apache.org/img/databases/sap-hana.png" alt="oceanbase" border="0" width="220" />
</p>

**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/configuration/databases).
Expand Down
11 changes: 10 additions & 1 deletion RELEASING/release-notes-4-1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ under the License.

# Release Notes for Superset 4.1.0

Superset 4.1.0 brings a range of new features and quality of life improvements. This release is a minor version, meaning it doesn't include any breaking changes to ensure a seamless transition for our users. Here are some of the highlights of this release.
Superset 4.1.0 brings a range of new features and quality of life improvements. This release is a minor version, meaning it doesn't include any breaking changes. However, users of basic Superset docker images like `4.1.0` should see the note at the bottom of this file about [changes to those builds](/RELEASING/release-notes-4-1/README.md#change-to-docker-image-builds).

## Highlights

Here are some of the highlights of this release.

### Big Number With Time Period Updates

Expand Down Expand Up @@ -129,3 +133,8 @@ Users can now see both the [total and percentage in tooltips](https://github.com
### Additional Metadata Bar To Dashboards

There is now a [metadata bar](https://github.com/apache/superset/pull/27857) added to the header of dashboards. This will now show viewers of the dashboard both the owners and last modified time of the dashboard.


## Change to Docker image builds

Starting in 4.1.0, the release's docker image does not ship with drivers needed to operate Superset. Users may need to install a driver for their metadata database (MySQL or Postgres) as well as the driver for their data warehouse. This is a result of changes to the `lean` docker image that official releases come from; see [Docker Build Presets](/docs/installation/docker-builds/#build-presets) for more details.
8 changes: 8 additions & 0 deletions RESOURCES/FEATURE_FLAGS.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@ These features flags are **safe for production**. They have been tested and will
- DISABLE_LEGACY_DATASOURCE_EDITOR

### Flags retained for runtime configuration

Currently some of our feature flags act as dynamic configurations that can changed
on the fly. This acts in contradiction with the typical ephemeral feature flag use case,
where the flag is used to mature a feature, and eventually deprecated once the feature is
solid. Eventually we'll likely refactor these under a more formal "dynamic configurations" managed
independently. This new framework will also allow for non-boolean configurations.

- ALERTS_ATTACH_REPORTS
- ALLOW_ADHOC_SUBQUERY
- DASHBOARD_RBAC [(docs)](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard#manage-access-to-dashboards)
Expand All @@ -79,6 +86,7 @@ These features flags are **safe for production**. They have been tested and will
- ESCAPE_MARKDOWN_HTML
- LISTVIEWS_DEFAULT_CARD_VIEW
- SCHEDULED_QUERIES [(docs)](https://superset.apache.org/docs/configuration/alerts-reports)
- SLACK_ENABLE_AVATARS (see `superset/config.py` for more information)
- SQLLAB_BACKEND_PERSISTENCE
- SQL_VALIDATORS_BY_ENGINE [(docs)](https://superset.apache.org/docs/configuration/sql-templating)
- THUMBNAILS [(docs)](https://superset.apache.org/docs/configuration/cache)
Expand Down
1 change: 0 additions & 1 deletion RESOURCES/INTHEWILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ Join our growing community!
- [Care](https://www.getcare.io/)[@alandao2021]
- [Living Goods](https://www.livinggoods.org) [@chelule]
- [Maieutical Labs](https://maieuticallabs.it) [@xrmx]
- [QPID Health](https://www.qpidhealth.com/)
- [REDCap Cloud](https://www.redcapcloud.com/)
- [TrustMedis](https://trustmedis.com/) [@famasya]
- [WeSure](https://www.wesure.cn/)
Expand Down
2 changes: 2 additions & 0 deletions UPDATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ assists people when migrating to a new version.
- [29264](https://github.com/apache/superset/pull/29264) Slack has updated its file upload api, and we are now supporting this new api in Superset, although the Slack api is not backward compatible. The original Slack integration is deprecated and we will require a new Slack scope `channels:read` to be added to Slack workspaces in order to use this new api. In an upcoming release, we will make this new Slack scope mandatory and remove the old Slack functionality.
- [29798](https://github.com/apache/superset/pull/29798) Since 3.1.0, the intial schedule for an alert or report was mistakenly offset by the specified timezone's relation to UTC. The initial schedule should now begin at the correct time.
- [30021](https://github.com/apache/superset/pull/30021) The `dev` layer in our Dockerfile no long includes firefox binaries, only Chromium to reduce bloat/docker-build-time
- [30274](https://github.com/apache/superset/pull/30274) Moved SLACK_ENABLE_AVATAR from config.py to the feature flag framework, please adapt your configs
- [30099](https://github.com/apache/superset/pull/30099) Translations are no longer included in the default docker image builds. If your environment requires translations, you'll want to set the docker build arg `BUILD_TRANSACTION=true`.

### Potential Downtime

Expand Down
9 changes: 8 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,14 @@ services:
disable: true

superset-node:
image: node:20
build:
context: .
target: superset-node
args:
# This prevents building the frontend bundle since we'll mount local folder
# and build it on startup while firing docker-frontend.sh in dev mode, where
# it'll mount and watch local files and rebuild as you update them
DEV_MODE: "true"
environment:
# set this to false if you have perf issues running the npm i; npm run dev in-docker
# if you do so, you have to run this manually on the host, which should perform better!
Expand Down
6 changes: 3 additions & 3 deletions docs/docs/configuration/cache.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ SimpleCache (in-memory), or the local filesystem.
[Custom cache backends](https://flask-caching.readthedocs.io/en/latest/#custom-cache-backends)
are also supported.

Caching can be configured by providing a dictionaries in
`superset_config.py` that comply with[the Flask-Caching config specifications](https://flask-caching.readthedocs.io/en/latest/#configuring-flask-caching).
Caching can be configured by providing dictionaries in
`superset_config.py` that comply with [the Flask-Caching config specifications](https://flask-caching.readthedocs.io/en/latest/#configuring-flask-caching).

The following cache configurations can be customized in this way:
- Dashboard filter state (required): `FILTER_STATE_CACHE_CONFIG`.
- Explore chart form data (required): `EXPLORE_FORM_DATA_CACHE_CONFIG`
- Metadata cache (optional): `CACHE_CONFIG`
- Charting data queried from datasets (optional): `DATA_CACHE_CONFIG`

For example, to configure the filter state cache using redis:
For example, to configure the filter state cache using Redis:

```python
FILTER_STATE_CACHE_CONFIG = {
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/configuration/configuring-superset.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -314,9 +314,9 @@ CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
]
```
### Keycloak-Specific Configuration using Flask-OIDC
If you are using Keycloak as OpenID Connect 1.0 Provider, the above configuration based on [`Authlib`](https://authlib.org/) might not work. In this case using [`Flask-OIDC`](https://https://pypi.org/project/flask-oidc/) is a viable option.
If you are using Keycloak as OpenID Connect 1.0 Provider, the above configuration based on [`Authlib`](https://authlib.org/) might not work. In this case using [`Flask-OIDC`](https://pypi.org/project/flask-oidc/) is a viable option.

Make sure the pip package [`Flask-OIDC`](https://https://pypi.org/project/flask-oidc/) is installed on the webserver. This was succesfully tested using version 2.2.0. This package requires [`Flask-OpenID`](https://pypi.org/project/Flask-OpenID/) as a dependency.
Make sure the pip package [`Flask-OIDC`](https://pypi.org/project/flask-oidc/) is installed on the webserver. This was succesfully tested using version 2.2.0. This package requires [`Flask-OpenID`](https://pypi.org/project/Flask-OpenID/) as a dependency.

The following code defines a new security manager. Add it to a new file named `keycloak_security_manager.py`, placed in the same directory as your `superset_config.py` file.
```python
Expand Down
Loading