Package io.leandev.appfuse.audit
package io.leandev.appfuse.audit
-
ClassDescription有界、可遺失的事件入口。呼叫者只做快照與 tryLock admission,不執行 I/O 或 logger。 關閉與 batch-start 共用短 gate;已標記 in-flight 的 batch 可以完成。與目標 DataSource/pool 相符的連線處置接點。 正常返回必須表示 lease 已從 pool 淘汰,不能以普通 close 歸還;無法確認時必須拋錯。實例級稽核開關。FAILED、STOPPING、CLOSED 無法透過 enable 復原。AuditEventJpaRepositoryBase<T extends AuditEventRecordBase>稽核事件表 Repository 基底。
search對映 ActuatorAuditEventRepository.find(principal / after / type 三參數皆可為 null,null 即不篩該條件)。稽核事件持久列的欄位基類——Spring Boot ActuatorAuditEvent的通用持久落點(框架 opt-in 服務)。入列前固定的純值快照;不保留可變 payload、Entity 或執行緒 context。應用擁有的表/欄位映射。只接受簡單 SQL identifier;事件值永遠以參數綁定。安全維運狀態;不含事件、SQL、連線資訊或原始例外。應用選用的儲存 adapter;writeBatch 只由非同步工作者呼叫,不得歸還不安全連線。只攜帶固定分類,不保留 SQL、原始 throwable 或事件資料。非同步稽核的有界資源設定;不修改應用擁有的連線池。應用提供資料表映射與連線池;寫入直接擁有 lease,永不加入呼叫者交易。 不安全的 lease 必須先移出池;無法確認時保留隔離,禁止一般 close。ActuatorAuditEventRepository的持久實作:把稽核事件寫入應用宣告的稽核表,取代消費端 可選的 in-memory ring buffer(易失)。領域無關的框架 opt-in 服務(見 ADR-013「界線修訂 R1」)。 本類保留原同步 JPA 契約;新版 audit feature 改用AsyncAuditEventRepository與 storage provider, 不會以本類作非同步寫入失敗時的 fallback。