Merge branch 'main' into staging

This commit is contained in:
Andrey Antukh 2026-05-11 17:52:52 +02:00
commit fd82744c62
3 changed files with 25 additions and 23 deletions

View File

@ -97,7 +97,7 @@
(l/warn :hint "unexpected exception on database error logger" :cause cause)))) (l/warn :hint "unexpected exception on database error logger" :cause cause))))
(defn- audit-event->report (defn- audit-event->report
[{:keys [::audit/context ::audit/props ::audit/ip-addr] :as record}] [{:keys [context props ip-addr] :as record}]
(let [context (let [context
(reduce-kv (fn [context k v] (reduce-kv (fn [context k v]
(let [k' (keyword "frontend" (name k))] (let [k' (keyword "frontend" (name k))]
@ -117,14 +117,14 @@
{:context (-> (into (sorted-map) context) {:context (-> (into (sorted-map) context)
(pp/pprint-str :length 50)) (pp/pprint-str :length 50))
:origin (::audit/name record) :origin (:name record)
:href (get props :href) :href (get props :href)
:hint (get props :hint) :hint (get props :hint)
:report (get props :report)})) :report (get props :report)}))
(defn- handle-audit-event (defn- handle-audit-event
"Convert the log record into a report object and persist it on the database" "Convert the log record into a report object and persist it on the database"
[{:keys [::db/pool]} {:keys [::audit/id] :as event}] [{:keys [::db/pool]} {:keys [id] :as event}]
(try (try
(let [uri (cf/get :public-uri) (let [uri (cf/get :public-uri)
report (-> event audit-event->report d/without-nils)] report (-> event audit-event->report d/without-nils)]
@ -189,12 +189,12 @@
(::l/id item) (::l/id item)
(handle-log-record cfg item) (handle-log-record cfg item)
(::audit/id item)
(handle-audit-event cfg item)
(::rlimit/id item) (::rlimit/id item)
(handle-rlimit-event cfg item) (handle-rlimit-event cfg item)
(-> item meta ::audit/event)
(handle-audit-event cfg item)
:else :else
(l/warn :hint "received unexpected item" :item item)) (l/warn :hint "received unexpected item" :item item))
@ -226,4 +226,3 @@
[cfg event] [cfg event]
(when-let [{:keys [::input]} (get cfg ::reporter)] (when-let [{:keys [::input]} (get cfg ::reporter)]
(sp/put! input event))) (sp/put! input event)))

View File

@ -83,7 +83,7 @@
:trace (ex/format-throwable cause :detail? false :header? false)})) :trace (ex/format-throwable cause :detail? false :header? false)}))
(defn- audit-event->report (defn- audit-event->report
[{:keys [::audit/context ::audit/props ::audit/id] :as event}] [{:keys [context props id] :as event}]
{:id id {:id id
:type "exception" :type "exception"
:origin "audit-log" :origin "audit-log"
@ -92,7 +92,7 @@
:host (cf/get :host) :host (cf/get :host)
:backend-version (:full cf/version) :backend-version (:full cf/version)
:frontend-version (:version context) :frontend-version (:version context)
:profile-id (:audit/profile-id event) :profile-id (:profile-id event)
:href (get props :href)}) :href (get props :href)})
(defn- rlimit-event->report (defn- rlimit-event->report
@ -148,12 +148,12 @@
(::l/id item) (::l/id item)
(handle-event cfg item log-record->report) (handle-event cfg item log-record->report)
(::audit/id item)
(handle-event cfg item audit-event->report)
(::rlimit/id item) (::rlimit/id item)
(handle-event cfg item rlimit-event->report) (handle-event cfg item rlimit-event->report)
(-> item meta ::audit/event)
(handle-event cfg item audit-event->report)
:else :else
(l/warn :hint "received unexpected item" :item item))) (l/warn :hint "received unexpected item" :item item)))

View File

@ -77,17 +77,20 @@
[{:keys [::rpc/request-at ::rpc/profile-id events] :as params}] [{:keys [::rpc/request-at ::rpc/profile-id events] :as params}]
(let [request (-> params meta ::http/request) (let [request (-> params meta ::http/request)
ip-addr (inet/parse-request request) ip-addr (inet/parse-request request)
xform (map (fn [event] xform (comp
{:id (uuid/next) (map (fn [event]
:type (:type event) {:id (uuid/next)
:name (:name event) :type (:type event)
:props (:props event) :name (:name event)
:context (:context event) :props (:props event)
:profile-id profile-id :context (:context event)
:ip-addr ip-addr :profile-id profile-id
:source "frontend" :ip-addr ip-addr
:tracked-at (:timestamp event) :source "frontend"
:created-at request-at}))] :tracked-at (:timestamp event)
:created-at request-at}))
(map (fn [item]
(with-meta item {::audit/event true}))))]
(sequence xform events))) (sequence xform events)))