checkpoint ISAC registries and system monitoring

This commit is contained in:
JB
2026-07-27 00:31:16 -04:00
parent 8b80e55e6c
commit 7b3aff30d8
53 changed files with 1351 additions and 179 deletions
+32 -1
View File
@@ -345,7 +345,7 @@ CREATE TABLE IF NOT EXISTS stat_attributes (
CHECK((skill_chip_min IS NULL AND skill_chip_max IS NULL) OR (skill_chip_min IS NOT NULL AND skill_chip_max IS NOT NULL AND skill_chip_min <= skill_chip_max)),
CHECK(cap_value IS NULL OR cap_value >= 0)
);
CREATE UNIQUE INDEX IF NOT EXISTS stat_attributes_name_nocase_idx ON stat_attributes(name COLLATE NOCASE);
CREATE UNIQUE INDEX IF NOT EXISTS stat_attributes_name_unit_nocase_idx ON stat_attributes(name COLLATE NOCASE, unit);
CREATE TABLE IF NOT EXISTS talents (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
@@ -1092,3 +1092,34 @@ CREATE INDEX IF NOT EXISTS managed_images_category_idx ON managed_images(categor
CREATE UNIQUE INDEX IF NOT EXISTS managed_images_source_entity_idx
ON managed_images(source_entity_type,source_entity_id)
WHERE source_entity_type IS NOT NULL AND source_entity_id IS NOT NULL;
CREATE TABLE IF NOT EXISTS external_service_status (
provider TEXT PRIMARY KEY,
credits_total REAL,
credits_subscription REAL,
credits_payg REAL,
credits_enterprise REAL,
free_calls INTEGER,
checked_at TEXT,
next_check_at TEXT,
last_charge REAL,
last_charge_at TEXT,
error_message TEXT,
severity TEXT NOT NULL DEFAULT 'unknown' CHECK(severity IN ('unknown','ok','warning','critical')),
episode_id TEXT,
episode_started_at TEXT,
recovered_at TEXT,
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS external_service_alert_deliveries (
id TEXT PRIMARY KEY,
provider TEXT NOT NULL REFERENCES external_service_status(provider),
episode_id TEXT NOT NULL,
severity TEXT NOT NULL CHECK(severity IN ('warning','critical')),
user_id TEXT NOT NULL REFERENCES users(id),
notification_id TEXT REFERENCES notifications(id),
created_at TEXT NOT NULL,
delivered_at TEXT,
UNIQUE(provider,episode_id,severity,user_id)
);
CREATE INDEX IF NOT EXISTS external_service_alert_pending_idx
ON external_service_alert_deliveries(delivered_at,created_at);