@skedulo/integration-sdk 0.13.0 → 0.13.1
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/.claude/worktrees/COR-1641/jest.config.js +12 -0
- package/.claude/worktrees/COR-1662/jest.config.js +12 -0
- package/CHANGELOG.md +11 -0
- package/dist/actions/sync/run-flow.action.d.ts.map +1 -1
- package/dist/actions/sync/run-flow.action.js +12 -3
- package/dist/actions/sync/run-flow.action.js.map +1 -1
- package/dist/actions/sync/run-job.action.d.ts +3 -0
- package/dist/actions/sync/run-job.action.d.ts.map +1 -1
- package/dist/actions/sync/run-job.action.js +45 -4
- package/dist/actions/sync/run-job.action.js.map +1 -1
- package/dist/services/run-log-builder.d.ts +4 -2
- package/dist/services/run-log-builder.d.ts.map +1 -1
- package/dist/services/run-log-builder.js +20 -1
- package/dist/services/run-log-builder.js.map +1 -1
- package/dist/utils/artifact-builder.d.ts +3 -0
- package/dist/utils/artifact-builder.d.ts.map +1 -1
- package/dist/utils/artifact-builder.js +22 -3
- package/dist/utils/artifact-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.ts'
|
|
6
|
+
],
|
|
7
|
+
coverageDirectory: 'coverage',
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/test/**/*.test.ts'
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node']
|
|
12
|
+
};
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.1] - 2026-11-02
|
|
4
|
+
|
|
5
|
+
- `sync.run-job` and `sync.run-flow` now write a failed run log to the Activity tab when they fail before `SyncRunner` starts (COR-1641). Scheduled jobs run async since 0.12.1 and Run now will too (COR-1642), so nobody reads the HTTP response, and these failures were only in the function logs. The run log is a `run_summary` at `error` level with `failed: 1` and the message `Run failed: <reason>`, the same as a run that fails inside `SyncRunner`.
|
|
6
|
+
- `run-job` can't read the integration config, or the job isn't in it (`JOB_NOT_FOUND`): a job-level run log with no data flow (`dataFlowId: null`, shown as `-` in the Data Flow column). It repeats on every tick until the config is fixed or the job's webhook is removed. This row is only written when the webhook name looks like one of this integration's job webhooks (`sked-int-<integration type>-job-<slug>`, at most 200 characters, as `scheduled-job.create` builds it). Any tenant user can call `run-job` with any name, so other names get no run log, only the same error as before. If a job's webhook is left behind, run `scheduled-job.delete` again with its webhook name to remove it.
|
|
7
|
+
- `run-job` can't read one of its flows: a run log on that flow. The job goes on to the next flow, unless a second read shows that flow is still loading. Then later flows wait for it, as before. If the second read also fails, or returns 404, later flows don't wait for it and there's no "load started over 24 hours ago" WARNING. A 404 on the second read after the run started (the flow was deleted mid-run) only stops the wait: the run already wrote its own run log, and one 404 isn't enough to call the flow deleted.
|
|
8
|
+
- A flow that was deleted but is still in a job's `flow_ids`: integration-service returns 404 for it. `run-job` reads the flow again, and only if that read is also a 404 does it count the flow as deleted. It then writes one `error` run log on that flow (and no `Run failed` row), `Flow <id> was deleted but is still in job '<job name>'`, and goes on to the next flow. The job no longer treats it as a flow still loading, so it stops writing the "load started over 24 hours ago" WARNING. The per-flow result is still `{ flowId, error }` with the 404 message. It repeats on every tick until the flow is removed from the job.
|
|
9
|
+
- `run-flow` can't read the flow: a run log on that flow. A deleted flow comes back from integration-service as a 404 error, so the run log shows `Run failed: HTTP error! Status: 404. …` and the action returns that error, not `FLOW_NOT_FOUND`. `FLOW_NOT_FOUND` only happens if the read returns no flow.
|
|
10
|
+
- A read counts as a 404 only when the error message starts with `HTTP error! Status: 404`. In 0.13.0 and earlier, a 5xx whose response body quoted `Status: 404` also matched. This also applies to the artifact upsert and delete helpers that `scheduled-job` and flow activate/deactivate use: such a 5xx now fails instead of being taken as "not there".
|
|
11
|
+
- Response bodies and status codes don't change. Later flows in a job may now run instead of waiting, as described above. If the run log can't be written, the SDK logs `run_log_flush_failed`, counts `run_log.flush_failed` and returns the original error. This also covers a log client that throws straight away instead of returning a failed promise.
|
|
12
|
+
- `BuildRunLogArgs.flowId` is now `number | null`. New `logRunFailed` in `services/run-log-builder.ts` (not exported from the package root).
|
|
13
|
+
|
|
3
14
|
## [0.13.0] - 2026-10-26
|
|
4
15
|
|
|
5
16
|
**IdMapping flows can link records that already exist in the target instead of creating duplicates (COR-1291).**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-flow.action.d.ts","sourceRoot":"","sources":["../../../src/actions/sync/run-flow.action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-flow.action.d.ts","sourceRoot":"","sources":["../../../src/actions/sync/run-flow.action.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAsBrE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CA4DrF"}
|
|
@@ -14,6 +14,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.makeRunFlowAction = makeRunFlowAction;
|
|
15
15
|
const crypto_1 = require("crypto");
|
|
16
16
|
const constants_1 = require("../../constants");
|
|
17
|
+
const integration_log_interface_1 = require("../../interfaces/integration-log.interface");
|
|
18
|
+
const run_log_builder_1 = require("../../services/run-log-builder");
|
|
17
19
|
const sync_runner_1 = require("../../services/sync-runner");
|
|
18
20
|
const action_names_1 = require("../utils/action-names");
|
|
19
21
|
const helpers_1 = require("../utils/helpers");
|
|
@@ -62,9 +64,16 @@ function makeRunFlowAction(deps) {
|
|
|
62
64
|
const integrationType = deps.adapter.integrationType;
|
|
63
65
|
const lookupStrategy = (0, helpers_1.resolveLookupStrategy)(deps.adapter);
|
|
64
66
|
const runId = (0, crypto_1.randomUUID)();
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
let flow;
|
|
68
|
+
try {
|
|
69
|
+
flow = await ctx.dataFlowService.getFlowById(input.flowId);
|
|
70
|
+
if (!flow)
|
|
71
|
+
throw new errors_1.NotFoundError('FLOW_NOT_FOUND', `Flow ${input.flowId} not found`);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
75
|
+
await (0, run_log_builder_1.logRunFailed)(ctx, input.flowId, integration_log_interface_1.LogSource.BATCH, msg);
|
|
76
|
+
throw err;
|
|
68
77
|
}
|
|
69
78
|
// overrideSince: undefined = normal resume, null = full resync, Date = backfill from time.
|
|
70
79
|
const overrideSince = input.fullResync ? null : input.since;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-flow.action.js","sourceRoot":"","sources":["../../../src/actions/sync/run-flow.action.ts"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"run-flow.action.js","sourceRoot":"","sources":["../../../src/actions/sync/run-flow.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ import type { RunJobInput, RunJobOutput, SyncDeps } from './types';
|
|
|
8
8
|
* the job skip its later flows this tick. After 24 hours or 3 job intervals, whichever is longer,
|
|
9
9
|
* from the load's `startedAt` (else the flow's `lastRunAt`, else its `createdAt`; a future time
|
|
10
10
|
* doesn't count; with none, at once) later flows run with a WARNING run log.
|
|
11
|
+
* A flow that was deleted but is still in `flow_ids` (both reads of it return 404) gets one ERROR
|
|
12
|
+
* run log and isn't waited on. Nor is a flow that can't be read at all, or that returns 404 when
|
|
13
|
+
* read again.
|
|
11
14
|
* Per-flow direction is decided by the flow's own `sourceSystem`.
|
|
12
15
|
*/
|
|
13
16
|
export declare function makeRunJobAction(deps: SyncDeps): Action<RunJobInput, RunJobOutput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-job.action.d.ts","sourceRoot":"","sources":["../../../src/actions/sync/run-job.action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-job.action.d.ts","sourceRoot":"","sources":["../../../src/actions/sync/run-job.action.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA0BlF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAwLlF"}
|
|
@@ -50,6 +50,9 @@ function jobWaitLimitMs(job) {
|
|
|
50
50
|
* the job skip its later flows this tick. After 24 hours or 3 job intervals, whichever is longer,
|
|
51
51
|
* from the load's `startedAt` (else the flow's `lastRunAt`, else its `createdAt`; a future time
|
|
52
52
|
* doesn't count; with none, at once) later flows run with a WARNING run log.
|
|
53
|
+
* A flow that was deleted but is still in `flow_ids` (both reads of it return 404) gets one ERROR
|
|
54
|
+
* run log and isn't waited on. Nor is a flow that can't be read at all, or that returns 404 when
|
|
55
|
+
* read again.
|
|
53
56
|
* Per-flow direction is decided by the flow's own `sourceSystem`.
|
|
54
57
|
*/
|
|
55
58
|
function makeRunJobAction(deps) {
|
|
@@ -66,10 +69,24 @@ function makeRunJobAction(deps) {
|
|
|
66
69
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
67
70
|
const integrationType = deps.adapter.integrationType;
|
|
68
71
|
const lookupStrategy = (0, helpers_1.resolveLookupStrategy)(deps.adapter);
|
|
69
|
-
|
|
72
|
+
// Any tenant user can call run-job with any name; only log names our job webhooks could send.
|
|
73
|
+
const logJobFailed = (reason) => (0, artifact_builder_1.isJobArtifactName)(integrationType, input.webhookName)
|
|
74
|
+
? (0, run_log_builder_1.logRunFailed)(ctx, null, integration_log_interface_1.LogSource.SCHEDULED_JOB, reason)
|
|
75
|
+
: Promise.resolve();
|
|
76
|
+
let config;
|
|
77
|
+
try {
|
|
78
|
+
config = await (0, shared_1.readConfig)(ctx, integrationType);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
82
|
+
await logJobFailed(`can't read the integration config for scheduled job '${input.webhookName}': ${msg}`);
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
70
85
|
const job = config.scheduled_jobs.find((j) => j.webhook_name === input.webhookName);
|
|
71
86
|
if (!job) {
|
|
72
|
-
|
|
87
|
+
const err = new errors_1.NotFoundError('JOB_NOT_FOUND', `Scheduled job '${input.webhookName}' not found`);
|
|
88
|
+
await logJobFailed(err.message);
|
|
89
|
+
throw err;
|
|
73
90
|
}
|
|
74
91
|
if (!(0, shared_1.jobShouldRun)(job)) {
|
|
75
92
|
ctx.logger.info(`[run-job] ${job.webhook_name} skipped (disabled or no flows)`);
|
|
@@ -98,6 +115,8 @@ function makeRunJobAction(deps) {
|
|
|
98
115
|
let unfinished = false;
|
|
99
116
|
let stopped = false;
|
|
100
117
|
let before = null;
|
|
118
|
+
let runStarted = false;
|
|
119
|
+
let notFoundMsg;
|
|
101
120
|
try {
|
|
102
121
|
const flow = (before = await ctx.dataFlowService.getFlowById(flowId));
|
|
103
122
|
if (!flow) {
|
|
@@ -105,6 +124,7 @@ function makeRunJobAction(deps) {
|
|
|
105
124
|
results.push({ flowId, skipped: true, reason: 'flow not found' });
|
|
106
125
|
continue;
|
|
107
126
|
}
|
|
127
|
+
runStarted = true;
|
|
108
128
|
const stats = await runner.run({
|
|
109
129
|
flowId,
|
|
110
130
|
since: null,
|
|
@@ -134,12 +154,33 @@ function makeRunJobAction(deps) {
|
|
|
134
154
|
const msg = err instanceof Error ? err.message : String(err);
|
|
135
155
|
ctx.logger.error(`[run-job] ${job.webhook_name} flow=${flowId} failed: ${msg}`);
|
|
136
156
|
results.push({ flowId, error: msg });
|
|
157
|
+
// SyncRunner writes its own failed run log before it rethrows.
|
|
158
|
+
if (!runStarted) {
|
|
159
|
+
if ((0, artifact_builder_1.isHttpNotFound)(err))
|
|
160
|
+
notFoundMsg = msg;
|
|
161
|
+
else
|
|
162
|
+
await (0, run_log_builder_1.logRunFailed)(ctx, flowId, integration_log_interface_1.LogSource.SCHEDULED_JOB, msg);
|
|
163
|
+
}
|
|
137
164
|
unfinished = true;
|
|
138
165
|
}
|
|
139
166
|
if (!unfinished)
|
|
140
167
|
continue;
|
|
141
|
-
// Read it again: the run may have saved or dropped the checkpoint.
|
|
142
|
-
|
|
168
|
+
// Read it again: the run may have saved or dropped the checkpoint. A failed read counts as still
|
|
169
|
+
// loading, unless it's a 404 or the first read failed too.
|
|
170
|
+
let afterNotFound = false;
|
|
171
|
+
const after = await ctx.dataFlowService.getFlowById(flowId).catch((err) => {
|
|
172
|
+
afterNotFound = (0, artifact_builder_1.isHttpNotFound)(err);
|
|
173
|
+
return undefined;
|
|
174
|
+
});
|
|
175
|
+
if (notFoundMsg !== undefined) {
|
|
176
|
+
if (afterNotFound) {
|
|
177
|
+
await logJobNote(ctx, flowId, integration_log_interface_1.LogLevel.ERROR, `Flow ${flowId} was deleted but is still in job '${job.name}'`);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
await (0, run_log_builder_1.logRunFailed)(ctx, flowId, integration_log_interface_1.LogSource.SCHEDULED_JOB, notFoundMsg);
|
|
181
|
+
}
|
|
182
|
+
if (afterNotFound || (before === null && after === undefined))
|
|
183
|
+
continue;
|
|
143
184
|
const loading = after === undefined ||
|
|
144
185
|
(after !== null &&
|
|
145
186
|
(stopped || !!(after.syncProgress || (before === null || before === void 0 ? void 0 : before.syncProgress) || !after.lastRunAt)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-job.action.js","sourceRoot":"","sources":["../../../src/actions/sync/run-job.action.ts"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"run-job.action.js","sourceRoot":"","sources":["../../../src/actions/sync/run-job.action.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAgEA,4CAwLC;AAxPD,mCAAoC;AACpC,+CAMyB;AAIzB,0FAAiF;AACjF,oEAA+F;AAC/F,4DAAwD;AACxD,mEAIsC;AACtC,wDAAgD;AAChD,8CAAyD;AACzD,4CAAgD;AAChD,0DAAsD;AAEtD,oDAAqF;AAGrF,SAAS,cAAc,CAAC,GAAiB,EAAE,MAAoC;IAC7E,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,IAAA,uCAAoB,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CACT,aAAa,GAAG,CAAC,YAAY,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,iCAAqB,GAAG,KAAM,MAAM,CACjL,CAAC;QACF,OAAO,iCAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CACb,6BAAiB,EACjB,IAAI,CAAC,GAAG,CAAC,iCAAqB,EAAE,UAAU,GAAG,yCAA6B,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAiB;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,wBAAY,EAAE,CAAC,GAAG,IAAA,uCAAoB,EAAC,GAAG,CAAC,GAAG,KAAM,CAAC,CAAC;IACxE,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,wBAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,IAAc;IAC7C,OAAO,IAAA,4BAAY,EAA4B;QAC7C,IAAI,EAAE,sBAAO,CAAC,IAAI,CAAC,MAAM;QACzB,UAAU,CAAC,GAAG,EAAE,IAA2B;YACzC,MAAM,QAAQ,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC;YACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,EAAE,WAAW,EAAE,IAAA,yBAAgB,EAAC,GAAG,CAAC,EAAE,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;;YACtB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YACrD,MAAM,cAAc,GAAG,IAAA,+BAAqB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE3D,8FAA8F;YAC9F,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE,CACtC,IAAA,oCAAiB,EAAC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC;gBACnD,CAAC,CAAC,IAAA,8BAAY,EAAC,GAAG,EAAE,IAAI,EAAE,qCAAS,CAAC,aAAa,EAAE,MAAM,CAAC;gBAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,YAAY,CAChB,wDAAwD,KAAK,CAAC,WAAW,MAAM,GAAG,EAAE,CACrF,CAAC;gBACF,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC;YACpF,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,GAAG,GAAG,IAAI,sBAAa,CAC3B,eAAe,EACf,kBAAkB,KAAK,CAAC,WAAW,aAAa,CACjD,CAAC;gBACF,MAAM,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,CAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,iCAAiC,CAAC,CAAC;gBAChF,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACvE,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,aAAa,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,QAAQ,CAAC,MAAM,qBAAqB;gBAC/E,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAC;YAEF,4EAA4E;YAC5E,GAAG,CAAC,QAAQ,GAAG,IAAA,mBAAU,GAAE,CAAC;YAE5B,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAoB,EAAE,CAAC;YACpC,yEAAyE;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,UAA8B,CAAC;YACnC,IAAI,YAAgC,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,oBAAoB,UAAU,qBAAqB,CAAC;oBACnE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,SAAS,MAAM,cAAc,MAAM,EAAE,CAAC,CAAC;oBACpF,MAAM,UAAU,CACd,GAAG,EACH,MAAM,EACN,oCAAQ,CAAC,IAAI,EACb,QAAQ,MAAM,aAAa,MAAM,mBAAmB,CACrD,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBAChD,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,MAAM,GAAoB,IAAI,CAAC;gBACnC,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,WAA+B,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;oBACtE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,YAAY,SAAS,MAAM,uBAAuB,CAAC,CAAC;wBACrF,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;wBAClE,SAAS;oBACX,CAAC;oBACD,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAC5B;wBACE,MAAM;wBACN,KAAK,EAAE,IAAI;wBACX,YAAY,EAAE,MAAA,IAAI,CAAC,YAAY,mCAAI,eAAe;wBAClD,YAAY,EAAE,MAAA,IAAI,CAAC,YAAY,mCAAI,0BAAc;wBACjD,OAAO,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE;qBACxC,EACD,GAAG,CACJ,CAAC;oBACF,IAAI,KAAK,CAAC,aAAa,KAAK,eAAe,EAAE,CAAC;wBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;wBACjE,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACN,IAAI,YAAY;4BAAE,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,oCAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;wBAChF,OAAO,GAAG,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC;wBAC3C,UAAU,GAAG,OAAO,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC;wBACvD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBAC1C,2FAA2F;wBAC3F,+EAA+E;wBAC/E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,KAAgB,KAAK,EAAhB,MAAM,UAAK,KAAK,EAA/D,wBAAuD,CAAQ,CAAC;wBACtE,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,aAAa,GAAG,CAAC,YAAY,SAAS,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG;4BACvF,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,UAAU,IAAI,CACnD,CAAC;wBACF,OAAO,CAAC,IAAI,iBACV,MAAM,EACN,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,IACP,MAAM,EACT,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,YAAY,SAAS,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC;oBAChF,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrC,+DAA+D;oBAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,IAAI,IAAA,iCAAc,EAAC,GAAG,CAAC;4BAAE,WAAW,GAAG,GAAG,CAAC;;4BACtC,MAAM,IAAA,8BAAY,EAAC,GAAG,EAAE,MAAM,EAAE,qCAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;oBACrE,CAAC;oBACD,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;gBACD,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAC1B,iGAAiG;gBACjG,2DAA2D;gBAC3D,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACjF,aAAa,GAAG,IAAA,iCAAc,EAAC,GAAG,CAAC,CAAC;oBACpC,OAAO,SAAS,CAAC;gBACnB,CAAC,CAAC,CAAC;gBACH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,UAAU,CACd,GAAG,EACH,MAAM,EACN,oCAAQ,CAAC,KAAK,EACd,QAAQ,MAAM,qCAAqC,GAAG,CAAC,IAAI,GAAG,CAC/D,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,MAAM,IAAA,8BAAY,EAAC,GAAG,EAAE,MAAM,EAAE,qCAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;gBACxE,CAAC;gBACD,IAAI,aAAa,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;oBAAE,SAAS;gBACxE,MAAM,OAAO,GACX,KAAK,KAAK,SAAS;oBACnB,CAAC,KAAK,KAAK,IAAI;wBACb,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACrF,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,uGAAuG;gBACvG,wDAAwD;gBACxD,MAAM,SAAS,GAAG;oBAChB,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,0CAAE,SAAS;oBAC9B,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,0CAAE,SAAS;oBAC/B,MAAA,MAAA,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,0CAAE,SAAS,0CAAE,MAAM,EAAE;oBACtC,MAAA,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,0CAAE,SAAS;iBAC7B;qBACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,EAAE,CAAC,CAAC;qBAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;oBACnE,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,iCAAiC,MAAM,sBAAsB,WAAW,GAAG,OAAS,8BAA8B;wBAChH,gDAAgD,CACnD,CAAC;oBACF,YAAY;wBACV,QAAQ,MAAM,wBAAwB,WAAW,GAAG,OAAS,4FAA4F;4BACzJ,8CAA8C,MAAM,2FAA2F,CAAC;oBAClJ,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,oCAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,MAAM,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,GAAuB,EACvB,MAAc,EACd,KAAe,EACf,OAAe;IAEf,MAAM,OAAO,GAAG,IAAA,oCAAkB,EAAC;QACjC,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,MAAM;QACN,WAAW,EAAE,IAAA,mBAAU,GAAE;QACzB,MAAM,EAAE,qCAAS,CAAC,aAAa;QAC/B,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAC3E,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,OAAO;QACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC;IACH,MAAM,IAAA,6BAAW,EAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -6,7 +6,8 @@ export declare const MAX_RECORD_ERRORS = 100;
|
|
|
6
6
|
export declare const MAX_MESSAGE_LEN = 2000;
|
|
7
7
|
export interface BuildRunLogArgs {
|
|
8
8
|
integrationType: string;
|
|
9
|
-
|
|
9
|
+
/** null for a job-level entry written before any flow is known. */
|
|
10
|
+
flowId: number | null;
|
|
10
11
|
flowName?: string | null;
|
|
11
12
|
executionId: string;
|
|
12
13
|
source: LogSource;
|
|
@@ -52,5 +53,6 @@ export declare function unrecordableNote(afterHolds: number, atOnce: number): st
|
|
|
52
53
|
* errorCount/errorsTruncated reporting the true total. No I/O — SyncRunner flushes the result.
|
|
53
54
|
*/
|
|
54
55
|
export declare function buildRunLogEntries(args: BuildRunLogArgs): IntegrationLogEntry[];
|
|
55
|
-
export declare function flushRunLog(ctx: IntegrationContext, entries: IntegrationLogEntry[], flowId: number): Promise<void>;
|
|
56
|
+
export declare function flushRunLog(ctx: IntegrationContext, entries: IntegrationLogEntry[], flowId: number | null): Promise<void>;
|
|
57
|
+
export declare function logRunFailed(ctx: IntegrationContext, flowId: number | null, source: LogSource, reason: string): Promise<void>;
|
|
56
58
|
//# sourceMappingURL=run-log-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log-builder.d.ts","sourceRoot":"","sources":["../../src/services/run-log-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-log-builder.d.ts","sourceRoot":"","sources":["../../src/services/run-log-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,QAAQ,EACR,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKrD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAIrC,eAAO,MAAM,eAAe,OAAe,CAAC;AAa5C,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,iFAAiF;IACjF,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CA4BT;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAmBT;AASD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUvF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,mBAAmB,EAAE,CAgE/E;AAGD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,kBAAkB,EACvB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,IAAI,CAAC,CASf;AAGD,wBAAsB,YAAY,CAChC,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -7,6 +7,8 @@ exports.droppedNote = droppedNote;
|
|
|
7
7
|
exports.unrecordableNote = unrecordableNote;
|
|
8
8
|
exports.buildRunLogEntries = buildRunLogEntries;
|
|
9
9
|
exports.flushRunLog = flushRunLog;
|
|
10
|
+
exports.logRunFailed = logRunFailed;
|
|
11
|
+
const crypto_1 = require("crypto");
|
|
10
12
|
const integration_log_interface_1 = require("../interfaces/integration-log.interface");
|
|
11
13
|
const helpers_1 = require("../utils/helpers");
|
|
12
14
|
const constants_1 = require("../constants");
|
|
@@ -139,9 +141,26 @@ function buildRunLogEntries(args) {
|
|
|
139
141
|
}
|
|
140
142
|
// Logging must never break a sync, so a failed flush only counts a metric and logs.
|
|
141
143
|
async function flushRunLog(ctx, entries, flowId) {
|
|
142
|
-
|
|
144
|
+
try {
|
|
145
|
+
await ctx.integrationLogClient.create(entries);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
143
148
|
ctx.metrics.counter('run_log.flush_failed', 1, { integrationType: ctx.integrationType });
|
|
144
149
|
ctx.logger.error(`run_log_flush_failed: flowId=${flowId} error="${err instanceof Error ? err.message : String(err)}"`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// For failures before SyncRunner starts. Never throws, so the caller can rethrow its own error.
|
|
153
|
+
async function logRunFailed(ctx, flowId, source, reason) {
|
|
154
|
+
const entries = buildRunLogEntries({
|
|
155
|
+
integrationType: ctx.integrationType,
|
|
156
|
+
flowId,
|
|
157
|
+
executionId: (0, crypto_1.randomUUID)(),
|
|
158
|
+
source,
|
|
159
|
+
durationMs: 0,
|
|
160
|
+
summary: { succeeded: 0, filtered: 0, skipped: 0, failed: 1, dlqWrites: 0 },
|
|
161
|
+
summaryMessage: `Run failed: ${reason}`,
|
|
162
|
+
jobRunId: ctx.jobRunId,
|
|
145
163
|
});
|
|
164
|
+
await flushRunLog(ctx, entries, flowId);
|
|
146
165
|
}
|
|
147
166
|
//# sourceMappingURL=run-log-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log-builder.js","sourceRoot":"","sources":["../../src/services/run-log-builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"run-log-builder.js","sourceRoot":"","sources":["../../src/services/run-log-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,8 @@ export declare function jobIntervalToMinutes(args: {
|
|
|
46
46
|
* a name that slugs to empty.
|
|
47
47
|
*/
|
|
48
48
|
export declare function buildJobArtifactName(integrationType: string, jobName: string): string;
|
|
49
|
+
/** True when `name` is a name `buildJobArtifactName` could build for this integration type. */
|
|
50
|
+
export declare function isJobArtifactName(integrationType: string, name: string): boolean;
|
|
49
51
|
/**
|
|
50
52
|
* GraphQL selection-set fragment for the triggered action's `action.query`.
|
|
51
53
|
* ES executes this against the Skedulo schema and POSTs the result as the
|
|
@@ -111,6 +113,7 @@ export declare function buildTriggeredActionArtifact(opts: BuildTriggeredActionO
|
|
|
111
113
|
query: string;
|
|
112
114
|
};
|
|
113
115
|
};
|
|
116
|
+
export declare function isHttpNotFound(err: unknown): boolean;
|
|
114
117
|
/**
|
|
115
118
|
* Idempotent upsert: try `get` then `update`; fall back to `create` only when
|
|
116
119
|
* `get` reports a 404 (not-found). Other errors (auth/validation/5xx) propagate.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-builder.d.ts","sourceRoot":"","sources":["../../src/utils/artifact-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAuB7E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEnE;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAiBjF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,eAAe,CAAC;CAChC,GAAG,MAAM,CAkBT;
|
|
1
|
+
{"version":3,"file":"artifact-builder.d.ts","sourceRoot":"","sources":["../../src/utils/artifact-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAuB7E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEnE;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAiBjF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,eAAe,CAAC;CAChC,GAAG,MAAM,CAkBT;AAMD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAerF;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQxD;AAMD,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;;;;;;;;;EAgBhE;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAqB1E;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhG"}
|
|
@@ -5,9 +5,11 @@ exports.buildArtifactName = buildArtifactName;
|
|
|
5
5
|
exports.intervalMinutesToCron = intervalMinutesToCron;
|
|
6
6
|
exports.jobIntervalToMinutes = jobIntervalToMinutes;
|
|
7
7
|
exports.buildJobArtifactName = buildJobArtifactName;
|
|
8
|
+
exports.isJobArtifactName = isJobArtifactName;
|
|
8
9
|
exports.buildSkeduloQuery = buildSkeduloQuery;
|
|
9
10
|
exports.buildJobWebhookArtifact = buildJobWebhookArtifact;
|
|
10
11
|
exports.buildTriggeredActionArtifact = buildTriggeredActionArtifact;
|
|
12
|
+
exports.isHttpNotFound = isHttpNotFound;
|
|
11
13
|
exports.upsertArtifact = upsertArtifact;
|
|
12
14
|
exports.deleteArtifactIfExists = deleteArtifactIfExists;
|
|
13
15
|
const scheduled_job_interface_1 = require("../interfaces/scheduled-job.interface");
|
|
@@ -108,6 +110,9 @@ function jobIntervalToMinutes(args) {
|
|
|
108
110
|
}
|
|
109
111
|
throw new errors_1.InvalidInputError(`interval_unit must be "minutes" or "hours"`);
|
|
110
112
|
}
|
|
113
|
+
function jobArtifactNamePrefix(integrationType) {
|
|
114
|
+
return `sked-int-${slugify(integrationType)}-job-`;
|
|
115
|
+
}
|
|
111
116
|
/**
|
|
112
117
|
* Deterministic artifact name for a scheduled job — this IS the job's
|
|
113
118
|
* `webhook_name`. Derived from the job's display name:
|
|
@@ -122,12 +127,22 @@ function buildJobArtifactName(integrationType, jobName) {
|
|
|
122
127
|
if (!slug) {
|
|
123
128
|
throw new errors_1.InvalidInputError('job name must contain at least one alphanumeric character');
|
|
124
129
|
}
|
|
125
|
-
const name =
|
|
130
|
+
const name = `${jobArtifactNamePrefix(integrationType)}${slug}`;
|
|
126
131
|
if (name.length > MAX_JOB_ARTIFACT_NAME_LENGTH) {
|
|
127
132
|
throw new errors_1.InvalidInputError(`job webhook_name would be ${name.length} characters (max ${MAX_JOB_ARTIFACT_NAME_LENGTH}): "${name}". Use a shorter job name.`);
|
|
128
133
|
}
|
|
129
134
|
return name;
|
|
130
135
|
}
|
|
136
|
+
/** True when `name` is a name `buildJobArtifactName` could build for this integration type. */
|
|
137
|
+
function isJobArtifactName(integrationType, name) {
|
|
138
|
+
const slug = name.slice(jobArtifactNamePrefix(integrationType).length);
|
|
139
|
+
try {
|
|
140
|
+
return buildJobArtifactName(integrationType, slug) === name;
|
|
141
|
+
}
|
|
142
|
+
catch (_a) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
131
146
|
/**
|
|
132
147
|
* GraphQL selection-set fragment for the triggered action's `action.query`.
|
|
133
148
|
* ES executes this against the Skedulo schema and POSTs the result as the
|
|
@@ -190,6 +205,10 @@ function buildTriggeredActionArtifact(opts) {
|
|
|
190
205
|
};
|
|
191
206
|
}
|
|
192
207
|
// ── Upsert / delete helpers ──────────────────────────────────────────────────
|
|
208
|
+
// PSS BaseClient throws Error("HTTP error! Status: 404. Response: …"); anchored so a 5xx body quoting it doesn't match.
|
|
209
|
+
function isHttpNotFound(err) {
|
|
210
|
+
return err instanceof Error && /^HTTP error! Status:\s*404\b/.test(err.message);
|
|
211
|
+
}
|
|
193
212
|
/**
|
|
194
213
|
* Idempotent upsert: try `get` then `update`; fall back to `create` only when
|
|
195
214
|
* `get` reports a 404 (not-found). Other errors (auth/validation/5xx) propagate.
|
|
@@ -204,7 +223,7 @@ async function upsertArtifact(client, name, artifact) {
|
|
|
204
223
|
catch (err) {
|
|
205
224
|
// Only treat a genuine not-found as "create"; auth/validation/5xx must
|
|
206
225
|
// surface instead of being masked as a missing artifact.
|
|
207
|
-
if (
|
|
226
|
+
if (isHttpNotFound(err)) {
|
|
208
227
|
await client.create({ name }, artifact);
|
|
209
228
|
return;
|
|
210
229
|
}
|
|
@@ -220,7 +239,7 @@ async function deleteArtifactIfExists(client, name) {
|
|
|
220
239
|
await client.delete({ name });
|
|
221
240
|
}
|
|
222
241
|
catch (err) {
|
|
223
|
-
if (
|
|
242
|
+
if (isHttpNotFound(err))
|
|
224
243
|
return;
|
|
225
244
|
throw err;
|
|
226
245
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-builder.js","sourceRoot":"","sources":["../../src/utils/artifact-builder.ts"],"names":[],"mappings":";;AA6BA,kDAEC;AAsBD,8CAiBC;AAUD,sDAUC;AAQD,oDAqBC;
|
|
1
|
+
{"version":3,"file":"artifact-builder.js","sourceRoot":"","sources":["../../src/utils/artifact-builder.ts"],"names":[],"mappings":"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"}
|