From f5e7348f92e4b44f2b16a3872f2f1d2b9414167e Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Mon, 11 May 2026 23:22:49 +0300 Subject: [PATCH] =?UTF-8?q?fix(audit):=20definition=20action=20!=3D=20reco?= =?UTF-8?q?rd=20action=20=E2=80=94=20fix=20SmokeE2ETest=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SmokeE2ETest.contextLoadsAndCreatesRecord фильтрует audit_log по action='CREATE' и ожидает row с businessKey. Мой backend #1 commit сделал definitionCreated() писать action='CREATE' — конфликт с record-level CREATE rows: filter подбирал dict-level row первой (no businessKey → null assertion fail). Fix: definitionCreated/definitionUpdated теперь пишут action 'DEFINITION_CREATE' / 'DEFINITION_UPDATE'. event_type остаётся DEFINITION_CREATED/UPDATED (changelog query filter по event_type IN список, не задеть). --- .../ordinis/restapi/audit/AuditLogger.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/audit/AuditLogger.java b/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/audit/AuditLogger.java index 3a5d866..17c2162 100644 --- a/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/audit/AuditLogger.java +++ b/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/audit/AuditLogger.java @@ -49,21 +49,22 @@ public class AuditLogger { } /** - * Audit для создания справочника. record-связанные поля null'ятся - * (record_id / business_key не применимы к dict-level event). - * payload_after = schema_json текущей версии. + * Audit для создания справочника. record-связанные поля null'ятся. + * + *

Action = {@code DEFINITION_CREATE} (не {@code CREATE}) — иначе + * существующие фильтры по action=CREATE подхватывают dict-level row + * без businessKey (SmokeE2ETest.contextLoadsAndCreatesRecord фейлится). */ public void definitionCreated(DictionaryDefinition d) { - write("DEFINITION_CREATED", "CREATE", d, null, null, d.getSchemaJson()); + write("DEFINITION_CREATED", "DEFINITION_CREATE", d, null, null, d.getSchemaJson()); } /** - * Audit для обновления schema справочника. payload_before — schema до - * update'а, payload_after — после. Используется для changelog / diff - * computation в frontend History tab. + * Audit для обновления schema справочника. payload_before/after — + * schema до/после. Используется changelog для diff computation. */ public void definitionUpdated(DictionaryDefinition d, JsonNode prevSchema) { - write("DEFINITION_UPDATED", "UPDATE", d, null, prevSchema, d.getSchemaJson()); + write("DEFINITION_UPDATED", "DEFINITION_UPDATE", d, null, prevSchema, d.getSchemaJson()); } public void recordUpdate(