* Restrict markdown link URI schemes in rendered notifications Only http/https/mailto links and images survive markdown rendering for email/Slack notifications; other schemes and unparseable URIs are dropped instead of being passed through (or, for malformed URIs when a site URL is set, throwing mid-render). * Diff pulse recipients by id or email in the subscription-permission check Key the added-recipients diff the same way pulse-channel keys recipients (user recipients by :id, external ones by :email) so external-address changes are covered by the check too. * Allow inline base64 images in notification markdown The app's markdown renderer accepts data:image/...;base64 URIs (DATA_IMAGE_URI_PATTERN); let notification rendering accept the same pattern so text-card images look the same in email. * Cross-link DATA_IMAGE_URI_PATTERN to its backend counterpart * Share the data-image URI pattern between backend and frontend Lift the pattern into metabase.util.markdown.image (cljc), compile it into the frontend bundle via shadow-cljs, and re-export it as DATA_IMAGE_URI_PATTERN so both renderers accept the same inline images by construction. * Apply resolve-uri to Slack images too * Render a dropped link-ref as its text alone instead of restoring brackets
46 lines
1.6 KiB
Clojure
46 lines
1.6 KiB
Clojure
;; shadow-cljs configuration
|
|
{:deps {:aliases [:cljs]}
|
|
|
|
:nrepl
|
|
{:middleware
|
|
[cider.nrepl/cider-middleware
|
|
cider.piggieback/wrap-cljs-repl
|
|
refactor-nrepl.middleware/wrap-refactor]
|
|
:port 50655}
|
|
|
|
:builds
|
|
{:app
|
|
{:target :npm-module
|
|
:output-dir "target/cljs_release/"
|
|
:dev {:output-dir "target/cljs_dev/"
|
|
:compiler-options {:reader-features #{:cljs-dev}}}
|
|
:compiler-options {:reader-features #{:cljs-release}
|
|
:source-map true
|
|
:warnings {:fn-deprecated false}}
|
|
:closure-defines {goog.debug.LOGGING_ENABLED true}
|
|
:entries [metabase.dashboards.constants
|
|
metabase.lib.column-group
|
|
metabase.lib.js
|
|
metabase.lib.limit
|
|
metabase.transforms-inspector.js
|
|
metabase.lib.types.isa
|
|
metabase.lib-metric.js
|
|
metabase.parameters.shared
|
|
metabase.pivot.core
|
|
metabase.pivot.js
|
|
metabase.types.core
|
|
metabase.util.currency
|
|
metabase.util.devtools
|
|
metabase.util.formatting.constants
|
|
metabase.util.formatting.date
|
|
metabase.util.markdown.image
|
|
metabase.util.time
|
|
metabase.xrays.domain-entities.queries.util]}
|
|
|
|
:test
|
|
{:target :node-test
|
|
:output-to "target/node-tests.js"
|
|
:ns-regexp "-test$"
|
|
:compiler-options {:reader-features #{:cljs-test}
|
|
:warnings {:fn-deprecated false}}}}}
|