trigger.dev 4.0.0-v4-beta.1 → 4.0.0-v4-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/dev/devSupervisor.js +14 -10
- package/dist/esm/dev/devSupervisor.js.map +1 -1
- package/dist/esm/entryPoints/dev-run-controller.js +6 -6
- package/dist/esm/entryPoints/dev-run-controller.js.map +1 -1
- package/dist/esm/entryPoints/managed/controller.d.ts +50 -0
- package/dist/esm/entryPoints/managed/controller.js +441 -0
- package/dist/esm/entryPoints/managed/controller.js.map +1 -0
- package/dist/esm/entryPoints/managed/env.d.ts +170 -0
- package/dist/esm/entryPoints/managed/env.js +191 -0
- package/dist/esm/entryPoints/managed/env.js.map +1 -0
- package/dist/esm/entryPoints/managed/execution.d.ts +95 -0
- package/dist/esm/entryPoints/managed/execution.js +661 -0
- package/dist/esm/entryPoints/managed/execution.js.map +1 -0
- package/dist/esm/entryPoints/managed/logger.d.ts +19 -0
- package/dist/esm/entryPoints/managed/logger.js +31 -0
- package/dist/esm/entryPoints/managed/logger.js.map +1 -0
- package/dist/esm/entryPoints/managed/overrides.d.ts +16 -0
- package/dist/esm/entryPoints/managed/overrides.js +17 -0
- package/dist/esm/entryPoints/managed/overrides.js.map +1 -0
- package/dist/esm/entryPoints/managed/poller.d.ts +26 -0
- package/dist/esm/entryPoints/managed/poller.js +94 -0
- package/dist/esm/entryPoints/managed/poller.js.map +1 -0
- package/dist/esm/entryPoints/managed-run-controller.js +9 -1346
- package/dist/esm/entryPoints/managed-run-controller.js.map +1 -1
- package/dist/esm/entryPoints/managed-run-worker.js +17 -13
- package/dist/esm/entryPoints/managed-run-worker.js.map +1 -1
- package/dist/esm/executions/taskRunProcess.d.ts +2 -2
- package/dist/esm/executions/taskRunProcess.js +1 -1
- package/dist/esm/executions/taskRunProcess.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const DateEnv = z
|
|
4
|
+
.string()
|
|
5
|
+
.transform((val) => new Date(parseInt(val, 10)))
|
|
6
|
+
.pipe(z.date());
|
|
7
|
+
// All IDs are friendly IDs
|
|
8
|
+
const Env = z.object({
|
|
9
|
+
// Set at build time
|
|
10
|
+
TRIGGER_CONTENT_HASH: z.string(),
|
|
11
|
+
TRIGGER_DEPLOYMENT_ID: z.string(),
|
|
12
|
+
TRIGGER_DEPLOYMENT_VERSION: z.string(),
|
|
13
|
+
TRIGGER_PROJECT_ID: z.string(),
|
|
14
|
+
TRIGGER_PROJECT_REF: z.string(),
|
|
15
|
+
NODE_ENV: z.string().default("production"),
|
|
16
|
+
NODE_EXTRA_CA_CERTS: z.string().optional(),
|
|
17
|
+
// Set at runtime
|
|
18
|
+
TRIGGER_WORKLOAD_CONTROLLER_ID: z.string().default(`controller_${randomUUID()}`),
|
|
19
|
+
TRIGGER_ENV_ID: z.string(),
|
|
20
|
+
TRIGGER_RUN_ID: z.string().optional(), // This is only useful for cold starts
|
|
21
|
+
TRIGGER_SNAPSHOT_ID: z.string().optional(), // This is only useful for cold starts
|
|
22
|
+
OTEL_EXPORTER_OTLP_ENDPOINT: z.string().url(),
|
|
23
|
+
TRIGGER_WARM_START_URL: z.string().optional(),
|
|
24
|
+
TRIGGER_WARM_START_CONNECTION_TIMEOUT_MS: z.coerce.number().default(30_000),
|
|
25
|
+
TRIGGER_WARM_START_KEEPALIVE_MS: z.coerce.number().default(300_000),
|
|
26
|
+
TRIGGER_MACHINE_CPU: z.string().default("0"),
|
|
27
|
+
TRIGGER_MACHINE_MEMORY: z.string().default("0"),
|
|
28
|
+
TRIGGER_RUNNER_ID: z.string(),
|
|
29
|
+
TRIGGER_METADATA_URL: z.string().optional(),
|
|
30
|
+
TRIGGER_PRE_SUSPEND_WAIT_MS: z.coerce.number().default(200),
|
|
31
|
+
// Timeline metrics
|
|
32
|
+
TRIGGER_POD_SCHEDULED_AT_MS: DateEnv,
|
|
33
|
+
TRIGGER_DEQUEUED_AT_MS: DateEnv,
|
|
34
|
+
// May be overridden
|
|
35
|
+
TRIGGER_SUPERVISOR_API_PROTOCOL: z.enum(["http", "https"]),
|
|
36
|
+
TRIGGER_SUPERVISOR_API_DOMAIN: z.string(),
|
|
37
|
+
TRIGGER_SUPERVISOR_API_PORT: z.coerce.number(),
|
|
38
|
+
TRIGGER_WORKER_INSTANCE_NAME: z.string(),
|
|
39
|
+
TRIGGER_HEARTBEAT_INTERVAL_SECONDS: z.coerce.number().default(20),
|
|
40
|
+
TRIGGER_SNAPSHOT_POLL_INTERVAL_SECONDS: z.coerce.number().default(5),
|
|
41
|
+
TRIGGER_SUCCESS_EXIT_CODE: z.coerce.number().default(0),
|
|
42
|
+
TRIGGER_FAILURE_EXIT_CODE: z.coerce.number().default(1),
|
|
43
|
+
});
|
|
44
|
+
export class RunnerEnv {
|
|
45
|
+
env;
|
|
46
|
+
initial;
|
|
47
|
+
constructor(env) {
|
|
48
|
+
this.env = Env.parse(env);
|
|
49
|
+
this.initial = { ...this.env };
|
|
50
|
+
}
|
|
51
|
+
get raw() {
|
|
52
|
+
return this.env;
|
|
53
|
+
}
|
|
54
|
+
// Base environment variables
|
|
55
|
+
get NODE_ENV() {
|
|
56
|
+
return this.env.NODE_ENV;
|
|
57
|
+
}
|
|
58
|
+
get NODE_EXTRA_CA_CERTS() {
|
|
59
|
+
return this.env.NODE_EXTRA_CA_CERTS;
|
|
60
|
+
}
|
|
61
|
+
get OTEL_EXPORTER_OTLP_ENDPOINT() {
|
|
62
|
+
return this.env.OTEL_EXPORTER_OTLP_ENDPOINT;
|
|
63
|
+
}
|
|
64
|
+
get TRIGGER_CONTENT_HASH() {
|
|
65
|
+
return this.env.TRIGGER_CONTENT_HASH;
|
|
66
|
+
}
|
|
67
|
+
get TRIGGER_DEPLOYMENT_ID() {
|
|
68
|
+
return this.env.TRIGGER_DEPLOYMENT_ID;
|
|
69
|
+
}
|
|
70
|
+
get TRIGGER_DEPLOYMENT_VERSION() {
|
|
71
|
+
return this.env.TRIGGER_DEPLOYMENT_VERSION;
|
|
72
|
+
}
|
|
73
|
+
get TRIGGER_PROJECT_ID() {
|
|
74
|
+
return this.env.TRIGGER_PROJECT_ID;
|
|
75
|
+
}
|
|
76
|
+
get TRIGGER_PROJECT_REF() {
|
|
77
|
+
return this.env.TRIGGER_PROJECT_REF;
|
|
78
|
+
}
|
|
79
|
+
get TRIGGER_WORKLOAD_CONTROLLER_ID() {
|
|
80
|
+
return this.env.TRIGGER_WORKLOAD_CONTROLLER_ID;
|
|
81
|
+
}
|
|
82
|
+
get TRIGGER_ENV_ID() {
|
|
83
|
+
return this.env.TRIGGER_ENV_ID;
|
|
84
|
+
}
|
|
85
|
+
get TRIGGER_RUN_ID() {
|
|
86
|
+
return this.env.TRIGGER_RUN_ID;
|
|
87
|
+
}
|
|
88
|
+
get TRIGGER_SNAPSHOT_ID() {
|
|
89
|
+
return this.env.TRIGGER_SNAPSHOT_ID;
|
|
90
|
+
}
|
|
91
|
+
get TRIGGER_WARM_START_URL() {
|
|
92
|
+
return this.env.TRIGGER_WARM_START_URL;
|
|
93
|
+
}
|
|
94
|
+
get TRIGGER_WARM_START_CONNECTION_TIMEOUT_MS() {
|
|
95
|
+
return this.env.TRIGGER_WARM_START_CONNECTION_TIMEOUT_MS;
|
|
96
|
+
}
|
|
97
|
+
get TRIGGER_WARM_START_KEEPALIVE_MS() {
|
|
98
|
+
return this.env.TRIGGER_WARM_START_KEEPALIVE_MS;
|
|
99
|
+
}
|
|
100
|
+
get TRIGGER_MACHINE_CPU() {
|
|
101
|
+
return this.env.TRIGGER_MACHINE_CPU;
|
|
102
|
+
}
|
|
103
|
+
get TRIGGER_MACHINE_MEMORY() {
|
|
104
|
+
return this.env.TRIGGER_MACHINE_MEMORY;
|
|
105
|
+
}
|
|
106
|
+
get TRIGGER_METADATA_URL() {
|
|
107
|
+
return this.env.TRIGGER_METADATA_URL;
|
|
108
|
+
}
|
|
109
|
+
get TRIGGER_PRE_SUSPEND_WAIT_MS() {
|
|
110
|
+
return this.env.TRIGGER_PRE_SUSPEND_WAIT_MS;
|
|
111
|
+
}
|
|
112
|
+
get TRIGGER_POD_SCHEDULED_AT_MS() {
|
|
113
|
+
return this.env.TRIGGER_POD_SCHEDULED_AT_MS;
|
|
114
|
+
}
|
|
115
|
+
get TRIGGER_DEQUEUED_AT_MS() {
|
|
116
|
+
return this.env.TRIGGER_DEQUEUED_AT_MS;
|
|
117
|
+
}
|
|
118
|
+
// Overridable values
|
|
119
|
+
get TRIGGER_SUCCESS_EXIT_CODE() {
|
|
120
|
+
return this.env.TRIGGER_SUCCESS_EXIT_CODE;
|
|
121
|
+
}
|
|
122
|
+
get TRIGGER_FAILURE_EXIT_CODE() {
|
|
123
|
+
return this.env.TRIGGER_FAILURE_EXIT_CODE;
|
|
124
|
+
}
|
|
125
|
+
get TRIGGER_HEARTBEAT_INTERVAL_SECONDS() {
|
|
126
|
+
return this.env.TRIGGER_HEARTBEAT_INTERVAL_SECONDS;
|
|
127
|
+
}
|
|
128
|
+
get TRIGGER_SNAPSHOT_POLL_INTERVAL_SECONDS() {
|
|
129
|
+
return this.env.TRIGGER_SNAPSHOT_POLL_INTERVAL_SECONDS;
|
|
130
|
+
}
|
|
131
|
+
get TRIGGER_WORKER_INSTANCE_NAME() {
|
|
132
|
+
return this.env.TRIGGER_WORKER_INSTANCE_NAME;
|
|
133
|
+
}
|
|
134
|
+
get TRIGGER_RUNNER_ID() {
|
|
135
|
+
return this.env.TRIGGER_RUNNER_ID;
|
|
136
|
+
}
|
|
137
|
+
get TRIGGER_SUPERVISOR_API_PROTOCOL() {
|
|
138
|
+
return this.env.TRIGGER_SUPERVISOR_API_PROTOCOL;
|
|
139
|
+
}
|
|
140
|
+
get TRIGGER_SUPERVISOR_API_DOMAIN() {
|
|
141
|
+
return this.env.TRIGGER_SUPERVISOR_API_DOMAIN;
|
|
142
|
+
}
|
|
143
|
+
get TRIGGER_SUPERVISOR_API_PORT() {
|
|
144
|
+
return this.env.TRIGGER_SUPERVISOR_API_PORT;
|
|
145
|
+
}
|
|
146
|
+
get TRIGGER_SUPERVISOR_API_URL() {
|
|
147
|
+
return `${this.TRIGGER_SUPERVISOR_API_PROTOCOL}://${this.TRIGGER_SUPERVISOR_API_DOMAIN}:${this.TRIGGER_SUPERVISOR_API_PORT}`;
|
|
148
|
+
}
|
|
149
|
+
/** Overrides existing env vars with new values */
|
|
150
|
+
override(overrides) {
|
|
151
|
+
if (overrides.TRIGGER_SUCCESS_EXIT_CODE) {
|
|
152
|
+
this.env.TRIGGER_SUCCESS_EXIT_CODE = overrides.TRIGGER_SUCCESS_EXIT_CODE;
|
|
153
|
+
}
|
|
154
|
+
if (overrides.TRIGGER_FAILURE_EXIT_CODE) {
|
|
155
|
+
this.env.TRIGGER_FAILURE_EXIT_CODE = overrides.TRIGGER_FAILURE_EXIT_CODE;
|
|
156
|
+
}
|
|
157
|
+
if (overrides.TRIGGER_HEARTBEAT_INTERVAL_SECONDS) {
|
|
158
|
+
this.env.TRIGGER_HEARTBEAT_INTERVAL_SECONDS = overrides.TRIGGER_HEARTBEAT_INTERVAL_SECONDS;
|
|
159
|
+
}
|
|
160
|
+
if (overrides.TRIGGER_SNAPSHOT_POLL_INTERVAL_SECONDS) {
|
|
161
|
+
this.env.TRIGGER_SNAPSHOT_POLL_INTERVAL_SECONDS =
|
|
162
|
+
overrides.TRIGGER_SNAPSHOT_POLL_INTERVAL_SECONDS;
|
|
163
|
+
}
|
|
164
|
+
if (overrides.TRIGGER_WORKER_INSTANCE_NAME) {
|
|
165
|
+
this.env.TRIGGER_WORKER_INSTANCE_NAME = overrides.TRIGGER_WORKER_INSTANCE_NAME;
|
|
166
|
+
}
|
|
167
|
+
if (overrides.TRIGGER_SUPERVISOR_API_PROTOCOL) {
|
|
168
|
+
this.env.TRIGGER_SUPERVISOR_API_PROTOCOL = overrides.TRIGGER_SUPERVISOR_API_PROTOCOL;
|
|
169
|
+
}
|
|
170
|
+
if (overrides.TRIGGER_SUPERVISOR_API_DOMAIN) {
|
|
171
|
+
this.env.TRIGGER_SUPERVISOR_API_DOMAIN = overrides.TRIGGER_SUPERVISOR_API_DOMAIN;
|
|
172
|
+
}
|
|
173
|
+
if (overrides.TRIGGER_SUPERVISOR_API_PORT) {
|
|
174
|
+
this.env.TRIGGER_SUPERVISOR_API_PORT = overrides.TRIGGER_SUPERVISOR_API_PORT;
|
|
175
|
+
}
|
|
176
|
+
if (overrides.TRIGGER_RUNNER_ID) {
|
|
177
|
+
this.env.TRIGGER_RUNNER_ID = overrides.TRIGGER_RUNNER_ID;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Helper method to get process env for task runs
|
|
181
|
+
gatherProcessEnv() {
|
|
182
|
+
const $env = {
|
|
183
|
+
NODE_ENV: this.NODE_ENV,
|
|
184
|
+
NODE_EXTRA_CA_CERTS: this.NODE_EXTRA_CA_CERTS,
|
|
185
|
+
OTEL_EXPORTER_OTLP_ENDPOINT: this.OTEL_EXPORTER_OTLP_ENDPOINT,
|
|
186
|
+
};
|
|
187
|
+
// Filter out undefined values
|
|
188
|
+
return Object.fromEntries(Object.entries($env).filter(([key, value]) => value !== undefined));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/entryPoints/managed/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type RunExecutionData, WorkerManifest } from "@trigger.dev/core/v3";
|
|
2
|
+
import { RunLogger, SendDebugLogOptions } from "./logger.js";
|
|
3
|
+
import { RunnerEnv } from "./env.js";
|
|
4
|
+
import { WorkloadHttpClient } from "@trigger.dev/core/v3/workers";
|
|
5
|
+
type RunExecutionOptions = {
|
|
6
|
+
workerManifest: WorkerManifest;
|
|
7
|
+
env: RunnerEnv;
|
|
8
|
+
httpClient: WorkloadHttpClient;
|
|
9
|
+
logger: RunLogger;
|
|
10
|
+
};
|
|
11
|
+
type RunExecutionPrepareOptions = {
|
|
12
|
+
taskRunEnv: Record<string, string>;
|
|
13
|
+
};
|
|
14
|
+
type RunExecutionRunOptions = {
|
|
15
|
+
runFriendlyId: string;
|
|
16
|
+
snapshotFriendlyId: string;
|
|
17
|
+
dequeuedAt?: Date;
|
|
18
|
+
podScheduledAt?: Date;
|
|
19
|
+
isWarmStart?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export declare class RunExecution {
|
|
22
|
+
private id;
|
|
23
|
+
private executionAbortController;
|
|
24
|
+
private _runFriendlyId?;
|
|
25
|
+
private currentSnapshotId?;
|
|
26
|
+
private currentTaskRunEnv?;
|
|
27
|
+
private dequeuedAt?;
|
|
28
|
+
private podScheduledAt?;
|
|
29
|
+
private readonly workerManifest;
|
|
30
|
+
private readonly env;
|
|
31
|
+
private readonly httpClient;
|
|
32
|
+
private readonly logger;
|
|
33
|
+
private restoreCount;
|
|
34
|
+
private taskRunProcess?;
|
|
35
|
+
private snapshotPoller?;
|
|
36
|
+
private lastHeartbeat?;
|
|
37
|
+
constructor(opts: RunExecutionOptions);
|
|
38
|
+
/**
|
|
39
|
+
* Prepares the execution with task run environment variables.
|
|
40
|
+
* This should be called before executing, typically after a successful run to prepare for the next one.
|
|
41
|
+
*/
|
|
42
|
+
prepareForExecution(opts: RunExecutionPrepareOptions): this;
|
|
43
|
+
private createTaskRunProcess;
|
|
44
|
+
/**
|
|
45
|
+
* Returns true if the execution has been prepared with task run env.
|
|
46
|
+
*/
|
|
47
|
+
get isPreparedForNextRun(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Called by the RunController when it receives a websocket notification
|
|
50
|
+
* or when the snapshot poller detects a change
|
|
51
|
+
*/
|
|
52
|
+
handleSnapshotChange(runData: RunExecutionData): Promise<void>;
|
|
53
|
+
private snapshotChangeQueue;
|
|
54
|
+
private snapshotChangeQueueLock;
|
|
55
|
+
private processSnapshotChangeQueue;
|
|
56
|
+
private processSnapshotChange;
|
|
57
|
+
private startAttempt;
|
|
58
|
+
/**
|
|
59
|
+
* Executes the run. This will return when the execution is complete and we should warm start.
|
|
60
|
+
* When this returns, the child process will have been cleaned up.
|
|
61
|
+
*/
|
|
62
|
+
execute(runOpts: RunExecutionRunOptions): Promise<void>;
|
|
63
|
+
private executeRunWrapper;
|
|
64
|
+
private executeRun;
|
|
65
|
+
/**
|
|
66
|
+
* Cancels the current execution.
|
|
67
|
+
*/
|
|
68
|
+
cancel(): Promise<void>;
|
|
69
|
+
exit(): void;
|
|
70
|
+
private complete;
|
|
71
|
+
private handleCompletionResult;
|
|
72
|
+
private measureExecutionMetrics;
|
|
73
|
+
private retryImmediately;
|
|
74
|
+
/**
|
|
75
|
+
* Restores a suspended execution from PENDING_EXECUTING
|
|
76
|
+
*/
|
|
77
|
+
private restore;
|
|
78
|
+
/**
|
|
79
|
+
* Processes env overrides from the metadata service. Generally called when we're resuming from a suspended state.
|
|
80
|
+
*/
|
|
81
|
+
private processEnvOverrides;
|
|
82
|
+
private onHeartbeat;
|
|
83
|
+
sendDebugLog(message: string, properties?: SendDebugLogOptions["properties"], runIdOverride?: string): void;
|
|
84
|
+
private set runFriendlyId(value);
|
|
85
|
+
get runFriendlyId(): string | undefined;
|
|
86
|
+
get currentSnapshotFriendlyId(): string | undefined;
|
|
87
|
+
get taskRunEnv(): Record<string, string> | undefined;
|
|
88
|
+
get metrics(): {
|
|
89
|
+
restoreCount: number;
|
|
90
|
+
};
|
|
91
|
+
get isAborted(): boolean;
|
|
92
|
+
private abortExecution;
|
|
93
|
+
private stopServices;
|
|
94
|
+
}
|
|
95
|
+
export {};
|