init
This commit is contained in:
79
init-db.sql
Normal file
79
init-db.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
-- Database initialization script for A/D Infrastructure Control
|
||||
|
||||
-- Services table for controller
|
||||
CREATE TABLE IF NOT EXISTS services (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL UNIQUE,
|
||||
path VARCHAR(512) NOT NULL,
|
||||
git_url VARCHAR(512),
|
||||
status VARCHAR(50) DEFAULT 'stopped',
|
||||
last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Service logs table
|
||||
CREATE TABLE IF NOT EXISTS service_logs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
service_id INTEGER REFERENCES services(id) ON DELETE CASCADE,
|
||||
action VARCHAR(100) NOT NULL,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
message TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Attacks tracking table for scoreboard injector
|
||||
CREATE TABLE IF NOT EXISTS attacks (
|
||||
id SERIAL PRIMARY KEY,
|
||||
attack_id VARCHAR(255) UNIQUE,
|
||||
attacker_team_id INTEGER,
|
||||
victim_team_id INTEGER,
|
||||
service_name VARCHAR(255),
|
||||
flag VARCHAR(255),
|
||||
timestamp TIMESTAMP NOT NULL,
|
||||
points FLOAT,
|
||||
is_our_attack BOOLEAN DEFAULT FALSE,
|
||||
is_attack_to_us BOOLEAN DEFAULT FALSE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Attack alerts table
|
||||
CREATE TABLE IF NOT EXISTS attack_alerts (
|
||||
id SERIAL PRIMARY KEY,
|
||||
attack_id INTEGER REFERENCES attacks(id) ON DELETE CASCADE,
|
||||
alert_type VARCHAR(100) NOT NULL,
|
||||
severity VARCHAR(50) NOT NULL,
|
||||
message TEXT,
|
||||
notified BOOLEAN DEFAULT FALSE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Telegram messages log
|
||||
CREATE TABLE IF NOT EXISTS telegram_messages (
|
||||
id SERIAL PRIMARY KEY,
|
||||
chat_id BIGINT NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
success BOOLEAN DEFAULT TRUE,
|
||||
error_message TEXT
|
||||
);
|
||||
|
||||
-- System settings
|
||||
CREATE TABLE IF NOT EXISTS settings (
|
||||
key VARCHAR(255) PRIMARY KEY,
|
||||
value TEXT NOT NULL,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Insert default settings
|
||||
INSERT INTO settings (key, value) VALUES
|
||||
('our_team_id', '0'),
|
||||
('alert_threshold_points', '100'),
|
||||
('alert_threshold_time', '300')
|
||||
ON CONFLICT (key) DO NOTHING;
|
||||
|
||||
-- Create indexes for performance
|
||||
CREATE INDEX IF NOT EXISTS idx_attacks_timestamp ON attacks(timestamp);
|
||||
CREATE INDEX IF NOT EXISTS idx_attacks_our_attack ON attacks(is_our_attack);
|
||||
CREATE INDEX IF NOT EXISTS idx_attacks_attack_to_us ON attacks(is_attack_to_us);
|
||||
CREATE INDEX IF NOT EXISTS idx_service_logs_service_id ON service_logs(service_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_attack_alerts_notified ON attack_alerts(notified);
|
||||
Reference in New Issue
Block a user