fade22015f
* Adds new features table to top of v4 upgrade guide * Adds wait idempotency to wait-until, wait-for, and wait-for-token pages * Adds new priority docs page and updates the v4 upgrade guide * Adds new task lifecycle hooks * Removes the message about requiring tasks to be exported * Adds new global lifecycle hooks section * Moves sections from upgrade guide into the table * Adds hidden task page * Improves the global lifecycle hooks section * Updates middleware and locals section * Adds new useWaitToken page to the react hooks section * Adds a new ai.tool section * Moves Docker (legacy) page into self-hosting section * Removes known issues from v4 upgrade guide * Replace “toolTask” with “ai.tool” in the Streams page example * Renames guide to “Migrating from v3” and adds redirect * Remove references to v4 * Removes changelog from migration guide * The installation guide now references `@latest update` * Changes all references from `/sdk/v3` to `/sdk` * Updates @v4-beta to @latest * Fixed broken link * Fixes broken link * Adds an upgrade to v4 using AI section * Fixes 2 broken links * Adds an entry for targetting preview branches * Updates the run statuses * Adds boolean helpers section to the runs and realtime pages * Updates the concurrency page * Updates the test page to include the new options * Adds SDK and curl options for the preview branch targeting * Updates new bulk actions page * Remove the releasing concurrency section * Got rid of some more @v4-beta mentions * Improved rate limit docs * Improved migrating docs * Removed commented sections of the docs * useWaitToken hook * Fixed the description * Fix for missing test image --------- Co-authored-by: Matt Aitken <matt@mattaitken.com> Co-authored-by: Dan <8297864+D-K-P@users.noreply.github.com>
117 lines
3.7 KiB
Plaintext
117 lines
3.7 KiB
Plaintext
---
|
|
title: "Sync env vars"
|
|
sidebarTitle: "syncEnvVars"
|
|
description: "Use the syncEnvVars build extension to automatically sync environment variables to Trigger.dev"
|
|
---
|
|
|
|
The `syncEnvVars` build extension will sync env vars from another service into Trigger.dev before the deployment starts. This is useful if you are using a secret store service like Infisical or AWS Secrets Manager to store your secrets.
|
|
|
|
`syncEnvVars` takes an async callback function, and any env vars returned from the callback will be synced to Trigger.dev.
|
|
|
|
```ts
|
|
import { defineConfig } from "@trigger.dev/sdk";
|
|
import { syncEnvVars } from "@trigger.dev/build/extensions/core";
|
|
|
|
export default defineConfig({
|
|
build: {
|
|
extensions: [
|
|
syncEnvVars(async (ctx) => {
|
|
return [
|
|
{ name: "SECRET_KEY", value: "secret-value" },
|
|
{ name: "ANOTHER_SECRET", value: "another-secret-value" },
|
|
];
|
|
}),
|
|
],
|
|
},
|
|
});
|
|
```
|
|
|
|
The callback is passed a context object with the following properties:
|
|
|
|
- `environment`: The environment name that the task is being deployed to (e.g. `production`, `staging`, etc.)
|
|
- `projectRef`: The project ref of the Trigger.dev project
|
|
- `env`: The environment variables that are currently set in the Trigger.dev project
|
|
|
|
### Example: Sync env vars from Infisical
|
|
|
|
In this example we're using env vars from [Infisical](https://infisical.com).
|
|
|
|
```ts trigger.config.ts
|
|
import { defineConfig } from "@trigger.dev/sdk";
|
|
import { syncEnvVars } from "@trigger.dev/build/extensions/core";
|
|
import { InfisicalSDK } from "@infisical/sdk";
|
|
|
|
export default defineConfig({
|
|
build: {
|
|
extensions: [
|
|
syncEnvVars(async (ctx) => {
|
|
const client = new InfisicalSDK();
|
|
|
|
await client.auth().universalAuth.login({
|
|
clientId: process.env.INFISICAL_CLIENT_ID!,
|
|
clientSecret: process.env.INFISICAL_CLIENT_SECRET!,
|
|
});
|
|
|
|
const { secrets } = await client.secrets().listSecrets({
|
|
environment: ctx.environment,
|
|
projectId: process.env.INFISICAL_PROJECT_ID!,
|
|
});
|
|
|
|
return secrets.map((secret) => ({
|
|
name: secret.secretKey,
|
|
value: secret.secretValue,
|
|
}));
|
|
}),
|
|
],
|
|
},
|
|
});
|
|
```
|
|
|
|
### syncVercelEnvVars
|
|
|
|
The `syncVercelEnvVars` build extension syncs environment variables from your Vercel project to Trigger.dev.
|
|
|
|
<Note>
|
|
You need to set the `VERCEL_ACCESS_TOKEN` and `VERCEL_PROJECT_ID` environment variables, or pass
|
|
in the token and project ID as arguments to the `syncVercelEnvVars` build extension. If you're
|
|
working with a team project, you'll also need to set `VERCEL_TEAM_ID`, which can be found in your
|
|
team settings. You can find / generate the `VERCEL_ACCESS_TOKEN` in your Vercel
|
|
[dashboard](https://vercel.com/account/settings/tokens). Make sure the scope of the token covers
|
|
the project with the environment variables you want to sync.
|
|
</Note>
|
|
|
|
```ts
|
|
import { defineConfig } from "@trigger.dev/sdk";
|
|
import { syncVercelEnvVars } from "@trigger.dev/build/extensions/core";
|
|
|
|
export default defineConfig({
|
|
project: "<project ref>",
|
|
// Your other config settings...
|
|
build: {
|
|
// This will automatically use the VERCEL_ACCESS_TOKEN and VERCEL_PROJECT_ID environment variables
|
|
extensions: [syncVercelEnvVars()],
|
|
},
|
|
});
|
|
```
|
|
|
|
Or you can pass in the token and project ID as arguments:
|
|
|
|
```ts
|
|
import { defineConfig } from "@trigger.dev/sdk";
|
|
import { syncVercelEnvVars } from "@trigger.dev/build/extensions/core";
|
|
|
|
export default defineConfig({
|
|
project: "<project ref>",
|
|
// Your other config settings...
|
|
build: {
|
|
extensions: [
|
|
syncVercelEnvVars({
|
|
projectId: "your-vercel-project-id",
|
|
vercelAccessToken: "your-vercel-access-token",
|
|
vercelTeamId: "your-vercel-team-id", // optional
|
|
}),
|
|
],
|
|
},
|
|
});
|
|
```
|