package jnpf.audit; /** * audit-api 模块常量:跨服务共享的 MDC key 等。Task 7 SDK 写入/读取时引用同一常量, * 避免调用方与 SDK 各自硬编码字符串导致漂移。 */ public final class AuditApiConsts { /** MDC key:请求级 operationId,用于把同一次操作触发的多条审计事件关联起来。 */ public static final String MDC_OPERATION_ID = "audit.operationId"; /** 自定义业务请求携带的签名凭证,仅用于关联同一次前端操作产生的审计事件。 */ public static final String HEADER_BIZ_SIGN = "X-Audit-Biz-Sign"; /** * 租户哨兵值:采集侧取不到租户时的缺省值(单租户部署 / 无会话的系统链路)。 * *
取 {@code "0"} 的依据:本平台单租户部署下 {@code base_user.f_tenant_id} 即为 {@code "0"}, * 而登录会话的 {@code UserProvider.getUser().getTenantId()} 返回**空串**(实测:lims_biz_log 全部 * 存量行 tenant_id 均为空串)。lims 既有代码(LimsSxtJihuaTaskServiceImpl / LimsSxtKanbanServiceImpl / * LimsSxtQushiServiceImpl 等)一律按 {@code !hasText ? "0"} 回落,本常量与之对齐。 * *
语义边界:**仅作为空白时的 fallback**,多租户(COLUMN 模式)部署下会话有真实租户号, * 不会触发回落;服务端 {@code validate} 的「tenantId 不能为空」保持严格,用于拦住绕过 SDK 的投递 * (Feign 直调、DLQ/spool 人工补录)。 */ public static final String DEFAULT_TENANT_ID = "0"; private AuditApiConsts() { } }