66 lines
2.1 KiB
SQL
66 lines
2.1 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "backup_shares" (
|
|
"share_id" BIGSERIAL NOT NULL,
|
|
"user_id" BIGINT NOT NULL,
|
|
"account_sequence" VARCHAR(12) NOT NULL,
|
|
"public_key" VARCHAR(130) NOT NULL,
|
|
"party_index" INTEGER NOT NULL DEFAULT 2,
|
|
"threshold" INTEGER NOT NULL DEFAULT 2,
|
|
"total_parties" INTEGER NOT NULL DEFAULT 3,
|
|
"encrypted_share_data" TEXT NOT NULL,
|
|
"encryption_key_id" VARCHAR(64) NOT NULL,
|
|
"status" VARCHAR(20) NOT NULL DEFAULT 'ACTIVE',
|
|
"access_count" INTEGER NOT NULL DEFAULT 0,
|
|
"last_accessed_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
"revoked_at" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "backup_shares_pkey" PRIMARY KEY ("share_id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "share_access_logs" (
|
|
"log_id" BIGSERIAL NOT NULL,
|
|
"share_id" BIGINT NOT NULL,
|
|
"user_id" BIGINT NOT NULL,
|
|
"action" VARCHAR(20) NOT NULL,
|
|
"source_service" VARCHAR(50) NOT NULL,
|
|
"source_ip" VARCHAR(45) NOT NULL,
|
|
"success" BOOLEAN NOT NULL DEFAULT true,
|
|
"error_message" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "share_access_logs_pkey" PRIMARY KEY ("log_id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "backup_shares_user_id_key" ON "backup_shares"("user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "backup_shares_account_sequence_key" ON "backup_shares"("account_sequence");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "backup_shares_public_key_key" ON "backup_shares"("public_key");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_backup_public_key" ON "backup_shares"("public_key");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_backup_status" ON "backup_shares"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_backup_created" ON "backup_shares"("created_at");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_log_share" ON "share_access_logs"("share_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_log_user" ON "share_access_logs"("user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_log_action" ON "share_access_logs"("action");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_log_created" ON "share_access_logs"("created_at");
|