Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into checkpoint-cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
nicktrn committed Sep 27, 2024
2 parents 6ecf4ac + f154fcc commit 9437c7e
Show file tree
Hide file tree
Showing 4 changed files with 201 additions and 57 deletions.
8 changes: 4 additions & 4 deletions docs/guides/examples/ffmpeg-video-processing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ export const ffmpegCompressVideo = task({
});
```

### Testing
### Testing your task

To test this task, use this payload structure:

Expand Down Expand Up @@ -241,7 +241,7 @@ export const ffmpegExtractAudio = task({
});
```

### Testing
### Testing your task

To test this task, use this payload structure:

Expand Down Expand Up @@ -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:

Expand All @@ -361,4 +361,4 @@ To test this task in the dashboard, you can use the following payload:
}
```

<LocalDevelopment packages={"ffmpeg"} />
<LocalDevelopment packages={"ffmpeg"} />
2 changes: 1 addition & 1 deletion docs/guides/examples/supabase-database-operations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ export const supabaseUpdateUserSubscription = task({
sure you have the correct permissions set up for your project.
</Note>

## 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:

Expand Down
182 changes: 182 additions & 0 deletions docs/guides/frameworks/prisma.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
---
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

<Steps>
<CliInitStep />
<CliDevStep />
<CliRunTestStep />
<CliViewRunStep />
</Steps>

## Creating a task using Prisma and deploying it to production

<Steps>
<Step title="Writing the Prisma task">

First, create a new task file in your `trigger` folder.

This is a simple task that will add a new user to the database.

<Note>
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.
</Note>

```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}`,
};
},
});
```

</Step>
<Step title="Configuring the build extension">

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: "<project ref>", // 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",
}),
],
},
});
```

<Note>
[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.
</Note>

</Step>

<Step title="Optional: adding Prisma instrumentation">

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.

</Step>
<Step title="Deploying your task">
With the build extension and task configured, you can now deploy your task using the Trigger.dev CLI.

<CodeGroup>

```bash npm
npx trigger.dev@latest deploy
```

```bash pnpm
pnpm dlx trigger.dev@latest deploy
```

```bash yarn
yarn dlx trigger.dev@latest deploy
```

</CodeGroup>

</Step>

<Step title="Adding your DATABASE_URL environment variable to Trigger.dev">

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)

</Step>

<Step title="Running your task">

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": "[email protected]",
"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.

</Step>

</Steps>

<UsefulNextSteps />
66 changes: 14 additions & 52 deletions docs/mint.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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",
Expand All @@ -150,9 +132,7 @@
"github-actions",
{
"group": "Deployment integrations",
"pages": [
"vercel-integration"
]
"pages": ["vercel-integration"]
}
]
},
Expand All @@ -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",
Expand All @@ -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",
Expand Down Expand Up @@ -231,9 +202,7 @@
},
{
"group": "Projects API",
"pages": [
"management/projects/runs"
]
"pages": ["management/projects/runs"]
}
]
},
Expand Down Expand Up @@ -279,11 +248,7 @@
},
{
"group": "Help",
"pages": [
"community",
"help-slack",
"help-email"
]
"pages": ["community", "help-slack", "help-email"]
},
{
"group": "Frameworks",
Expand All @@ -292,6 +257,7 @@
"guides/frameworks/bun",
"guides/frameworks/nextjs",
"guides/frameworks/nodejs",
"guides/frameworks/prisma",
"guides/frameworks/remix",
{
"group": "Supabase",
Expand Down Expand Up @@ -325,20 +291,16 @@
},
{
"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": {
"twitter": "https://twitter.com/triggerdotdev",
"github": "https://github.com/triggerdotdev",
"linkedin": "https://www.linkedin.com/company/triggerdotdev"
}
}
}

0 comments on commit 9437c7e

Please sign in to comment.