-- HTTP 接口审计（rsf-http-audit 插件写入）
SET NAMES utf8mb4;

CREATE TABLE `sys_http_audit_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `service_name` varchar(64) DEFAULT NULL COMMENT '应用 spring.application.name',
  `scope_type` varchar(16) NOT NULL COMMENT 'EXTERNAL 外部 / INTERNAL 内部',
  `uri` varchar(512) NOT NULL COMMENT '路径或出站完整URL',
  `io_direction` varchar(8) DEFAULT 'IN' COMMENT 'IN入站 OUT出站',
  `method` varchar(16) DEFAULT NULL COMMENT 'HTTP 方法',
  `function_desc` varchar(255) DEFAULT NULL COMMENT '功能描述',
  `query_string` varchar(2048) DEFAULT NULL COMMENT 'QueryString',
  `request_body` longtext COMMENT '请求体（全量）',
  `response_body` longtext COMMENT '响应体（查询类或超长会截断）',
  `response_truncated` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1 响应已截断',
  `http_status` int(11) DEFAULT NULL COMMENT 'HTTP 状态码',
  `ok_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1 正常 0 异常',
  `spend_ms` int(11) DEFAULT NULL COMMENT '耗时毫秒',
  `client_ip` varchar(64) DEFAULT NULL COMMENT '客户端 IP',
  `error_message` text COMMENT '异常摘要',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
  PRIMARY KEY (`id`),
  KEY `idx_create_time` (`create_time`),
  KEY `idx_uri` (`uri`(191)),
  KEY `idx_io_direction` (`io_direction`),
  KEY `idx_ok_client` (`ok_flag`,`client_ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='HTTP接口审计';
