23 lines
765 B
SQL
23 lines
765 B
SQL
CREATE TABLE "ApiKey" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"prefix" TEXT NOT NULL,
|
|
"keyHash" TEXT NOT NULL,
|
|
"scopes" TEXT[] NOT NULL DEFAULT ARRAY['transactions:read']::TEXT[],
|
|
"lastUsedAt" TIMESTAMP(3),
|
|
"revokedAt" TIMESTAMP(3),
|
|
"expiresAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "ApiKey_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "ApiKey_keyHash_key" ON "ApiKey"("keyHash");
|
|
CREATE INDEX "ApiKey_userId_createdAt_idx" ON "ApiKey"("userId", "createdAt");
|
|
CREATE INDEX "ApiKey_prefix_idx" ON "ApiKey"("prefix");
|
|
|
|
ALTER TABLE "ApiKey"
|
|
ADD CONSTRAINT "ApiKey_userId_fkey"
|
|
FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|