feat:ASW-48 attribute接口开发

This commit is contained in:
zhangshuai
2024-08-26 13:45:52 +08:00
parent 7c99ed06bb
commit 3d95329f01
7 changed files with 240 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
package net.geedge.asw.module.attribute.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.geedge.asw.common.util.R;
import net.geedge.asw.module.attribute.service.AttributeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/api/v1/attribute")
public class AttributeController {
@Autowired
private AttributeService attributeService;
@GetMapping
public R list(@RequestParam Map<String, Object> params) {
Page page = attributeService.queryList(params);
return R.ok(page);
}
}

View File

@@ -0,0 +1,15 @@
package net.geedge.asw.module.attribute.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.geedge.asw.module.attribute.entity.AttributeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@Mapper
public interface AttributeDao extends BaseMapper<AttributeEntity> {
List<AttributeEntity> queryList(@Param("params") Map<String, Object> params);
}

View File

@@ -0,0 +1,43 @@
package net.geedge.asw.module.attribute.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import net.geedge.asw.module.sys.entity.SysUserEntity;
@Data
@TableName("attribute_dict")
public class AttributeEntity {
@TableId(type = IdType.ASSIGN_UUID)
private String id;
private String name;
private String type;
private String protocol;
private String layer;
private String stage;
private String objectType;
private Long createTimestamp;
private Long updateTimestamp;
private String createUserId;
private String updateUserId;
@TableField(exist = false)
private SysUserEntity createUser;
@TableField(exist = false)
private SysUserEntity updateUser;
}

View File

@@ -0,0 +1,11 @@
package net.geedge.asw.module.attribute.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import net.geedge.asw.module.attribute.entity.AttributeEntity;
import java.util.Map;
public interface AttributeService extends IService<AttributeEntity> {
Page queryList(Map<String, Object> params);
}

View File

@@ -0,0 +1,27 @@
package net.geedge.asw.module.attribute.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.geedge.asw.common.util.T;
import net.geedge.asw.module.attribute.dao.AttributeDao;
import net.geedge.asw.module.attribute.entity.AttributeEntity;
import net.geedge.asw.module.attribute.service.AttributeService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class AttributeServiceImpl extends ServiceImpl<AttributeDao, AttributeEntity> implements AttributeService {
@Override
public Page queryList(Map<String, Object> params) {
Page page = T.PageUtil.getPage(params);
List<AttributeEntity> attributeList = this.getBaseMapper().queryList(params);
page.setRecords(attributeList);
return page;
}
}

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="net.geedge.asw.module.attribute.dao.AttributeDao">
<resultMap id="attributeResult" type="net.geedge.asw.module.attribute.entity.AttributeEntity">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="type" column="type"/>
<result property="protocol" column="protocol"/>
<result property="layer" column="layer"/>
<result property="stage" column="stage"/>
<result property="objectType" column="object_type"/>
<result property="createTimestamp" column="create_timestamp"/>
<result property="updateTimestamp" column="update_timestamp"/>
<result property="createUserId" column="create_user_id"/>
<result property="updateUserId" column="update_user_id"/>
<association property="createUser" columnPrefix="c_" javaType="net.geedge.asw.module.sys.entity.SysUserEntity">
<id property="id" column="id"/>
<result property="name" column="name"/>
</association>
<association property="updateUser" columnPrefix="u_" javaType="net.geedge.asw.module.sys.entity.SysUserEntity">
<id property="id" column="id"/>
<result property="name" column="name"/>
</association>
</resultMap>
<select id="queryList" resultMap="attributeResult">
SELECT
ad.*,
c.id as c_id,
c.name as c_name,
u.id as u_id,
u.id as u_name
FROM
attribute_dict ad
left join sys_user c on ad.create_user_id = c.id
left join sys_user u on ad.update_user_id = u.id
<where>
<if test="params.name != null and params.name != ''">
ad.name = #{params.name}
</if>
</where>
<if test="params.orderBy == null or params.orderBy == ''">
ORDER BY ad.id
</if>
</select>
</mapper>

View File

@@ -0,0 +1,70 @@
/**
* 1.新增 attribute_dict 表
* 2.内置数据
*/
DROP TABLE IF EXISTS `attribute_dict`;
CREATE TABLE `attribute_dict` (
`id` VARCHAR(64) NOT NULL COMMENT '主键',
`name` VARCHAR(256) NOT NULL COMMENT '名称',
`type` VARCHAR(64) NOT NULL COMMENT '类型',
`protocol` VARCHAR(64) COMMENT '协议',
`layer` VARCHAR(64) NOT NULL COMMENT '',
`stage` VARCHAR(64) NOT NULL COMMENT '阶段',
`object_type` VARCHAR(64) NOT NULL COMMENT 'Object类型',
`create_timestamp` BIGINT(20) NOT NULL COMMENT '创建时间戳',
`update_timestamp` BIGINT(20) NOT NULL COMMENT '更新时间戳',
`create_user_id` VARCHAR(64) NOT NULL COMMENT '创建人',
`update_user_id` VARCHAR(64) NOT NULL COMMENT '更新人',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('1', 'tcp.payload.c2s_first_data', 'string', 'tcp', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('10', 'common.server_fqdn', 'string', 'common', 'session_layer', '1', 'fqdn', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('11', 'ssl.handshake.certificate.algorithm_identifier', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('12', 'ssl.handshake.certificate.serial_number', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('13', 'ssl.handshake.certificate.issuer_common_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('14', 'ssl.handshake.certificate.issuer_organization_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('15', 'ssl.handshake.certificate.issuer_country_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('16', 'ssl.handshake.certificate.subject_common_name', 'string', 'ssl', 'session_layer', '2', 'fqdn', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('17', 'ssl.handshake.certificate.subject_organization_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('18', 'ssl.handshake.certificate.subject_country_name', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('19', 'ssl.handshake.certificate.not_valid_before', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('2', 'tcp.payload.s2c_first_data', 'string', 'tcp', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('20', 'ssl.handshake.certificate.not_valid_after', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('21', 'ssl.handshake.certificate.algorithm_id', 'string', 'ssl', 'session_layer', '2', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('22', 'ssl.analysis.use_session_resumption', 'numeric', 'ssl', 'session_layer', '3', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('23', 'ssl.analysis.use_selfsigned_certificate', 'numeric', 'ssl', 'session_layer', '3', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('24', 'ssl.analysis.incomplete_certificate_chain', 'numeric', 'ssl', 'session_layer', '3', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('25', 'ssl.analysis.ja3', 'string', 'ssl', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('26', 'ssl.analysis.sni_absent', 'bool', 'ssl', 'session_layer', '1', 'boolean', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('28', 'http.request.full_uri', 'string', 'http', 'session_layer', '1', 'url', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('3', 'tcp.payload.c2s_first_data_len', 'numeric', 'tcp', 'session_layer', '1', 'interval', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('37', 'common.app_id', 'numeric', 'common', 'session_layer', '2', 'application', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('38', 'udp.payload.c2s_first_data', 'string', 'udp', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('39', 'udp.payload.s2c_first_data', 'string', 'udp', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('4', 'tcp.payload.s2c_first_data_len', 'numeric', 'tcp', 'session_layer', '2', 'interval', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('40', 'udp.payload.c2s_first_data_len', 'numeric', 'udp', 'session_layer', '0', 'interval', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('41', 'udp.payload.s2c_first_data_len', 'numeric', 'udp', 'session_layer', '1', 'interval', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('42', 'general.c2s_session_size', 'string', 'common', 'session_layer', '2', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('43', 'general.s2c_session_size', 'string', 'common', 'session_layer', '2', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('44', 'ip.src', 'ip', 'ip', 'packet_layer', '0', 'ip', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('45', 'ip.dst', 'ip', 'ip', 'packet_layer', '0', 'ip', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('46', 'srcport', 'numeric', 'common', 'packet_layer', '0', 'port', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('47', 'dstport', 'numeric', 'common', 'packet_layer', '0', 'port', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('5', 'tcp.analysis.create_with_syn', 'bool', 'tcp', 'session_layer', '1', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('55', 'http.request.header', 'string', 'http', 'session_layer', '1', 'http_signature', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('56', 'http.response.header', 'string', 'http', 'session_layer', '3', 'http_signature', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('57', 'udp.payload', 'string', 'udp', 'packet_layer', '0', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('6', 'ip.payload', 'string', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('62', 'dns.qry.name', 'string', 'dns', 'session_layer', '1', 'fqdn', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('63', 'ssl.analysis.ech_enabled', 'bool', 'ssl', 'session_layer', '1', 'boolean', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('64', 'ssl.analysis.esni_enabled', 'bool', 'ssl', 'session_layer', '1', 'boolean', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('66', 'ip.proto', 'numeric', 'ip', 'packet_layer', '1', 'ip_protocol', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('7', 'tcp.payload', 'string', 'tcp', 'packet_layer', '0', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('91', 'heartbeat_flag_test', 'bool', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('92', 'heartbeat_flag', 'bool', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('94', '敏感数据', 'bool', 'http', 'session_layer', '1', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('95', 'get_qq_number_by_lua', 'string', 'ip', 'packet_layer', '0', '', 1724379527000, 1724379527000, 'admin', 'admin');
INSERT INTO `attribute_dict`(`id`, `name`, `type`, `protocol`, `layer`, `stage`, `object_type`, `create_timestamp`, `update_timestamp`, `create_user_id`, `update_user_id`) VALUES ('96', 'ssl.analysis.ja3s', 'string', 'ssl', 'session_layer', '1', 'keywords', 1724379527000, 1724379527000, 'admin', 'admin');