mirror of
https://github.com/penpot/penpot.git
synced 2025-06-07 05:41:38 +02:00
✨ Add webhook trigger to audit events
This commit is contained in:
parent
3fe16bd8f9
commit
e203536506
2 changed files with 35 additions and 24 deletions
|
@ -108,6 +108,7 @@
|
||||||
[::ip-addr {:optional true} ::sm/text]
|
[::ip-addr {:optional true} ::sm/text]
|
||||||
[::props {:optional true} [:map-of :keyword :any]]
|
[::props {:optional true} [:map-of :keyword :any]]
|
||||||
[::context {:optional true} [:map-of :keyword :any]]
|
[::context {:optional true} [:map-of :keyword :any]]
|
||||||
|
[::tracked-at {:optional true} ::sm/inst]
|
||||||
[::webhooks/event? {:optional true} ::sm/boolean]
|
[::webhooks/event? {:optional true} ::sm/boolean]
|
||||||
[::webhooks/batch-timeout {:optional true} ::dt/duration]
|
[::webhooks/batch-timeout {:optional true} ::dt/duration]
|
||||||
[::webhooks/batch-key {:optional true}
|
[::webhooks/batch-key {:optional true}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
[app.config :as cf]
|
[app.config :as cf]
|
||||||
[app.db :as db]
|
[app.db :as db]
|
||||||
[app.http.client :as http]
|
[app.http.client :as http]
|
||||||
|
[app.loggers.audit :as audit]
|
||||||
[app.util.time :as dt]
|
[app.util.time :as dt]
|
||||||
[app.worker :as wrk]
|
[app.worker :as wrk]
|
||||||
[clojure.data.json :as json]
|
[clojure.data.json :as json]
|
||||||
|
@ -67,9 +68,18 @@
|
||||||
(defmethod ig/init-key ::process-event-handler
|
(defmethod ig/init-key ::process-event-handler
|
||||||
[_ cfg]
|
[_ cfg]
|
||||||
(fn [{:keys [props] :as task}]
|
(fn [{:keys [props] :as task}]
|
||||||
(l/dbg :hint "process webhook event" :name (:name props))
|
|
||||||
|
|
||||||
(when-let [items (lookup-webhooks cfg props)]
|
(let [items (lookup-webhooks cfg props)
|
||||||
|
event {::audit/profile-id (:profile-id props)
|
||||||
|
::audit/name "webhook"
|
||||||
|
::audit/type "trigger"
|
||||||
|
::audit/props {:name (get props :name)
|
||||||
|
:event-id (get props :id)
|
||||||
|
:total-affected (count items)}}]
|
||||||
|
|
||||||
|
(audit/insert! cfg event)
|
||||||
|
|
||||||
|
(when items
|
||||||
(l/trc :hint "webhooks found for event" :total (count items))
|
(l/trc :hint "webhooks found for event" :total (count items))
|
||||||
(db/tx-run! cfg (fn [cfg]
|
(db/tx-run! cfg (fn [cfg]
|
||||||
(doseq [item items]
|
(doseq [item items]
|
||||||
|
@ -78,7 +88,7 @@
|
||||||
(assoc ::wrk/queue :webhooks)
|
(assoc ::wrk/queue :webhooks)
|
||||||
(assoc ::wrk/max-retries 3)
|
(assoc ::wrk/max-retries 3)
|
||||||
(assoc ::wrk/params {:event props
|
(assoc ::wrk/params {:event props
|
||||||
:config item})))))))))
|
:config item}))))))))))
|
||||||
;; --- RUN
|
;; --- RUN
|
||||||
|
|
||||||
(declare interpret-exception)
|
(declare interpret-exception)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue