diff --git a/internal-packages/database/prisma/migrations/20241129141900_add_one_time_use_index_task_run/migration.sql b/internal-packages/database/prisma/migrations/20241129141900_add_one_time_use_index_task_run/migration.sql new file mode 100644 index 0000000000..6c1415a8df --- /dev/null +++ b/internal-packages/database/prisma/migrations/20241129141900_add_one_time_use_index_task_run/migration.sql @@ -0,0 +1,8 @@ +/* + Warnings: + + - A unique constraint covering the columns `[oneTimeUseToken]` on the table `TaskRun` will be added. If there are existing duplicate values, this will fail. + + */ +-- CreateIndex +CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS "TaskRun_oneTimeUseToken_key" ON "TaskRun"("oneTimeUseToken"); \ No newline at end of file diff --git a/internal-packages/database/prisma/migrations/20241129142057_add_one_time_use_token_index_batch_task_run/migration.sql b/internal-packages/database/prisma/migrations/20241129142057_add_one_time_use_token_index_batch_task_run/migration.sql new file mode 100644 index 0000000000..cc76eebd3d --- /dev/null +++ b/internal-packages/database/prisma/migrations/20241129142057_add_one_time_use_token_index_batch_task_run/migration.sql @@ -0,0 +1,8 @@ +/* + Warnings: + + - A unique constraint covering the columns `[oneTimeUseToken]` on the table `BatchTaskRun` will be added. If there are existing duplicate values, this will fail. + + */ +-- CreateIndex +CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS "BatchTaskRun_oneTimeUseToken_key" ON "BatchTaskRun"("oneTimeUseToken"); \ No newline at end of file diff --git a/internal-packages/database/prisma/schema.prisma b/internal-packages/database/prisma/schema.prisma index dee8253c13..c4f2d87e1e 100644 --- a/internal-packages/database/prisma/schema.prisma +++ b/internal-packages/database/prisma/schema.prisma @@ -1723,7 +1723,6 @@ model TaskRun { maxAttempts Int? /// optional token that can be used to authenticate the task run - /// TODO: add a unique constraint on the token oneTimeUseToken String? batchItems BatchTaskRunItem[] @@ -1791,8 +1790,7 @@ model TaskRun { maxDurationInSeconds Int? - // TODO: uncomment this - // @@unique([oneTimeUseToken]) + @@unique([oneTimeUseToken]) @@unique([runtimeEnvironmentId, taskIdentifier, idempotencyKey]) // Finding child runs @@index([parentTaskRunId]) @@ -2168,7 +2166,6 @@ model BatchTaskRun { batchVersion String @default("v1") /// optional token that can be used to authenticate the task run - /// TODO: add a unique constraint on the token oneTimeUseToken String? ///all the below properties are engine v1 only @@ -2180,8 +2177,7 @@ model BatchTaskRun { dependentTaskAttemptId String? runDependencies TaskRunDependency[] @relation("dependentBatchRun") - // TODO: uncomment this - // @@unique([oneTimeUseToken]) + @@unique([oneTimeUseToken]) ///this is used for all engine versions @@unique([runtimeEnvironmentId, idempotencyKey]) } diff --git a/references/nextjs-realtime/src/app/page.tsx b/references/nextjs-realtime/src/app/page.tsx index 0088e55962..4d25c15845 100644 --- a/references/nextjs-realtime/src/app/page.tsx +++ b/references/nextjs-realtime/src/app/page.tsx @@ -6,23 +6,7 @@ import { ImageUploadDropzone } from "@/components/ImageUploadButton"; import { auth } from "@trigger.dev/sdk/v3"; export default async function Home() { - const publicAccessToken = await auth.createPublicToken({ - scopes: { - write: { - tasks: ["openai-streaming"], - }, - }, - }); - - const readAll = await auth.createPublicToken({ - scopes: { - read: { - runs: true, - }, - }, - }); - - console.log({ publicAccessToken, readAll }); + const publicAccessToken = await auth.createTriggerPublicToken("openai-streaming"); return (