From 6aacc0c7a86e36c52a3c2c1d26fe58cefcd3bec4 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Mon, 12 Feb 2024 14:52:00 +0000 Subject: feature: Add support for managing API keys --- .../migrations/20240211184744_add_api_key/migration.sql | 16 ++++++++++++++++ packages/db/prisma/schema.prisma | 13 +++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 packages/db/prisma/migrations/20240211184744_add_api_key/migration.sql (limited to 'packages/db') 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()) -- cgit v1.2.3-70-g09d2