@skedulo/integration-sdk 0.3.4 → 0.4.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.
- package/CHANGELOG.md +15 -0
- package/README.md +38 -19
- package/dist/actions/action-registry.d.ts.map +1 -1
- package/dist/actions/action-registry.js +27 -23
- package/dist/actions/action-registry.js.map +1 -1
- package/dist/actions/data-flow/activate.action.d.ts +10 -0
- package/dist/actions/data-flow/activate.action.d.ts.map +1 -0
- package/dist/actions/data-flow/activate.action.js +22 -0
- package/dist/actions/data-flow/activate.action.js.map +1 -0
- package/dist/actions/data-flow/create.action.d.ts +9 -0
- package/dist/actions/data-flow/create.action.d.ts.map +1 -0
- package/dist/actions/data-flow/create.action.js +55 -0
- package/dist/actions/data-flow/create.action.js.map +1 -0
- package/dist/actions/data-flow/deactivate.action.d.ts +9 -0
- package/dist/actions/data-flow/deactivate.action.d.ts.map +1 -0
- package/dist/actions/data-flow/deactivate.action.js +21 -0
- package/dist/actions/data-flow/deactivate.action.js.map +1 -0
- package/dist/actions/data-flow/delete.action.d.ts +10 -0
- package/dist/actions/data-flow/delete.action.d.ts.map +1 -0
- package/dist/actions/data-flow/delete.action.js +33 -0
- package/dist/actions/data-flow/delete.action.js.map +1 -0
- package/dist/actions/data-flow/get.action.d.ts +5 -0
- package/dist/actions/data-flow/get.action.d.ts.map +1 -0
- package/dist/actions/data-flow/get.action.js +22 -0
- package/dist/actions/data-flow/get.action.js.map +1 -0
- package/dist/actions/data-flow/index.d.ts +9 -0
- package/dist/actions/data-flow/index.d.ts.map +1 -0
- package/dist/actions/data-flow/index.js +33 -0
- package/dist/actions/data-flow/index.js.map +1 -0
- package/dist/actions/data-flow/list.action.d.ts +6 -0
- package/dist/actions/data-flow/list.action.d.ts.map +1 -0
- package/dist/actions/data-flow/list.action.js +25 -0
- package/dist/actions/data-flow/list.action.js.map +1 -0
- package/dist/actions/data-flow/shared.d.ts +3 -0
- package/dist/actions/data-flow/shared.d.ts.map +1 -0
- package/dist/actions/data-flow/shared.js +16 -0
- package/dist/actions/data-flow/shared.js.map +1 -0
- package/dist/actions/data-flow/types.d.ts +21 -0
- package/dist/actions/data-flow/types.d.ts.map +1 -0
- package/dist/actions/data-flow/types.js +3 -0
- package/dist/actions/data-flow/types.js.map +1 -0
- package/dist/actions/data-flow/update.action.d.ts +16 -0
- package/dist/actions/data-flow/update.action.d.ts.map +1 -0
- package/dist/actions/data-flow/update.action.js +62 -0
- package/dist/actions/data-flow/update.action.js.map +1 -0
- package/dist/actions/data-flow.action.d.ts.map +1 -1
- package/dist/actions/data-flow.action.js +5 -9
- package/dist/actions/data-flow.action.js.map +1 -1
- package/dist/actions/event/index.d.ts +4 -0
- package/dist/actions/event/index.d.ts.map +1 -0
- package/dist/actions/event/index.js +23 -0
- package/dist/actions/event/index.js.map +1 -0
- package/dist/actions/event/on-skedulo.action.d.ts +4 -0
- package/dist/actions/event/on-skedulo.action.d.ts.map +1 -0
- package/dist/actions/event/on-skedulo.action.js +81 -0
- package/dist/actions/event/on-skedulo.action.js.map +1 -0
- package/dist/actions/event/on-vendor.action.d.ts +4 -0
- package/dist/actions/event/on-vendor.action.d.ts.map +1 -0
- package/dist/actions/event/on-vendor.action.js +39 -0
- package/dist/actions/event/on-vendor.action.js.map +1 -0
- package/dist/actions/event/types.d.ts +28 -0
- package/dist/actions/event/types.d.ts.map +1 -0
- package/dist/actions/event/types.js +3 -0
- package/dist/actions/event/types.js.map +1 -0
- package/dist/actions/metadata/get-fields.action.d.ts +5 -0
- package/dist/actions/metadata/get-fields.action.d.ts.map +1 -0
- package/dist/actions/metadata/get-fields.action.js +26 -0
- package/dist/actions/metadata/get-fields.action.js.map +1 -0
- package/dist/actions/metadata/get-objects.action.d.ts +5 -0
- package/dist/actions/metadata/get-objects.action.d.ts.map +1 -0
- package/dist/actions/metadata/get-objects.action.js +18 -0
- package/dist/actions/metadata/get-objects.action.js.map +1 -0
- package/dist/actions/metadata/get-sample-apis.action.d.ts +5 -0
- package/dist/actions/metadata/get-sample-apis.action.d.ts.map +1 -0
- package/dist/actions/metadata/get-sample-apis.action.js +19 -0
- package/dist/actions/metadata/get-sample-apis.action.js.map +1 -0
- package/dist/actions/metadata/get-sample-records.action.d.ts +5 -0
- package/dist/actions/metadata/get-sample-records.action.d.ts.map +1 -0
- package/dist/actions/metadata/get-sample-records.action.js +33 -0
- package/dist/actions/metadata/get-sample-records.action.js.map +1 -0
- package/dist/actions/metadata/get-templates.action.d.ts +5 -0
- package/dist/actions/metadata/get-templates.action.d.ts.map +1 -0
- package/dist/actions/metadata/get-templates.action.js +19 -0
- package/dist/actions/metadata/get-templates.action.js.map +1 -0
- package/dist/actions/metadata/index.d.ts +7 -0
- package/dist/actions/metadata/index.d.ts.map +1 -0
- package/dist/actions/metadata/index.js +29 -0
- package/dist/actions/metadata/index.js.map +1 -0
- package/dist/actions/metadata/shared.d.ts +6 -0
- package/dist/actions/metadata/shared.d.ts.map +1 -0
- package/dist/actions/metadata/shared.js +11 -0
- package/dist/actions/metadata/shared.js.map +1 -0
- package/dist/actions/metadata/types.d.ts +38 -0
- package/dist/actions/metadata/types.d.ts.map +1 -0
- package/dist/actions/metadata/types.js +3 -0
- package/dist/actions/metadata/types.js.map +1 -0
- package/dist/actions/scheduled-job/create.action.d.ts +5 -0
- package/dist/actions/scheduled-job/create.action.d.ts.map +1 -0
- package/dist/actions/scheduled-job/create.action.js +53 -0
- package/dist/actions/scheduled-job/create.action.js.map +1 -0
- package/dist/actions/scheduled-job/delete.action.d.ts +15 -0
- package/dist/actions/scheduled-job/delete.action.d.ts.map +1 -0
- package/dist/actions/scheduled-job/delete.action.js +42 -0
- package/dist/actions/scheduled-job/delete.action.js.map +1 -0
- package/dist/actions/scheduled-job/get.action.d.ts +7 -0
- package/dist/actions/scheduled-job/get.action.d.ts.map +1 -0
- package/dist/actions/scheduled-job/get.action.js +23 -0
- package/dist/actions/scheduled-job/get.action.js.map +1 -0
- package/dist/actions/scheduled-job/index.d.ts +7 -0
- package/dist/actions/scheduled-job/index.d.ts.map +1 -0
- package/dist/actions/scheduled-job/index.js +29 -0
- package/dist/actions/scheduled-job/index.js.map +1 -0
- package/dist/actions/scheduled-job/list.action.d.ts +5 -0
- package/dist/actions/scheduled-job/list.action.d.ts.map +1 -0
- package/dist/actions/scheduled-job/list.action.js +18 -0
- package/dist/actions/scheduled-job/list.action.js.map +1 -0
- package/dist/actions/scheduled-job/shared.d.ts +30 -0
- package/dist/actions/scheduled-job/shared.d.ts.map +1 -0
- package/dist/actions/scheduled-job/shared.js +129 -0
- package/dist/actions/scheduled-job/shared.js.map +1 -0
- package/dist/actions/scheduled-job/types.d.ts +23 -0
- package/dist/actions/scheduled-job/types.d.ts.map +1 -0
- package/dist/actions/scheduled-job/types.js +3 -0
- package/dist/actions/scheduled-job/types.js.map +1 -0
- package/dist/actions/scheduled-job/update.action.d.ts +5 -0
- package/dist/actions/scheduled-job/update.action.d.ts.map +1 -0
- package/dist/actions/scheduled-job/update.action.js +64 -0
- package/dist/actions/scheduled-job/update.action.js.map +1 -0
- package/dist/actions/scheduled-job.action.d.ts +73 -0
- package/dist/actions/scheduled-job.action.d.ts.map +1 -0
- package/dist/actions/scheduled-job.action.js +355 -0
- package/dist/actions/scheduled-job.action.js.map +1 -0
- package/dist/actions/setup.action.js +1 -1
- package/dist/actions/setup.action.js.map +1 -1
- package/dist/actions/sync/index.d.ts +4 -0
- package/dist/actions/sync/index.d.ts.map +1 -0
- package/dist/actions/sync/index.js +23 -0
- package/dist/actions/sync/index.js.map +1 -0
- package/dist/actions/sync/run-flow.action.d.ts +8 -0
- package/dist/actions/sync/run-flow.action.d.ts.map +1 -0
- package/dist/actions/sync/run-flow.action.js +81 -0
- package/dist/actions/sync/run-flow.action.js.map +1 -0
- package/dist/actions/sync/run-job.action.d.ts +11 -0
- package/dist/actions/sync/run-job.action.d.ts.map +1 -0
- package/dist/actions/sync/run-job.action.js +75 -0
- package/dist/actions/sync/run-job.action.js.map +1 -0
- package/dist/actions/sync/types.d.ts +41 -0
- package/dist/actions/sync/types.d.ts.map +1 -0
- package/dist/actions/sync/types.js +3 -0
- package/dist/actions/sync/types.js.map +1 -0
- package/dist/actions/sync.action.d.ts +8 -47
- package/dist/actions/sync.action.d.ts.map +1 -1
- package/dist/actions/sync.action.js +29 -162
- package/dist/actions/sync.action.js.map +1 -1
- package/dist/actions/utils/action-names.d.ts +19 -6
- package/dist/actions/utils/action-names.d.ts.map +1 -1
- package/dist/actions/utils/action-names.js +19 -6
- package/dist/actions/utils/action-names.js.map +1 -1
- package/dist/actions/utils/define-action.d.ts +36 -0
- package/dist/actions/utils/define-action.d.ts.map +1 -0
- package/dist/actions/utils/define-action.js +43 -0
- package/dist/actions/utils/define-action.js.map +1 -0
- package/dist/actions/utils/errors.d.ts +54 -8
- package/dist/actions/utils/errors.d.ts.map +1 -1
- package/dist/actions/utils/errors.js +104 -14
- package/dist/actions/utils/errors.js.map +1 -1
- package/dist/actions/utils/helpers.d.ts.map +1 -1
- package/dist/actions/utils/helpers.js +2 -1
- package/dist/actions/utils/helpers.js.map +1 -1
- package/dist/actions/utils/metrics.d.ts +12 -0
- package/dist/actions/utils/metrics.d.ts.map +1 -0
- package/dist/actions/utils/metrics.js +12 -0
- package/dist/actions/utils/metrics.js.map +1 -0
- package/dist/actions/utils/middleware.d.ts +39 -0
- package/dist/actions/utils/middleware.d.ts.map +1 -0
- package/dist/actions/utils/middleware.js +85 -0
- package/dist/actions/utils/middleware.js.map +1 -0
- package/dist/actions/utils/types.d.ts +5 -4
- package/dist/actions/utils/types.d.ts.map +1 -1
- package/dist/adapters/base-adapter-handler.d.ts +10 -0
- package/dist/adapters/base-adapter-handler.d.ts.map +1 -1
- package/dist/adapters/base-adapter-handler.js +18 -34
- package/dist/adapters/base-adapter-handler.js.map +1 -1
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +3 -1
- package/dist/browser.js.map +1 -1
- package/dist/clients/integration-config.client.d.ts +21 -0
- package/dist/clients/integration-config.client.d.ts.map +1 -0
- package/dist/clients/integration-config.client.js +44 -0
- package/dist/clients/integration-config.client.js.map +1 -0
- package/dist/context.d.ts +18 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +21 -5
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/data-flow-spec.interface.d.ts +14 -21
- package/dist/interfaces/data-flow-spec.interface.d.ts.map +1 -1
- package/dist/interfaces/data-flow-spec.interface.js +10 -26
- package/dist/interfaces/data-flow-spec.interface.js.map +1 -1
- package/dist/interfaces/integration-capabilities.interface.d.ts +2 -2
- package/dist/interfaces/scheduled-job.interface.d.ts +40 -0
- package/dist/interfaces/scheduled-job.interface.d.ts.map +1 -0
- package/dist/interfaces/scheduled-job.interface.js +38 -0
- package/dist/interfaces/scheduled-job.interface.js.map +1 -0
- package/dist/services/dataflow.service.d.ts +13 -6
- package/dist/services/dataflow.service.d.ts.map +1 -1
- package/dist/services/dataflow.service.js +34 -57
- package/dist/services/dataflow.service.js.map +1 -1
- package/dist/services/sync-runner.d.ts +1 -0
- package/dist/services/sync-runner.d.ts.map +1 -1
- package/dist/services/sync-runner.js +7 -27
- package/dist/services/sync-runner.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/artifact-builder.d.ts +40 -15
- package/dist/utils/artifact-builder.d.ts.map +1 -1
- package/dist/utils/artifact-builder.js +92 -17
- package/dist/utils/artifact-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,51 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TriggerType = exports.SyncStrategy = void 0;
|
|
4
4
|
exports.asSyncConfig = asSyncConfig;
|
|
5
5
|
/**
|
|
6
|
-
* How a data flow's sync is triggered.
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - `realtime` — event-driven (triggered action on Skedulo change, or vendor webhook).
|
|
6
|
+
* How a data flow's sync is triggered. As of Phase 2 the only per-flow strategy
|
|
7
|
+
* is `realtime` (event-driven). Scheduled syncs are no longer per-flow — they
|
|
8
|
+
* are integration-level **scheduled jobs** (see `scheduled-job.interface.ts`),
|
|
9
|
+
* so a batch-only flow carries no `sync_config` at all.
|
|
11
10
|
*/
|
|
12
11
|
exports.SyncStrategy = {
|
|
13
|
-
SCHEDULED: 'scheduled',
|
|
14
12
|
REALTIME: 'realtime',
|
|
15
13
|
};
|
|
16
14
|
/** Kind of Skedulo-side artifact the SDK provisions for a flow. */
|
|
17
15
|
exports.TriggerType = {
|
|
18
|
-
WEBHOOK: 'webhook',
|
|
19
16
|
TRIGGERED_ACTION: 'triggered_action',
|
|
20
17
|
};
|
|
21
18
|
/**
|
|
22
19
|
* Narrow a loosely typed `triggerConfig` JSONB value into a `SyncConfig`.
|
|
23
20
|
*
|
|
24
|
-
* Reads the canonical `{ sync_config: { strategy,
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* `interval_minutes`.
|
|
21
|
+
* Reads the canonical `{ sync_config: { strategy, ... } }` shape. Returns `null`
|
|
22
|
+
* for `null`/`undefined` input, a missing/non-object `sync_config`, or any
|
|
23
|
+
* strategy other than `realtime` (batch-only flows have no `sync_config`).
|
|
28
24
|
*/
|
|
29
25
|
function asSyncConfig(value) {
|
|
30
26
|
const nested = value === null || value === void 0 ? void 0 : value.sync_config;
|
|
31
27
|
if (!nested || typeof nested !== 'object')
|
|
32
28
|
return null;
|
|
33
|
-
|
|
34
|
-
const strategy = strategyRaw === exports.SyncStrategy.SCHEDULED
|
|
35
|
-
? exports.SyncStrategy.SCHEDULED
|
|
36
|
-
: strategyRaw === exports.SyncStrategy.REALTIME
|
|
37
|
-
? exports.SyncStrategy.REALTIME
|
|
38
|
-
: null;
|
|
39
|
-
if (!strategy)
|
|
29
|
+
if (nested.strategy !== exports.SyncStrategy.REALTIME)
|
|
40
30
|
return null;
|
|
41
|
-
const sc = { strategy };
|
|
42
|
-
if (strategy === exports.SyncStrategy.SCHEDULED) {
|
|
43
|
-
if (typeof nested.interval_minutes !== 'number')
|
|
44
|
-
return null;
|
|
45
|
-
sc.interval_minutes = nested.interval_minutes;
|
|
46
|
-
}
|
|
31
|
+
const sc = { strategy: exports.SyncStrategy.REALTIME };
|
|
47
32
|
if (typeof nested.trigger_name === 'string')
|
|
48
33
|
sc.trigger_name = nested.trigger_name;
|
|
49
|
-
if (nested.trigger_type === exports.TriggerType.
|
|
50
|
-
nested.trigger_type === exports.TriggerType.TRIGGERED_ACTION) {
|
|
34
|
+
if (nested.trigger_type === exports.TriggerType.TRIGGERED_ACTION) {
|
|
51
35
|
sc.trigger_type = nested.trigger_type;
|
|
52
36
|
}
|
|
53
37
|
return sc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-flow-spec.interface.js","sourceRoot":"","sources":["../../src/interfaces/data-flow-spec.interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"data-flow-spec.interface.js","sourceRoot":"","sources":["../../src/interfaces/data-flow-spec.interface.ts"],"names":[],"mappings":";;;AAiDA,oCAYC;AA1DD;;;;;GAKG;AACU,QAAA,YAAY,GAAG;IAC1B,QAAQ,EAAE,UAAU;CACZ,CAAC;AAGX,mEAAmE;AACtD,QAAA,WAAW,GAAG;IACzB,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAyBX;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,KAAiD;IAC5E,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAkD,CAAC;IACzE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEvD,IAAI,MAAM,CAAC,QAAQ,KAAK,oBAAY,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,EAAE,GAAe,EAAE,QAAQ,EAAE,oBAAY,CAAC,QAAQ,EAAE,CAAC;IAC3D,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;QAAE,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACnF,IAAI,MAAM,CAAC,YAAY,KAAK,mBAAW,CAAC,gBAAgB,EAAE,CAAC;QACzD,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -20,8 +20,8 @@ export interface IntegrationCapabilities {
|
|
|
20
20
|
*
|
|
21
21
|
* - outbound = Skedulo → this vendor (this integration is the TARGET).
|
|
22
22
|
* Default when omitted: true if the adapter advertises a TARGET role.
|
|
23
|
-
* The SDK creates a Skedulo triggered action that calls the
|
|
24
|
-
*
|
|
23
|
+
* The SDK creates a Skedulo triggered action that calls the dispatcher
|
|
24
|
+
* with the `event.on-skedulo` action when a Skedulo record changes.
|
|
25
25
|
*
|
|
26
26
|
* - inbound = this vendor → Skedulo (this integration is the SOURCE).
|
|
27
27
|
* Default when omitted: false. Requires the adapter to implement
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration-level scheduled jobs (Phase 2). A job drives an ES scheduled
|
|
3
|
+
* webhook that fires `sync.run-job`, which runs the job's `flow_ids` in order.
|
|
4
|
+
* Job config lives in the `config` JSONB column on `tenant_integration` (IS),
|
|
5
|
+
* which the SDK treats as `IntegrationConfig`.
|
|
6
|
+
*/
|
|
7
|
+
/** Interval unit for a scheduled job. */
|
|
8
|
+
export declare const JobIntervalUnit: {
|
|
9
|
+
readonly MINUTES: "minutes";
|
|
10
|
+
readonly HOURS: "hours";
|
|
11
|
+
};
|
|
12
|
+
export type JobIntervalUnit = (typeof JobIntervalUnit)[keyof typeof JobIntervalUnit];
|
|
13
|
+
/**
|
|
14
|
+
* One scheduled job (snake_case, persisted in `tenant_integration.config`).
|
|
15
|
+
*
|
|
16
|
+
* `webhook_name` is the job's identity — both the config lookup key and the ES
|
|
17
|
+
* artifact name. It is derived from `name` on create and then immutable
|
|
18
|
+
* (renaming `name` keeps the original `webhook_name`).
|
|
19
|
+
*/
|
|
20
|
+
export interface ScheduledJob {
|
|
21
|
+
/** Identity + ES artifact name, e.g. `sked-int-hubspot-job-nightly-crm`. */
|
|
22
|
+
webhook_name: string;
|
|
23
|
+
/** User-facing label (renamable). */
|
|
24
|
+
name: string;
|
|
25
|
+
interval_value: number;
|
|
26
|
+
interval_unit: JobIntervalUnit;
|
|
27
|
+
/** ORDERED list of flow ids; unique across all jobs (J5). */
|
|
28
|
+
flow_ids: number[];
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
}
|
|
31
|
+
/** Opaque `tenant_integration.config` shape the SDK owns. */
|
|
32
|
+
export interface IntegrationConfig {
|
|
33
|
+
scheduled_jobs: ScheduledJob[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Narrow a loosely typed `config` JSONB value into an `IntegrationConfig`.
|
|
37
|
+
* Returns `{ scheduled_jobs: [] }` for null/garbage; drops malformed job entries.
|
|
38
|
+
*/
|
|
39
|
+
export declare function asIntegrationConfig(value: Record<string, unknown> | null | undefined): IntegrationConfig;
|
|
40
|
+
//# sourceMappingURL=scheduled-job.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-job.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/scheduled-job.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yCAAyC;AACzC,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,eAAe,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAChD,iBAAiB,CAInB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Integration-level scheduled jobs (Phase 2). A job drives an ES scheduled
|
|
4
|
+
* webhook that fires `sync.run-job`, which runs the job's `flow_ids` in order.
|
|
5
|
+
* Job config lives in the `config` JSONB column on `tenant_integration` (IS),
|
|
6
|
+
* which the SDK treats as `IntegrationConfig`.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.JobIntervalUnit = void 0;
|
|
10
|
+
exports.asIntegrationConfig = asIntegrationConfig;
|
|
11
|
+
/** Interval unit for a scheduled job. */
|
|
12
|
+
exports.JobIntervalUnit = {
|
|
13
|
+
MINUTES: 'minutes',
|
|
14
|
+
HOURS: 'hours',
|
|
15
|
+
};
|
|
16
|
+
function isScheduledJob(value) {
|
|
17
|
+
if (!value || typeof value !== 'object')
|
|
18
|
+
return false;
|
|
19
|
+
const j = value;
|
|
20
|
+
return (typeof j.webhook_name === 'string' &&
|
|
21
|
+
typeof j.name === 'string' &&
|
|
22
|
+
typeof j.interval_value === 'number' &&
|
|
23
|
+
(j.interval_unit === exports.JobIntervalUnit.MINUTES || j.interval_unit === exports.JobIntervalUnit.HOURS) &&
|
|
24
|
+
Array.isArray(j.flow_ids) &&
|
|
25
|
+
j.flow_ids.every((id) => Number.isInteger(id)) &&
|
|
26
|
+
typeof j.enabled === 'boolean');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Narrow a loosely typed `config` JSONB value into an `IntegrationConfig`.
|
|
30
|
+
* Returns `{ scheduled_jobs: [] }` for null/garbage; drops malformed job entries.
|
|
31
|
+
*/
|
|
32
|
+
function asIntegrationConfig(value) {
|
|
33
|
+
const jobs = value === null || value === void 0 ? void 0 : value.scheduled_jobs;
|
|
34
|
+
if (!Array.isArray(jobs))
|
|
35
|
+
return { scheduled_jobs: [] };
|
|
36
|
+
return { scheduled_jobs: jobs.filter(isScheduledJob) };
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=scheduled-job.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-job.interface.js","sourceRoot":"","sources":["../../src/interfaces/scheduled-job.interface.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAmDH,kDAMC;AAvDD,yCAAyC;AAC5B,QAAA,eAAe,GAAG;IAC7B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACN,CAAC;AA2BX,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,CACL,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;QAClC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ;QACpC,CAAC,CAAC,CAAC,aAAa,KAAK,uBAAe,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,KAAK,uBAAe,CAAC,KAAK,CAAC;QAC1F,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CAC/B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,KAAiD;IAEjD,MAAM,IAAI,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACxD,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -22,15 +22,22 @@ export declare class DataFlowService {
|
|
|
22
22
|
update(id: number, patch: UpdateDataFlowPatch): Promise<DataFlow>;
|
|
23
23
|
delete(id: number): Promise<void>;
|
|
24
24
|
/**
|
|
25
|
-
* Idempotent activate.
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
25
|
+
* Idempotent activate.
|
|
26
|
+
*
|
|
27
|
+
* Realtime flows (those carrying a `sync_config`) get a triggered action,
|
|
28
|
+
* two-phase fail-closed:
|
|
29
|
+
* 1. Upsert the triggered action under a deterministic name.
|
|
30
|
+
* 2. PATCH `triggerConfig.sync_config` (records the artifact), then mark ACTIVE.
|
|
31
|
+
* If step 2 fails the artifact is compensatingly deleted.
|
|
32
|
+
*
|
|
33
|
+
* Batch-only flows (no `sync_config` — they're driven by integration-level
|
|
34
|
+
* scheduled jobs, not a per-flow artifact) are just marked ACTIVE on IS.
|
|
29
35
|
*/
|
|
30
36
|
activate(id: number, ctx: IntegrationContext): Promise<DataFlow>;
|
|
31
37
|
/**
|
|
32
|
-
* Inverse of `activate`.
|
|
33
|
-
*
|
|
38
|
+
* Inverse of `activate`. For a realtime flow, deletes the triggered action
|
|
39
|
+
* (404-tolerant) and clears the artifact reference from `sync_config`. Always
|
|
40
|
+
* transitions IS to INACTIVE.
|
|
34
41
|
*/
|
|
35
42
|
deactivate(id: number, ctx: IntegrationContext): Promise<DataFlow>;
|
|
36
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.service.d.ts","sourceRoot":"","sources":["../../src/services/dataflow.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"dataflow.service.d.ts","sourceRoot":"","sources":["../../src/services/dataflow.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,wCAAwC,CAAC;AAUhD,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE7C,gBAAgB,CAAC,IAAI,EAAE;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAajB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIjD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,UAAU,CAAC,MAAM,EAAE;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAajB,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIhE,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIjE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyDtE;;;;OAIG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;CA4BzE"}
|
|
@@ -13,18 +13,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.DataFlowService = void 0;
|
|
15
15
|
const pulse_solution_services_1 = require("@skedulo/pulse-solution-services");
|
|
16
|
-
const action_names_1 = require("../actions/utils/action-names");
|
|
17
16
|
const errors_1 = require("../actions/utils/errors");
|
|
18
17
|
const constants_1 = require("../constants");
|
|
19
18
|
const data_flow_spec_interface_1 = require("../interfaces/data-flow-spec.interface");
|
|
20
19
|
const artifact_builder_1 = require("../utils/artifact-builder");
|
|
21
|
-
/**
|
|
22
|
-
* The `{{ SKEDULO_API_URL }}` token is substituted with the tenant API host by the
|
|
23
|
-
* platform when the artifact fires.
|
|
24
|
-
*/
|
|
25
|
-
function functionCallbackUrl(integrationType) {
|
|
26
|
-
return `{{ SKEDULO_API_URL }}/function/${integrationType}/${integrationType}`;
|
|
27
|
-
}
|
|
28
20
|
class DataFlowService {
|
|
29
21
|
constructor(client) {
|
|
30
22
|
this.client = client;
|
|
@@ -73,20 +65,29 @@ class DataFlowService {
|
|
|
73
65
|
await this.client.delete(id);
|
|
74
66
|
}
|
|
75
67
|
/**
|
|
76
|
-
* Idempotent activate.
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
68
|
+
* Idempotent activate.
|
|
69
|
+
*
|
|
70
|
+
* Realtime flows (those carrying a `sync_config`) get a triggered action,
|
|
71
|
+
* two-phase fail-closed:
|
|
72
|
+
* 1. Upsert the triggered action under a deterministic name.
|
|
73
|
+
* 2. PATCH `triggerConfig.sync_config` (records the artifact), then mark ACTIVE.
|
|
74
|
+
* If step 2 fails the artifact is compensatingly deleted.
|
|
75
|
+
*
|
|
76
|
+
* Batch-only flows (no `sync_config` — they're driven by integration-level
|
|
77
|
+
* scheduled jobs, not a per-flow artifact) are just marked ACTIVE on IS.
|
|
80
78
|
*/
|
|
81
79
|
async activate(id, ctx) {
|
|
82
|
-
var _a
|
|
80
|
+
var _a;
|
|
83
81
|
const flow = await this.client.getById(id);
|
|
84
82
|
if (!flow) {
|
|
85
|
-
throw new errors_1.
|
|
83
|
+
throw new errors_1.NotFoundError('FLOW_NOT_FOUND', `Flow ${id} not found`);
|
|
86
84
|
}
|
|
87
85
|
const sc = (0, data_flow_spec_interface_1.asSyncConfig)((_a = flow.triggerConfig) !== null && _a !== void 0 ? _a : null);
|
|
86
|
+
// Batch-only flow: no artifact to provision — scheduled jobs drive these.
|
|
88
87
|
if (!sc) {
|
|
89
|
-
|
|
88
|
+
await this.client.activate(id);
|
|
89
|
+
const updated = await this.client.getById(id);
|
|
90
|
+
return updated !== null && updated !== void 0 ? updated : flow;
|
|
90
91
|
}
|
|
91
92
|
if (sc.trigger_name) {
|
|
92
93
|
// Already provisioned — just (re)activate on IS.
|
|
@@ -95,42 +96,20 @@ class DataFlowService {
|
|
|
95
96
|
return updated !== null && updated !== void 0 ? updated : flow;
|
|
96
97
|
}
|
|
97
98
|
const name = (0, artifact_builder_1.buildArtifactName)(flow, ctx.integrationType);
|
|
98
|
-
const url = functionCallbackUrl(ctx.integrationType);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
artifactType = pulse_solution_services_1.ArtifactType.WEBHOOK;
|
|
108
|
-
artifact = (0, artifact_builder_1.buildScheduledWebhookArtifact)({
|
|
109
|
-
name,
|
|
110
|
-
url,
|
|
111
|
-
cron: (0, artifact_builder_1.intervalMinutesToCron)((_b = sc.interval_minutes) !== null && _b !== void 0 ? _b : 0),
|
|
112
|
-
action: isOutbound ? action_names_1.ACTIONS.sync.push : action_names_1.ACTIONS.sync.scheduledPull,
|
|
113
|
-
dataFlowId: flow.id,
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
kind = data_flow_spec_interface_1.TriggerType.TRIGGERED_ACTION;
|
|
118
|
-
artifactType = pulse_solution_services_1.ArtifactType.TRIGGERED_ACTION;
|
|
119
|
-
artifact = (0, artifact_builder_1.buildTriggeredActionArtifact)({
|
|
120
|
-
name,
|
|
121
|
-
url,
|
|
122
|
-
schemaName: flow.sourceObject,
|
|
123
|
-
query: (0, artifact_builder_1.buildSkeduloQuery)(flow),
|
|
124
|
-
dataFlowId: flow.id,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
const client = ctx.newArtifactClient(artifactType);
|
|
99
|
+
const url = (0, artifact_builder_1.functionCallbackUrl)(ctx.integrationType);
|
|
100
|
+
const artifact = (0, artifact_builder_1.buildTriggeredActionArtifact)({
|
|
101
|
+
name,
|
|
102
|
+
url,
|
|
103
|
+
schemaName: flow.sourceObject,
|
|
104
|
+
query: (0, artifact_builder_1.buildSkeduloQuery)(flow),
|
|
105
|
+
dataFlowId: flow.id,
|
|
106
|
+
});
|
|
107
|
+
const client = ctx.newArtifactClient(pulse_solution_services_1.ArtifactType.TRIGGERED_ACTION);
|
|
128
108
|
await (0, artifact_builder_1.upsertArtifact)(client, name, artifact);
|
|
129
109
|
try {
|
|
130
|
-
// Clean replacement — never merge legacy top-level keys back in.
|
|
131
|
-
// write is also the lazy migration of pre-rename rows.
|
|
110
|
+
// Clean replacement — never merge legacy top-level keys back in.
|
|
132
111
|
const nextTriggerConfig = {
|
|
133
|
-
sync_config: Object.assign(Object.assign({}, sc), { trigger_name: name, trigger_type:
|
|
112
|
+
sync_config: Object.assign(Object.assign({}, sc), { trigger_name: name, trigger_type: data_flow_spec_interface_1.TriggerType.TRIGGERED_ACTION }),
|
|
134
113
|
};
|
|
135
114
|
await this.client.update(id, {
|
|
136
115
|
triggerConfig: nextTriggerConfig,
|
|
@@ -141,7 +120,7 @@ class DataFlowService {
|
|
|
141
120
|
try {
|
|
142
121
|
await (0, artifact_builder_1.deleteArtifactIfExists)(client, name);
|
|
143
122
|
}
|
|
144
|
-
catch (
|
|
123
|
+
catch (_b) {
|
|
145
124
|
// best-effort compensating delete; surface the original error
|
|
146
125
|
}
|
|
147
126
|
throw err;
|
|
@@ -150,26 +129,24 @@ class DataFlowService {
|
|
|
150
129
|
return updated !== null && updated !== void 0 ? updated : flow;
|
|
151
130
|
}
|
|
152
131
|
/**
|
|
153
|
-
* Inverse of `activate`.
|
|
154
|
-
*
|
|
132
|
+
* Inverse of `activate`. For a realtime flow, deletes the triggered action
|
|
133
|
+
* (404-tolerant) and clears the artifact reference from `sync_config`. Always
|
|
134
|
+
* transitions IS to INACTIVE.
|
|
155
135
|
*/
|
|
156
136
|
async deactivate(id, ctx) {
|
|
157
137
|
var _a;
|
|
158
138
|
const flow = await this.client.getById(id);
|
|
159
139
|
if (!flow) {
|
|
160
|
-
throw new errors_1.
|
|
140
|
+
throw new errors_1.NotFoundError('FLOW_NOT_FOUND', `Flow ${id} not found`);
|
|
161
141
|
}
|
|
162
142
|
const sc = (0, data_flow_spec_interface_1.asSyncConfig)((_a = flow.triggerConfig) !== null && _a !== void 0 ? _a : null);
|
|
163
143
|
if (sc === null || sc === void 0 ? void 0 : sc.trigger_name) {
|
|
164
|
-
const
|
|
165
|
-
? pulse_solution_services_1.ArtifactType.WEBHOOK
|
|
166
|
-
: pulse_solution_services_1.ArtifactType.TRIGGERED_ACTION;
|
|
167
|
-
const client = ctx.newArtifactClient(artifactType);
|
|
144
|
+
const client = ctx.newArtifactClient(pulse_solution_services_1.ArtifactType.TRIGGERED_ACTION);
|
|
168
145
|
await (0, artifact_builder_1.deleteArtifactIfExists)(client, sc.trigger_name);
|
|
169
146
|
}
|
|
170
147
|
await this.client.deactivate(id);
|
|
171
148
|
if (sc) {
|
|
172
|
-
// Clean replacement: drop trigger_name/trigger_type, keep strategy
|
|
149
|
+
// Clean replacement: drop trigger_name/trigger_type, keep strategy.
|
|
173
150
|
const { trigger_name: _n, trigger_type: _t } = sc, rest = __rest(sc, ["trigger_name", "trigger_type"]);
|
|
174
151
|
void _n;
|
|
175
152
|
void _t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.service.js","sourceRoot":"","sources":["../../src/services/dataflow.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8EAAgE;AAQhE,
|
|
1
|
+
{"version":3,"file":"dataflow.service.js","sourceRoot":"","sources":["../../src/services/dataflow.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner.d.ts","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-runner.d.ts","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;CAI1D;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAI/B,QAAQ,CAAC,EAAE,eAAe;IAItC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ9C,GAAG,CACP,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QAInB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,EACD,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,WAAW,CAAC;IAgEjB,WAAW,CACf,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE,EACtD,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,UAAU,EAAE,CAAC;IA8BlB,eAAe,CACnB,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE,EACtE,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,UAAU,CAAC;YASR,iBAAiB;IAqB/B,OAAO,CAAC,QAAQ;CAejB"}
|
|
@@ -7,30 +7,9 @@ const external_id_sync_strategy_1 = require("./external-id-sync.strategy");
|
|
|
7
7
|
const id_mapping_sync_strategy_1 = require("./id-mapping-sync.strategy");
|
|
8
8
|
const id_mapping_service_1 = require("./id-mapping.service");
|
|
9
9
|
const sync_service_1 = require("./sync.service");
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// - Adapter registration (keyed by system name, e.g. 'hubspot', 'skedulo')
|
|
14
|
-
// - Flow fetch by ID or by filter (for event-driven paths)
|
|
15
|
-
// - Adapter resolution from flow.sourceSystem / flow.targetSystem
|
|
16
|
-
// - Strategy creation based on SyncRunOptions.lookupStrategy
|
|
17
|
-
// - Delegation to SyncService for the actual pipeline
|
|
18
|
-
//
|
|
19
|
-
// Integration packages register their adapters at startup, then call
|
|
20
|
-
// run() or handleEvent() with minimal info (flowId or MappedEvent).
|
|
21
|
-
//
|
|
22
|
-
// runner = new SyncRunner()
|
|
23
|
-
// runner.register('hubspot', new HubSpotAdapter())
|
|
24
|
-
// runner.register('skedulo', new SkeduloAdapter())
|
|
25
|
-
//
|
|
26
|
-
// // Scheduled / Run Now (ExternalId strategy — default):
|
|
27
|
-
// await runner.run({ flowId, since }, ctx)
|
|
28
|
-
//
|
|
29
|
-
// // Scheduled / Run Now (IdMapping strategy):
|
|
30
|
-
// await runner.run({ flowId, since, options: { lookupStrategy: 'idMapping' } }, ctx)
|
|
31
|
-
//
|
|
32
|
-
// // Event-driven:
|
|
33
|
-
// await runner.handleEvent({ event, options: { lookupStrategy: 'idMapping' } }, ctx)
|
|
10
|
+
// High-level entry point: resolves adapters and a strategy from the flow, then
|
|
11
|
+
// delegates to SyncService. `run()` drives batch/scheduled syncs; `handleEvent`
|
|
12
|
+
// and `handleFlowEvent` drive event-driven ones.
|
|
34
13
|
class AdapterRoleError extends Error {
|
|
35
14
|
constructor(systemName, requiredRole) {
|
|
36
15
|
super(`adapter "${systemName}" does not support role: "${requiredRole}"`);
|
|
@@ -69,10 +48,11 @@ class SyncRunner {
|
|
|
69
48
|
const source = this._resolve((_b = (_a = flow.sourceSystem) !== null && _a !== void 0 ? _a : args.sourceSystem) !== null && _b !== void 0 ? _b : null, constants_1.AdapterRole.SOURCE);
|
|
70
49
|
const target = this._resolve((_d = (_c = flow.targetSystem) !== null && _c !== void 0 ? _c : args.targetSystem) !== null && _d !== void 0 ? _d : null, constants_1.AdapterRole.TARGET);
|
|
71
50
|
const strategy = createSyncStrategy((_e = args.options) !== null && _e !== void 0 ? _e : {}, ctx);
|
|
72
|
-
// Cursor computation:
|
|
73
|
-
//
|
|
51
|
+
// Cursor computation: an explicit overrideSince (manual backfill) wins;
|
|
52
|
+
// otherwise prefer flow.lastRunAt over caller-supplied since, and when
|
|
53
|
+
// lastRunAt is set args.since is ignored entirely.
|
|
74
54
|
const runStartedAt = new Date();
|
|
75
|
-
const lastRunAt = (_f = flow.lastRunAt) !== null && _f !== void 0 ? _f : args.since;
|
|
55
|
+
const lastRunAt = args.overrideSince !== undefined ? args.overrideSince : ((_f = flow.lastRunAt) !== null && _f !== void 0 ? _f : args.since);
|
|
76
56
|
const overlapMs = (_h = (_g = args.options) === null || _g === void 0 ? void 0 : _g.cursorOverlapMs) !== null && _h !== void 0 ? _h : 60000;
|
|
77
57
|
const effectiveCursor = lastRunAt ? new Date(lastRunAt.getTime() - overlapMs) : null; // null = full sync (no prior run)
|
|
78
58
|
const result = await new sync_service_1.SyncService(source, target, strategy).run({ flow, since: effectiveCursor }, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner.js","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":";;;AACA,4CAA2D;AAM3D,mEAA+D;AAC/D,2EAAqE;AACrE,yEAAmE;AACnE,6DAAwD;AACxD,iDAA6C;AAE7C
|
|
1
|
+
{"version":3,"file":"sync-runner.js","sourceRoot":"","sources":["../../src/services/sync-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export type { FilterOperator, FilterOperatorOption, FilterRule, FilterSpec, } fr
|
|
|
4
4
|
export { FILTER_OPERATORS } from './interfaces/filter.interface';
|
|
5
5
|
export type { DataFlow, SyncConfig, TriggerConfig } from './interfaces/data-flow-spec.interface';
|
|
6
6
|
export { asSyncConfig, SyncStrategy, TriggerType } from './interfaces/data-flow-spec.interface';
|
|
7
|
+
export type { ScheduledJob, IntegrationConfig } from './interfaces/scheduled-job.interface';
|
|
8
|
+
export { asIntegrationConfig, JobIntervalUnit } from './interfaces/scheduled-job.interface';
|
|
7
9
|
export type { MappedEvent } from './interfaces/mapped-event.interface';
|
|
8
10
|
export type { SyncResult, BatchResult, PreviewResult } from './interfaces/sync-result.interface';
|
|
9
11
|
export type { SampleFetcher } from './interfaces/sample-fetcher.interface';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC3F,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAChG,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACjG,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,YAAY,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC3F,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAChG,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5F,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACjG,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,YAAY,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,GACb,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TriggerType = exports.SyncStrategy = exports.asSyncConfig = exports.FILTER_OPERATORS = void 0;
|
|
3
|
+
exports.JobIntervalUnit = exports.asIntegrationConfig = exports.TriggerType = exports.SyncStrategy = exports.asSyncConfig = exports.FILTER_OPERATORS = void 0;
|
|
4
4
|
var filter_interface_1 = require("./interfaces/filter.interface");
|
|
5
5
|
Object.defineProperty(exports, "FILTER_OPERATORS", { enumerable: true, get: function () { return filter_interface_1.FILTER_OPERATORS; } });
|
|
6
6
|
var data_flow_spec_interface_1 = require("./interfaces/data-flow-spec.interface");
|
|
7
7
|
Object.defineProperty(exports, "asSyncConfig", { enumerable: true, get: function () { return data_flow_spec_interface_1.asSyncConfig; } });
|
|
8
8
|
Object.defineProperty(exports, "SyncStrategy", { enumerable: true, get: function () { return data_flow_spec_interface_1.SyncStrategy; } });
|
|
9
9
|
Object.defineProperty(exports, "TriggerType", { enumerable: true, get: function () { return data_flow_spec_interface_1.TriggerType; } });
|
|
10
|
+
var scheduled_job_interface_1 = require("./interfaces/scheduled-job.interface");
|
|
11
|
+
Object.defineProperty(exports, "asIntegrationConfig", { enumerable: true, get: function () { return scheduled_job_interface_1.asIntegrationConfig; } });
|
|
12
|
+
Object.defineProperty(exports, "JobIntervalUnit", { enumerable: true, get: function () { return scheduled_job_interface_1.JobIntervalUnit; } });
|
|
10
13
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAQA,kEAAiE;AAAxD,oHAAA,gBAAgB,OAAA;AAEzB,kFAAgG;AAAvF,wHAAA,YAAY,OAAA;AAAE,wHAAA,YAAY,OAAA;AAAE,uHAAA,WAAW,OAAA"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAQA,kEAAiE;AAAxD,oHAAA,gBAAgB,OAAA;AAEzB,kFAAgG;AAAvF,wHAAA,YAAY,OAAA;AAAE,wHAAA,YAAY,OAAA;AAAE,uHAAA,WAAW,OAAA;AAEhD,gFAA4F;AAAnF,8HAAA,mBAAmB,OAAA;AAAE,0HAAA,eAAe,OAAA"}
|