144 lines
5.2 KiB
SQL
144 lines
5.2 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "ErrorSeverity" AS ENUM ('INFO', 'WARNING', 'ERROR', 'CRITICAL');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "enterprise_clients" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"company_name" TEXT,
|
|
"contact_email" TEXT NOT NULL,
|
|
"contact_phone" TEXT,
|
|
"notes" TEXT,
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "enterprise_clients_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "enterprise_servers" (
|
|
"id" TEXT NOT NULL,
|
|
"client_id" TEXT NOT NULL,
|
|
"netcup_server_id" TEXT NOT NULL,
|
|
"nickname" TEXT,
|
|
"purpose" TEXT,
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
"portainer_url" TEXT,
|
|
"portainer_username" TEXT,
|
|
"portainer_password_enc" TEXT,
|
|
|
|
CONSTRAINT "enterprise_servers_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "server_stats_snapshots" (
|
|
"id" TEXT NOT NULL,
|
|
"server_id" TEXT NOT NULL,
|
|
"client_id" TEXT NOT NULL,
|
|
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"cpu_percent" DOUBLE PRECISION,
|
|
"memory_used_mb" DOUBLE PRECISION,
|
|
"memory_total_mb" DOUBLE PRECISION,
|
|
"disk_read_mbps" DOUBLE PRECISION,
|
|
"disk_write_mbps" DOUBLE PRECISION,
|
|
"network_in_mbps" DOUBLE PRECISION,
|
|
"network_out_mbps" DOUBLE PRECISION,
|
|
"containers_running" INTEGER,
|
|
"containers_stopped" INTEGER,
|
|
|
|
CONSTRAINT "server_stats_snapshots_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "error_detection_rules" (
|
|
"id" TEXT NOT NULL,
|
|
"client_id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"pattern" TEXT NOT NULL,
|
|
"severity" "ErrorSeverity" NOT NULL DEFAULT 'WARNING',
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"description" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "error_detection_rules_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "detected_errors" (
|
|
"id" TEXT NOT NULL,
|
|
"server_id" TEXT NOT NULL,
|
|
"rule_id" TEXT NOT NULL,
|
|
"container_id" TEXT,
|
|
"container_name" TEXT,
|
|
"log_line" TEXT NOT NULL,
|
|
"context" TEXT,
|
|
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"acknowledged_at" TIMESTAMP(3),
|
|
"acknowledged_by" TEXT,
|
|
|
|
CONSTRAINT "detected_errors_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "security_verification_codes" (
|
|
"id" TEXT NOT NULL,
|
|
"client_id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"action" TEXT NOT NULL,
|
|
"target_server_id" TEXT NOT NULL,
|
|
"expires_at" TIMESTAMP(3) NOT NULL,
|
|
"used_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "security_verification_codes_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "enterprise_servers_client_id_idx" ON "enterprise_servers"("client_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "enterprise_servers_client_id_netcup_server_id_key" ON "enterprise_servers"("client_id", "netcup_server_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "server_stats_snapshots_server_id_timestamp_idx" ON "server_stats_snapshots"("server_id", "timestamp");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "server_stats_snapshots_client_id_timestamp_idx" ON "server_stats_snapshots"("client_id", "timestamp");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "error_detection_rules_client_id_idx" ON "error_detection_rules"("client_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "detected_errors_server_id_timestamp_idx" ON "detected_errors"("server_id", "timestamp");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "detected_errors_rule_id_timestamp_idx" ON "detected_errors"("rule_id", "timestamp");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "security_verification_codes_client_id_code_idx" ON "security_verification_codes"("client_id", "code");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "enterprise_servers" ADD CONSTRAINT "enterprise_servers_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "server_stats_snapshots" ADD CONSTRAINT "server_stats_snapshots_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "server_stats_snapshots" ADD CONSTRAINT "server_stats_snapshots_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "error_detection_rules" ADD CONSTRAINT "error_detection_rules_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "detected_errors" ADD CONSTRAINT "detected_errors_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "detected_errors" ADD CONSTRAINT "detected_errors_rule_id_fkey" FOREIGN KEY ("rule_id") REFERENCES "error_detection_rules"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "security_verification_codes" ADD CONSTRAINT "security_verification_codes_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|