duron 0.2.2 → 0.3.0-beta.0

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.
Files changed (77) hide show
  1. package/dist/action-job.d.ts +2 -0
  2. package/dist/action-job.d.ts.map +1 -1
  3. package/dist/action-job.js +20 -1
  4. package/dist/action-manager.d.ts +2 -0
  5. package/dist/action-manager.d.ts.map +1 -1
  6. package/dist/action-manager.js +3 -0
  7. package/dist/action.d.ts +7 -0
  8. package/dist/action.d.ts.map +1 -1
  9. package/dist/action.js +1 -0
  10. package/dist/adapters/adapter.d.ts +10 -2
  11. package/dist/adapters/adapter.d.ts.map +1 -1
  12. package/dist/adapters/adapter.js +59 -1
  13. package/dist/adapters/postgres/base.d.ts +9 -4
  14. package/dist/adapters/postgres/base.d.ts.map +1 -1
  15. package/dist/adapters/postgres/base.js +269 -19
  16. package/dist/adapters/postgres/schema.d.ts +249 -105
  17. package/dist/adapters/postgres/schema.d.ts.map +1 -1
  18. package/dist/adapters/postgres/schema.default.d.ts +249 -106
  19. package/dist/adapters/postgres/schema.default.d.ts.map +1 -1
  20. package/dist/adapters/postgres/schema.default.js +2 -2
  21. package/dist/adapters/postgres/schema.js +29 -1
  22. package/dist/adapters/schemas.d.ts +140 -7
  23. package/dist/adapters/schemas.d.ts.map +1 -1
  24. package/dist/adapters/schemas.js +52 -4
  25. package/dist/client.d.ts +8 -1
  26. package/dist/client.d.ts.map +1 -1
  27. package/dist/client.js +28 -0
  28. package/dist/errors.d.ts +6 -0
  29. package/dist/errors.d.ts.map +1 -1
  30. package/dist/errors.js +16 -1
  31. package/dist/index.d.ts +3 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +3 -1
  34. package/dist/server.d.ts +220 -16
  35. package/dist/server.d.ts.map +1 -1
  36. package/dist/server.js +123 -8
  37. package/dist/step-manager.d.ts +8 -2
  38. package/dist/step-manager.d.ts.map +1 -1
  39. package/dist/step-manager.js +138 -15
  40. package/dist/telemetry/adapter.d.ts +85 -0
  41. package/dist/telemetry/adapter.d.ts.map +1 -0
  42. package/dist/telemetry/adapter.js +128 -0
  43. package/dist/telemetry/index.d.ts +5 -0
  44. package/dist/telemetry/index.d.ts.map +1 -0
  45. package/dist/telemetry/index.js +4 -0
  46. package/dist/telemetry/local.d.ts +21 -0
  47. package/dist/telemetry/local.d.ts.map +1 -0
  48. package/dist/telemetry/local.js +180 -0
  49. package/dist/telemetry/noop.d.ts +16 -0
  50. package/dist/telemetry/noop.d.ts.map +1 -0
  51. package/dist/telemetry/noop.js +39 -0
  52. package/dist/telemetry/opentelemetry.d.ts +24 -0
  53. package/dist/telemetry/opentelemetry.d.ts.map +1 -0
  54. package/dist/telemetry/opentelemetry.js +202 -0
  55. package/migrations/postgres/20260117231749_clumsy_penance/migration.sql +3 -0
  56. package/migrations/postgres/20260117231749_clumsy_penance/snapshot.json +988 -0
  57. package/migrations/postgres/20260118202533_wealthy_mysterio/migration.sql +24 -0
  58. package/migrations/postgres/20260118202533_wealthy_mysterio/snapshot.json +1362 -0
  59. package/package.json +6 -4
  60. package/src/action-job.ts +35 -0
  61. package/src/action-manager.ts +5 -0
  62. package/src/action.ts +56 -0
  63. package/src/adapters/adapter.ts +151 -0
  64. package/src/adapters/postgres/base.ts +342 -23
  65. package/src/adapters/postgres/schema.default.ts +2 -2
  66. package/src/adapters/postgres/schema.ts +49 -1
  67. package/src/adapters/schemas.ts +81 -5
  68. package/src/client.ts +78 -0
  69. package/src/errors.ts +45 -1
  70. package/src/index.ts +3 -1
  71. package/src/server.ts +163 -8
  72. package/src/step-manager.ts +232 -13
  73. package/src/telemetry/adapter.ts +468 -0
  74. package/src/telemetry/index.ts +17 -0
  75. package/src/telemetry/local.ts +336 -0
  76. package/src/telemetry/noop.ts +95 -0
  77. package/src/telemetry/opentelemetry.ts +310 -0
package/dist/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Elysia } from 'elysia';
2
2
  import { z } from 'zod';
3
- import { JobSortFieldSchema, SortOrderSchema } from './adapters/schemas.js';
3
+ import { JobSortFieldSchema, MetricSortFieldSchema, SortOrderSchema } from './adapters/schemas.js';
4
4
  import type { Client } from './client.js';
5
5
  export declare class NotFoundError extends Error {
6
6
  constructor(message: string);
@@ -9,24 +9,17 @@ export declare class UnauthorizedError extends Error {
9
9
  constructor(message: string);
10
10
  }
11
11
  export declare const GetJobStepsQuerySchema: z.ZodPipe<z.ZodObject<{
12
- page: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
13
- pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
14
12
  search: z.ZodOptional<z.ZodString>;
15
13
  fUpdatedAfter: z.ZodOptional<z.ZodCoercedDate<unknown>>;
16
14
  }, z.core.$strip>, z.ZodTransform<{
17
- page: number | undefined;
18
- pageSize: number | undefined;
19
15
  search: string | undefined;
20
16
  updatedAfter: Date | undefined;
21
17
  }, {
22
- page?: number | undefined;
23
- pageSize?: number | undefined;
24
18
  search?: string | undefined;
25
19
  fUpdatedAfter?: Date | undefined;
26
20
  }>>;
27
21
  export declare const GetJobStepsResponseSchema: z.ZodObject<{
28
22
  steps: z.ZodArray<z.ZodObject<{
29
- error: z.ZodDefault<z.ZodNullable<z.ZodAny>>;
30
23
  name: z.ZodString;
31
24
  status: z.ZodEnum<{
32
25
  active: "active";
@@ -37,11 +30,14 @@ export declare const GetJobStepsResponseSchema: z.ZodObject<{
37
30
  createdAt: z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<Date, number>>]>;
38
31
  updatedAt: z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<Date, number>>]>;
39
32
  id: z.ZodString;
33
+ error: z.ZodDefault<z.ZodNullable<z.ZodAny>>;
40
34
  timeoutMs: z.ZodCoercedNumber<unknown>;
41
35
  expiresAt: z.ZodDefault<z.ZodNullable<z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<Date, number>>]>>>;
42
36
  startedAt: z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<Date, number>>]>;
43
37
  finishedAt: z.ZodDefault<z.ZodNullable<z.ZodUnion<readonly [z.ZodDate, z.ZodPipe<z.ZodString, z.ZodTransform<Date, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<Date, number>>]>>>;
44
38
  jobId: z.ZodString;
39
+ parentStepId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
40
+ parallel: z.ZodDefault<z.ZodBoolean>;
45
41
  retriesLimit: z.ZodCoercedNumber<unknown>;
46
42
  retriesCount: z.ZodCoercedNumber<unknown>;
47
43
  delayedMs: z.ZodDefault<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
@@ -57,8 +53,6 @@ export declare const GetJobStepsResponseSchema: z.ZodObject<{
57
53
  }, z.core.$strip>>;
58
54
  }, z.core.$strip>>;
59
55
  total: z.ZodNumber;
60
- page: z.ZodNumber;
61
- pageSize: z.ZodNumber;
62
56
  }, z.core.$strip>;
63
57
  export declare const GetJobsQuerySchema: z.ZodPipe<z.ZodObject<{
64
58
  page: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
@@ -155,6 +149,34 @@ export declare const GetActionsMetadataResponseSchema: z.ZodArray<z.ZodObject<{
155
149
  }, z.core.$strip>>;
156
150
  export type GetJobsQueryInput = z.input<typeof GetJobsQuerySchema>;
157
151
  export type GetJobStepsQueryInput = z.input<typeof GetJobStepsQuerySchema>;
152
+ export declare const GetMetricsQuerySchema: z.ZodPipe<z.ZodObject<{
153
+ fName: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
154
+ fType: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
155
+ metric: "metric";
156
+ span_event: "span_event";
157
+ span_attribute: "span_attribute";
158
+ }>, z.ZodArray<z.ZodEnum<{
159
+ metric: "metric";
160
+ span_event: "span_event";
161
+ span_attribute: "span_attribute";
162
+ }>>]>>;
163
+ fTimestampRange: z.ZodOptional<z.ZodArray<z.ZodCoercedDate<unknown>>>;
164
+ fAttributesFilter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
165
+ sort: z.ZodOptional<z.ZodString>;
166
+ }, z.core.$strip>, z.ZodTransform<{
167
+ filters: any;
168
+ sort: {
169
+ field: z.infer<typeof MetricSortFieldSchema>;
170
+ order: z.infer<typeof SortOrderSchema>;
171
+ } | undefined;
172
+ }, {
173
+ fName?: string | string[] | undefined;
174
+ fType?: "metric" | "span_event" | "span_attribute" | ("metric" | "span_event" | "span_attribute")[] | undefined;
175
+ fTimestampRange?: Date[] | undefined;
176
+ fAttributesFilter?: Record<string, any> | undefined;
177
+ sort?: string | undefined;
178
+ }>>;
179
+ export type GetMetricsQueryInput = z.input<typeof GetMetricsQuerySchema>;
158
180
  export declare const ErrorResponseSchema: z.ZodObject<{
159
181
  error: z.ZodString;
160
182
  message: z.ZodOptional<z.ZodString>;
@@ -168,9 +190,17 @@ export declare const RetryJobResponseSchema: z.ZodObject<{
168
190
  message: z.ZodString;
169
191
  newJobId: z.ZodString;
170
192
  }, z.core.$strip>;
193
+ export declare const TimeTravelJobBodySchema: z.ZodObject<{
194
+ stepId: z.ZodUUID;
195
+ }, z.core.$strip>;
196
+ export declare const TimeTravelJobResponseSchema: z.ZodObject<{
197
+ success: z.ZodBoolean;
198
+ message: z.ZodString;
199
+ }, z.core.$strip>;
171
200
  export interface CreateServerOptions<P extends string> {
172
201
  client: Client<any, any>;
173
202
  prefix?: P;
203
+ metricsEnabled?: boolean;
174
204
  login?: {
175
205
  onLogin: (body: {
176
206
  email: string;
@@ -181,7 +211,7 @@ export interface CreateServerOptions<P extends string> {
181
211
  refreshTokenExpirationTime?: string;
182
212
  };
183
213
  }
184
- export declare function createServer<P extends string>({ client, prefix, login }: CreateServerOptions<P>): Elysia<P, {
214
+ export declare function createServer<P extends string>({ client, prefix, login, metricsEnabled }: CreateServerOptions<P>): Elysia<P, {
185
215
  decorator: {};
186
216
  store: {};
187
217
  derive: {};
@@ -563,8 +593,6 @@ export declare function createServer<P extends string>({ client, prefix, login }
563
593
  id: string;
564
594
  };
565
595
  query: {
566
- page: number | undefined;
567
- pageSize: number | undefined;
568
596
  search: string | undefined;
569
597
  updatedAfter: Date | undefined;
570
598
  };
@@ -574,17 +602,19 @@ export declare function createServer<P extends string>({ client, prefix, login }
574
602
  response: {
575
603
  200: {
576
604
  steps: {
577
- error: any;
578
605
  name: string;
579
606
  status: "active" | "completed" | "failed" | "cancelled";
580
607
  createdAt: Date;
581
608
  updatedAt: Date;
582
609
  id: string;
610
+ error: any;
583
611
  timeoutMs: number;
584
612
  expiresAt: Date | null;
585
613
  startedAt: Date;
586
614
  finishedAt: Date | null;
587
615
  jobId: string;
616
+ parentStepId: string | null;
617
+ parallel: boolean;
588
618
  retriesLimit: number;
589
619
  retriesCount: number;
590
620
  delayedMs: number | null;
@@ -600,8 +630,6 @@ export declare function createServer<P extends string>({ client, prefix, login }
600
630
  }>;
601
631
  }[];
602
632
  total: number;
603
- page: number;
604
- pageSize: number;
605
633
  };
606
634
  400: {
607
635
  error: string;
@@ -702,6 +730,8 @@ export declare function createServer<P extends string>({ client, prefix, login }
702
730
  200: {
703
731
  id: string;
704
732
  jobId: string;
733
+ parentStepId: string | null;
734
+ parallel: boolean;
705
735
  name: string;
706
736
  output: any;
707
737
  status: "active" | "completed" | "failed" | "cancelled";
@@ -902,6 +932,46 @@ export declare function createServer<P extends string>({ client, prefix, login }
902
932
  };
903
933
  };
904
934
  };
935
+ }> & import("elysia").CreateEden<`${P}/jobs/:id/time-travel`, {
936
+ post: {
937
+ body: {
938
+ stepId: string;
939
+ };
940
+ params: {
941
+ id: string;
942
+ };
943
+ query: {};
944
+ headers: {
945
+ authorization?: string | undefined;
946
+ };
947
+ response: {
948
+ 200: {
949
+ success: boolean;
950
+ message: string;
951
+ };
952
+ 400: {
953
+ error: string;
954
+ message?: string | undefined;
955
+ };
956
+ 401: {
957
+ error: string;
958
+ message?: string | undefined;
959
+ };
960
+ 422: {
961
+ type: "validation";
962
+ on: string;
963
+ summary?: string;
964
+ message?: string;
965
+ found?: unknown;
966
+ property?: string;
967
+ expected?: string;
968
+ };
969
+ 500: {
970
+ error: string;
971
+ message?: string | undefined;
972
+ };
973
+ };
974
+ };
905
975
  }> & import("elysia").CreateEden<`${P}/jobs/:id`, {
906
976
  delete: {
907
977
  body: {};
@@ -1063,6 +1133,140 @@ export declare function createServer<P extends string>({ client, prefix, login }
1063
1133
  };
1064
1134
  };
1065
1135
  };
1136
+ }> & import("elysia").CreateEden<`${P}/config`, {
1137
+ get: {
1138
+ body: unknown;
1139
+ params: import("elysia/types").IsNever<keyof import("elysia/types").IntersectIfObject<import("elysia").ResolvePath<`${P}/config`>, unknown>> extends true ? {} : import("elysia/types").IntersectIfObject<import("elysia").ResolvePath<`${P}/config`>, unknown>;
1140
+ query: unknown;
1141
+ headers: unknown;
1142
+ response: {
1143
+ 200: {
1144
+ metricsEnabled: boolean;
1145
+ authEnabled: boolean;
1146
+ };
1147
+ 422: {
1148
+ type: "validation";
1149
+ on: string;
1150
+ summary?: string;
1151
+ message?: string;
1152
+ found?: unknown;
1153
+ property?: string;
1154
+ expected?: string;
1155
+ };
1156
+ 500: {
1157
+ error: string;
1158
+ message?: string | undefined;
1159
+ };
1160
+ };
1161
+ };
1162
+ }> & import("elysia").CreateEden<`${P}/jobs/:id/metrics`, {
1163
+ get: {
1164
+ body: {};
1165
+ params: {
1166
+ id: string;
1167
+ };
1168
+ query: {
1169
+ filters: any;
1170
+ sort: {
1171
+ field: z.infer<typeof MetricSortFieldSchema>;
1172
+ order: z.infer<typeof SortOrderSchema>;
1173
+ } | undefined;
1174
+ };
1175
+ headers: {
1176
+ authorization?: string | undefined;
1177
+ };
1178
+ response: {
1179
+ 200: {
1180
+ metrics: {
1181
+ id: string;
1182
+ jobId: string;
1183
+ stepId: string | null;
1184
+ name: string;
1185
+ value: number;
1186
+ attributes: Record<string, any>;
1187
+ type: "metric" | "span_event" | "span_attribute";
1188
+ timestamp: Date;
1189
+ createdAt: Date;
1190
+ }[];
1191
+ total: number;
1192
+ };
1193
+ 400: {
1194
+ error: string;
1195
+ message?: string | undefined;
1196
+ };
1197
+ 401: {
1198
+ error: string;
1199
+ message?: string | undefined;
1200
+ };
1201
+ 422: {
1202
+ type: "validation";
1203
+ on: string;
1204
+ summary?: string;
1205
+ message?: string;
1206
+ found?: unknown;
1207
+ property?: string;
1208
+ expected?: string;
1209
+ };
1210
+ 500: {
1211
+ error: string;
1212
+ message?: string | undefined;
1213
+ };
1214
+ };
1215
+ };
1216
+ }> & import("elysia").CreateEden<`${P}/steps/:id/metrics`, {
1217
+ get: {
1218
+ body: {};
1219
+ params: {
1220
+ id: string;
1221
+ };
1222
+ query: {
1223
+ filters: any;
1224
+ sort: {
1225
+ field: z.infer<typeof MetricSortFieldSchema>;
1226
+ order: z.infer<typeof SortOrderSchema>;
1227
+ } | undefined;
1228
+ };
1229
+ headers: {
1230
+ authorization?: string | undefined;
1231
+ };
1232
+ response: {
1233
+ 200: {
1234
+ metrics: {
1235
+ id: string;
1236
+ jobId: string;
1237
+ stepId: string | null;
1238
+ name: string;
1239
+ value: number;
1240
+ attributes: Record<string, any>;
1241
+ type: "metric" | "span_event" | "span_attribute";
1242
+ timestamp: Date;
1243
+ createdAt: Date;
1244
+ }[];
1245
+ total: number;
1246
+ };
1247
+ 400: {
1248
+ error: string;
1249
+ message?: string | undefined;
1250
+ };
1251
+ 401: {
1252
+ error: string;
1253
+ message?: string | undefined;
1254
+ };
1255
+ 422: {
1256
+ type: "validation";
1257
+ on: string;
1258
+ summary?: string;
1259
+ message?: string;
1260
+ found?: unknown;
1261
+ property?: string;
1262
+ expected?: string;
1263
+ };
1264
+ 500: {
1265
+ error: string;
1266
+ message?: string | undefined;
1267
+ };
1268
+ };
1269
+ };
1066
1270
  }> & import("elysia").CreateEden<`${P}/actions/:actionName/run`, {
1067
1271
  post: {
1068
1272
  body: {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Elysia } from 'elysia';
2
2
  import { jwtVerify, SignJWT } from 'jose';
3
3
  import { z } from 'zod';
4
- import { GetActionsResultSchema, GetJobStepsResultSchema, GetJobsResultSchema, JobSchema, JobSortFieldSchema, JobStatusResultSchema, JobStatusSchema, JobStepSchema, JobStepStatusResultSchema, SortOrderSchema, } from './adapters/schemas.js';
4
+ import { GetActionsResultSchema, GetJobStepsResultSchema, GetJobsResultSchema, GetMetricsResultSchema, JobSchema, JobSortFieldSchema, JobStatusResultSchema, JobStatusSchema, JobStepSchema, JobStepStatusResultSchema, MetricSortFieldSchema, MetricTypeSchema, SortOrderSchema, } from './adapters/schemas.js';
5
5
  export class NotFoundError extends Error {
6
6
  constructor(message) {
7
7
  super(message);
@@ -16,14 +16,10 @@ export class UnauthorizedError extends Error {
16
16
  }
17
17
  export const GetJobStepsQuerySchema = z
18
18
  .object({
19
- page: z.coerce.number().int().min(1).optional(),
20
- pageSize: z.coerce.number().int().min(1).max(1000).optional(),
21
19
  search: z.string().optional(),
22
20
  fUpdatedAfter: z.coerce.date().optional(),
23
21
  })
24
22
  .transform((data) => ({
25
- page: data.page,
26
- pageSize: data.pageSize,
27
23
  search: data.search,
28
24
  updatedAfter: data.fUpdatedAfter,
29
25
  }));
@@ -112,6 +108,43 @@ export const GetActionsMetadataResponseSchema = z.array(z.object({
112
108
  name: z.string(),
113
109
  mockInput: z.any(),
114
110
  }));
111
+ export const GetMetricsQuerySchema = z
112
+ .object({
113
+ fName: z.union([z.string(), z.array(z.string())]).optional(),
114
+ fType: z.union([MetricTypeSchema, z.array(MetricTypeSchema)]).optional(),
115
+ fTimestampRange: z.array(z.coerce.date()).length(2).optional(),
116
+ fAttributesFilter: z.record(z.string(), z.any()).optional(),
117
+ sort: z.string().optional(),
118
+ })
119
+ .transform((data) => {
120
+ const filters = {};
121
+ if (data.fName)
122
+ filters.name = data.fName;
123
+ if (data.fType)
124
+ filters.type = data.fType;
125
+ if (data.fTimestampRange)
126
+ filters.timestampRange = data.fTimestampRange;
127
+ if (data.fAttributesFilter)
128
+ filters.attributesFilter = data.fAttributesFilter;
129
+ let sort;
130
+ if (data.sort) {
131
+ const [field, order] = data.sort.split(':').map((s) => s.trim());
132
+ if (field && order) {
133
+ const fieldResult = MetricSortFieldSchema.safeParse(field);
134
+ const orderResult = SortOrderSchema.safeParse(order.toLowerCase());
135
+ if (fieldResult.success && orderResult.success) {
136
+ sort = {
137
+ field: fieldResult.data,
138
+ order: orderResult.data,
139
+ };
140
+ }
141
+ }
142
+ }
143
+ return {
144
+ filters: Object.keys(filters).length > 0 ? filters : undefined,
145
+ sort,
146
+ };
147
+ });
115
148
  export const ErrorResponseSchema = z.object({
116
149
  error: z.string(),
117
150
  message: z.string().optional(),
@@ -131,9 +164,17 @@ export const RetryJobResponseSchema = z.object({
131
164
  message: z.string(),
132
165
  newJobId: z.string(),
133
166
  });
134
- export function createServer({ client, prefix, login }) {
167
+ export const TimeTravelJobBodySchema = z.object({
168
+ stepId: z.uuid(),
169
+ });
170
+ export const TimeTravelJobResponseSchema = z.object({
171
+ success: z.boolean(),
172
+ message: z.string(),
173
+ });
174
+ export function createServer({ client, prefix, login, metricsEnabled }) {
135
175
  const secretKey = typeof login?.jwtSecret === 'string' ? new TextEncoder().encode(login?.jwtSecret) : login?.jwtSecret;
136
176
  const routePrefix = (prefix ?? '/api');
177
+ const isMetricsEnabled = metricsEnabled ?? client.metricsEnabled;
137
178
  return new Elysia({
138
179
  prefix: routePrefix,
139
180
  })
@@ -221,8 +262,6 @@ export function createServer({ client, prefix, login }) {
221
262
  .get('/jobs/:id/steps', async ({ params, query }) => {
222
263
  const options = {
223
264
  jobId: params.id,
224
- page: query.page,
225
- pageSize: query.pageSize,
226
265
  search: query.search,
227
266
  updatedAfter: query.updatedAfter,
228
267
  };
@@ -339,6 +378,26 @@ export function createServer({ client, prefix, login }) {
339
378
  401: ErrorResponseSchema,
340
379
  },
341
380
  auth: true,
381
+ })
382
+ .post('/jobs/:id/time-travel', async ({ params, body }) => {
383
+ const success = await client.timeTravelJob(params.id, body.stepId);
384
+ if (!success) {
385
+ throw new Error(`Could not time travel job ${params.id}. The job may not be in a terminal state or the step may not exist.`);
386
+ }
387
+ return {
388
+ success: true,
389
+ message: `Job ${params.id} has been time traveled to step ${body.stepId}`,
390
+ };
391
+ }, {
392
+ params: JobIdParamsSchema,
393
+ body: TimeTravelJobBodySchema,
394
+ response: {
395
+ 200: TimeTravelJobResponseSchema,
396
+ 400: ErrorResponseSchema,
397
+ 500: ErrorResponseSchema,
398
+ 401: ErrorResponseSchema,
399
+ },
400
+ auth: true,
342
401
  })
343
402
  .delete('/jobs/:id', async ({ params }) => {
344
403
  const deleted = await client.deleteJob(params.id);
@@ -410,6 +469,62 @@ export function createServer({ client, prefix, login }) {
410
469
  401: ErrorResponseSchema,
411
470
  },
412
471
  auth: true,
472
+ })
473
+ .get('/config', async () => {
474
+ return {
475
+ metricsEnabled: isMetricsEnabled,
476
+ authEnabled: !!login,
477
+ };
478
+ }, {
479
+ response: {
480
+ 200: z.object({
481
+ metricsEnabled: z.boolean(),
482
+ authEnabled: z.boolean(),
483
+ }),
484
+ 500: ErrorResponseSchema,
485
+ },
486
+ })
487
+ .get('/jobs/:id/metrics', async ({ params, query }) => {
488
+ if (!isMetricsEnabled) {
489
+ throw new Error('Metrics are not enabled. Use LocalTelemetryAdapter to enable metrics.');
490
+ }
491
+ const options = {
492
+ jobId: params.id,
493
+ filters: query.filters,
494
+ sort: query.sort,
495
+ };
496
+ return client.getMetrics(options);
497
+ }, {
498
+ params: JobIdParamsSchema,
499
+ query: GetMetricsQuerySchema,
500
+ response: {
501
+ 200: GetMetricsResultSchema,
502
+ 400: ErrorResponseSchema,
503
+ 500: ErrorResponseSchema,
504
+ 401: ErrorResponseSchema,
505
+ },
506
+ auth: true,
507
+ })
508
+ .get('/steps/:id/metrics', async ({ params, query }) => {
509
+ if (!isMetricsEnabled) {
510
+ throw new Error('Metrics are not enabled. Use LocalTelemetryAdapter to enable metrics.');
511
+ }
512
+ const options = {
513
+ stepId: params.id,
514
+ filters: query.filters,
515
+ sort: query.sort,
516
+ };
517
+ return client.getMetrics(options);
518
+ }, {
519
+ params: StepIdParamsSchema,
520
+ query: GetMetricsQuerySchema,
521
+ response: {
522
+ 200: GetMetricsResultSchema,
523
+ 400: ErrorResponseSchema,
524
+ 500: ErrorResponseSchema,
525
+ 401: ErrorResponseSchema,
526
+ },
527
+ auth: true,
413
528
  })
414
529
  .post('/actions/:actionName/run', async ({ params, body }) => {
415
530
  const jobId = await client.runAction(params.actionName, body);
@@ -3,16 +3,19 @@ import type { z } from 'zod';
3
3
  import { type Action, type ActionHandlerContext, type StepHandlerContext, type StepOptions } from './action.js';
4
4
  import type { Adapter } from './adapters/adapter.js';
5
5
  import { type StepStatus } from './constants.js';
6
+ import type { ObserveContext, Span, TelemetryAdapter } from './telemetry/adapter.js';
6
7
  export interface TaskStep {
7
8
  name: string;
8
9
  cb: (ctx: StepHandlerContext) => Promise<any>;
9
10
  options: StepOptions;
10
11
  abortSignal: AbortSignal;
12
+ parentStepId: string | null;
13
+ parallel: boolean;
11
14
  }
12
15
  export declare class StepStore {
13
16
  #private;
14
17
  constructor(adapter: Adapter);
15
- getOrCreate(jobId: string, name: string, timeoutMs: number, retriesLimit: number): Promise<{
18
+ getOrCreate(jobId: string, name: string, timeoutMs: number, retriesLimit: number, parentStepId?: string | null, parallel?: boolean): Promise<{
16
19
  id: string;
17
20
  status: "active" | "completed" | "failed" | "cancelled";
18
21
  retriesLimit: number;
@@ -29,17 +32,20 @@ export interface StepManagerOptions {
29
32
  jobId: string;
30
33
  actionName: string;
31
34
  adapter: Adapter;
35
+ telemetry: TelemetryAdapter;
32
36
  logger: Logger;
33
37
  concurrencyLimit: number;
34
38
  }
35
39
  export declare class StepManager {
36
40
  #private;
37
41
  constructor(options: StepManagerOptions);
42
+ setJobSpan(span: Span): void;
38
43
  createActionContext<TInput extends z.ZodObject, TOutput extends z.ZodObject, TVariables = Record<string, unknown>>(job: {
39
44
  id: string;
40
45
  input: z.infer<TInput>;
41
46
  groupKey?: string;
42
- }, action: Action<TInput, TOutput, TVariables>, variables: TVariables, abortSignal: AbortSignal, logger: Logger): ActionHandlerContext<TInput, TVariables>;
47
+ }, action: Action<TInput, TOutput, TVariables>, variables: TVariables, abortSignal: AbortSignal, logger: Logger, observeContext: ObserveContext): ActionHandlerContext<TInput, TVariables>;
48
+ createStepObserveContext(stepId: string): ObserveContext;
43
49
  push(task: TaskStep): Promise<any>;
44
50
  drain(): Promise<void>;
45
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"step-manager.d.ts","sourceRoot":"","sources":["../src/step-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EACL,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAoE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAalH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,EAAE,WAAW,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;CACzB;AAMD,qBAAa,SAAS;;gBAYR,OAAO,EAAE,OAAO;IAkBtB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;IAsBhF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB7F,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAG3E;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAMD,qBAAa,WAAW;;gBAkBV,OAAO,EAAE,kBAAkB;IA6BvC,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/G,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,EAC3C,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,GACb,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC;IAUrC,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkK7B"}
1
+ {"version":3,"file":"step-manager.d.ts","sourceRoot":"","sources":["../src/step-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EACL,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAgC,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAoE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAWlH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIpF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7C,OAAO,EAAE,WAAW,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAMD,qBAAa,SAAS;;gBAYR,OAAO,EAAE,OAAO;IAoBtB,WAAW,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,GAAE,MAAM,GAAG,IAAW,EAClC,QAAQ,GAAE,OAAe;;;;;;;;;;IAyBrB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB7F,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAG3E;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAMD,qBAAa,WAAW;;gBAuBV,OAAO,EAAE,kBAAkB;IAmBvC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoB5B,mBAAmB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,EAAE,OAAO,SAAS,CAAC,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/G,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,EAC3C,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,GAC7B,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC;IAO3C,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IA6BlD,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAiT7B"}