From 88b13b0d80d237721a2424136a01a3c78b0096dd Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:20:57 +0100 Subject: [PATCH 1/5] fix header --- docs/guides/examples/supabase-database-operations.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/examples/supabase-database-operations.mdx b/docs/guides/examples/supabase-database-operations.mdx index d5454475ac..4effb54d32 100644 --- a/docs/guides/examples/supabase-database-operations.mdx +++ b/docs/guides/examples/supabase-database-operations.mdx @@ -181,7 +181,7 @@ export const supabaseUpdateUserSubscription = task({ sure you have the correct permissions set up for your project. -## Testing your task +### Testing your task To test this task in the [Trigger.dev dashboard](https://cloud.trigger.dev), you can use the following payload: From 9e5348cae0f13a6a65c7e23087427c3a1f67bc31 Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:19:13 +0100 Subject: [PATCH 2/5] Prisma first pass --- docs/guides/frameworks/prisma.mdx | 163 ++++++++++++++++++++++++++++++ docs/mint.json | 66 +++--------- 2 files changed, 177 insertions(+), 52 deletions(-) create mode 100644 docs/guides/frameworks/prisma.mdx diff --git a/docs/guides/frameworks/prisma.mdx b/docs/guides/frameworks/prisma.mdx new file mode 100644 index 0000000000..bd0630fbef --- /dev/null +++ b/docs/guides/frameworks/prisma.mdx @@ -0,0 +1,163 @@ +--- +title: "Prisma setup guide" +sidebarTitle: "Prisma" +description: "This guide will show you how to setup Prisma with Trigger.dev" +icon: "Triangle" +--- + +import Prerequisites from "/snippets/framework-prerequisites.mdx"; +import CliInitStep from "/snippets/step-cli-init.mdx"; +import CliDevStep from "/snippets/step-cli-dev.mdx"; +import CliRunTestStep from "/snippets/step-run-test.mdx"; +import CliViewRunStep from "/snippets/step-view-run.mdx"; +import UsefulNextSteps from "/snippets/useful-next-steps.mdx"; + +## Overview + +This guide will show you how to set up Prisma with Trigger.dev, test and view an example task run. + +## Prerequisites + +- An existing Node.js project with a `package.json` file +- Ensure TypeScript is installed +- a [PostgreSQL](https://www.postgresql.org/) database server running locally, or accessible via a connection string +- Prisma ORM [installed and initialized](https://www.prisma.io/docs/getting-started/quickstart) in your project +- A `DATABASE_URL` environment variable set in your `.env` file, pointing to your PostgreSQL database (e.g. `postgresql://user:password@localhost:5432/dbname`) + +## Initial setup + + + + + + + + +## Creating a task using Prisma and deploying it to production using Trigger.dev + + + + +First, create a new task file in your `trigger` folder. + +This is a simple task that will add a new user to the database. + + + For this task to work correctly, you will need to have a `user` model in your Prisma schema with + an `id` field, a `name` field, and an `email` field. + + +```ts /trigger/prisma-add-new-user.ts +import { PrismaClient } from "@prisma/client"; +import { task } from "@trigger.dev/sdk/v3"; + +// Initialize Prisma client +const prisma = new PrismaClient(); + +export const addNewUser = task({ + id: "prisma-add-new-user", + run: async (payload: { name: string; email: string; id: number }) => { + const { name, email, id } = payload; + + // This will create a new user in the database + const user = await prisma.user.create({ + data: { + name: name, + email: email, + id: id, + }, + }); + + return { + message: `New user added successfully: ${user.id}`, + }; + }, +}); +``` + + + + +Next, configure the Prisma [build extension](https://trigger.dev/docs/config/extensions/overview) in the `trigger.config.js` file to include the Prisma client in the build. + +This will ensure that the Prisma client is available when the task runs. + +For a full list of options available in the Prisma build extension, see the [Prisma build extension documentation](https://trigger.dev/docs/config/config-file#prisma). + +```js /trigger.config.js +export default defineConfig({ + project: "", // Your project reference + // Your other config settings... + build: { + extensions: [ + prismaExtension({ + version: "5.20.0", // optional, we'll automatically detect the version if not provided + // update this to the path of your Prisma schema file + schema: "prisma/schema.prisma", + }), + ], + }, +}); +``` + + + [Build extensions](/config/config-file#extensions) allow you to hook into the build system and + customize the build process or the resulting bundle and container image (in the case of + deploying). You can use pre-built extensions or create your own. + + + + +With the build extension and task configured, you can now deploy your task using the Trigger.dev CLI. + + + + ```bash npm + npx trigger.dev@latest deploy + ``` + + ```bash pnpm + pnpm dlx trigger.dev@latest deploy + ``` + + ```bash yarn + yarn dlx trigger.dev@latest deploy + ``` + + + + + + + + Add your `DATABASE_URL` environment variable to Trigger.dev by following these steps: + +In the sidebar select the "Environment Variables" page, then press the "New environment variable" +button. ![Environment variables page](/images/environment-variables-page.jpg) + +You can add values for your local dev environment, staging and prod. in this case we will add the `DATABASE_URL` for the production environment. + +![Environment variables + page](/images/environment-variables-panel.jpg) + + + + + + To test this task, go to the 'test' page in the Trigger.dev dashboard and run the task with the following payload: + +```json +{ + "name": "John Doe", + "email": "john@doe.test", + "id": 12345 +} +``` + +Congratulations! You should now see a new completed run, and a new user with the credentials you provided should be added to your database. + + + + + + diff --git a/docs/mint.json b/docs/mint.json index ef634c043d..2da3baa93d 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -1,10 +1,7 @@ { "$schema": "https://mintlify.com/schema.json", "name": "Trigger.dev", - "openapi": [ - "/openapi.yml", - "/v3-openapi.yaml" - ], + "openapi": ["/openapi.yml", "/v3-openapi.yaml"], "api": { "playground": { "mode": "simple" @@ -106,41 +103,26 @@ "navigation": [ { "group": "Getting Started", - "pages": [ - "introduction", - "quick-start", - "how-it-works", - "upgrading-beta", - "limits" - ] + "pages": ["introduction", "quick-start", "how-it-works", "upgrading-beta", "limits"] }, { "group": "Fundamentals", "pages": [ { "group": "Tasks", - "pages": [ - "tasks/overview", - "tasks/scheduled" - ] + "pages": ["tasks/overview", "tasks/scheduled"] }, "triggering", "apikeys", { "group": "Configuration", - "pages": [ - "config/config-file", - "config/extensions/overview" - ] + "pages": ["config/config-file", "config/extensions/overview"] } ] }, { "group": "Development", - "pages": [ - "cli-dev", - "run-tests" - ] + "pages": ["cli-dev", "run-tests"] }, { "group": "Deployment", @@ -150,9 +132,7 @@ "github-actions", { "group": "Deployment integrations", - "pages": [ - "vercel-integration" - ] + "pages": ["vercel-integration"] } ] }, @@ -164,13 +144,7 @@ "errors-retrying", { "group": "Wait", - "pages": [ - "wait", - "wait-for", - "wait-until", - "wait-for-event", - "wait-for-request" - ] + "pages": ["wait", "wait-for", "wait-until", "wait-for-event", "wait-for-request"] }, "queue-concurrency", "versioning", @@ -189,10 +163,7 @@ "management/overview", { "group": "Tasks API", - "pages": [ - "management/tasks/trigger", - "management/tasks/batch-trigger" - ] + "pages": ["management/tasks/trigger", "management/tasks/batch-trigger"] }, { "group": "Runs API", @@ -231,9 +202,7 @@ }, { "group": "Projects API", - "pages": [ - "management/projects/runs" - ] + "pages": ["management/projects/runs"] } ] }, @@ -279,11 +248,7 @@ }, { "group": "Help", - "pages": [ - "community", - "help-slack", - "help-email" - ] + "pages": ["community", "help-slack", "help-email"] }, { "group": "Frameworks", @@ -292,6 +257,7 @@ "guides/frameworks/bun", "guides/frameworks/nextjs", "guides/frameworks/nodejs", + "guides/frameworks/prisma", "guides/frameworks/remix", { "group": "Supabase", @@ -325,15 +291,11 @@ }, { "group": "Dashboard", - "pages": [ - "guides/dashboard/creating-a-project" - ] + "pages": ["guides/dashboard/creating-a-project"] }, { "group": "Migrations", - "pages": [ - "guides/use-cases/upgrading-from-v2" - ] + "pages": ["guides/use-cases/upgrading-from-v2"] } ], "footerSocials": { @@ -341,4 +303,4 @@ "github": "https://github.com/triggerdotdev", "linkedin": "https://www.linkedin.com/company/triggerdotdev" } -} \ No newline at end of file +} From 6a4ed3577ae72d9848081363bce11f7a94530932 Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:28:19 +0100 Subject: [PATCH 3/5] Copy updates --- docs/guides/frameworks/prisma.mdx | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/docs/guides/frameworks/prisma.mdx b/docs/guides/frameworks/prisma.mdx index bd0630fbef..515a5006e7 100644 --- a/docs/guides/frameworks/prisma.mdx +++ b/docs/guides/frameworks/prisma.mdx @@ -33,7 +33,7 @@ This guide will show you how to set up Prisma with Trigger.dev, test and view an -## Creating a task using Prisma and deploying it to production using Trigger.dev +## Creating a task using Prisma and deploying it to production @@ -106,6 +106,27 @@ export default defineConfig({ deploying). You can use pre-built extensions or create your own. + + + + +We use OpenTelemetry to [instrument](https://trigger.dev/docs/config/config-file#instrumentations) our tasks and collect telemetry data. + +If you want to automatically log all Prisma queries and mutations, you can use the Prisma instrumentation extension. + +```js /trigger.config.js +import { defineConfig } from "@trigger.dev/sdk/v3"; +import { PrismaInstrumentation } from "@prisma/instrumentation"; +import { OpenAIInstrumentation } from "@traceloop/instrumentation-openai"; + +export default defineConfig({ + //..other stuff + instrumentations: [new PrismaInstrumentation(), new OpenAIInstrumentation()], +}); +``` + +This provides much more detailed information about your tasks with minimal effort. + With the build extension and task configured, you can now deploy your task using the Trigger.dev CLI. @@ -128,9 +149,7 @@ With the build extension and task configured, you can now deploy your task using - - - Add your `DATABASE_URL` environment variable to Trigger.dev by following these steps: + In the sidebar select the "Environment Variables" page, then press the "New environment variable" button. ![Environment variables page](/images/environment-variables-page.jpg) @@ -160,4 +179,6 @@ Congratulations! You should now see a new completed run, and a new user with the +## Troubleshooting + From 30e21424fc68c9977415348df690cb207c89ef73 Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:19:14 +0100 Subject: [PATCH 4/5] Formatting --- docs/guides/examples/ffmpeg-video-processing.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/examples/ffmpeg-video-processing.mdx b/docs/guides/examples/ffmpeg-video-processing.mdx index 2aa4de4c17..39687e3ab5 100644 --- a/docs/guides/examples/ffmpeg-video-processing.mdx +++ b/docs/guides/examples/ffmpeg-video-processing.mdx @@ -132,7 +132,7 @@ export const ffmpegCompressVideo = task({ }); ``` -### Testing +### Testing your task To test this task, use this payload structure: @@ -241,7 +241,7 @@ export const ffmpegExtractAudio = task({ }); ``` -### Testing +### Testing your task To test this task, use this payload structure: @@ -351,7 +351,7 @@ export const ffmpegGenerateThumbnail = task({ }); ``` -## Testing your task +### Testing your task To test this task in the dashboard, you can use the following payload: @@ -361,4 +361,4 @@ To test this task in the dashboard, you can use the following payload: } ``` - \ No newline at end of file + From 3fa88022b0329ca6c6715a86dbd7ed6c1596b335 Mon Sep 17 00:00:00 2001 From: D-K-P <8297864+D-K-P@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:47:33 +0100 Subject: [PATCH 5/5] Typo --- docs/guides/frameworks/prisma.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/guides/frameworks/prisma.mdx b/docs/guides/frameworks/prisma.mdx index 515a5006e7..fbe495b3d5 100644 --- a/docs/guides/frameworks/prisma.mdx +++ b/docs/guides/frameworks/prisma.mdx @@ -20,7 +20,7 @@ This guide will show you how to set up Prisma with Trigger.dev, test and view an - An existing Node.js project with a `package.json` file - Ensure TypeScript is installed -- a [PostgreSQL](https://www.postgresql.org/) database server running locally, or accessible via a connection string +- A [PostgreSQL](https://www.postgresql.org/) database server running locally, or accessible via a connection string - Prisma ORM [installed and initialized](https://www.prisma.io/docs/getting-started/quickstart) in your project - A `DATABASE_URL` environment variable set in your `.env` file, pointing to your PostgreSQL database (e.g. `postgresql://user:password@localhost:5432/dbname`) @@ -179,6 +179,4 @@ Congratulations! You should now see a new completed run, and a new user with the -## Troubleshooting -