repo init

This commit is contained in:
ayurishchev committed 2026-08-21 07:34:45 +03:00
commit 7e44db87b2
48 files changed
+5346

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
CREATE TABLE validators (
validator_id TEXT PRIMARY KEY,
hostname TEXT NOT NULL DEFAULT '',
os_port_id TEXT NOT NULL DEFAULT '',
state TEXT NOT NULL DEFAULT 'unregistered',
current_ip_id INTEGER REFERENCES ip_queue(id),
agent_version TEXT NOT NULL DEFAULT '',
last_heartbeat_at TIMESTAMP,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE ip_queue (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ip_address TEXT NOT NULL UNIQUE,
sequence INTEGER NOT NULL,
state TEXT NOT NULL DEFAULT 'queued',
owner_validator_id TEXT REFERENCES validators(validator_id),
fip_id TEXT NOT NULL DEFAULT '',
attempt_number INTEGER NOT NULL DEFAULT 1,
retry_count INTEGER NOT NULL DEFAULT 0,
lease_expires_at TIMESTAMP,
egress_complete BOOLEAN NOT NULL DEFAULT 0,
site1_complete BOOLEAN NOT NULL DEFAULT 0,
site2_complete BOOLEAN NOT NULL DEFAULT 0,
site3_complete BOOLEAN NOT NULL DEFAULT 0,
overall_result TEXT NOT NULL DEFAULT '',
assigned_at TIMESTAMP,
aggregated_at TIMESTAMP,
fip_released_at TIMESTAMP,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_ip_queue_state_seq ON ip_queue(state, sequence);
CREATE TABLE checks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ip_id INTEGER NOT NULL REFERENCES ip_queue(id),
ip_address TEXT NOT NULL,
attempt_number INTEGER NOT NULL,
validator_id TEXT NOT NULL DEFAULT '',
source TEXT NOT NULL,
check_type TEXT NOT NULL,
target TEXT NOT NULL DEFAULT '',
success BOOLEAN NOT NULL,
latency_ms INTEGER NOT NULL DEFAULT 0,
detail TEXT NOT NULL DEFAULT '',
checked_at TIMESTAMP NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE(ip_id, attempt_number, source, check_type, target)
);
CREATE INDEX idx_checks_ip_attempt ON checks(ip_id, attempt_number);
CREATE TABLE events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
source_type TEXT NOT NULL,
source_id TEXT NOT NULL DEFAULT '',
ip_id INTEGER REFERENCES ip_queue(id),
event_type TEXT NOT NULL,
payload TEXT NOT NULL DEFAULT '',
occurred_at TIMESTAMP NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_events_ip ON events(ip_id);
CREATE INDEX idx_events_source ON events(source_type, source_id);