ai-chatbot/lib/db/migrations/0087_add_access_ip_events.sql

36 lines
1.2 KiB
SQL

CREATE TABLE IF NOT EXISTS "AccessIpEvent" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"eventType" varchar(32) DEFAULT 'request' NOT NULL,
"ip" varchar(64) NOT NULL,
"userId" uuid REFERENCES "User"("id") ON DELETE SET NULL,
"userEmail" varchar(128),
"userRole" varchar(32),
"method" varchar(12),
"path" varchar(256),
"routeGroup" varchar(64),
"statusCode" integer,
"outcome" varchar(32) DEFAULT 'allowed' NOT NULL,
"severity" varchar(16) DEFAULT 'info' NOT NULL,
"reasons" jsonb,
"userAgent" text,
"referer" text,
"metadata" jsonb,
"occurredAt" timestamp DEFAULT now() NOT NULL,
"createdAt" timestamp DEFAULT now() NOT NULL
);
CREATE INDEX IF NOT EXISTS "AccessIpEvent_createdAt_idx"
ON "AccessIpEvent" ("createdAt" DESC);
CREATE INDEX IF NOT EXISTS "AccessIpEvent_ip_createdAt_idx"
ON "AccessIpEvent" ("ip", "createdAt" DESC);
CREATE INDEX IF NOT EXISTS "AccessIpEvent_userId_createdAt_idx"
ON "AccessIpEvent" ("userId", "createdAt" DESC);
CREATE INDEX IF NOT EXISTS "AccessIpEvent_severity_createdAt_idx"
ON "AccessIpEvent" ("severity", "createdAt" DESC);
CREATE INDEX IF NOT EXISTS "AccessIpEvent_path_createdAt_idx"
ON "AccessIpEvent" ("path", "createdAt" DESC);