From 0f306ca5eb765cd82dd2c6682cdfc34303be2e5a Mon Sep 17 00:00:00 2001 From: Uladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:42:29 +0300 Subject: [PATCH] fix CSP error in prod (#46890) --- frontend/src/metabase/app.js | 3 +++ frontend/src/metabase/dev.js | 12 ------------ frontend/src/metabase/lib/csp.js | 13 +++++++++++++ 3 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 frontend/src/metabase/lib/csp.js diff --git a/frontend/src/metabase/app.js b/frontend/src/metabase/app.js index 763025917e8..568b3784245 100644 --- a/frontend/src/metabase/app.js +++ b/frontend/src/metabase/app.js @@ -24,6 +24,9 @@ import "metabase/plugins/builtin"; // If EE isn't enabled, it loads an empty file. import "ee-plugins"; // eslint-disable-line import/no-duplicates +// Set nonce for mantine v6 deps +import "metabase/lib/csp"; + import { createHistory } from "history"; import { DragDropContextProvider } from "react-dnd"; import HTML5Backend from "react-dnd-html5-backend"; diff --git a/frontend/src/metabase/dev.js b/frontend/src/metabase/dev.js index 8467b323d1d..0b574c8e9a5 100644 --- a/frontend/src/metabase/dev.js +++ b/frontend/src/metabase/dev.js @@ -1,13 +1 @@ import "cljs/metabase.util.devtools"; - -/** - * setNonce is required for react-remove-scroll which adds style and can handle - * nonce but the method we use to set nonce is not compatible with - * react-remove-scroll it expects __webpack_nonce__ to be defined, when we - * generate it at BE and put directly into html file. `get-nonce` is used inside - * react-remove-scroll to get nonce, so we put it manually here. - * react-remove-scroll is a dependency of mantine v6 - */ -import { setNonce } from "get-nonce"; - -setNonce(window.MetabaseNonce); diff --git a/frontend/src/metabase/lib/csp.js b/frontend/src/metabase/lib/csp.js new file mode 100644 index 00000000000..aa26382769f --- /dev/null +++ b/frontend/src/metabase/lib/csp.js @@ -0,0 +1,13 @@ +/** + * setNonce is required for react-remove-scroll which adds style and can handle + * nonce but the method we use to set nonce is not compatible with + * react-remove-scroll it expects __webpack_nonce__ to be defined, when we + * generate it at BE and put directly into html file. `get-nonce` is used inside + * react-remove-scroll to get nonce, so we put it manually here. + * react-remove-scroll is a dependency of mantine v6 + * + * TODO: remove it when we upgrade mantine to v7 + */ +import { setNonce } from "get-nonce"; + +setNonce(window.MetabaseNonce); -- GitLab