37 lines
1.8 KiB
SQL
37 lines
1.8 KiB
SQL
CREATE TABLE "admin_ssh_keys" (
|
|
"id" UUID NOT NULL,
|
|
"admin_id" UUID NOT NULL,
|
|
"label" TEXT,
|
|
"key_type" TEXT NOT NULL,
|
|
"public_key" TEXT NOT NULL,
|
|
"public_key_hash" TEXT NOT NULL,
|
|
"fingerprint" TEXT NOT NULL,
|
|
"gitea_username" TEXT,
|
|
"gitea_key_id" INTEGER,
|
|
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ(3) NOT NULL,
|
|
|
|
CONSTRAINT "admin_ssh_keys_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "admin_ssh_keys_public_key_hash_key" ON "admin_ssh_keys"("public_key_hash");
|
|
CREATE INDEX "admin_ssh_keys_admin_id_created_at_idx" ON "admin_ssh_keys"("admin_id", "created_at");
|
|
CREATE INDEX "admin_ssh_keys_gitea_username_idx" ON "admin_ssh_keys"("gitea_username");
|
|
|
|
ALTER TABLE "admin_ssh_keys"
|
|
ADD CONSTRAINT "admin_ssh_keys_admin_id_fkey"
|
|
FOREIGN KEY ("admin_id") REFERENCES "admins"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
COMMENT ON TABLE "admin_ssh_keys" IS '관리자 계정별 Gitea SSH 공개키 등록 정보';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."id" IS '관리자 SSH 키 고유 ID';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."admin_id" IS 'SSH 키를 소유한 관리자 ID';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."label" IS 'SSH 키 표시명';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."key_type" IS 'SSH 공개키 타입';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."public_key" IS 'SSH 공개키 원문';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."public_key_hash" IS 'SSH 공개키 중복 방지용 해시';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."fingerprint" IS 'SSH 공개키 SHA256 fingerprint';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."gitea_username" IS '키를 등록할 Gitea 사용자명';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."gitea_key_id" IS 'Gitea에 등록된 SSH key ID';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."created_at" IS '생성 시각';
|
|
COMMENT ON COLUMN "admin_ssh_keys"."updated_at" IS '수정 시각';
|