feat: added most beacon DS and listener CRUD
This commit is contained in:
121
sparse-server/migrations/20250130040842_add_beacons.sql
Normal file
121
sparse-server/migrations/20250130040842_add_beacons.sql
Normal file
@@ -0,0 +1,121 @@
|
||||
CREATE TABLE beacon_listener (
|
||||
listener_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
|
||||
port int NOT NULL,
|
||||
public_ip varchar NOT NULL,
|
||||
domain_name varchar NOT NULL,
|
||||
certificate varchar NOT NULL,
|
||||
privkey varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_config (
|
||||
config_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
|
||||
mode text check (mode in ('single', 'regular', 'random', 'cron')),
|
||||
|
||||
regular_interval int,
|
||||
|
||||
random_min_time int,
|
||||
random_max_time int,
|
||||
|
||||
cron_schedule varchar
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_category (
|
||||
category_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
category_name varchar NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_template (
|
||||
template_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
template_name varchar NOT NULL,
|
||||
operating_system varchar NOT NULL,
|
||||
config_id int NOT NULL,
|
||||
listener_id int NOT NULL,
|
||||
|
||||
source_ip varchar NOT NULL,
|
||||
source_mac varchar,
|
||||
source_mode text check (source_mode in ('host', 'custom')),
|
||||
source_netmask int,
|
||||
source_gateway varchar,
|
||||
|
||||
FOREIGN KEY (config_id) REFERENCES beacon_config
|
||||
FOREIGN KEY (listener_id) REFERENCES beacon_listener
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_instance (
|
||||
beacon_id varchar PRIMARY KEY NOT NULL,
|
||||
template_id int NOT NULL,
|
||||
peer_ip varchar NOT NULL,
|
||||
nickname varchar NOT NULL,
|
||||
|
||||
cwd varchar NOT NULL,
|
||||
operating_system varchar NOT NULL,
|
||||
beacon_userent varchar NOT NULL,
|
||||
hostname varchar NOT NULL,
|
||||
|
||||
FOREIGN KEY (template_id) REFERENCES beacon_template
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_category_assignment (
|
||||
category_id int,
|
||||
beacon_id varchar,
|
||||
|
||||
PRIMARY KEY (category_id, beacon_id),
|
||||
|
||||
FOREIGN KEY (category_id) REFERENCES beacon_category,
|
||||
FOREIGN KEY (beacon_id) REFERENCES beacon_instance
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_config_assignment (
|
||||
config_id int,
|
||||
beacon_id varchar,
|
||||
|
||||
PRIMARY KEY (config_id, beacon_id),
|
||||
|
||||
FOREIGN KEY (config_id) REFERENCES beacon_config,
|
||||
FOREIGN KEY (beacon_id) REFERENCES beacon_instance
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_command (
|
||||
command_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
|
||||
cmd_type text check (cmd_type in ('update', 'exec', 'install', 'upload', 'download', 'reload_config', 'chdir', 'ls')),
|
||||
|
||||
exec_command varchar,
|
||||
|
||||
install_target varchar,
|
||||
|
||||
upload_src varchar,
|
||||
upload_dest varchar,
|
||||
|
||||
download_path varchar,
|
||||
|
||||
config_id int,
|
||||
|
||||
FOREIGN KEY (config_id) REFERENCES beacon_config
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_command_invocation (
|
||||
beacon_id varchar NOT NULL,
|
||||
command_id int NOT NULL,
|
||||
|
||||
invoker_id int NOT NULL,
|
||||
|
||||
invocation_date int,
|
||||
invocation_result varchar,
|
||||
|
||||
PRIMARY KEY (beacon_id, command_id),
|
||||
|
||||
FOREIGN KEY (command_id) REFERENCES beacon_command,
|
||||
FOREIGN KEY (beacon_id) REFERENCES beacon_instance,
|
||||
FOREIGN KEY (invoker_id) REFERENCES users
|
||||
);
|
||||
|
||||
CREATE TABLE beacon_checkin (
|
||||
beacon_id varchar NOT NULL,
|
||||
|
||||
checkin_date int,
|
||||
|
||||
FOREIGN KEY (beacon_id) REFERENCES beacon_instance
|
||||
);
|
||||
Reference in New Issue
Block a user