@automate.ax/catalog 0.105.0 → 0.109.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.
@@ -1,12 +1,29 @@
1
1
  const LINEAR_ACCOUNT = {
2
2
  connectionOptions: [
3
3
  {
4
+ connectionMethodId: "oauth",
4
5
  requiredScopes: ["read"],
5
6
  },
6
7
  ],
7
8
  serviceId: "linear",
8
9
  };
9
10
  export const linearTriggerDefinitions = {
11
+ linearAttachmentCreated: {
12
+ account: LINEAR_ACCOUNT,
13
+ type: "linear.attachment.created",
14
+ },
15
+ linearAttachmentEvent: {
16
+ account: LINEAR_ACCOUNT,
17
+ type: "linear.attachment.event",
18
+ },
19
+ linearAttachmentRemoved: {
20
+ account: LINEAR_ACCOUNT,
21
+ type: "linear.attachment.removed",
22
+ },
23
+ linearAttachmentUpdated: {
24
+ account: LINEAR_ACCOUNT,
25
+ type: "linear.attachment.updated",
26
+ },
10
27
  linearCommentCreated: {
11
28
  account: LINEAR_ACCOUNT,
12
29
  type: "linear.comment.created",
@@ -23,6 +40,134 @@ export const linearTriggerDefinitions = {
23
40
  account: LINEAR_ACCOUNT,
24
41
  type: "linear.comment.updated",
25
42
  },
43
+ linearCustomerNeedCreated: {
44
+ account: LINEAR_ACCOUNT,
45
+ type: "linear.customer-need.created",
46
+ },
47
+ linearCustomerNeedEvent: {
48
+ account: LINEAR_ACCOUNT,
49
+ type: "linear.customer-need.event",
50
+ },
51
+ linearCustomerNeedRemoved: {
52
+ account: LINEAR_ACCOUNT,
53
+ type: "linear.customer-need.removed",
54
+ },
55
+ linearCustomerNeedUpdated: {
56
+ account: LINEAR_ACCOUNT,
57
+ type: "linear.customer-need.updated",
58
+ },
59
+ linearCustomerCreated: {
60
+ account: LINEAR_ACCOUNT,
61
+ type: "linear.customer.created",
62
+ },
63
+ linearCustomerEvent: {
64
+ account: LINEAR_ACCOUNT,
65
+ type: "linear.customer.event",
66
+ },
67
+ linearCustomerRemoved: {
68
+ account: LINEAR_ACCOUNT,
69
+ type: "linear.customer.removed",
70
+ },
71
+ linearCustomerUpdated: {
72
+ account: LINEAR_ACCOUNT,
73
+ type: "linear.customer.updated",
74
+ },
75
+ linearCycleCreated: {
76
+ account: LINEAR_ACCOUNT,
77
+ type: "linear.cycle.created",
78
+ },
79
+ linearCycleEvent: {
80
+ account: LINEAR_ACCOUNT,
81
+ type: "linear.cycle.event",
82
+ },
83
+ linearCycleRemoved: {
84
+ account: LINEAR_ACCOUNT,
85
+ type: "linear.cycle.removed",
86
+ },
87
+ linearCycleUpdated: {
88
+ account: LINEAR_ACCOUNT,
89
+ type: "linear.cycle.updated",
90
+ },
91
+ linearDocumentCreated: {
92
+ account: LINEAR_ACCOUNT,
93
+ type: "linear.document.created",
94
+ },
95
+ linearDocumentEvent: {
96
+ account: LINEAR_ACCOUNT,
97
+ type: "linear.document.event",
98
+ },
99
+ linearDocumentRemoved: {
100
+ account: LINEAR_ACCOUNT,
101
+ type: "linear.document.removed",
102
+ },
103
+ linearDocumentUpdated: {
104
+ account: LINEAR_ACCOUNT,
105
+ type: "linear.document.updated",
106
+ },
107
+ linearInitiativeUpdateCreated: {
108
+ account: LINEAR_ACCOUNT,
109
+ type: "linear.initiative-update.created",
110
+ },
111
+ linearInitiativeUpdateEvent: {
112
+ account: LINEAR_ACCOUNT,
113
+ type: "linear.initiative-update.event",
114
+ },
115
+ linearInitiativeUpdateRemoved: {
116
+ account: LINEAR_ACCOUNT,
117
+ type: "linear.initiative-update.removed",
118
+ },
119
+ linearInitiativeUpdateUpdated: {
120
+ account: LINEAR_ACCOUNT,
121
+ type: "linear.initiative-update.updated",
122
+ },
123
+ linearInitiativeCreated: {
124
+ account: LINEAR_ACCOUNT,
125
+ type: "linear.initiative.created",
126
+ },
127
+ linearInitiativeEvent: {
128
+ account: LINEAR_ACCOUNT,
129
+ type: "linear.initiative.event",
130
+ },
131
+ linearInitiativeRemoved: {
132
+ account: LINEAR_ACCOUNT,
133
+ type: "linear.initiative.removed",
134
+ },
135
+ linearInitiativeUpdated: {
136
+ account: LINEAR_ACCOUNT,
137
+ type: "linear.initiative.updated",
138
+ },
139
+ linearIssueLabelCreated: {
140
+ account: LINEAR_ACCOUNT,
141
+ type: "linear.issue-label.created",
142
+ },
143
+ linearIssueLabelEvent: {
144
+ account: LINEAR_ACCOUNT,
145
+ type: "linear.issue-label.event",
146
+ },
147
+ linearIssueLabelRemoved: {
148
+ account: LINEAR_ACCOUNT,
149
+ type: "linear.issue-label.removed",
150
+ },
151
+ linearIssueLabelUpdated: {
152
+ account: LINEAR_ACCOUNT,
153
+ type: "linear.issue-label.updated",
154
+ },
155
+ linearIssueSlaBreached: {
156
+ account: LINEAR_ACCOUNT,
157
+ type: "linear.issue-sla.breached",
158
+ },
159
+ linearIssueSlaEvent: {
160
+ account: LINEAR_ACCOUNT,
161
+ type: "linear.issue-sla.event",
162
+ },
163
+ linearIssueSlaHighRisk: {
164
+ account: LINEAR_ACCOUNT,
165
+ type: "linear.issue-sla.high-risk",
166
+ },
167
+ linearIssueSlaSet: {
168
+ account: LINEAR_ACCOUNT,
169
+ type: "linear.issue-sla.set",
170
+ },
26
171
  linearIssueCreated: {
27
172
  account: LINEAR_ACCOUNT,
28
173
  type: "linear.issue.created",
@@ -39,6 +184,38 @@ export const linearTriggerDefinitions = {
39
184
  account: LINEAR_ACCOUNT,
40
185
  type: "linear.issue.updated",
41
186
  },
187
+ linearProjectLabelCreated: {
188
+ account: LINEAR_ACCOUNT,
189
+ type: "linear.project-label.created",
190
+ },
191
+ linearProjectLabelEvent: {
192
+ account: LINEAR_ACCOUNT,
193
+ type: "linear.project-label.event",
194
+ },
195
+ linearProjectLabelRemoved: {
196
+ account: LINEAR_ACCOUNT,
197
+ type: "linear.project-label.removed",
198
+ },
199
+ linearProjectLabelUpdated: {
200
+ account: LINEAR_ACCOUNT,
201
+ type: "linear.project-label.updated",
202
+ },
203
+ linearProjectUpdateCreated: {
204
+ account: LINEAR_ACCOUNT,
205
+ type: "linear.project-update.created",
206
+ },
207
+ linearProjectUpdateEvent: {
208
+ account: LINEAR_ACCOUNT,
209
+ type: "linear.project-update.event",
210
+ },
211
+ linearProjectUpdateRemoved: {
212
+ account: LINEAR_ACCOUNT,
213
+ type: "linear.project-update.removed",
214
+ },
215
+ linearProjectUpdateUpdated: {
216
+ account: LINEAR_ACCOUNT,
217
+ type: "linear.project-update.updated",
218
+ },
42
219
  linearProjectCreated: {
43
220
  account: LINEAR_ACCOUNT,
44
221
  type: "linear.project.created",
@@ -55,4 +232,64 @@ export const linearTriggerDefinitions = {
55
232
  account: LINEAR_ACCOUNT,
56
233
  type: "linear.project.updated",
57
234
  },
235
+ linearReactionCreated: {
236
+ account: LINEAR_ACCOUNT,
237
+ type: "linear.reaction.created",
238
+ },
239
+ linearReactionEvent: {
240
+ account: LINEAR_ACCOUNT,
241
+ type: "linear.reaction.event",
242
+ },
243
+ linearReactionRemoved: {
244
+ account: LINEAR_ACCOUNT,
245
+ type: "linear.reaction.removed",
246
+ },
247
+ linearReleaseNoteCreated: {
248
+ account: LINEAR_ACCOUNT,
249
+ type: "linear.release-note.created",
250
+ },
251
+ linearReleaseNoteEvent: {
252
+ account: LINEAR_ACCOUNT,
253
+ type: "linear.release-note.event",
254
+ },
255
+ linearReleaseNoteRemoved: {
256
+ account: LINEAR_ACCOUNT,
257
+ type: "linear.release-note.removed",
258
+ },
259
+ linearReleaseNoteUpdated: {
260
+ account: LINEAR_ACCOUNT,
261
+ type: "linear.release-note.updated",
262
+ },
263
+ linearReleaseCreated: {
264
+ account: LINEAR_ACCOUNT,
265
+ type: "linear.release.created",
266
+ },
267
+ linearReleaseEvent: {
268
+ account: LINEAR_ACCOUNT,
269
+ type: "linear.release.event",
270
+ },
271
+ linearReleaseRemoved: {
272
+ account: LINEAR_ACCOUNT,
273
+ type: "linear.release.removed",
274
+ },
275
+ linearReleaseUpdated: {
276
+ account: LINEAR_ACCOUNT,
277
+ type: "linear.release.updated",
278
+ },
279
+ linearUserCreated: {
280
+ account: LINEAR_ACCOUNT,
281
+ type: "linear.user.created",
282
+ },
283
+ linearUserEvent: {
284
+ account: LINEAR_ACCOUNT,
285
+ type: "linear.user.event",
286
+ },
287
+ linearUserRemoved: {
288
+ account: LINEAR_ACCOUNT,
289
+ type: "linear.user.removed",
290
+ },
291
+ linearUserUpdated: {
292
+ account: LINEAR_ACCOUNT,
293
+ type: "linear.user.updated",
294
+ },
58
295
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automate.ax/catalog",
3
- "version": "0.105.0",
3
+ "version": "0.109.0",
4
4
  "description": "Shared integration service and trigger definitions for Automate.ax.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,6 +24,7 @@
24
24
  "./triggers/automate": "./src/triggers/automate.ts",
25
25
  "./triggers/asana": "./src/triggers/asana.ts",
26
26
  "./triggers/brevo": "./src/triggers/brevo.ts",
27
+ "./triggers/cloudflare": "./src/triggers/cloudflare.ts",
27
28
  "./triggers/convex": "./src/triggers/convex.ts",
28
29
  "./triggers/close": "./src/triggers/close.ts",
29
30
  "./triggers/core-dashboard": "./src/triggers/core-dashboard.ts",
@@ -112,6 +113,11 @@
112
113
  "types": "./dist/triggers/brevo.d.ts",
113
114
  "default": "./dist/triggers/brevo.js"
114
115
  },
116
+ "./triggers/cloudflare": {
117
+ "bun": "./src/triggers/cloudflare.ts",
118
+ "types": "./dist/triggers/cloudflare.d.ts",
119
+ "default": "./dist/triggers/cloudflare.js"
120
+ },
115
121
  "./triggers/convex": {
116
122
  "bun": "./src/triggers/convex.ts",
117
123
  "types": "./dist/triggers/convex.d.ts",
package/src/catalog.ts CHANGED
@@ -9,10 +9,28 @@ const API_KEY_FIELD = {
9
9
  } as const
10
10
 
11
11
  export const airtableService = defineIntegrationService({
12
- connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
13
- description: "Connect an Airtable account.",
12
+ connectionMethods: [
13
+ { id: "oauth", name: "OAuth", type: "redirect" },
14
+ {
15
+ credentialUrl: "https://airtable.com/create/tokens",
16
+ fields: [
17
+ {
18
+ input: "password",
19
+ label: "Personal access token",
20
+ name: "apiKey",
21
+ placeholder: "pat...",
22
+ required: true,
23
+ },
24
+ ],
25
+ id: "personal-access-token",
26
+ name: "Personal access token",
27
+ type: "form",
28
+ },
29
+ ],
30
+ description: "Connect Airtable with OAuth or a personal access token.",
14
31
  id: "airtable",
15
32
  name: "Airtable",
33
+ preferredConnectionMethodId: "oauth",
16
34
  })
17
35
 
18
36
  export const anthropicService = defineApiKeyService({
@@ -71,7 +89,9 @@ export const automateService = defineIntegrationService({
71
89
  })
72
90
 
73
91
  export const brevoService = defineApiKeyService({
74
- description: "Connect a Brevo API key.",
92
+ credentialUrl: "https://app.brevo.com/settings/keys/api",
93
+ description:
94
+ "Connect a Brevo API key for messaging, contacts, campaigns, and managed events.",
75
95
  id: "brevo",
76
96
  name: "Brevo",
77
97
  placeholder: "xkeysib-...",
@@ -301,10 +321,20 @@ export const huggingfaceService = defineIntegrationService({
301
321
  })
302
322
 
303
323
  export const linearService = defineIntegrationService({
304
- connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
305
- description: "Connect a Linear workspace.",
324
+ connectionMethods: [
325
+ { id: "oauth", name: "OAuth", type: "redirect" },
326
+ {
327
+ credentialUrl: "https://linear.app/settings/api",
328
+ fields: [{ ...API_KEY_FIELD, placeholder: "lin_api_..." }],
329
+ id: "api-key",
330
+ name: "Personal API key",
331
+ type: "form",
332
+ },
333
+ ],
334
+ description: "Connect a Linear workspace with OAuth or a personal API key.",
306
335
  id: "linear",
307
336
  name: "Linear",
337
+ preferredConnectionMethodId: "oauth",
308
338
  })
309
339
 
310
340
  export const jobNimbusService = defineApiKeyService({
@@ -1,38 +1,90 @@
1
- import type { IntegrationAccountRequirement, TriggerDefinition } from "../types"
1
+ import { integrationScope as scope } from "../types"
2
+ import type {
3
+ IntegrationAccountRequirement,
4
+ IntegrationScopeRequirement,
5
+ TriggerDefinition,
6
+ } from "../types"
2
7
 
3
- const AIRTABLE_ACCOUNT = {
4
- connectionOptions: [
5
- {
6
- requiredScopes: [
7
- {
8
- requirements: ["data.records:read", "webhook:manage"],
9
- type: "and",
10
- },
11
- ],
12
- },
13
- ],
14
- serviceId: "airtable",
15
- } as const satisfies IntegrationAccountRequirement
8
+ /**
9
+ * Builds equivalent OAuth and personal-access-token trigger requirements.
10
+ *
11
+ * @param requiredScope - Least-privilege provider scope expression.
12
+ */
13
+ function airtableAccount(
14
+ requiredScope: IntegrationScopeRequirement,
15
+ ): IntegrationAccountRequirement<"airtable"> {
16
+ return {
17
+ connectionOptions: [
18
+ {
19
+ connectionMethodId: "oauth",
20
+ requiredScopes: [requiredScope],
21
+ },
22
+ {
23
+ connectionMethodId: "personal-access-token",
24
+ requiredScopes: [requiredScope],
25
+ },
26
+ ],
27
+ serviceId: "airtable",
28
+ }
29
+ }
30
+
31
+ const AIRTABLE_RECORD_ACCOUNT = airtableAccount(
32
+ scope.and("data.records:read", "webhook:manage"),
33
+ )
34
+ const AIRTABLE_SCHEMA_ACCOUNT = airtableAccount(
35
+ scope.and("schema.bases:read", "webhook:manage"),
36
+ )
37
+ const AIRTABLE_BASE_EVENT_ACCOUNT = airtableAccount(
38
+ scope.and("data.records:read", "schema.bases:read", "webhook:manage"),
39
+ )
16
40
 
17
41
  export const airtableTriggerDefinitions = {
42
+ airtableBaseEvent: {
43
+ account: AIRTABLE_BASE_EVENT_ACCOUNT,
44
+ type: "airtable.base.event",
45
+ },
46
+ airtableFieldCreated: {
47
+ account: AIRTABLE_SCHEMA_ACCOUNT,
48
+ type: "airtable.field.created",
49
+ },
50
+ airtableFieldDeleted: {
51
+ account: AIRTABLE_SCHEMA_ACCOUNT,
52
+ type: "airtable.field.deleted",
53
+ },
54
+ airtableFieldUpdated: {
55
+ account: AIRTABLE_SCHEMA_ACCOUNT,
56
+ type: "airtable.field.updated",
57
+ },
18
58
  airtableRecordCreated: {
19
- account: AIRTABLE_ACCOUNT,
59
+ account: AIRTABLE_RECORD_ACCOUNT,
20
60
  type: "airtable.record.created",
21
61
  },
22
62
  airtableRecordDeleted: {
23
- account: AIRTABLE_ACCOUNT,
63
+ account: AIRTABLE_RECORD_ACCOUNT,
24
64
  type: "airtable.record.deleted",
25
65
  },
26
66
  airtableRecordMovedIntoView: {
27
- account: AIRTABLE_ACCOUNT,
67
+ account: AIRTABLE_RECORD_ACCOUNT,
28
68
  type: "airtable.record.movedIntoView",
29
69
  },
30
70
  airtableRecordMovedOutOfView: {
31
- account: AIRTABLE_ACCOUNT,
71
+ account: AIRTABLE_RECORD_ACCOUNT,
32
72
  type: "airtable.record.movedOutOfView",
33
73
  },
34
74
  airtableRecordUpdated: {
35
- account: AIRTABLE_ACCOUNT,
75
+ account: AIRTABLE_RECORD_ACCOUNT,
36
76
  type: "airtable.record.updated",
37
77
  },
78
+ airtableTableCreated: {
79
+ account: AIRTABLE_SCHEMA_ACCOUNT,
80
+ type: "airtable.table.created",
81
+ },
82
+ airtableTableDeleted: {
83
+ account: AIRTABLE_SCHEMA_ACCOUNT,
84
+ type: "airtable.table.deleted",
85
+ },
86
+ airtableTableUpdated: {
87
+ account: AIRTABLE_SCHEMA_ACCOUNT,
88
+ type: "airtable.table.updated",
89
+ },
38
90
  } as const satisfies Record<string, TriggerDefinition>
@@ -0,0 +1,36 @@
1
+ import type { IntegrationAccountRequirement, TriggerDefinition } from "../types"
2
+
3
+ const CLOUDFLARE_ACCOUNT = {
4
+ connectionOptions: [
5
+ { connectionMethodId: "oauth", requiredScopes: ["account.write"] },
6
+ { connectionMethodId: "api-token", requiredScopes: [] },
7
+ ],
8
+ serviceId: "cloudflare",
9
+ } as const satisfies IntegrationAccountRequirement
10
+
11
+ export const cloudflareTriggerDefinitions = {
12
+ cloudflareAccessCertificateExpiring: {
13
+ account: CLOUDFLARE_ACCOUNT,
14
+ type: "cloudflare.accessCertificate.expiring",
15
+ },
16
+ cloudflareLayer4DdosAttack: {
17
+ account: CLOUDFLARE_ACCOUNT,
18
+ type: "cloudflare.layer4DdosAttack",
19
+ },
20
+ cloudflareLayer7DdosAttack: {
21
+ account: CLOUDFLARE_ACCOUNT,
22
+ type: "cloudflare.layer7DdosAttack",
23
+ },
24
+ cloudflareNotification: {
25
+ account: CLOUDFLARE_ACCOUNT,
26
+ type: "cloudflare.notification",
27
+ },
28
+ cloudflareOriginHealthCheckStatusChanged: {
29
+ account: CLOUDFLARE_ACCOUNT,
30
+ type: "cloudflare.originHealthCheckStatusChanged",
31
+ },
32
+ cloudflareSslCertificateEvent: {
33
+ account: CLOUDFLARE_ACCOUNT,
34
+ type: "cloudflare.sslCertificate.event",
35
+ },
36
+ } as const satisfies Record<string, TriggerDefinition>
@@ -4,6 +4,7 @@ import { asanaTriggerDefinitions } from "./asana"
4
4
  import { brevoTriggerDefinitions } from "./brevo"
5
5
  import { convexTriggerDefinitions } from "./convex"
6
6
  import { closeTriggerDefinitions } from "./close"
7
+ import { cloudflareTriggerDefinitions } from "./cloudflare"
7
8
  import { coreTriggerDefinitions } from "./core"
8
9
  import { githubTriggerDefinitions } from "./github"
9
10
  import { googleTriggerDefinitions } from "./google"
@@ -52,6 +53,7 @@ export const triggerDefinitions = {
52
53
  ...brevoTriggerDefinitions,
53
54
  ...convexTriggerDefinitions,
54
55
  ...closeTriggerDefinitions,
56
+ ...cloudflareTriggerDefinitions,
55
57
  ...coreTriggerDefinitions,
56
58
  ...githubTriggerDefinitions,
57
59
  ...googleTriggerDefinitions,