Add home-security-agent with PostgreSQL persistence for dashboard.
The autonomous agent writes all observations to agent.* tables consumed by Homelab Command on port 8765. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
-- Home Security Agent — observaties voor dashboard :8765 (schema agent.*)
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS agent;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS agent.observation_runs (
|
||||
id bigserial PRIMARY KEY,
|
||||
observed_at timestamptz NOT NULL,
|
||||
total_checks integer NOT NULL DEFAULT 0,
|
||||
failed_checks integer NOT NULL DEFAULT 0,
|
||||
summary jsonb NOT NULL DEFAULT '{}',
|
||||
decision jsonb,
|
||||
created_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_agent_runs_observed
|
||||
ON agent.observation_runs (observed_at DESC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS agent.findings (
|
||||
id bigserial PRIMARY KEY,
|
||||
run_id bigint NOT NULL REFERENCES agent.observation_runs(id) ON DELETE CASCADE,
|
||||
kind text NOT NULL,
|
||||
name text NOT NULL,
|
||||
ok boolean NOT NULL,
|
||||
detail text,
|
||||
meta jsonb NOT NULL DEFAULT '{}',
|
||||
created_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_agent_findings_run ON agent.findings (run_id);
|
||||
CREATE INDEX IF NOT EXISTS ix_agent_findings_failed ON agent.findings (run_id, ok) WHERE NOT ok;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS agent.incidents (
|
||||
id bigserial PRIMARY KEY,
|
||||
run_id bigint REFERENCES agent.observation_runs(id) ON DELETE SET NULL,
|
||||
fingerprint text NOT NULL,
|
||||
severity text NOT NULL,
|
||||
title text NOT NULL,
|
||||
body text,
|
||||
notified boolean NOT NULL DEFAULT false,
|
||||
created_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_agent_incidents_created
|
||||
ON agent.incidents (created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS ix_agent_incidents_fp
|
||||
ON agent.incidents (fingerprint, created_at DESC);
|
||||
|
||||
GRANT USAGE ON SCHEMA agent TO PUBLIC;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA agent TO PUBLIC;
|
||||
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA agent TO PUBLIC;
|
||||
Reference in New Issue
Block a user