aboutsummaryrefslogtreecommitdiffstats
path: root/packages/db
diff options
context:
space:
mode:
Diffstat (limited to 'packages/db')
-rw-r--r--packages/db/prisma/migrations/20240211184744_add_api_key/migration.sql16
-rw-r--r--packages/db/prisma/schema.prisma13
2 files changed, 29 insertions, 0 deletions
diff --git a/packages/db/prisma/migrations/20240211184744_add_api_key/migration.sql b/packages/db/prisma/migrations/20240211184744_add_api_key/migration.sql
new file mode 100644
index 00000000..c39bf511
--- /dev/null
+++ b/packages/db/prisma/migrations/20240211184744_add_api_key/migration.sql
@@ -0,0 +1,16 @@
+-- CreateTable
+CREATE TABLE "ApiKey" (
+ "id" TEXT NOT NULL PRIMARY KEY,
+ "name" TEXT NOT NULL,
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "keyId" TEXT NOT NULL,
+ "keyHash" TEXT NOT NULL,
+ "userId" TEXT NOT NULL,
+ CONSTRAINT "ApiKey_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+-- CreateIndex
+CREATE UNIQUE INDEX "ApiKey_keyId_key" ON "ApiKey"("keyId");
+
+-- CreateIndex
+CREATE UNIQUE INDEX "ApiKey_name_userId_key" ON "ApiKey"("name", "userId");
diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma
index 623a9f13..5c575c97 100644
--- a/packages/db/prisma/schema.prisma
+++ b/packages/db/prisma/schema.prisma
@@ -47,6 +47,7 @@ model User {
sessions Session[]
tags BookmarkTags[]
bookmarks Bookmark[]
+ apiKeys ApiKey[]
}
model VerificationToken {
@@ -57,6 +58,18 @@ model VerificationToken {
@@unique([identifier, token])
}
+model ApiKey {
+ id String @id @default(cuid())
+ name String
+ createdAt DateTime @default(now())
+ keyId String @unique
+ keyHash String
+ userId String
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+
+ @@unique([name, userId])
+}
+
model Bookmark {
id String @id @default(cuid())
createdAt DateTime @default(now())