Back to Trigger

Context

docs/context.mdx

4.4.58.0 KB
Original Source

Context (ctx) is a way to get information about a run.

<Note> The context object does not change whilst your code is executing. This means values like `ctx.run.durationMs` will be fixed at the moment the `run()` function is called. </Note> <RequestExample>
typescript
import { task } from "@trigger.dev/sdk";

export const parentTask = task({
  id: "parent-task",
  run: async (payload: { message: string }, { ctx }) => {
    if (ctx.environment.type === "DEVELOPMENT") {
      return;
    }
  },
});
</RequestExample>

Context properties

<ResponseField name="task" type="object"> <Expandable title="properties" defaultOpen={true}> <ResponseField name="exportName" type="string"> The exported function name of the task e.g. `myTask` if you defined it like this: `export const myTask = task(...)`. </ResponseField> <ResponseField name="id" type="string"> The ID of the task. </ResponseField> <ResponseField name="filePath" type="string"> The file path of the task. </ResponseField> </Expandable> </ResponseField> <ResponseField name="attempt" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the execution attempt. </ResponseField> <ResponseField name="number" type="number"> The attempt number. </ResponseField> <ResponseField name="startedAt" type="date"> The start time of the attempt. </ResponseField> <ResponseField name="backgroundWorkerId" type="string"> The ID of the background worker. </ResponseField> <ResponseField name="backgroundWorkerTaskId" type="string"> The ID of the background worker task. </ResponseField> <ResponseField name="status" type="string"> The current status of the attempt. </ResponseField> </Expandable> </ResponseField> <ResponseField name="run" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the task run. </ResponseField> <ResponseField name="context" type="any" optional> The context of the task run. </ResponseField> <ResponseField name="tags" type="array"> An array of [tags](/tags) associated with the task run. </ResponseField> <ResponseField name="isTest" type="boolean"> Whether this is a [test run](/run-tests). </ResponseField> <ResponseField name="isReplay" type="boolean"> Whether this run is a [replay](/replaying) of a previous run. </ResponseField> <ResponseField name="createdAt" type="date"> The creation time of the task run. </ResponseField> <ResponseField name="startedAt" type="date"> The start time of the task run. </ResponseField> <ResponseField name="idempotencyKey" type="string" optional> An optional [idempotency key](/idempotency) for the task run. </ResponseField> <ResponseField name="maxAttempts" type="number" optional> The [maximum number of attempts](/triggering#maxattempts) allowed for this task run. </ResponseField> <ResponseField name="durationMs" type="number"> The duration of the task run in milliseconds when the `run()` function is called. For live values use the [usage SDK functions](/run-usage). </ResponseField> <ResponseField name="costInCents" type="number"> The cost of the task run in cents when the `run()` function is called. For live values use the [usage SDK functions](/run-usage). </ResponseField> <ResponseField name="baseCostInCents" type="number"> The base cost of the task run in cents when the `run()` function is called. For live values use the [usage SDK functions](/run-usage). </ResponseField> <ResponseField name="version" type="string" optional> The [version](/versioning) of the task run. </ResponseField> <ResponseField name="maxDuration" type="number" optional> The [maximum allowed duration](/runs/max-duration) for the task run. </ResponseField> </Expandable> </ResponseField> <ResponseField name="queue" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the queue. </ResponseField> <ResponseField name="name" type="string"> The name of the queue. </ResponseField> </Expandable> </ResponseField> <ResponseField name="environment" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the environment. </ResponseField> <ResponseField name="slug" type="string"> The slug of the environment. </ResponseField> <ResponseField name="type" type="string"> The type of the environment (PRODUCTION, STAGING, DEVELOPMENT, or PREVIEW). </ResponseField> <ResponseField name="branchName" type="string" optional> If the environment is `PREVIEW` then this will be the branch name. </ResponseField> <ResponseField name="git" type="object"> <Expandable title="properties"> <ResponseField name="commitAuthorName" type="string" optional> The name of the commit author. </ResponseField> <ResponseField name="commitMessage" type="string" optional> The message of the commit. </ResponseField> <ResponseField name="commitRef" type="string" optional> The ref of the commit. </ResponseField> <ResponseField name="commitSha" type="string" optional> The SHA of the commit. </ResponseField> <ResponseField name="dirty" type="boolean" optional> Whether the commit is dirty, i.e. there are uncommitted changes. </ResponseField> <ResponseField name="remoteUrl" type="string" optional> The remote URL of the repository. </ResponseField> <ResponseField name="pullRequestNumber" type="number" optional> The number of the pull request. </ResponseField> <ResponseField name="pullRequestTitle" type="string" optional> The title of the pull request. </ResponseField> <ResponseField name="pullRequestState" type="string" optional> The state of the pull request (open, closed, or merged). </ResponseField> </Expandable> </ResponseField> </Expandable> </ResponseField> <ResponseField name="organization" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the organization. </ResponseField> <ResponseField name="slug" type="string"> The slug of the organization. </ResponseField> <ResponseField name="name" type="string"> The name of the organization. </ResponseField> </Expandable> </ResponseField> <ResponseField name="project" type="object"> <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the project. </ResponseField> <ResponseField name="ref" type="string"> The reference of the project. </ResponseField> <ResponseField name="slug" type="string"> The slug of the project. </ResponseField> <ResponseField name="name" type="string"> The name of the project. </ResponseField> </Expandable> </ResponseField> <ResponseField name="batch" type="object" optional> Optional information about the batch, if applicable. <Expandable title="properties"> <ResponseField name="id" type="string"> The ID of the batch. </ResponseField> </Expandable> </ResponseField> <ResponseField name="machine" type="object" optional> Optional information about the machine preset used for execution. <Expandable title="properties"> <ResponseField name="name" type="string"> The name of the machine preset. </ResponseField> <ResponseField name="cpu" type="number"> The CPU allocation for the machine. </ResponseField> <ResponseField name="memory" type="number"> The memory allocation for the machine. </ResponseField> <ResponseField name="centsPerMs" type="number"> The cost in cents per millisecond for this machine preset. </ResponseField> </Expandable> </ResponseField>