sandbox/drawings/appsec_achitecture/db_scheme.sql

117 lines
3.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE "meta" (
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
"system_code" varchar(50) NOT NULL,
"tool" uuid,
"practice" varchar(32) NOT NULL,
"build" varchar(250) NOT NULL,
"enviroment" varchar(250) NOT NULL,
"library" varchar(50),
"method" varchar(10),
"hash" varchar(500) NOT NULL,
"created_at" datetime NOT NULL
);
CREATE TABLE "tool" (
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
"tool" varchar(50) NOT NULL,
"practive" varchar(20) NOT NULL
);
CREATE TABLE "problem" (
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
"executor" uuid,
"is_created_manually" bool,
"status" varchar(32) NOT NULL,
"status_updated_at" datetime NOT NULL,
"resolution" varchar(32),
"priority" varchar(32) NOT NULL,
"description" varchar(500),
"remediation" varchar(500),
"сategory" varchar(250),
"cve" varchar(50),
"cwe" varchar(500),
"cvss" int,
"location" varchar(500) NOT NULL,
"defect_id" uuid,
"defect_status" varchar(32),
"created_at" datetime NOT NULL,
"exception_date" datetime,
"category" varchar(250),
"hash" varchar(500) NOT NULL,
"creator" uuid,
"version" int NOT NULL,
"group_id" uuid,
"meta" uuid NOT NULL
);
CREATE TABLE "user" (
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
"login" varchar(100) NOT NULL,
"is_active" bool
);
CREATE TABLE "problem_group" (
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
"name" varchar(50) NOT NULL,
"description" varchar(300)
);
CREATE TABLE "system" (
"id" uuid UNIQUE PRIMARY KEY NOT NULL,
"name" varchar(50) NOT NULL,
"code" varchar(50) NOT NULL,
"buiseness_critical" bool,
"security_critical" bool,
"is_active" bool,
PRIMARY KEY ("id")
);
CREATE TABLE "user_to_system" (
"system_id" uuid NOT NULL,
"user_id" uuid NOT NULL,
PRIMARY KEY ("system_id", "user_id")
);
CREATE TABLE "comment" (
"id" uuid PRIMARY KEY NOT NULL,
"problem_id" uuid NOT NULL,
"description" varchar(500) NOT NULL,
"created_by" uuid NOT NULL,
"created_at" datetime NOT NULL
);
CREATE TABLE "work_history" (
"id" uuid PRIMARY KEY NOT NULL,
"problem_id" uuid NOT NULL,
"action" varchar(100),
"old_value" varchar(100),
"new_value" varchar(100),
"user_id" uuid NOT NULL,
"created_at" datetime NOT NULL
);
CREATE INDEX ON "system" ("code");
ALTER TABLE "meta" ADD FOREIGN KEY ("system_code") REFERENCES "system" ("code");
ALTER TABLE "meta" ADD FOREIGN KEY ("tool") REFERENCES "tool" ("id");
ALTER TABLE "problem" ADD FOREIGN KEY ("executor") REFERENCES "user" ("id");
ALTER TABLE "problem" ADD FOREIGN KEY ("creator") REFERENCES "user" ("id");
ALTER TABLE "problem" ADD FOREIGN KEY ("group_id") REFERENCES "problem_group" ("id");
ALTER TABLE "problem" ADD FOREIGN KEY ("meta") REFERENCES "meta" ("id");
ALTER TABLE "user_to_system" ADD FOREIGN KEY ("system_id") REFERENCES "system" ("id");
ALTER TABLE "user_to_system" ADD FOREIGN KEY ("user_id") REFERENCES "user" ("id");
ALTER TABLE "comment" ADD FOREIGN KEY ("problem_id") REFERENCES "problem" ("id");
ALTER TABLE "comment" ADD FOREIGN KEY ("created_by") REFERENCES "user" ("id");
ALTER TABLE "work_history" ADD FOREIGN KEY ("problem_id") REFERENCES "problem" ("id");
ALTER TABLE "work_history" ADD FOREIGN KEY ("user_id") REFERENCES "user" ("id");