@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.
Files changed (225) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +38 -19
  3. package/dist/actions/action-registry.d.ts.map +1 -1
  4. package/dist/actions/action-registry.js +27 -23
  5. package/dist/actions/action-registry.js.map +1 -1
  6. package/dist/actions/data-flow/activate.action.d.ts +10 -0
  7. package/dist/actions/data-flow/activate.action.d.ts.map +1 -0
  8. package/dist/actions/data-flow/activate.action.js +22 -0
  9. package/dist/actions/data-flow/activate.action.js.map +1 -0
  10. package/dist/actions/data-flow/create.action.d.ts +9 -0
  11. package/dist/actions/data-flow/create.action.d.ts.map +1 -0
  12. package/dist/actions/data-flow/create.action.js +55 -0
  13. package/dist/actions/data-flow/create.action.js.map +1 -0
  14. package/dist/actions/data-flow/deactivate.action.d.ts +9 -0
  15. package/dist/actions/data-flow/deactivate.action.d.ts.map +1 -0
  16. package/dist/actions/data-flow/deactivate.action.js +21 -0
  17. package/dist/actions/data-flow/deactivate.action.js.map +1 -0
  18. package/dist/actions/data-flow/delete.action.d.ts +10 -0
  19. package/dist/actions/data-flow/delete.action.d.ts.map +1 -0
  20. package/dist/actions/data-flow/delete.action.js +33 -0
  21. package/dist/actions/data-flow/delete.action.js.map +1 -0
  22. package/dist/actions/data-flow/get.action.d.ts +5 -0
  23. package/dist/actions/data-flow/get.action.d.ts.map +1 -0
  24. package/dist/actions/data-flow/get.action.js +22 -0
  25. package/dist/actions/data-flow/get.action.js.map +1 -0
  26. package/dist/actions/data-flow/index.d.ts +9 -0
  27. package/dist/actions/data-flow/index.d.ts.map +1 -0
  28. package/dist/actions/data-flow/index.js +33 -0
  29. package/dist/actions/data-flow/index.js.map +1 -0
  30. package/dist/actions/data-flow/list.action.d.ts +6 -0
  31. package/dist/actions/data-flow/list.action.d.ts.map +1 -0
  32. package/dist/actions/data-flow/list.action.js +25 -0
  33. package/dist/actions/data-flow/list.action.js.map +1 -0
  34. package/dist/actions/data-flow/shared.d.ts +3 -0
  35. package/dist/actions/data-flow/shared.d.ts.map +1 -0
  36. package/dist/actions/data-flow/shared.js +16 -0
  37. package/dist/actions/data-flow/shared.js.map +1 -0
  38. package/dist/actions/data-flow/types.d.ts +21 -0
  39. package/dist/actions/data-flow/types.d.ts.map +1 -0
  40. package/dist/actions/data-flow/types.js +3 -0
  41. package/dist/actions/data-flow/types.js.map +1 -0
  42. package/dist/actions/data-flow/update.action.d.ts +16 -0
  43. package/dist/actions/data-flow/update.action.d.ts.map +1 -0
  44. package/dist/actions/data-flow/update.action.js +62 -0
  45. package/dist/actions/data-flow/update.action.js.map +1 -0
  46. package/dist/actions/data-flow.action.d.ts.map +1 -1
  47. package/dist/actions/data-flow.action.js +5 -9
  48. package/dist/actions/data-flow.action.js.map +1 -1
  49. package/dist/actions/event/index.d.ts +4 -0
  50. package/dist/actions/event/index.d.ts.map +1 -0
  51. package/dist/actions/event/index.js +23 -0
  52. package/dist/actions/event/index.js.map +1 -0
  53. package/dist/actions/event/on-skedulo.action.d.ts +4 -0
  54. package/dist/actions/event/on-skedulo.action.d.ts.map +1 -0
  55. package/dist/actions/event/on-skedulo.action.js +81 -0
  56. package/dist/actions/event/on-skedulo.action.js.map +1 -0
  57. package/dist/actions/event/on-vendor.action.d.ts +4 -0
  58. package/dist/actions/event/on-vendor.action.d.ts.map +1 -0
  59. package/dist/actions/event/on-vendor.action.js +39 -0
  60. package/dist/actions/event/on-vendor.action.js.map +1 -0
  61. package/dist/actions/event/types.d.ts +28 -0
  62. package/dist/actions/event/types.d.ts.map +1 -0
  63. package/dist/actions/event/types.js +3 -0
  64. package/dist/actions/event/types.js.map +1 -0
  65. package/dist/actions/metadata/get-fields.action.d.ts +5 -0
  66. package/dist/actions/metadata/get-fields.action.d.ts.map +1 -0
  67. package/dist/actions/metadata/get-fields.action.js +26 -0
  68. package/dist/actions/metadata/get-fields.action.js.map +1 -0
  69. package/dist/actions/metadata/get-objects.action.d.ts +5 -0
  70. package/dist/actions/metadata/get-objects.action.d.ts.map +1 -0
  71. package/dist/actions/metadata/get-objects.action.js +18 -0
  72. package/dist/actions/metadata/get-objects.action.js.map +1 -0
  73. package/dist/actions/metadata/get-sample-apis.action.d.ts +5 -0
  74. package/dist/actions/metadata/get-sample-apis.action.d.ts.map +1 -0
  75. package/dist/actions/metadata/get-sample-apis.action.js +19 -0
  76. package/dist/actions/metadata/get-sample-apis.action.js.map +1 -0
  77. package/dist/actions/metadata/get-sample-records.action.d.ts +5 -0
  78. package/dist/actions/metadata/get-sample-records.action.d.ts.map +1 -0
  79. package/dist/actions/metadata/get-sample-records.action.js +33 -0
  80. package/dist/actions/metadata/get-sample-records.action.js.map +1 -0
  81. package/dist/actions/metadata/get-templates.action.d.ts +5 -0
  82. package/dist/actions/metadata/get-templates.action.d.ts.map +1 -0
  83. package/dist/actions/metadata/get-templates.action.js +19 -0
  84. package/dist/actions/metadata/get-templates.action.js.map +1 -0
  85. package/dist/actions/metadata/index.d.ts +7 -0
  86. package/dist/actions/metadata/index.d.ts.map +1 -0
  87. package/dist/actions/metadata/index.js +29 -0
  88. package/dist/actions/metadata/index.js.map +1 -0
  89. package/dist/actions/metadata/shared.d.ts +6 -0
  90. package/dist/actions/metadata/shared.d.ts.map +1 -0
  91. package/dist/actions/metadata/shared.js +11 -0
  92. package/dist/actions/metadata/shared.js.map +1 -0
  93. package/dist/actions/metadata/types.d.ts +38 -0
  94. package/dist/actions/metadata/types.d.ts.map +1 -0
  95. package/dist/actions/metadata/types.js +3 -0
  96. package/dist/actions/metadata/types.js.map +1 -0
  97. package/dist/actions/scheduled-job/create.action.d.ts +5 -0
  98. package/dist/actions/scheduled-job/create.action.d.ts.map +1 -0
  99. package/dist/actions/scheduled-job/create.action.js +53 -0
  100. package/dist/actions/scheduled-job/create.action.js.map +1 -0
  101. package/dist/actions/scheduled-job/delete.action.d.ts +15 -0
  102. package/dist/actions/scheduled-job/delete.action.d.ts.map +1 -0
  103. package/dist/actions/scheduled-job/delete.action.js +42 -0
  104. package/dist/actions/scheduled-job/delete.action.js.map +1 -0
  105. package/dist/actions/scheduled-job/get.action.d.ts +7 -0
  106. package/dist/actions/scheduled-job/get.action.d.ts.map +1 -0
  107. package/dist/actions/scheduled-job/get.action.js +23 -0
  108. package/dist/actions/scheduled-job/get.action.js.map +1 -0
  109. package/dist/actions/scheduled-job/index.d.ts +7 -0
  110. package/dist/actions/scheduled-job/index.d.ts.map +1 -0
  111. package/dist/actions/scheduled-job/index.js +29 -0
  112. package/dist/actions/scheduled-job/index.js.map +1 -0
  113. package/dist/actions/scheduled-job/list.action.d.ts +5 -0
  114. package/dist/actions/scheduled-job/list.action.d.ts.map +1 -0
  115. package/dist/actions/scheduled-job/list.action.js +18 -0
  116. package/dist/actions/scheduled-job/list.action.js.map +1 -0
  117. package/dist/actions/scheduled-job/shared.d.ts +30 -0
  118. package/dist/actions/scheduled-job/shared.d.ts.map +1 -0
  119. package/dist/actions/scheduled-job/shared.js +129 -0
  120. package/dist/actions/scheduled-job/shared.js.map +1 -0
  121. package/dist/actions/scheduled-job/types.d.ts +23 -0
  122. package/dist/actions/scheduled-job/types.d.ts.map +1 -0
  123. package/dist/actions/scheduled-job/types.js +3 -0
  124. package/dist/actions/scheduled-job/types.js.map +1 -0
  125. package/dist/actions/scheduled-job/update.action.d.ts +5 -0
  126. package/dist/actions/scheduled-job/update.action.d.ts.map +1 -0
  127. package/dist/actions/scheduled-job/update.action.js +64 -0
  128. package/dist/actions/scheduled-job/update.action.js.map +1 -0
  129. package/dist/actions/scheduled-job.action.d.ts +73 -0
  130. package/dist/actions/scheduled-job.action.d.ts.map +1 -0
  131. package/dist/actions/scheduled-job.action.js +355 -0
  132. package/dist/actions/scheduled-job.action.js.map +1 -0
  133. package/dist/actions/setup.action.js +1 -1
  134. package/dist/actions/setup.action.js.map +1 -1
  135. package/dist/actions/sync/index.d.ts +4 -0
  136. package/dist/actions/sync/index.d.ts.map +1 -0
  137. package/dist/actions/sync/index.js +23 -0
  138. package/dist/actions/sync/index.js.map +1 -0
  139. package/dist/actions/sync/run-flow.action.d.ts +8 -0
  140. package/dist/actions/sync/run-flow.action.d.ts.map +1 -0
  141. package/dist/actions/sync/run-flow.action.js +81 -0
  142. package/dist/actions/sync/run-flow.action.js.map +1 -0
  143. package/dist/actions/sync/run-job.action.d.ts +11 -0
  144. package/dist/actions/sync/run-job.action.d.ts.map +1 -0
  145. package/dist/actions/sync/run-job.action.js +75 -0
  146. package/dist/actions/sync/run-job.action.js.map +1 -0
  147. package/dist/actions/sync/types.d.ts +41 -0
  148. package/dist/actions/sync/types.d.ts.map +1 -0
  149. package/dist/actions/sync/types.js +3 -0
  150. package/dist/actions/sync/types.js.map +1 -0
  151. package/dist/actions/sync.action.d.ts +8 -47
  152. package/dist/actions/sync.action.d.ts.map +1 -1
  153. package/dist/actions/sync.action.js +29 -162
  154. package/dist/actions/sync.action.js.map +1 -1
  155. package/dist/actions/utils/action-names.d.ts +19 -6
  156. package/dist/actions/utils/action-names.d.ts.map +1 -1
  157. package/dist/actions/utils/action-names.js +19 -6
  158. package/dist/actions/utils/action-names.js.map +1 -1
  159. package/dist/actions/utils/define-action.d.ts +36 -0
  160. package/dist/actions/utils/define-action.d.ts.map +1 -0
  161. package/dist/actions/utils/define-action.js +43 -0
  162. package/dist/actions/utils/define-action.js.map +1 -0
  163. package/dist/actions/utils/errors.d.ts +54 -8
  164. package/dist/actions/utils/errors.d.ts.map +1 -1
  165. package/dist/actions/utils/errors.js +104 -14
  166. package/dist/actions/utils/errors.js.map +1 -1
  167. package/dist/actions/utils/helpers.d.ts.map +1 -1
  168. package/dist/actions/utils/helpers.js +2 -1
  169. package/dist/actions/utils/helpers.js.map +1 -1
  170. package/dist/actions/utils/metrics.d.ts +12 -0
  171. package/dist/actions/utils/metrics.d.ts.map +1 -0
  172. package/dist/actions/utils/metrics.js +12 -0
  173. package/dist/actions/utils/metrics.js.map +1 -0
  174. package/dist/actions/utils/middleware.d.ts +39 -0
  175. package/dist/actions/utils/middleware.d.ts.map +1 -0
  176. package/dist/actions/utils/middleware.js +85 -0
  177. package/dist/actions/utils/middleware.js.map +1 -0
  178. package/dist/actions/utils/types.d.ts +5 -4
  179. package/dist/actions/utils/types.d.ts.map +1 -1
  180. package/dist/adapters/base-adapter-handler.d.ts +10 -0
  181. package/dist/adapters/base-adapter-handler.d.ts.map +1 -1
  182. package/dist/adapters/base-adapter-handler.js +18 -34
  183. package/dist/adapters/base-adapter-handler.js.map +1 -1
  184. package/dist/browser.d.ts +2 -0
  185. package/dist/browser.d.ts.map +1 -1
  186. package/dist/browser.js +3 -1
  187. package/dist/browser.js.map +1 -1
  188. package/dist/clients/integration-config.client.d.ts +21 -0
  189. package/dist/clients/integration-config.client.d.ts.map +1 -0
  190. package/dist/clients/integration-config.client.js +44 -0
  191. package/dist/clients/integration-config.client.js.map +1 -0
  192. package/dist/context.d.ts +18 -3
  193. package/dist/context.d.ts.map +1 -1
  194. package/dist/context.js +21 -5
  195. package/dist/context.js.map +1 -1
  196. package/dist/index.d.ts +11 -0
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +30 -1
  199. package/dist/index.js.map +1 -1
  200. package/dist/interfaces/data-flow-spec.interface.d.ts +14 -21
  201. package/dist/interfaces/data-flow-spec.interface.d.ts.map +1 -1
  202. package/dist/interfaces/data-flow-spec.interface.js +10 -26
  203. package/dist/interfaces/data-flow-spec.interface.js.map +1 -1
  204. package/dist/interfaces/integration-capabilities.interface.d.ts +2 -2
  205. package/dist/interfaces/scheduled-job.interface.d.ts +40 -0
  206. package/dist/interfaces/scheduled-job.interface.d.ts.map +1 -0
  207. package/dist/interfaces/scheduled-job.interface.js +38 -0
  208. package/dist/interfaces/scheduled-job.interface.js.map +1 -0
  209. package/dist/services/dataflow.service.d.ts +13 -6
  210. package/dist/services/dataflow.service.d.ts.map +1 -1
  211. package/dist/services/dataflow.service.js +34 -57
  212. package/dist/services/dataflow.service.js.map +1 -1
  213. package/dist/services/sync-runner.d.ts +1 -0
  214. package/dist/services/sync-runner.d.ts.map +1 -1
  215. package/dist/services/sync-runner.js +7 -27
  216. package/dist/services/sync-runner.js.map +1 -1
  217. package/dist/types.d.ts +2 -0
  218. package/dist/types.d.ts.map +1 -1
  219. package/dist/types.js +4 -1
  220. package/dist/types.js.map +1 -1
  221. package/dist/utils/artifact-builder.d.ts +40 -15
  222. package/dist/utils/artifact-builder.d.ts.map +1 -1
  223. package/dist/utils/artifact-builder.js +92 -17
  224. package/dist/utils/artifact-builder.js.map +1 -1
  225. package/package.json +1 -1
@@ -1,12 +1,17 @@
1
1
  import type { ArtifactClient } from '@skedulo/pulse-solution-services';
2
2
  import type { DataFlow } from '../interfaces/data-flow-spec.interface';
3
- import { ACTIONS } from '../actions/utils/action-names';
3
+ import type { JobIntervalUnit } from '../interfaces/scheduled-job.interface';
4
+ /**
5
+ * Callback URL an artifact posts to. `{{ SKEDULO_API_URL }}` is substituted with
6
+ * the tenant API host by the platform when the artifact fires.
7
+ */
8
+ export declare function functionCallbackUrl(integrationType: string): string;
4
9
  /**
5
10
  * Deterministic artifact name used as the idempotency key for the
6
11
  * webhook / triggered action provisioned for a DataFlow.
7
12
  *
8
13
  * Format: `sked-int-${integrationType}-${sourceObject}-to-${targetObject}-flow${id}`
9
- * Throws if the result exceeds 100 chars (we don't truncate, since collisions
14
+ * Throws if the result exceeds 255 chars (we don't truncate, since collisions
10
15
  * on the prefix would cause silent cross-flow overwrites).
11
16
  */
12
17
  export declare function buildArtifactName(flow: DataFlow, integrationType: string): string;
@@ -15,10 +20,27 @@ export declare function buildArtifactName(flow: DataFlow, integrationType: strin
15
20
  * - n <= 1 → `* * * * *` (every minute)
16
21
  * - 1 < n < 60 → `*\/n * * * *`
17
22
  * - 60 <= n, multiples of 60 → `0 *\/h * * *` (every h hours)
18
- * - otherwise → fall back to `*\/n * * * *` (cron itself rejects > 59 in min field;
19
- * callers should pass a divisor of 60 for n >= 60)
23
+ * - otherwise (n >= 60 and not a multiple of 60) → throws, since `*\/n` is an
24
+ * invalid cron minute field for n > 59
20
25
  */
21
26
  export declare function intervalMinutesToCron(intervalMinutes: number): string;
27
+ /**
28
+ * Convert a scheduled job's `{ interval_value, interval_unit }` into minutes,
29
+ * validating the bounds (minutes 1–60, hours 1–24). Throws `InvalidInputError`
30
+ * on out-of-range or non-integer values. `hours` → ×60 (maps onto
31
+ * `intervalMinutesToCron`, which requires multiples of 60 for hourly crons).
32
+ */
33
+ export declare function jobIntervalToMinutes(args: {
34
+ interval_value: number;
35
+ interval_unit: JobIntervalUnit;
36
+ }): number;
37
+ /**
38
+ * Deterministic artifact name for a scheduled job — this IS the job's
39
+ * `webhook_name`. Derived from the job's display name:
40
+ * `sked-int-${integrationType}-job-${slug(name)}`. Throws on overflow (>200) or
41
+ * a name that slugs to empty.
42
+ */
43
+ export declare function buildJobArtifactName(integrationType: string, jobName: string): string;
22
44
  /**
23
45
  * GraphQL selection-set fragment for the triggered action's `action.query`.
24
46
  * ES executes this against the Skedulo schema and POSTs the result as the
@@ -26,15 +48,17 @@ export declare function intervalMinutesToCron(intervalMinutes: number): string;
26
48
  * `UID` is always included since we use it as the record identifier.
27
49
  */
28
50
  export declare function buildSkeduloQuery(flow: DataFlow): string;
29
- export interface BuildScheduledWebhookOpts {
30
- name: string;
51
+ export interface BuildJobWebhookOpts {
52
+ /** The job's `webhook_name` — used as the artifact name and the job-id header. */
53
+ webhookName: string;
31
54
  url: string;
32
55
  cron: string;
33
- /** Value placed on the dispatcher action header so the function knows which action to run. */
34
- action: typeof ACTIONS.sync.push | typeof ACTIONS.sync.scheduledPull;
35
- dataFlowId: number;
36
56
  }
37
- export declare function buildScheduledWebhookArtifact(opts: BuildScheduledWebhookOpts): {
57
+ /**
58
+ * Scheduled webhook for an integration-level job. Fires `sync.run-job` and
59
+ * carries the job's `webhook_name` so the handler can load it from config.
60
+ */
61
+ export declare function buildJobWebhookArtifact(opts: BuildJobWebhookOpts): {
38
62
  name: string;
39
63
  metadata: {
40
64
  type: string;
@@ -45,8 +69,8 @@ export declare function buildScheduledWebhookArtifact(opts: BuildScheduledWebhoo
45
69
  cron: string;
46
70
  headers: {
47
71
  Authorization: string;
48
- "sked-integration-action": "sync.push" | "sync.scheduled-pull";
49
- "sked-data-flow-id": string;
72
+ "sked-integration-action": "sync.run-job";
73
+ "sked-scheduled-job-name": string;
50
74
  };
51
75
  };
52
76
  };
@@ -82,9 +106,10 @@ export declare function buildTriggeredActionArtifact(opts: BuildTriggeredActionO
82
106
  };
83
107
  };
84
108
  /**
85
- * Idempotent upsert: try `get` then `update`; on any error (including not-found)
86
- * fall back to `create`. The PSS artifact API is name-keyed, so this collapses
87
- * "create" and "replace" into a single safe call.
109
+ * Idempotent upsert: try `get` then `update`; fall back to `create` only when
110
+ * `get` reports a 404 (not-found). Other errors (auth/validation/5xx) propagate.
111
+ * The PSS artifact API is name-keyed, so this collapses "create" and "replace"
112
+ * into a single safe call.
88
113
  */
89
114
  export declare function upsertArtifact(client: ArtifactClient, name: string, artifact: unknown): Promise<void>;
90
115
  /**
@@ -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,EAAiB,OAAO,EAAuB,MAAM,+BAA+B,CAAC;AAW5F;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAajF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAUxD;AAMD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,MAAM,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,yBAAyB;;;;;;;;;;;;;;;EAe5E;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;AAID;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhG"}
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;AAmB7E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEnE;AASD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAajF;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;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAerF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAUxD;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;;;;;;;;;;;;;;;EAehE;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;AAID;;;;;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"}
@@ -1,14 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.functionCallbackUrl = functionCallbackUrl;
3
4
  exports.buildArtifactName = buildArtifactName;
4
5
  exports.intervalMinutesToCron = intervalMinutesToCron;
6
+ exports.jobIntervalToMinutes = jobIntervalToMinutes;
7
+ exports.buildJobArtifactName = buildJobArtifactName;
5
8
  exports.buildSkeduloQuery = buildSkeduloQuery;
6
- exports.buildScheduledWebhookArtifact = buildScheduledWebhookArtifact;
9
+ exports.buildJobWebhookArtifact = buildJobWebhookArtifact;
7
10
  exports.buildTriggeredActionArtifact = buildTriggeredActionArtifact;
8
11
  exports.upsertArtifact = upsertArtifact;
9
12
  exports.deleteArtifactIfExists = deleteArtifactIfExists;
13
+ const scheduled_job_interface_1 = require("../interfaces/scheduled-job.interface");
10
14
  const action_names_1 = require("../actions/utils/action-names");
11
- const MAX_NAME_LENGTH = 100;
15
+ const errors_1 = require("../actions/utils/errors");
16
+ // Per-flow artifact (webhook / triggered action) — generated deterministically
17
+ // from immutable fields (integrationType, source/target objects, numeric flow
18
+ // id), so 255 is plenty of headroom for long object names.
19
+ const MAX_FLOW_ARTIFACT_NAME_LENGTH = 255;
20
+ // Scheduled-job webhook — derived from a user-supplied job name. Kept tighter
21
+ // so a long display name is rejected up-front instead of producing an artifact
22
+ // name no one can read.
23
+ const MAX_JOB_ARTIFACT_NAME_LENGTH = 200;
24
+ /**
25
+ * Callback URL an artifact posts to. `{{ SKEDULO_API_URL }}` is substituted with
26
+ * the tenant API host by the platform when the artifact fires.
27
+ */
28
+ function functionCallbackUrl(integrationType) {
29
+ return `{{ SKEDULO_API_URL }}/function/${integrationType}/${integrationType}`;
30
+ }
12
31
  function slugify(value) {
13
32
  return value
14
33
  .toLowerCase()
@@ -20,7 +39,7 @@ function slugify(value) {
20
39
  * webhook / triggered action provisioned for a DataFlow.
21
40
  *
22
41
  * Format: `sked-int-${integrationType}-${sourceObject}-to-${targetObject}-flow${id}`
23
- * Throws if the result exceeds 100 chars (we don't truncate, since collisions
42
+ * Throws if the result exceeds 255 chars (we don't truncate, since collisions
24
43
  * on the prefix would cause silent cross-flow overwrites).
25
44
  */
26
45
  function buildArtifactName(flow, integrationType) {
@@ -28,8 +47,8 @@ function buildArtifactName(flow, integrationType) {
28
47
  throw new Error('buildArtifactName requires an integrationType');
29
48
  }
30
49
  const name = `sked-int-${slugify(integrationType)}-${slugify(flow.sourceObject)}-to-${slugify(flow.targetObject)}-flow${flow.id}`;
31
- if (name.length > MAX_NAME_LENGTH) {
32
- throw new Error(`buildArtifactName produced a name of ${name.length} characters (max ${MAX_NAME_LENGTH}): "${name}"`);
50
+ if (name.length > MAX_FLOW_ARTIFACT_NAME_LENGTH) {
51
+ throw new Error(`buildArtifactName produced a name of ${name.length} characters (max ${MAX_FLOW_ARTIFACT_NAME_LENGTH}): "${name}"`);
33
52
  }
34
53
  return name;
35
54
  }
@@ -38,8 +57,8 @@ function buildArtifactName(flow, integrationType) {
38
57
  * - n <= 1 → `* * * * *` (every minute)
39
58
  * - 1 < n < 60 → `*\/n * * * *`
40
59
  * - 60 <= n, multiples of 60 → `0 *\/h * * *` (every h hours)
41
- * - otherwise → fall back to `*\/n * * * *` (cron itself rejects > 59 in min field;
42
- * callers should pass a divisor of 60 for n >= 60)
60
+ * - otherwise (n >= 60 and not a multiple of 60) → throws, since `*\/n` is an
61
+ * invalid cron minute field for n > 59
43
62
  */
44
63
  function intervalMinutesToCron(intervalMinutes) {
45
64
  if (!Number.isInteger(intervalMinutes) || intervalMinutes <= 1)
@@ -50,7 +69,52 @@ function intervalMinutesToCron(intervalMinutes) {
50
69
  const hours = intervalMinutes / 60;
51
70
  return hours === 1 ? '0 * * * *' : `0 */${hours} * * *`;
52
71
  }
53
- return `*/${intervalMinutes} * * * *`;
72
+ throw new Error(`Unsupported intervalMinutes=${intervalMinutes}; for values >= 60, use multiples of 60.`);
73
+ }
74
+ /**
75
+ * Convert a scheduled job's `{ interval_value, interval_unit }` into minutes,
76
+ * validating the bounds (minutes 1–60, hours 1–24). Throws `InvalidInputError`
77
+ * on out-of-range or non-integer values. `hours` → ×60 (maps onto
78
+ * `intervalMinutesToCron`, which requires multiples of 60 for hourly crons).
79
+ */
80
+ function jobIntervalToMinutes(args) {
81
+ const { interval_value: value, interval_unit: unit } = args;
82
+ if (!Number.isInteger(value)) {
83
+ throw new errors_1.InvalidInputError('interval_value must be an integer');
84
+ }
85
+ if (unit === scheduled_job_interface_1.JobIntervalUnit.MINUTES) {
86
+ if (value < 1 || value > 60) {
87
+ throw new errors_1.InvalidInputError('interval_value must be between 1 and 60 for minutes');
88
+ }
89
+ return value;
90
+ }
91
+ if (unit === scheduled_job_interface_1.JobIntervalUnit.HOURS) {
92
+ if (value < 1 || value > 24) {
93
+ throw new errors_1.InvalidInputError('interval_value must be between 1 and 24 for hours');
94
+ }
95
+ return value * 60;
96
+ }
97
+ throw new errors_1.InvalidInputError(`interval_unit must be "minutes" or "hours"`);
98
+ }
99
+ /**
100
+ * Deterministic artifact name for a scheduled job — this IS the job's
101
+ * `webhook_name`. Derived from the job's display name:
102
+ * `sked-int-${integrationType}-job-${slug(name)}`. Throws on overflow (>200) or
103
+ * a name that slugs to empty.
104
+ */
105
+ function buildJobArtifactName(integrationType, jobName) {
106
+ if (!integrationType) {
107
+ throw new Error('buildJobArtifactName requires an integrationType');
108
+ }
109
+ const slug = slugify(jobName);
110
+ if (!slug) {
111
+ throw new errors_1.InvalidInputError('job name must contain at least one alphanumeric character');
112
+ }
113
+ const name = `sked-int-${slugify(integrationType)}-job-${slug}`;
114
+ if (name.length > MAX_JOB_ARTIFACT_NAME_LENGTH) {
115
+ 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.`);
116
+ }
117
+ return name;
54
118
  }
55
119
  /**
56
120
  * GraphQL selection-set fragment for the triggered action's `action.query`.
@@ -72,9 +136,13 @@ function buildSkeduloQuery(flow) {
72
136
  }
73
137
  // ── Artifact bodies ──────────────────────────────────────────────────────────
74
138
  const ADMIN_AUTH_HEADER = 'Bearer {{ INTEGRATION_ADMIN_TOKEN }}';
75
- function buildScheduledWebhookArtifact(opts) {
139
+ /**
140
+ * Scheduled webhook for an integration-level job. Fires `sync.run-job` and
141
+ * carries the job's `webhook_name` so the handler can load it from config.
142
+ */
143
+ function buildJobWebhookArtifact(opts) {
76
144
  return {
77
- name: opts.name,
145
+ name: opts.webhookName,
78
146
  metadata: { type: 'Webhook' },
79
147
  webhook: {
80
148
  type: 'scheduled',
@@ -82,8 +150,8 @@ function buildScheduledWebhookArtifact(opts) {
82
150
  cron: opts.cron,
83
151
  headers: {
84
152
  Authorization: ADMIN_AUTH_HEADER,
85
- [action_names_1.ACTION_HEADER]: opts.action,
86
- [action_names_1.DATA_FLOW_ID_HEADER]: String(opts.dataFlowId),
153
+ [action_names_1.ACTION_HEADER]: action_names_1.ACTIONS.sync.runJob,
154
+ [action_names_1.SCHEDULED_JOB_NAME_HEADER]: opts.webhookName,
87
155
  },
88
156
  },
89
157
  };
@@ -112,17 +180,24 @@ function buildTriggeredActionArtifact(opts) {
112
180
  }
113
181
  // ── Upsert / delete helpers ──────────────────────────────────────────────────
114
182
  /**
115
- * Idempotent upsert: try `get` then `update`; on any error (including not-found)
116
- * fall back to `create`. The PSS artifact API is name-keyed, so this collapses
117
- * "create" and "replace" into a single safe call.
183
+ * Idempotent upsert: try `get` then `update`; fall back to `create` only when
184
+ * `get` reports a 404 (not-found). Other errors (auth/validation/5xx) propagate.
185
+ * The PSS artifact API is name-keyed, so this collapses "create" and "replace"
186
+ * into a single safe call.
118
187
  */
119
188
  async function upsertArtifact(client, name, artifact) {
120
189
  try {
121
190
  await client.get({ name });
122
191
  await client.update({ name }, artifact);
123
192
  }
124
- catch (_a) {
125
- await client.create({ name }, artifact);
193
+ catch (err) {
194
+ // Only treat a genuine not-found as "create"; auth/validation/5xx must
195
+ // surface instead of being masked as a missing artifact.
196
+ if (err instanceof Error && /Status:\s*404\b/.test(err.message)) {
197
+ await client.create({ name }, artifact);
198
+ return;
199
+ }
200
+ throw err;
126
201
  }
127
202
  }
128
203
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-builder.js","sourceRoot":"","sources":["../../src/utils/artifact-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-builder.js","sourceRoot":"","sources":["../../src/utils/artifact-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skedulo/integration-sdk",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "Runtime SDK for Skedulo integration data flows",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",