diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-12 14:52:00 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-12 14:55:00 +0000 |
| commit | 6aacc0c7a86e36c52a3c2c1d26fe58cefcd3bec4 (patch) | |
| tree | bad306e872d6bfcc2c67f00caa3880c8aa56070f /packages/db | |
| parent | 230cafb6dfc8d3bad57d84ef13c3669f5bf5331a (diff) | |
| download | karakeep-6aacc0c7a86e36c52a3c2c1d26fe58cefcd3bec4.tar.zst | |
feature: Add support for managing API keys
Diffstat (limited to 'packages/db')
| -rw-r--r-- | packages/db/prisma/migrations/20240211184744_add_api_key/migration.sql | 16 | ||||
| -rw-r--r-- | packages/db/prisma/schema.prisma | 13 |
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()) |
