Cobra数据流转流程

Auth - API-KEY

CREATE TABLE `auth` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(52) NOT NULL,
  `key` varchar(256) NOT NULL,
  `status` tinyint(4) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Ext - Extensions distribution statistics

CREATE TABLE `ext` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `task_id` int(11) DEFAULT NULL,
  `ext` varchar(32) DEFAULT NULL,
  `amount` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `task_id` (`task_id`,`ext`),
  KEY `ix_ext_task_id` (`task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Languages - Language and extensions table

CREATE TABLE `languages` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `language` varchar(11) NOT NULL,
  `extensions` varchar(128) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `ix_languages_language` (`language`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Projects - Project Information Sheet

CREATE TABLE `projects` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `repository` varchar(512) NOT NULL,
  `url` varchar(512) NOT NULL DEFAULT '',
  `name` varchar(50) NOT NULL,
  `framework` varchar(32) NOT NULL DEFAULT '',
  `author` varchar(50) NOT NULL,
  `pe` varchar(32) NOT NULL DEFAULT '',
  `remark` varchar(512) NOT NULL DEFAULT '',
  `last_scan` datetime NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

Results - Scan Result Table

CREATE TABLE `results` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `task_id` int(11) NOT NULL,
  `rule_id` int(11) NOT NULL,
  `file` varchar(512) NOT NULL,
  `line` int(11) NOT NULL,
  `code` varchar(512) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_task_id_rule_id` (`task_id`,`rule_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Rules - Scan Rule Table

CREATE TABLE `rules` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `vul_id` tinyint(4) DEFAULT NULL,
  `language` tinyint(4) DEFAULT NULL,
  `regex_location` varchar(512) NOT NULL DEFAULT '',
  `regex_repair` varchar(512) NOT NULL DEFAULT '',
  `block_repair` tinyint(2) NOT NULL,
  `description` varchar(256) NOT NULL,
  `repair` varchar(512) NOT NULL,
  `status` tinyint(2) NOT NULL,
  `level` tinyint(2) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `ix_rules_vul_id` (`vul_id`),
  KEY `ix_rules_language` (`language`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Tasks - Scan the task table

CREATE TABLE `tasks` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `target` varchar(255) NOT NULL,
  `branch` varchar(64) NOT NULL,
  `scan_way` smallint(6) NOT NULL,
  `new_version` varchar(40) NOT NULL,
  `old_version` varchar(40) NOT NULL,
  `time_consume` int(11) NOT NULL,
  `time_start` int(11) NOT NULL,
  `time_end` int(11) NOT NULL,
  `file_count` int(11) NOT NULL,
  `code_number` int(11) NOT NULL,
  `status` tinyint(4) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `ix_tasks_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

User - Administrator account password table

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) NOT NULL,
  `password` varchar(256) NOT NULL,
  `role` tinyint(2) NOT NULL,
  `last_login_time` datetime NOT NULL,
  `last_login_ip` varchar(16) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Vuls - Vulnerability Type Table

CREATE TABLE `vuls` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(56) NOT NULL,
  `description` varchar(512) NOT NULL,
  `repair` varchar(512) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Whitelist - White list

CREATE TABLE `whitelist` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `project_id` int(11) NOT NULL,
  `rule_id` int(11) NOT NULL,
  `path` varchar(512) NOT NULL,
  `reason` varchar(512) NOT NULL,
  `status` tinyint(4) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_project_id_rule_id` (`project_id`,`rule_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;