forked from UTulsa-Research/ag_gen
85 lines
1.6 KiB
SQL
Executable File
85 lines
1.6 KiB
SQL
Executable File
CREATE TABLE factbase (
|
|
id SERIAL PRIMARY KEY,
|
|
hash TEXT
|
|
);
|
|
|
|
CREATE TABLE factbase_item (
|
|
factbase_id INTEGER REFERENCES factbase(id),
|
|
f BIGINT,
|
|
type TEXT,
|
|
PRIMARY KEY (factbase_id, f, type)
|
|
);
|
|
|
|
CREATE TABLE asset (
|
|
id SERIAL PRIMARY KEY,
|
|
name TEXT
|
|
);
|
|
|
|
CREATE TABLE quality (
|
|
asset_id INTEGER REFERENCES asset(id),
|
|
property TEXT,
|
|
op TEXT,
|
|
value TEXT,
|
|
PRIMARY KEY (asset_id, property)
|
|
);
|
|
|
|
CREATE TABLE topology (
|
|
asset_from_id INTEGER REFERENCES asset(id),
|
|
asset_to_id INTEGER REFERENCES asset(id),
|
|
direction TEXT,
|
|
property TEXT,
|
|
op TEXT,
|
|
value TEXT,
|
|
PRIMARY KEY (asset_from_id, asset_to_id, property)
|
|
);
|
|
|
|
CREATE TABLE exploit (
|
|
id SERIAL PRIMARY KEY,
|
|
name TEXT,
|
|
params INTEGER,
|
|
"group" TEXT
|
|
);
|
|
|
|
CREATE TABLE exploit_precondition (
|
|
id SERIAL PRIMARY KEY,
|
|
exploit_id INTEGER REFERENCES exploit(id),
|
|
type INTEGER, -- 0 for quality, 1 for topology
|
|
param1 INTEGER,
|
|
param2 INTEGER,
|
|
property TEXT,
|
|
value TEXT,
|
|
op TEXT,
|
|
dir TEXT
|
|
);
|
|
|
|
CREATE TABLE exploit_postcondition (
|
|
id SERIAL PRIMARY KEY,
|
|
exploit_id INTEGER REFERENCES exploit(id),
|
|
type INTEGER, -- 0 for quality, 1 for topology
|
|
param1 INTEGER,
|
|
param2 INTEGER,
|
|
property TEXT,
|
|
value TEXT,
|
|
op TEXT,
|
|
dir TEXT,
|
|
action TEXT
|
|
);
|
|
|
|
CREATE TABLE edge (
|
|
id SERIAL PRIMARY KEY,
|
|
from_node INTEGER REFERENCES factbase(id),
|
|
to_node INTEGER REFERENCES factbase(id),
|
|
exploit_id INTEGER REFERENCES exploit(id)
|
|
);
|
|
|
|
CREATE TABLE edge_asset_binding (
|
|
edge_id INTEGER REFERENCES edge(id),
|
|
exploit_param INTEGER,
|
|
asset_id INTEGER REFERENCES asset(id)
|
|
);
|
|
|
|
CREATE TABLE keyvalue (
|
|
id INTEGER PRIMARY KEY,
|
|
property TEXT
|
|
);
|