123 lines
3.7 KiB
SQL
123 lines
3.7 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "hosts" (
|
|
"id" TEXT NOT NULL,
|
|
"hostname" TEXT NOT NULL,
|
|
"lastUpdate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "hosts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "records" (
|
|
"id" TEXT NOT NULL,
|
|
"hostname" TEXT NOT NULL,
|
|
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "records_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "windows" (
|
|
"id" TEXT NOT NULL,
|
|
"recordId" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"path" TEXT NOT NULL,
|
|
"memory" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "windows_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "screenshots" (
|
|
"id" TEXT NOT NULL,
|
|
"recordId" TEXT NOT NULL,
|
|
"fileId" TEXT NOT NULL,
|
|
"filename" TEXT NOT NULL,
|
|
"monitorName" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "screenshots_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "credentials" (
|
|
"id" TEXT NOT NULL,
|
|
"hostname" TEXT NOT NULL,
|
|
"username" TEXT NOT NULL,
|
|
"browser" TEXT NOT NULL,
|
|
"url" TEXT NOT NULL,
|
|
"login" TEXT NOT NULL,
|
|
"lastSyncTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "credentials_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "passwords" (
|
|
"id" TEXT NOT NULL,
|
|
"credentialId" TEXT NOT NULL,
|
|
"value" TEXT NOT NULL,
|
|
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "passwords_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "versions" (
|
|
"id" TEXT NOT NULL,
|
|
"version" TEXT NOT NULL,
|
|
"fileId" TEXT NOT NULL,
|
|
"filename" TEXT NOT NULL,
|
|
"checksum" TEXT NOT NULL,
|
|
"uploadTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"isLatest" BOOLEAN NOT NULL DEFAULT false,
|
|
|
|
CONSTRAINT "versions_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "nssm" (
|
|
"id" TEXT NOT NULL,
|
|
"fileId" TEXT NOT NULL,
|
|
"filename" TEXT NOT NULL,
|
|
"checksum" TEXT NOT NULL,
|
|
"uploadTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "nssm_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "hosts_hostname_key" ON "hosts"("hostname");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "records_hostname_timestamp_idx" ON "records"("hostname", "timestamp");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "records_timestamp_idx" ON "records"("timestamp");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "credentials_hostname_idx" ON "credentials"("hostname");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "credentials_hostname_username_browser_url_login_key" ON "credentials"("hostname", "username", "browser", "url", "login");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "records" ADD CONSTRAINT "records_hostname_fkey" FOREIGN KEY ("hostname") REFERENCES "hosts"("hostname") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "windows" ADD CONSTRAINT "windows_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "records"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "screenshots" ADD CONSTRAINT "screenshots_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "records"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "credentials" ADD CONSTRAINT "credentials_hostname_fkey" FOREIGN KEY ("hostname") REFERENCES "hosts"("hostname") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "passwords" ADD CONSTRAINT "passwords_credentialId_fkey" FOREIGN KEY ("credentialId") REFERENCES "credentials"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|