From 9f36b7cedc44dc8398ca9b213e9992a96d760252 Mon Sep 17 00:00:00 2001 From: Vadim Date: Thu, 24 Sep 2026 16:21:16 +0300 Subject: [PATCH] fix better auth --- .../20260904082836_init/migration.sql | 10 --- .../20260915063351_issue/migration.sql | 24 ------ .../20260919141658_project/migration.sql | 43 ---------- .../20260919194022_project_fix/migration.sql | 14 ---- .../migration.sql | 21 ----- .../migration.sql | 4 - .../20260924131803_init/migration.sql | 83 +++++++++++++++++++ prisma/schema.prisma | 17 ---- src/lib/auth.ts | 2 - 9 files changed, 83 insertions(+), 135 deletions(-) delete mode 100644 prisma/migrations/20260904082836_init/migration.sql delete mode 100644 prisma/migrations/20260915063351_issue/migration.sql delete mode 100644 prisma/migrations/20260919141658_project/migration.sql delete mode 100644 prisma/migrations/20260919194022_project_fix/migration.sql delete mode 100644 prisma/migrations/20260921170707_add_project_member/migration.sql rename prisma/migrations/{20260904083029_auth => 20260924131323_auth}/migration.sql (94%) create mode 100644 prisma/migrations/20260924131803_init/migration.sql diff --git a/prisma/migrations/20260904082836_init/migration.sql b/prisma/migrations/20260904082836_init/migration.sql deleted file mode 100644 index 989108d..0000000 --- a/prisma/migrations/20260904082836_init/migration.sql +++ /dev/null @@ -1,10 +0,0 @@ --- CreateTable -CREATE TABLE "test" ( - "id" SERIAL NOT NULL, - "title" TEXT NOT NULL, - "content" TEXT, - "published" BOOLEAN DEFAULT false, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "test_pkey" PRIMARY KEY ("id") -); diff --git a/prisma/migrations/20260915063351_issue/migration.sql b/prisma/migrations/20260915063351_issue/migration.sql deleted file mode 100644 index f830c51..0000000 --- a/prisma/migrations/20260915063351_issue/migration.sql +++ /dev/null @@ -1,24 +0,0 @@ --- CreateTable -CREATE TABLE "issue" ( - "id" SERIAL NOT NULL, - "key" TEXT NOT NULL, - "title" TEXT NOT NULL, - "content" TEXT, - "status" TEXT NOT NULL, - "priority" INTEGER NOT NULL DEFAULT 0, - "assigneeId" TEXT, - "reporterId" TEXT NOT NULL, - "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMPTZ(3) NOT NULL, - - CONSTRAINT "issue_pkey" PRIMARY KEY ("id") -); - --- CreateIndex -CREATE INDEX "issue_status_assigneeId_reporterId_idx" ON "issue"("status", "assigneeId", "reporterId"); - --- AddForeignKey -ALTER TABLE "issue" ADD CONSTRAINT "issue_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "issue" ADD CONSTRAINT "issue_reporterId_fkey" FOREIGN KEY ("reporterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260919141658_project/migration.sql b/prisma/migrations/20260919141658_project/migration.sql deleted file mode 100644 index e3a193f..0000000 --- a/prisma/migrations/20260919141658_project/migration.sql +++ /dev/null @@ -1,43 +0,0 @@ -/* - Warnings: - - - Added the required column `projectId` to the `issue` table without a default value. This is not possible if the table is not empty. - -*/ --- DropIndex -DROP INDEX "issue_status_assigneeId_reporterId_idx"; - --- AlterTable -ALTER TABLE "issue" ADD COLUMN "projectId" TEXT NOT NULL; - --- CreateTable -CREATE TABLE "project" ( - "id" TEXT NOT NULL, - "name" TEXT NOT NULL, - "key" TEXT NOT NULL, - "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updatedAt" TIMESTAMPTZ(3) NOT NULL, - - CONSTRAINT "project_pkey" PRIMARY KEY ("id") -); - --- CreateIndex -CREATE INDEX "project_createdAt_idx" ON "project"("createdAt"); - --- CreateIndex -CREATE UNIQUE INDEX "project_key_key" ON "project"("key"); - --- CreateIndex -CREATE INDEX "issue_status_idx" ON "issue"("status"); - --- CreateIndex -CREATE INDEX "issue_assigneeId_idx" ON "issue"("assigneeId"); - --- CreateIndex -CREATE INDEX "issue_reporterId_idx" ON "issue"("reporterId"); - --- CreateIndex -CREATE INDEX "issue_projectId_idx" ON "issue"("projectId"); - --- AddForeignKey -ALTER TABLE "issue" ADD CONSTRAINT "issue_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "project"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260919194022_project_fix/migration.sql b/prisma/migrations/20260919194022_project_fix/migration.sql deleted file mode 100644 index 10e9af8..0000000 --- a/prisma/migrations/20260919194022_project_fix/migration.sql +++ /dev/null @@ -1,14 +0,0 @@ -/* - Warnings: - - - Added the required column `ownerId` to the `project` table without a default value. This is not possible if the table is not empty. - -*/ --- AlterTable -ALTER TABLE "project" ADD COLUMN "ownerId" TEXT NOT NULL; - --- CreateIndex -CREATE INDEX "project_ownerId_idx" ON "project"("ownerId"); - --- AddForeignKey -ALTER TABLE "project" ADD CONSTRAINT "project_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/20260921170707_add_project_member/migration.sql b/prisma/migrations/20260921170707_add_project_member/migration.sql deleted file mode 100644 index 81b1a96..0000000 --- a/prisma/migrations/20260921170707_add_project_member/migration.sql +++ /dev/null @@ -1,21 +0,0 @@ --- CreateTable -CREATE TABLE "project_member" ( - "id" TEXT NOT NULL, - "projectId" TEXT NOT NULL, - "userId" TEXT NOT NULL, - "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "project_member_pkey" PRIMARY KEY ("id") -); - --- CreateIndex -CREATE INDEX "project_member_userId_idx" ON "project_member"("userId"); - --- CreateIndex -CREATE UNIQUE INDEX "project_member_projectId_userId_key" ON "project_member"("projectId", "userId"); - --- AddForeignKey -ALTER TABLE "project_member" ADD CONSTRAINT "project_member_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "project"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "project_member" ADD CONSTRAINT "project_member_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/20260904083029_auth/migration.sql b/prisma/migrations/20260924131323_auth/migration.sql similarity index 94% rename from prisma/migrations/20260904083029_auth/migration.sql rename to prisma/migrations/20260924131323_auth/migration.sql index 44a9167..c0feb5c 100644 --- a/prisma/migrations/20260904083029_auth/migration.sql +++ b/prisma/migrations/20260924131323_auth/migration.sql @@ -28,7 +28,6 @@ CREATE TABLE "session" ( -- CreateTable CREATE TABLE "account" ( "id" TEXT NOT NULL, - "issuer" TEXT NOT NULL, "accountId" TEXT NOT NULL, "providerId" TEXT NOT NULL, "userId" TEXT NOT NULL, @@ -69,9 +68,6 @@ CREATE UNIQUE INDEX "session_token_key" ON "session"("token"); -- CreateIndex CREATE INDEX "account_userId_idx" ON "account"("userId"); --- CreateIndex -CREATE UNIQUE INDEX "account_issuer_accountId_uidx" ON "account"("issuer", "accountId"); - -- CreateIndex CREATE INDEX "verification_identifier_idx" ON "verification"("identifier"); diff --git a/prisma/migrations/20260924131803_init/migration.sql b/prisma/migrations/20260924131803_init/migration.sql new file mode 100644 index 0000000..e3e7f1a --- /dev/null +++ b/prisma/migrations/20260924131803_init/migration.sql @@ -0,0 +1,83 @@ +-- CreateTable +CREATE TABLE "issue" ( + "id" SERIAL NOT NULL, + "key" TEXT NOT NULL, + "title" TEXT NOT NULL, + "content" TEXT, + "status" TEXT NOT NULL, + "priority" INTEGER NOT NULL DEFAULT 0, + "assigneeId" TEXT, + "reporterId" TEXT NOT NULL, + "projectId" TEXT NOT NULL, + "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMPTZ(3) NOT NULL, + + CONSTRAINT "issue_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "project" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "key" TEXT NOT NULL, + "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMPTZ(3) NOT NULL, + "ownerId" TEXT NOT NULL, + + CONSTRAINT "project_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "project_member" ( + "id" TEXT NOT NULL, + "projectId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "project_member_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "issue_status_idx" ON "issue"("status"); + +-- CreateIndex +CREATE INDEX "issue_assigneeId_idx" ON "issue"("assigneeId"); + +-- CreateIndex +CREATE INDEX "issue_reporterId_idx" ON "issue"("reporterId"); + +-- CreateIndex +CREATE INDEX "issue_projectId_idx" ON "issue"("projectId"); + +-- CreateIndex +CREATE INDEX "project_createdAt_idx" ON "project"("createdAt"); + +-- CreateIndex +CREATE INDEX "project_ownerId_idx" ON "project"("ownerId"); + +-- CreateIndex +CREATE UNIQUE INDEX "project_key_key" ON "project"("key"); + +-- CreateIndex +CREATE INDEX "project_member_userId_idx" ON "project_member"("userId"); + +-- CreateIndex +CREATE UNIQUE INDEX "project_member_projectId_userId_key" ON "project_member"("projectId", "userId"); + +-- AddForeignKey +ALTER TABLE "issue" ADD CONSTRAINT "issue_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "issue" ADD CONSTRAINT "issue_reporterId_fkey" FOREIGN KEY ("reporterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "issue" ADD CONSTRAINT "issue_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "project"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "project" ADD CONSTRAINT "project_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "project_member" ADD CONSTRAINT "project_member_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "project"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "project_member" ADD CONSTRAINT "project_member_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 07922c8..862da06 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -7,16 +7,6 @@ datasource db { provider = "postgresql" } -model Test { - id Int @id @default(autoincrement()) - title String - content String? - published Boolean? @default(false) - createdAt DateTime @default(now()) - - @@map("test") -} - model User { id String @id name String @@ -54,7 +44,6 @@ model Session { model Account { id String @id - issuer String accountId String providerId String userId String @@ -69,7 +58,6 @@ model Account { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt - @@unique([issuer, accountId], map: "account_issuer_accountId_uidx") @@index([userId]) @@map("account") } @@ -126,11 +114,6 @@ model Project { @@map("project") } -/** - * Участники проекта. Владелец видит и редактирует проект всегда - * (см. Project.ownerId); участник — только видит проект и его задачи. - * Запись создаётся автоматически при назначении пользователя на задачу проекта. - */ model ProjectMember { id String @id @default(uuid(7)) projectId String diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 48ac4de..19ac477 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -2,7 +2,6 @@ import { betterAuth } from 'better-auth'; import { prismaAdapter } from '@better-auth/prisma-adapter'; import prisma from './prisma.js'; import EmailSender from './email-sender.js'; -import { authTransformResponse } from './auth-plugins/auth-response.js'; export const auth = betterAuth({ appName: process.env.APP_NAME ?? 'app', @@ -20,7 +19,6 @@ export const auth = betterAuth({ joins: true, }, }, - hooks: {}, secret: process.env.BETTER_AUTH_SECRET, baseURL: process.env.BETTER_AUTH_URL ?? 'http://localhost:3000', emailAndPassword: {