69 lines
1.9 KiB
SQL
69 lines
1.9 KiB
SQL
-- AlterTable
|
|
ALTER TABLE "team" ADD COLUMN "two_factor_required" BOOLEAN NOT NULL DEFAULT false;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "user" ADD COLUMN "two_factor_required" BOOLEAN NOT NULL DEFAULT false;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "two_factor_auth" (
|
|
"id" TEXT NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"secret" TEXT NOT NULL,
|
|
"is_enabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ(6) NOT NULL,
|
|
|
|
CONSTRAINT "two_factor_auth_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "two_factor_backup_code" (
|
|
"id" TEXT NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"code_hash" TEXT NOT NULL,
|
|
"used" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "two_factor_backup_code_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "two_factor_otp_used" (
|
|
"id" TEXT NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"otp" TEXT NOT NULL,
|
|
"expires_at" TIMESTAMPTZ(6) NOT NULL,
|
|
|
|
CONSTRAINT "two_factor_otp_used_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "two_factor_rate_limit" (
|
|
"id" TEXT NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"attempts" INTEGER NOT NULL DEFAULT 0,
|
|
"locked_until" TIMESTAMPTZ(6),
|
|
"updated_at" TIMESTAMPTZ(6) NOT NULL,
|
|
|
|
CONSTRAINT "two_factor_rate_limit_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "app_setting" (
|
|
"key" TEXT NOT NULL,
|
|
"value" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "app_setting_pkey" PRIMARY KEY ("key")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "two_factor_auth_user_id_key" ON "two_factor_auth"("user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "two_factor_backup_code_user_id_idx" ON "two_factor_backup_code"("user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "two_factor_otp_used_user_id_otp_key" ON "two_factor_otp_used"("user_id", "otp");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "two_factor_rate_limit_user_id_key" ON "two_factor_rate_limit"("user_id"); |