@tangle-network/agent-integrations 0.53.50 → 0.53.52

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 (50) hide show
  1. package/dist/catalog.d.ts +2 -2
  2. package/dist/catalog.js +8 -8
  3. package/dist/{chunk-KBYYTHXQ.js → chunk-ABWBYMCF.js} +2 -2
  4. package/dist/{chunk-QE4WFYSK.js → chunk-CONRYVPK.js} +12 -6
  5. package/dist/chunk-CONRYVPK.js.map +1 -0
  6. package/dist/{chunk-T3WH6MMA.js → chunk-CT3J7ZB6.js} +111 -8
  7. package/dist/chunk-CT3J7ZB6.js.map +1 -0
  8. package/dist/{chunk-W72KPXXX.js → chunk-DCSQH4O6.js} +58 -1
  9. package/dist/chunk-DCSQH4O6.js.map +1 -0
  10. package/dist/{chunk-EP6EDAPV.js → chunk-E2QYXDJQ.js} +19 -6
  11. package/dist/chunk-E2QYXDJQ.js.map +1 -0
  12. package/dist/{chunk-ZZA4HOBE.js → chunk-PIEBVPSW.js} +2 -2
  13. package/dist/{chunk-UI3U62H6.js → chunk-PIF635BP.js} +2 -2
  14. package/dist/{chunk-2JRYKWYX.js → chunk-QL6CRJ3E.js} +303 -556
  15. package/dist/{chunk-2JRYKWYX.js.map → chunk-QL6CRJ3E.js.map} +1 -1
  16. package/dist/connect/index.d.ts +2 -2
  17. package/dist/connect/index.js +2 -2
  18. package/dist/connectors/adapters/index.d.ts +16 -21
  19. package/dist/connectors/adapters/index.js +2 -2
  20. package/dist/connectors/index.d.ts +22 -12
  21. package/dist/connectors/index.js +5 -3
  22. package/dist/{consumer-DrLnbqYt.d.ts → consumer-BbQWkIzU.d.ts} +1 -1
  23. package/dist/consumer.d.ts +3 -3
  24. package/dist/consumer.js +2 -2
  25. package/dist/{core-types-D26cY5tD.d.ts → core-types-A-xIaTzb.d.ts} +1 -1
  26. package/dist/coverage-catalog.d.ts +2 -2
  27. package/dist/{importers-CQKts3pm.d.ts → importers-BMigcDVf.d.ts} +1 -1
  28. package/dist/index.d.ts +9 -9
  29. package/dist/index.js +10 -8
  30. package/dist/mcp.d.ts +3 -3
  31. package/dist/mcp.js +8 -8
  32. package/dist/middleware/index.d.ts +2 -2
  33. package/dist/middleware/index.js +2 -2
  34. package/dist/registry.d.ts +2 -2
  35. package/dist/registry.js +8 -8
  36. package/dist/runtime.d.ts +2 -2
  37. package/dist/runtime.js +8 -8
  38. package/dist/specs.d.ts +11 -2
  39. package/dist/specs.js +4 -4
  40. package/dist/{tangle-id-BCOVbWrP.d.ts → tangle-id-gFOGXe4Y.d.ts} +1 -1
  41. package/dist/{types-DpKn0frG.d.ts → types-DpKEBiX6.d.ts} +19 -1
  42. package/docs/integration-execution-matrix.json +65 -99
  43. package/package.json +1 -1
  44. package/dist/chunk-EP6EDAPV.js.map +0 -1
  45. package/dist/chunk-QE4WFYSK.js.map +0 -1
  46. package/dist/chunk-T3WH6MMA.js.map +0 -1
  47. package/dist/chunk-W72KPXXX.js.map +0 -1
  48. /package/dist/{chunk-KBYYTHXQ.js.map → chunk-ABWBYMCF.js.map} +0 -0
  49. /package/dist/{chunk-ZZA4HOBE.js.map → chunk-PIEBVPSW.js.map} +0 -0
  50. /package/dist/{chunk-UI3U62H6.js.map → chunk-PIF635BP.js.map} +0 -0
@@ -14,7 +14,7 @@ import {
14
14
  TangleIdentityUnreachableError,
15
15
  createTangleIdentityClient,
16
16
  tangleIdentity
17
- } from "./chunk-W72KPXXX.js";
17
+ } from "./chunk-DCSQH4O6.js";
18
18
  import {
19
19
  __export
20
20
  } from "./chunk-PZ5AY32C.js";
@@ -1146,7 +1146,7 @@ function hasHttpsHostnameSuffix(value, suffix) {
1146
1146
  try {
1147
1147
  const url = new URL(value);
1148
1148
  const normalized = suffix.toLowerCase();
1149
- return url.protocol === "https:" && normalized.startsWith(".") && url.hostname.toLowerCase().endsWith(normalized);
1149
+ return url.protocol === "https:" && !url.username && !url.password && !url.port && !url.search && !url.hash && normalized.startsWith(".") && url.hostname.toLowerCase().endsWith(normalized);
1150
1150
  } catch {
1151
1151
  return false;
1152
1152
  }
@@ -12987,16 +12987,31 @@ var giteaConnector = declarativeRestConnector({
12987
12987
  description: "Self-hosted Git service for creating and managing repositories, issues, and pull requests.",
12988
12988
  auth: {
12989
12989
  kind: "oauth2",
12990
- authorizationUrl: "https://api.gitea.io/login/oauth/authorize",
12991
- tokenUrl: "https://api.gitea.io/login/oauth/access_token",
12992
- scopes: ["repo", "admin"],
12990
+ authorizationUrl: "{instanceUrl}/login/oauth/authorize",
12991
+ tokenUrl: "{instanceUrl}/login/oauth/access_token",
12992
+ scopes: [
12993
+ "read:user",
12994
+ "write:user",
12995
+ "read:issue",
12996
+ "write:issue",
12997
+ "read:repository",
12998
+ "write:repository"
12999
+ ],
12993
13000
  clientIdEnv: "GITEA_OAUTH_CLIENT_ID",
12994
- clientSecretEnv: "GITEA_OAUTH_CLIENT_SECRET"
13001
+ clientSecretEnv: "GITEA_OAUTH_CLIENT_SECRET",
13002
+ pkce: "supported",
13003
+ urlTemplateMetadata: {
13004
+ instanceUrl: {
13005
+ kind: "base-url",
13006
+ requirePublicHttps: true
13007
+ }
13008
+ }
12995
13009
  },
12996
13010
  category: "other",
12997
13011
  defaultConsistencyModel: "authoritative",
12998
- baseUrl: "https://api.gitea.io/api/v1",
12999
- test: { method: "GET", path: "/user" },
13012
+ baseUrl: { metadataKey: "instanceUrl" },
13013
+ requirePublicHttpsBaseUrl: true,
13014
+ test: { method: "GET", path: "/api/v1/user" },
13000
13015
  capabilities: [
13001
13016
  {
13002
13017
  name: "repos.list",
@@ -13010,8 +13025,8 @@ var giteaConnector = declarativeRestConnector({
13010
13025
  },
13011
13026
  required: ["owner"]
13012
13027
  },
13013
- request: { method: "GET", path: "/users/{owner}/repos", query: { limit: "{limit}" } },
13014
- requiredScopes: ["repo"]
13028
+ request: { method: "GET", path: "/api/v1/users/{owner}/repos", query: { limit: "{limit}" } },
13029
+ requiredScopes: ["read:user"]
13015
13030
  },
13016
13031
  {
13017
13032
  name: "issues.create",
@@ -13031,7 +13046,7 @@ var giteaConnector = declarativeRestConnector({
13031
13046
  },
13032
13047
  request: {
13033
13048
  method: "POST",
13034
- path: "/repos/{owner}/{repo}/issues",
13049
+ path: "/api/v1/repos/{owner}/{repo}/issues",
13035
13050
  body: {
13036
13051
  title: "{title}",
13037
13052
  body: "{body}",
@@ -13040,7 +13055,7 @@ var giteaConnector = declarativeRestConnector({
13040
13055
  }
13041
13056
  },
13042
13057
  cas: "native-idempotency",
13043
- requiredScopes: ["repo"]
13058
+ requiredScopes: ["write:issue"]
13044
13059
  },
13045
13060
  {
13046
13061
  name: "issues.update",
@@ -13060,7 +13075,7 @@ var giteaConnector = declarativeRestConnector({
13060
13075
  },
13061
13076
  request: {
13062
13077
  method: "PATCH",
13063
- path: "/repos/{owner}/{repo}/issues/{index}",
13078
+ path: "/api/v1/repos/{owner}/{repo}/issues/{index}",
13064
13079
  body: {
13065
13080
  title: "{title}",
13066
13081
  body: "{body}",
@@ -13068,7 +13083,7 @@ var giteaConnector = declarativeRestConnector({
13068
13083
  }
13069
13084
  },
13070
13085
  cas: "etag-if-match",
13071
- requiredScopes: ["repo"]
13086
+ requiredScopes: ["write:issue"]
13072
13087
  },
13073
13088
  {
13074
13089
  name: "comments.create",
@@ -13086,11 +13101,11 @@ var giteaConnector = declarativeRestConnector({
13086
13101
  },
13087
13102
  request: {
13088
13103
  method: "POST",
13089
- path: "/repos/{owner}/{repo}/issues/{index}/comments",
13104
+ path: "/api/v1/repos/{owner}/{repo}/issues/{index}/comments",
13090
13105
  body: { body: "{body}" }
13091
13106
  },
13092
13107
  cas: "native-idempotency",
13093
- requiredScopes: ["repo"]
13108
+ requiredScopes: ["write:issue"]
13094
13109
  },
13095
13110
  {
13096
13111
  name: "pull-requests.list",
@@ -13108,10 +13123,10 @@ var giteaConnector = declarativeRestConnector({
13108
13123
  },
13109
13124
  request: {
13110
13125
  method: "GET",
13111
- path: "/repos/{owner}/{repo}/pulls",
13126
+ path: "/api/v1/repos/{owner}/{repo}/pulls",
13112
13127
  query: { state: "{state}", limit: "{limit}" }
13113
13128
  },
13114
- requiredScopes: ["repo"]
13129
+ requiredScopes: ["read:repository"]
13115
13130
  },
13116
13131
  {
13117
13132
  name: "pull-requests.create",
@@ -13131,7 +13146,7 @@ var giteaConnector = declarativeRestConnector({
13131
13146
  },
13132
13147
  request: {
13133
13148
  method: "POST",
13134
- path: "/repos/{owner}/{repo}/pulls",
13149
+ path: "/api/v1/repos/{owner}/{repo}/pulls",
13135
13150
  body: {
13136
13151
  title: "{title}",
13137
13152
  body: "{body}",
@@ -13140,7 +13155,7 @@ var giteaConnector = declarativeRestConnector({
13140
13155
  }
13141
13156
  },
13142
13157
  cas: "native-idempotency",
13143
- requiredScopes: ["repo"]
13158
+ requiredScopes: ["write:repository"]
13144
13159
  },
13145
13160
  {
13146
13161
  name: "branches.list",
@@ -13156,9 +13171,9 @@ var giteaConnector = declarativeRestConnector({
13156
13171
  },
13157
13172
  request: {
13158
13173
  method: "GET",
13159
- path: "/repos/{owner}/{repo}/branches"
13174
+ path: "/api/v1/repos/{owner}/{repo}/branches"
13160
13175
  },
13161
- requiredScopes: ["repo"]
13176
+ requiredScopes: ["read:repository"]
13162
13177
  },
13163
13178
  {
13164
13179
  name: "repos.create",
@@ -13177,12 +13192,12 @@ var giteaConnector = declarativeRestConnector({
13177
13192
  },
13178
13193
  request: {
13179
13194
  method: "POST",
13180
- path: "/user/repos",
13195
+ path: "/api/v1/user/repos",
13181
13196
  body: "args"
13182
13197
  },
13183
13198
  cas: "native-idempotency",
13184
13199
  externalEffect: true,
13185
- requiredScopes: ["repo"]
13200
+ requiredScopes: ["write:user"]
13186
13201
  },
13187
13202
  {
13188
13203
  name: "repos.delete",
@@ -13198,11 +13213,11 @@ var giteaConnector = declarativeRestConnector({
13198
13213
  },
13199
13214
  request: {
13200
13215
  method: "DELETE",
13201
- path: "/repos/{owner}/{repo}"
13216
+ path: "/api/v1/repos/{owner}/{repo}"
13202
13217
  },
13203
13218
  cas: "native-idempotency",
13204
13219
  externalEffect: true,
13205
- requiredScopes: ["repo", "admin"]
13220
+ requiredScopes: ["write:repository"]
13206
13221
  },
13207
13222
  {
13208
13223
  name: "pull-requests.merge",
@@ -13222,12 +13237,12 @@ var giteaConnector = declarativeRestConnector({
13222
13237
  },
13223
13238
  request: {
13224
13239
  method: "POST",
13225
- path: "/repos/{owner}/{repo}/pulls/{index}/merge",
13240
+ path: "/api/v1/repos/{owner}/{repo}/pulls/{index}/merge",
13226
13241
  body: "args"
13227
13242
  },
13228
13243
  cas: "native-idempotency",
13229
13244
  externalEffect: true,
13230
- requiredScopes: ["repo"]
13245
+ requiredScopes: ["write:repository"]
13231
13246
  }
13232
13247
  ]
13233
13248
  });
@@ -15066,32 +15081,25 @@ var niftyConnector = declarativeRestConnector({
15066
15081
  });
15067
15082
 
15068
15083
  // src/connectors/adapters/opsgenie.ts
15084
+ var OPSGENIE_API_BASE_URLS = [
15085
+ "https://api.opsgenie.com",
15086
+ "https://api.eu.opsgenie.com"
15087
+ ];
15069
15088
  var opsgenieConnector = declarativeRestConnector({
15070
15089
  kind: "opsgenie",
15071
15090
  displayName: "Opsgenie",
15072
- description: "Create, acknowledge, and close Opsgenie alerts and incidents, attach notes, and read schedules, on-call assignments, teams, and users against a connected Opsgenie account.",
15091
+ description: "Use an existing Opsgenie account to manage alerts and incidents, attach notes, and read schedules, on-call assignments, teams, and users.",
15073
15092
  auth: {
15074
- kind: "oauth2",
15075
- authorizationUrl: "https://app.opsgenie.com/oauth/authorize",
15076
- tokenUrl: "https://app.opsgenie.com/oauth/token",
15077
- scopes: [
15078
- "alert.read",
15079
- "alert.write",
15080
- "incident.read",
15081
- "incident.write",
15082
- "schedule.read",
15083
- "oncall.read",
15084
- "team.read",
15085
- "user.read"
15086
- ],
15087
- clientIdEnv: "OPSGENIE_OAUTH_CLIENT_ID",
15088
- clientSecretEnv: "OPSGENIE_OAUTH_CLIENT_SECRET"
15093
+ kind: "api-key",
15094
+ hint: "Opsgenie API key with access to the selected alert, incident, schedule, team, and user operations."
15089
15095
  },
15090
15096
  category: "other",
15091
15097
  defaultConsistencyModel: "authoritative",
15092
15098
  // Default to the US REST host; EU-rooted accounts override
15093
15099
  // metadata.apiBaseUrl to https://api.eu.opsgenie.com.
15094
15100
  baseUrl: { metadataKey: "apiBaseUrl", fallback: "https://api.opsgenie.com" },
15101
+ allowedBaseUrls: OPSGENIE_API_BASE_URLS,
15102
+ credentialPlacement: { kind: "header", header: "authorization", prefix: "GenieKey " },
15095
15103
  defaultHeaders: {
15096
15104
  accept: "application/json",
15097
15105
  "content-type": "application/json"
@@ -15142,8 +15150,7 @@ var opsgenieConnector = declarativeRestConnector({
15142
15150
  sort: "{sort}",
15143
15151
  order: "{order}"
15144
15152
  }
15145
- },
15146
- requiredScopes: ["alert.read"]
15153
+ }
15147
15154
  },
15148
15155
  {
15149
15156
  name: "alerts.get",
@@ -15161,8 +15168,7 @@ var opsgenieConnector = declarativeRestConnector({
15161
15168
  method: "GET",
15162
15169
  path: "/v2/alerts/{identifier}",
15163
15170
  query: { identifierType: "{identifierType}" }
15164
- },
15165
- requiredScopes: ["alert.read"]
15171
+ }
15166
15172
  },
15167
15173
  {
15168
15174
  name: "alerts.create",
@@ -15223,8 +15229,7 @@ var opsgenieConnector = declarativeRestConnector({
15223
15229
  note: "{note}"
15224
15230
  }
15225
15231
  },
15226
- cas: "native-idempotency",
15227
- requiredScopes: ["alert.write"]
15232
+ cas: "native-idempotency"
15228
15233
  },
15229
15234
  {
15230
15235
  name: "alerts.acknowledge",
@@ -15247,8 +15252,7 @@ var opsgenieConnector = declarativeRestConnector({
15247
15252
  query: { identifierType: "{identifierType}" },
15248
15253
  body: { user: "{user}", source: "{source}", note: "{note}" }
15249
15254
  },
15250
- cas: "native-idempotency",
15251
- requiredScopes: ["alert.write"]
15255
+ cas: "native-idempotency"
15252
15256
  },
15253
15257
  {
15254
15258
  name: "alerts.close",
@@ -15271,8 +15275,7 @@ var opsgenieConnector = declarativeRestConnector({
15271
15275
  query: { identifierType: "{identifierType}" },
15272
15276
  body: { user: "{user}", source: "{source}", note: "{note}" }
15273
15277
  },
15274
- cas: "native-idempotency",
15275
- requiredScopes: ["alert.write"]
15278
+ cas: "native-idempotency"
15276
15279
  },
15277
15280
  {
15278
15281
  name: "alerts.notes.list",
@@ -15300,8 +15303,7 @@ var opsgenieConnector = declarativeRestConnector({
15300
15303
  limit: "{limit}",
15301
15304
  order: "{order}"
15302
15305
  }
15303
- },
15304
- requiredScopes: ["alert.read"]
15306
+ }
15305
15307
  },
15306
15308
  {
15307
15309
  name: "alerts.notes.add",
@@ -15324,8 +15326,7 @@ var opsgenieConnector = declarativeRestConnector({
15324
15326
  query: { identifierType: "{identifierType}" },
15325
15327
  body: { note: "{note}", user: "{user}", source: "{source}" }
15326
15328
  },
15327
- cas: "native-idempotency",
15328
- requiredScopes: ["alert.write"]
15329
+ cas: "native-idempotency"
15329
15330
  },
15330
15331
  {
15331
15332
  name: "incidents.list",
@@ -15354,8 +15355,7 @@ var opsgenieConnector = declarativeRestConnector({
15354
15355
  sort: "{sort}",
15355
15356
  order: "{order}"
15356
15357
  }
15357
- },
15358
- requiredScopes: ["incident.read"]
15358
+ }
15359
15359
  },
15360
15360
  {
15361
15361
  name: "incidents.get",
@@ -15373,8 +15373,7 @@ var opsgenieConnector = declarativeRestConnector({
15373
15373
  method: "GET",
15374
15374
  path: "/v1/incidents/{identifier}",
15375
15375
  query: { identifierType: "{identifierType}" }
15376
- },
15377
- requiredScopes: ["incident.read"]
15376
+ }
15378
15377
  },
15379
15378
  {
15380
15379
  name: "incidents.create",
@@ -15420,8 +15419,7 @@ var opsgenieConnector = declarativeRestConnector({
15420
15419
  impactedServices: "{impactedServices}"
15421
15420
  }
15422
15421
  },
15423
- cas: "native-idempotency",
15424
- requiredScopes: ["incident.write"]
15422
+ cas: "native-idempotency"
15425
15423
  },
15426
15424
  {
15427
15425
  name: "incidents.close",
@@ -15442,8 +15440,7 @@ var opsgenieConnector = declarativeRestConnector({
15442
15440
  query: { identifierType: "{identifierType}" },
15443
15441
  body: { note: "{note}" }
15444
15442
  },
15445
- cas: "native-idempotency",
15446
- requiredScopes: ["incident.write"]
15443
+ cas: "native-idempotency"
15447
15444
  },
15448
15445
  {
15449
15446
  name: "incidents.notes.add",
@@ -15464,8 +15461,7 @@ var opsgenieConnector = declarativeRestConnector({
15464
15461
  query: { identifierType: "{identifierType}" },
15465
15462
  body: { note: "{note}" }
15466
15463
  },
15467
- cas: "native-idempotency",
15468
- requiredScopes: ["incident.write"]
15464
+ cas: "native-idempotency"
15469
15465
  },
15470
15466
  {
15471
15467
  name: "schedules.list",
@@ -15485,8 +15481,7 @@ var opsgenieConnector = declarativeRestConnector({
15485
15481
  method: "GET",
15486
15482
  path: "/v2/schedules",
15487
15483
  query: { expand: "{expand}" }
15488
- },
15489
- requiredScopes: ["schedule.read"]
15484
+ }
15490
15485
  },
15491
15486
  {
15492
15487
  name: "schedules.get",
@@ -15504,8 +15499,7 @@ var opsgenieConnector = declarativeRestConnector({
15504
15499
  method: "GET",
15505
15500
  path: "/v2/schedules/{identifier}",
15506
15501
  query: { identifierType: "{identifierType}" }
15507
- },
15508
- requiredScopes: ["schedule.read"]
15502
+ }
15509
15503
  },
15510
15504
  {
15511
15505
  name: "schedules.timeline",
@@ -15536,8 +15530,7 @@ var opsgenieConnector = declarativeRestConnector({
15536
15530
  date: "{date}",
15537
15531
  expand: "{expand}"
15538
15532
  }
15539
- },
15540
- requiredScopes: ["schedule.read"]
15533
+ }
15541
15534
  },
15542
15535
  {
15543
15536
  name: "oncalls.current",
@@ -15561,8 +15554,7 @@ var opsgenieConnector = declarativeRestConnector({
15561
15554
  flat: "{flat}",
15562
15555
  date: "{date}"
15563
15556
  }
15564
- },
15565
- requiredScopes: ["oncall.read"]
15557
+ }
15566
15558
  },
15567
15559
  {
15568
15560
  name: "oncalls.next",
@@ -15586,16 +15578,14 @@ var opsgenieConnector = declarativeRestConnector({
15586
15578
  flat: "{flat}",
15587
15579
  date: "{date}"
15588
15580
  }
15589
- },
15590
- requiredScopes: ["oncall.read"]
15581
+ }
15591
15582
  },
15592
15583
  {
15593
15584
  name: "teams.list",
15594
15585
  class: "read",
15595
15586
  description: "List all teams in the Opsgenie workspace.",
15596
15587
  parameters: { type: "object", properties: {} },
15597
- request: { method: "GET", path: "/v2/teams" },
15598
- requiredScopes: ["team.read"]
15588
+ request: { method: "GET", path: "/v2/teams" }
15599
15589
  },
15600
15590
  {
15601
15591
  name: "teams.get",
@@ -15613,8 +15603,7 @@ var opsgenieConnector = declarativeRestConnector({
15613
15603
  method: "GET",
15614
15604
  path: "/v2/teams/{identifier}",
15615
15605
  query: { identifierType: "{identifierType}" }
15616
- },
15617
- requiredScopes: ["team.read"]
15606
+ }
15618
15607
  },
15619
15608
  {
15620
15609
  name: "users.list",
@@ -15640,8 +15629,7 @@ var opsgenieConnector = declarativeRestConnector({
15640
15629
  sort: "{sort}",
15641
15630
  order: "{order}"
15642
15631
  }
15643
- },
15644
- requiredScopes: ["user.read"]
15632
+ }
15645
15633
  },
15646
15634
  {
15647
15635
  name: "users.get",
@@ -15659,8 +15647,7 @@ var opsgenieConnector = declarativeRestConnector({
15659
15647
  method: "GET",
15660
15648
  path: "/v2/users/{identifier}",
15661
15649
  query: { expand: "{expand}" }
15662
- },
15663
- requiredScopes: ["user.read"]
15650
+ }
15664
15651
  }
15665
15652
  ]
15666
15653
  });
@@ -16261,6 +16248,7 @@ var paychexConnector = declarativeRestConnector({
16261
16248
  category: "hr",
16262
16249
  defaultConsistencyModel: "authoritative",
16263
16250
  baseUrl: { metadataKey: "apiBaseUri", fallback: "https://api.paychex.com" },
16251
+ allowedBaseUrlSuffixes: [".paychex.com"],
16264
16252
  // Listing companies is the cheapest read that proves the client-credentials
16265
16253
  // token is valid and the app has been granted access.
16266
16254
  test: { method: "GET", path: "/companies" },
@@ -16857,8 +16845,8 @@ var ripplingConnector = declarativeRestConnector({
16857
16845
  description: "Read Rippling HRIS data (employees, groups, departments, work locations) and update employee records via the Rippling Platform API.",
16858
16846
  auth: {
16859
16847
  kind: "oauth2",
16860
- authorizationUrl: "https://app.rippling.com/apps/{client_id}/install",
16861
- tokenUrl: "https://app.rippling.com/api/o/token/",
16848
+ authorizationUrl: "https://app.rippling.com/apps/PLATFORM/{appName}/authorize",
16849
+ tokenUrl: "https://api.rippling.com/api/o/token/",
16862
16850
  scopes: [
16863
16851
  "company:read",
16864
16852
  "employees:read",
@@ -16870,7 +16858,12 @@ var ripplingConnector = declarativeRestConnector({
16870
16858
  "company_activity:read"
16871
16859
  ],
16872
16860
  clientIdEnv: "RIPPLING_OAUTH_CLIENT_ID",
16873
- clientSecretEnv: "RIPPLING_OAUTH_CLIENT_SECRET"
16861
+ clientSecretEnv: "RIPPLING_OAUTH_CLIENT_SECRET",
16862
+ tokenClientAuthMethod: "client_secret_basic",
16863
+ pkce: "unsupported",
16864
+ urlTemplateMetadata: {
16865
+ appName: { kind: "path-segment" }
16866
+ }
16874
16867
  },
16875
16868
  category: "other",
16876
16869
  defaultConsistencyModel: "authoritative",
@@ -17651,421 +17644,148 @@ var sendpulseConnector = declarativeRestConnector({
17651
17644
  var snowflakeConnector = declarativeRestConnector({
17652
17645
  kind: "snowflake",
17653
17646
  displayName: "Snowflake",
17654
- description: "Data warehouse built for the cloud. Query, insert, update, delete, and upsert rows.",
17647
+ description: "Execute and monitor SQL statements through a connected Snowflake account SQL API.",
17655
17648
  auth: {
17656
17649
  kind: "oauth2",
17657
- authorizationUrl: "https://app.snowflake.com/oauth/authorize",
17658
- tokenUrl: "https://app.snowflake.com/oauth/token",
17659
- scopes: ["session:role:manage"],
17650
+ authorizationUrl: "{accountUrl}/oauth/authorize",
17651
+ tokenUrl: "{accountUrl}/oauth/token-request",
17652
+ scopes: ["refresh_token"],
17660
17653
  clientIdEnv: "SNOWFLAKE_OAUTH_CLIENT_ID",
17661
- clientSecretEnv: "SNOWFLAKE_OAUTH_CLIENT_SECRET"
17654
+ clientSecretEnv: "SNOWFLAKE_OAUTH_CLIENT_SECRET",
17655
+ tokenClientAuthMethod: "client_secret_post",
17656
+ pkce: "supported",
17657
+ urlTemplateMetadata: {
17658
+ accountUrl: {
17659
+ kind: "base-url",
17660
+ allowedBaseUrlSuffixes: [".snowflakecomputing.com"]
17661
+ }
17662
+ }
17662
17663
  },
17663
17664
  category: "database",
17664
17665
  defaultConsistencyModel: "authoritative",
17665
- baseUrl: "https://api.snowflakecomputing.com/api/v2",
17666
- test: { method: "GET", path: "/accounts/whoami" },
17666
+ baseUrl: { metadataKey: "accountUrl" },
17667
+ allowedBaseUrlSuffixes: [".snowflakecomputing.com"],
17668
+ defaultHeaders: {
17669
+ "content-type": "application/json",
17670
+ "x-snowflake-authorization-token-type": "OAUTH"
17671
+ },
17672
+ test: {
17673
+ method: "POST",
17674
+ path: "/api/v2/statements",
17675
+ body: { statement: "SELECT CURRENT_ACCOUNT(), CURRENT_USER(), CURRENT_ROLE()" }
17676
+ },
17667
17677
  capabilities: [
17668
17678
  {
17669
17679
  name: "queries.run",
17670
- class: "read",
17671
- description: "Run a SQL query.",
17672
- parameters: {
17673
- type: "object",
17674
- properties: { statement: { type: "string" } },
17675
- required: ["statement"]
17676
- },
17677
- request: { method: "POST", path: "/statements", body: { statement: "{statement}" } },
17678
- requiredScopes: ["session:role:manage"]
17679
- },
17680
- {
17681
- name: "queries.runMultiple",
17682
- class: "read",
17683
- description: "Run multiple SQL queries.",
17684
- parameters: {
17685
- type: "object",
17686
- properties: { statements: { type: "array", items: { type: "string" } } },
17687
- required: ["statements"]
17688
- },
17689
- request: { method: "POST", path: "/statements", body: { statements: "{statements}" } },
17690
- requiredScopes: ["session:role:manage"]
17691
- },
17692
- {
17693
- name: "rows.insert",
17694
17680
  class: "mutation",
17695
- description: "Insert a row into a table.",
17681
+ description: "Execute one SQL statement. Every statement requires approval because Snowflake SQL can mutate account data and configuration.",
17696
17682
  parameters: {
17697
17683
  type: "object",
17698
17684
  properties: {
17685
+ statement: { type: "string", description: "One Snowflake SQL statement." },
17686
+ timeout: { type: "integer", minimum: 1, description: "Maximum execution time in seconds." },
17699
17687
  database: { type: "string" },
17700
17688
  schema: { type: "string" },
17701
- table: { type: "string" },
17702
- values: { type: "object" }
17689
+ warehouse: { type: "string" },
17690
+ role: { type: "string" },
17691
+ bindings: {
17692
+ type: "object",
17693
+ description: "Snowflake SQL API bind variables keyed by one-based position."
17694
+ },
17695
+ async: { type: "boolean", description: "Return a statement handle without waiting for completion." }
17703
17696
  },
17704
- required: ["database", "schema", "table", "values"]
17697
+ required: ["statement"]
17705
17698
  },
17706
17699
  request: {
17707
17700
  method: "POST",
17708
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows",
17709
- body: { values: "{values}" }
17701
+ path: "/api/v2/statements",
17702
+ query: { async: "{async}" },
17703
+ body: {
17704
+ statement: "{statement}",
17705
+ timeout: "{timeout}",
17706
+ database: "{database}",
17707
+ schema: "{schema}",
17708
+ warehouse: "{warehouse}",
17709
+ role: "{role}",
17710
+ bindings: "{bindings}"
17711
+ }
17710
17712
  },
17711
- cas: "native-idempotency",
17712
- requiredScopes: ["session:role:manage"]
17713
+ cas: "none",
17714
+ externalEffect: true
17713
17715
  },
17714
17716
  {
17715
- name: "rows.insertMultiple",
17717
+ name: "queries.runMultiple",
17716
17718
  class: "mutation",
17717
- description: "Insert multiple rows into a table.",
17719
+ description: "Execute a semicolon-delimited SQL string as multiple statements. Snowflake does not support bind variables for this operation.",
17718
17720
  parameters: {
17719
17721
  type: "object",
17720
17722
  properties: {
17723
+ statement: { type: "string", description: "Semicolon-delimited Snowflake SQL statements." },
17724
+ multiStatementCount: {
17725
+ type: "string",
17726
+ pattern: "^[1-9][0-9]*$",
17727
+ description: "Number of statements in the SQL string."
17728
+ },
17729
+ timeout: { type: "integer", minimum: 1 },
17721
17730
  database: { type: "string" },
17722
17731
  schema: { type: "string" },
17723
- table: { type: "string" },
17724
- rows: { type: "array", items: { type: "object" } }
17732
+ warehouse: { type: "string" },
17733
+ role: { type: "string" },
17734
+ async: { type: "boolean" }
17725
17735
  },
17726
- required: ["database", "schema", "table", "rows"]
17736
+ required: ["statement", "multiStatementCount"]
17727
17737
  },
17728
17738
  request: {
17729
17739
  method: "POST",
17730
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows/bulk",
17731
- body: { rows: "{rows}" }
17732
- },
17733
- cas: "native-idempotency",
17734
- requiredScopes: ["session:role:manage"]
17735
- },
17736
- {
17737
- name: "rows.update",
17738
- class: "mutation",
17739
- description: "Update a row in a table.",
17740
- parameters: {
17741
- type: "object",
17742
- properties: {
17743
- database: { type: "string" },
17744
- schema: { type: "string" },
17745
- table: { type: "string" },
17746
- rowId: { type: "string" },
17747
- values: { type: "object" }
17748
- },
17749
- required: ["database", "schema", "table", "rowId", "values"]
17750
- },
17751
- request: {
17752
- method: "PATCH",
17753
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows/{rowId}",
17754
- body: { values: "{values}" }
17755
- },
17756
- cas: "optimistic-read-verify",
17757
- requiredScopes: ["session:role:manage"]
17758
- },
17759
- {
17760
- name: "rows.upsert",
17761
- class: "mutation",
17762
- description: "Insert or update a row in a table.",
17763
- parameters: {
17764
- type: "object",
17765
- properties: {
17766
- database: { type: "string" },
17767
- schema: { type: "string" },
17768
- table: { type: "string" },
17769
- values: { type: "object" },
17770
- keyColumns: { type: "array", items: { type: "string" } }
17771
- },
17772
- required: ["database", "schema", "table", "values", "keyColumns"]
17773
- },
17774
- request: {
17775
- method: "PUT",
17776
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows/upsert",
17777
- body: { values: "{values}", keyColumns: "{keyColumns}" }
17778
- },
17779
- cas: "native-idempotency",
17780
- requiredScopes: ["session:role:manage"]
17781
- },
17782
- {
17783
- name: "rows.delete",
17784
- class: "mutation",
17785
- description: "Delete a row from a table.",
17786
- parameters: {
17787
- type: "object",
17788
- properties: {
17789
- database: { type: "string" },
17790
- schema: { type: "string" },
17791
- table: { type: "string" },
17792
- rowId: { type: "string" }
17793
- },
17794
- required: ["database", "schema", "table", "rowId"]
17795
- },
17796
- request: {
17797
- method: "DELETE",
17798
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows/{rowId}"
17799
- },
17800
- requiredScopes: ["session:role:manage"]
17801
- },
17802
- {
17803
- name: "rows.getById",
17804
- class: "read",
17805
- description: "Get a row by ID from a table.",
17806
- parameters: {
17807
- type: "object",
17808
- properties: {
17809
- database: { type: "string" },
17810
- schema: { type: "string" },
17811
- table: { type: "string" },
17812
- rowId: { type: "string" }
17813
- },
17814
- required: ["database", "schema", "table", "rowId"]
17815
- },
17816
- request: {
17817
- method: "GET",
17818
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows/{rowId}"
17819
- },
17820
- requiredScopes: ["session:role:manage"]
17821
- },
17822
- {
17823
- name: "rows.search",
17824
- class: "read",
17825
- description: "Search rows in a table.",
17826
- parameters: {
17827
- type: "object",
17828
- properties: {
17829
- database: { type: "string" },
17830
- schema: { type: "string" },
17831
- table: { type: "string" },
17832
- filter: { type: "object" },
17833
- limit: { type: "integer" }
17834
- },
17835
- required: ["database", "schema", "table"]
17836
- },
17837
- request: {
17838
- method: "GET",
17839
- path: "/databases/{database}/schemas/{schema}/tables/{table}/rows",
17840
- query: { filter: "{filter}", limit: "{limit}" }
17841
- },
17842
- requiredScopes: ["session:role:manage"]
17843
- },
17844
- {
17845
- name: "tables.list",
17846
- class: "read",
17847
- description: "List tables in a schema.",
17848
- parameters: {
17849
- type: "object",
17850
- properties: {
17851
- database: { type: "string" },
17852
- schema: { type: "string" }
17853
- },
17854
- required: ["database", "schema"]
17855
- },
17856
- request: {
17857
- method: "GET",
17858
- path: "/databases/{database}/schemas/{schema}/tables"
17740
+ path: "/api/v2/statements",
17741
+ query: { async: "{async}" },
17742
+ body: {
17743
+ statement: "{statement}",
17744
+ timeout: "{timeout}",
17745
+ database: "{database}",
17746
+ schema: "{schema}",
17747
+ warehouse: "{warehouse}",
17748
+ role: "{role}",
17749
+ parameters: { MULTI_STATEMENT_COUNT: "{multiStatementCount}" }
17750
+ }
17859
17751
  },
17860
- requiredScopes: ["session:role:manage"]
17752
+ cas: "none",
17753
+ externalEffect: true
17861
17754
  },
17862
17755
  {
17863
- name: "tables.getSchema",
17756
+ name: "statements.get",
17864
17757
  class: "read",
17865
- description: "Get the schema of a table.",
17758
+ description: "Check a statement and retrieve one result partition.",
17866
17759
  parameters: {
17867
17760
  type: "object",
17868
17761
  properties: {
17869
- database: { type: "string" },
17870
- schema: { type: "string" },
17871
- table: { type: "string" }
17762
+ statementHandle: { type: "string" },
17763
+ partition: { type: "integer", minimum: 0 }
17872
17764
  },
17873
- required: ["database", "schema", "table"]
17765
+ required: ["statementHandle"]
17874
17766
  },
17875
17767
  request: {
17876
17768
  method: "GET",
17877
- path: "/databases/{database}/schemas/{schema}/tables/{table}/schema"
17878
- },
17879
- requiredScopes: ["session:role:manage"]
17880
- },
17881
- {
17882
- name: "procedures.execute",
17883
- class: "mutation",
17884
- description: "Execute a stored procedure.",
17885
- parameters: {
17886
- type: "object",
17887
- properties: {
17888
- database: { type: "string" },
17889
- schema: { type: "string" },
17890
- procedureName: { type: "string" },
17891
- arguments: { type: "array", items: { type: "string" } }
17892
- },
17893
- required: ["database", "schema", "procedureName"]
17894
- },
17895
- request: {
17896
- method: "POST",
17897
- path: "/databases/{database}/schemas/{schema}/procedures/{procedureName}/execute",
17898
- body: { arguments: "{arguments}" }
17899
- },
17900
- requiredScopes: ["session:role:manage"]
17901
- },
17902
- {
17903
- name: "stages.loadData",
17904
- class: "mutation",
17905
- description: "Load data from a stage into a table.",
17906
- parameters: {
17907
- type: "object",
17908
- properties: {
17909
- database: { type: "string" },
17910
- schema: { type: "string" },
17911
- table: { type: "string" },
17912
- stage: { type: "string" },
17913
- files: { type: "array", items: { type: "string" } }
17914
- },
17915
- required: ["database", "schema", "table", "stage"]
17916
- },
17917
- request: {
17918
- method: "POST",
17919
- path: "/databases/{database}/schemas/{schema}/tables/{table}/load",
17920
- body: { stage: "{stage}", files: "{files}" }
17921
- },
17922
- cas: "native-idempotency",
17923
- requiredScopes: ["session:role:manage"]
17924
- },
17925
- {
17926
- name: "dynamicTables.create",
17927
- class: "mutation",
17928
- description: "Create a dynamic table.",
17929
- parameters: {
17930
- type: "object",
17931
- properties: {
17932
- database: { type: "string" },
17933
- schema: { type: "string" },
17934
- name: { type: "string" },
17935
- query: { type: "string" }
17936
- },
17937
- required: ["database", "schema", "name", "query"]
17938
- },
17939
- request: {
17940
- method: "POST",
17941
- path: "/databases/{database}/schemas/{schema}/dynamic-tables",
17942
- body: { name: "{name}", query: "{query}" }
17943
- },
17944
- cas: "native-idempotency",
17945
- requiredScopes: ["session:role:manage"]
17946
- },
17947
- {
17948
- name: "tables.create",
17949
- class: "mutation",
17950
- description: "Create a table in a schema.",
17951
- parameters: {
17952
- type: "object",
17953
- properties: {
17954
- database: { type: "string" },
17955
- schema: { type: "string" },
17956
- name: { type: "string" },
17957
- columns: {
17958
- type: "array",
17959
- description: 'Column definitions: name + Snowflake type, e.g. {name: "id", type: "NUMBER"}.',
17960
- items: {
17961
- type: "object",
17962
- properties: {
17963
- name: { type: "string" },
17964
- type: { type: "string" },
17965
- nullable: { type: "boolean" },
17966
- default: {}
17967
- },
17968
- required: ["name", "type"]
17969
- }
17970
- }
17971
- },
17972
- required: ["database", "schema", "name", "columns"]
17973
- },
17974
- request: {
17975
- method: "POST",
17976
- path: "/databases/{database}/schemas/{schema}/tables",
17977
- body: { name: "{name}", columns: "{columns}" }
17978
- },
17979
- cas: "native-idempotency",
17980
- externalEffect: true,
17981
- requiredScopes: ["session:role:manage"]
17982
- },
17983
- {
17984
- name: "tables.drop",
17985
- class: "mutation",
17986
- description: "Drop a table from a schema.",
17987
- parameters: {
17988
- type: "object",
17989
- properties: {
17990
- database: { type: "string" },
17991
- schema: { type: "string" },
17992
- table: { type: "string" }
17993
- },
17994
- required: ["database", "schema", "table"]
17995
- },
17996
- request: {
17997
- method: "DELETE",
17998
- path: "/databases/{database}/schemas/{schema}/tables/{table}"
17999
- },
18000
- cas: "native-idempotency",
18001
- externalEffect: true,
18002
- requiredScopes: ["session:role:manage"]
18003
- },
18004
- {
18005
- name: "stages.create",
18006
- class: "mutation",
18007
- description: "Create an internal stage for file loads.",
18008
- parameters: {
18009
- type: "object",
18010
- properties: {
18011
- database: { type: "string" },
18012
- schema: { type: "string" },
18013
- name: { type: "string" },
18014
- fileFormat: { type: "string", description: 'Optional named file format, e.g. "CSV".' },
18015
- comment: { type: "string" }
18016
- },
18017
- required: ["database", "schema", "name"]
18018
- },
18019
- request: {
18020
- method: "POST",
18021
- path: "/databases/{database}/schemas/{schema}/stages",
18022
- body: "args"
18023
- },
18024
- cas: "native-idempotency",
18025
- externalEffect: true,
18026
- requiredScopes: ["session:role:manage"]
17769
+ path: "/api/v2/statements/{statementHandle}",
17770
+ query: { partition: "{partition}" }
17771
+ }
18027
17772
  },
18028
17773
  {
18029
- name: "stages.unloadData",
17774
+ name: "statements.cancel",
18030
17775
  class: "mutation",
18031
- description: "Unload table data to a stage (COPY INTO @stage FROM table).",
17776
+ description: "Cancel a running SQL statement by its Snowflake handle.",
18032
17777
  parameters: {
18033
17778
  type: "object",
18034
- properties: {
18035
- database: { type: "string" },
18036
- schema: { type: "string" },
18037
- table: { type: "string" },
18038
- stage: { type: "string" },
18039
- fileFormat: { type: "string" },
18040
- overwrite: { type: "boolean" }
18041
- },
18042
- required: ["database", "schema", "table", "stage"]
17779
+ properties: { statementHandle: { type: "string" } },
17780
+ required: ["statementHandle"]
18043
17781
  },
18044
17782
  request: {
18045
17783
  method: "POST",
18046
- path: "/databases/{database}/schemas/{schema}/tables/{table}/unload",
18047
- body: "args"
18048
- },
18049
- cas: "native-idempotency",
18050
- externalEffect: true,
18051
- requiredScopes: ["session:role:manage"]
18052
- },
18053
- {
18054
- name: "warehouses.list",
18055
- class: "read",
18056
- description: "List warehouses available to the authenticated identity.",
18057
- parameters: {
18058
- type: "object",
18059
- properties: {
18060
- like: { type: "string", description: "Optional name pattern (SQL LIKE syntax)." }
18061
- }
18062
- },
18063
- request: {
18064
- method: "GET",
18065
- path: "/warehouses",
18066
- query: { like: "{like}" }
17784
+ path: "/api/v2/statements/{statementHandle}/cancel",
17785
+ body: {}
18067
17786
  },
18068
- requiredScopes: ["session:role:manage"]
17787
+ cas: "none",
17788
+ externalEffect: true
18069
17789
  }
18070
17790
  ]
18071
17791
  });
@@ -18074,19 +17794,29 @@ var snowflakeConnector = declarativeRestConnector({
18074
17794
  var teableConnector = declarativeRestConnector({
18075
17795
  kind: "teable",
18076
17796
  displayName: "Teable",
18077
- description: "Create, read, update, and delete records in Teable databases, plus upload attachments.",
17797
+ description: "Read and write records, tables, fields, and views in Teable databases.",
18078
17798
  auth: {
18079
17799
  kind: "oauth2",
18080
- authorizationUrl: "https://app.teable.io/oauth/authorize",
18081
- tokenUrl: "https://app.teable.io/oauth/token",
18082
- scopes: ["database:read", "database:write"],
17800
+ authorizationUrl: "https://app.teable.ai/api/oauth/authorize",
17801
+ tokenUrl: "https://app.teable.ai/api/oauth/access_token",
17802
+ scopes: [
17803
+ "base|read",
17804
+ "table|read",
17805
+ "table|create",
17806
+ "field|create",
17807
+ "view|create",
17808
+ "record|read",
17809
+ "record|create",
17810
+ "record|update"
17811
+ ],
18083
17812
  clientIdEnv: "TEABLE_OAUTH_CLIENT_ID",
18084
- clientSecretEnv: "TEABLE_OAUTH_CLIENT_SECRET"
17813
+ clientSecretEnv: "TEABLE_OAUTH_CLIENT_SECRET",
17814
+ pkce: "supported"
18085
17815
  },
18086
17816
  category: "doc",
18087
17817
  defaultConsistencyModel: "authoritative",
18088
- baseUrl: "https://app.teable.io/api/v1",
18089
- test: { method: "GET", path: "/bases" },
17818
+ baseUrl: "https://app.teable.ai/api",
17819
+ test: { method: "GET", path: "/auth/user/me" },
18090
17820
  capabilities: [
18091
17821
  {
18092
17822
  name: "records.create",
@@ -18096,16 +17826,23 @@ var teableConnector = declarativeRestConnector({
18096
17826
  type: "object",
18097
17827
  properties: {
18098
17828
  tableId: { type: "string" },
18099
- fields: { type: "object" }
17829
+ fields: { type: "object" },
17830
+ fieldKeyType: { type: "string", enum: ["name", "id", "dbFieldName"] },
17831
+ typecast: { type: "boolean" }
18100
17832
  },
18101
17833
  required: ["tableId", "fields"]
18102
17834
  },
18103
17835
  request: {
18104
17836
  method: "POST",
18105
- path: "/tables/{tableId}/records",
18106
- body: { fields: "{fields}" }
17837
+ path: "/table/{tableId}/record",
17838
+ body: {
17839
+ records: [{ fields: "{fields}" }],
17840
+ fieldKeyType: "{fieldKeyType}",
17841
+ typecast: "{typecast}"
17842
+ }
18107
17843
  },
18108
- cas: "native-idempotency"
17844
+ cas: "native-idempotency",
17845
+ requiredScopes: ["record|create"]
18109
17846
  },
18110
17847
  {
18111
17848
  name: "records.find",
@@ -18116,20 +17853,27 @@ var teableConnector = declarativeRestConnector({
18116
17853
  properties: {
18117
17854
  tableId: { type: "string" },
18118
17855
  filter: { type: "string" },
18119
- limit: { type: "integer" },
18120
- offset: { type: "integer" }
17856
+ take: { type: "integer", minimum: 1, maximum: 1e3 },
17857
+ skip: { type: "integer", minimum: 0 },
17858
+ viewId: { type: "string" },
17859
+ fieldKeyType: { type: "string", enum: ["name", "id", "dbFieldName"] },
17860
+ cellFormat: { type: "string", enum: ["json", "text"] }
18121
17861
  },
18122
17862
  required: ["tableId"]
18123
17863
  },
18124
17864
  request: {
18125
17865
  method: "GET",
18126
- path: "/tables/{tableId}/records",
17866
+ path: "/table/{tableId}/record",
18127
17867
  query: {
18128
17868
  filter: "{filter}",
18129
- limit: "{limit}",
18130
- offset: "{offset}"
17869
+ take: "{take}",
17870
+ skip: "{skip}",
17871
+ viewId: "{viewId}",
17872
+ fieldKeyType: "{fieldKeyType}",
17873
+ cellFormat: "{cellFormat}"
18131
17874
  }
18132
- }
17875
+ },
17876
+ requiredScopes: ["record|read"]
18133
17877
  },
18134
17878
  {
18135
17879
  name: "records.get",
@@ -18139,14 +17883,21 @@ var teableConnector = declarativeRestConnector({
18139
17883
  type: "object",
18140
17884
  properties: {
18141
17885
  tableId: { type: "string" },
18142
- recordId: { type: "string" }
17886
+ recordId: { type: "string" },
17887
+ fieldKeyType: { type: "string", enum: ["name", "id", "dbFieldName"] },
17888
+ cellFormat: { type: "string", enum: ["json", "text"] }
18143
17889
  },
18144
17890
  required: ["tableId", "recordId"]
18145
17891
  },
18146
17892
  request: {
18147
17893
  method: "GET",
18148
- path: "/tables/{tableId}/records/{recordId}"
18149
- }
17894
+ path: "/table/{tableId}/record/{recordId}",
17895
+ query: {
17896
+ fieldKeyType: "{fieldKeyType}",
17897
+ cellFormat: "{cellFormat}"
17898
+ }
17899
+ },
17900
+ requiredScopes: ["record|read"]
18150
17901
  },
18151
17902
  {
18152
17903
  name: "records.update",
@@ -18157,60 +17908,23 @@ var teableConnector = declarativeRestConnector({
18157
17908
  properties: {
18158
17909
  tableId: { type: "string" },
18159
17910
  recordId: { type: "string" },
18160
- fields: { type: "object" }
17911
+ fields: { type: "object" },
17912
+ fieldKeyType: { type: "string", enum: ["name", "id", "dbFieldName"] },
17913
+ typecast: { type: "boolean" }
18161
17914
  },
18162
17915
  required: ["tableId", "recordId", "fields"]
18163
17916
  },
18164
17917
  request: {
18165
17918
  method: "PATCH",
18166
- path: "/tables/{tableId}/records/{recordId}",
18167
- body: { fields: "{fields}" }
18168
- },
18169
- cas: "optimistic-read-verify"
18170
- },
18171
- {
18172
- name: "records.delete",
18173
- class: "mutation",
18174
- description: "Delete a record from a Teable table.",
18175
- parameters: {
18176
- type: "object",
18177
- properties: {
18178
- tableId: { type: "string" },
18179
- recordId: { type: "string" }
18180
- },
18181
- required: ["tableId", "recordId"]
18182
- },
18183
- request: {
18184
- method: "DELETE",
18185
- path: "/tables/{tableId}/records/{recordId}"
18186
- },
18187
- cas: "native-idempotency"
18188
- },
18189
- {
18190
- name: "attachments.upload",
18191
- class: "mutation",
18192
- description: "Upload an attachment to a Teable record field.",
18193
- parameters: {
18194
- type: "object",
18195
- properties: {
18196
- tableId: { type: "string" },
18197
- recordId: { type: "string" },
18198
- fieldId: { type: "string" },
18199
- fileUrl: { type: "string" },
18200
- fileName: { type: "string" }
18201
- },
18202
- required: ["tableId", "recordId", "fieldId", "fileUrl"]
18203
- },
18204
- request: {
18205
- method: "POST",
18206
- path: "/tables/{tableId}/records/{recordId}/attachments",
17919
+ path: "/table/{tableId}/record/{recordId}",
18207
17920
  body: {
18208
- fieldId: "{fieldId}",
18209
- fileUrl: "{fileUrl}",
18210
- fileName: "{fileName}"
17921
+ record: { fields: "{fields}" },
17922
+ fieldKeyType: "{fieldKeyType}",
17923
+ typecast: "{typecast}"
18211
17924
  }
18212
17925
  },
18213
- cas: "native-idempotency"
17926
+ cas: "optimistic-read-verify",
17927
+ requiredScopes: ["record|update"]
18214
17928
  },
18215
17929
  {
18216
17930
  name: "tables.list",
@@ -18226,7 +17940,8 @@ var teableConnector = declarativeRestConnector({
18226
17940
  request: {
18227
17941
  method: "GET",
18228
17942
  path: "/base/{baseId}/table"
18229
- }
17943
+ },
17944
+ requiredScopes: ["table|read"]
18230
17945
  },
18231
17946
  {
18232
17947
  name: "tables.create",
@@ -18248,7 +17963,8 @@ var teableConnector = declarativeRestConnector({
18248
17963
  }
18249
17964
  },
18250
17965
  cas: "native-idempotency",
18251
- externalEffect: true
17966
+ externalEffect: true,
17967
+ requiredScopes: ["table|create"]
18252
17968
  },
18253
17969
  {
18254
17970
  name: "fields.create",
@@ -18272,7 +17988,8 @@ var teableConnector = declarativeRestConnector({
18272
17988
  }
18273
17989
  },
18274
17990
  cas: "native-idempotency",
18275
- externalEffect: true
17991
+ externalEffect: true,
17992
+ requiredScopes: ["field|create"]
18276
17993
  },
18277
17994
  {
18278
17995
  name: "views.create",
@@ -18296,7 +18013,8 @@ var teableConnector = declarativeRestConnector({
18296
18013
  }
18297
18014
  },
18298
18015
  cas: "native-idempotency",
18299
- externalEffect: true
18016
+ externalEffect: true,
18017
+ requiredScopes: ["view|create"]
18300
18018
  }
18301
18019
  ]
18302
18020
  });
@@ -19100,13 +18818,13 @@ var workdayConnector = declarativeRestConnector({
19100
18818
  description: "Read Workday workers, organizations, locations, and time-off data and submit time-off requests through the tenant-scoped Workday REST API.",
19101
18819
  auth: {
19102
18820
  kind: "oauth2",
19103
- // Tenant-scoped at OAuth-client registration time. {host} resolves to
19104
- // the customer's Workday data center (wd5.workday.com, wd2-impl-...),
18821
+ // Tenant-scoped at OAuth-client registration time. {workdayBaseUrl}
18822
+ // resolves to the customer's Workday data-center origin,
19105
18823
  // {tenant} to the customer's tenant id. The platform stores the
19106
18824
  // resolved URLs alongside the OAuth client record, the same pattern
19107
18825
  // Auth0 uses for its tenant-scoped Management API client.
19108
- authorizationUrl: "https://{host}/ccx/oauth2/{tenant}/authorize",
19109
- tokenUrl: "https://{host}/ccx/oauth2/{tenant}/token",
18826
+ authorizationUrl: "{workdayBaseUrl}/ccx/oauth2/{tenant}/authorize",
18827
+ tokenUrl: "{workdayBaseUrl}/ccx/oauth2/{tenant}/token",
19110
18828
  // Workday scopes are Functional Area names; the tenant admin enables
19111
18829
  // matching functional areas on the API Client and the OAuth flow
19112
18830
  // narrows further per request. The set below maps to the action pack:
@@ -19114,7 +18832,17 @@ var workdayConnector = declarativeRestConnector({
19114
18832
  // cover the org/location reads; Time Off covers PTO list + submit.
19115
18833
  scopes: ["Staffing", "Organizations and Roles", "Time Off and Leave"],
19116
18834
  clientIdEnv: "WORKDAY_OAUTH_CLIENT_ID",
19117
- clientSecretEnv: "WORKDAY_OAUTH_CLIENT_SECRET"
18835
+ clientSecretEnv: "WORKDAY_OAUTH_CLIENT_SECRET",
18836
+ tokenClientAuthMethod: "client_secret_basic",
18837
+ sendScopeParam: false,
18838
+ pkce: "unsupported",
18839
+ urlTemplateMetadata: {
18840
+ workdayBaseUrl: {
18841
+ kind: "base-url",
18842
+ allowedBaseUrlSuffixes: [".workday.com", ".myworkday.com"]
18843
+ },
18844
+ tenant: { kind: "path-segment" }
18845
+ }
19118
18846
  },
19119
18847
  category: "other",
19120
18848
  defaultConsistencyModel: "authoritative",
@@ -19125,6 +18853,7 @@ var workdayConnector = declarativeRestConnector({
19125
18853
  // `../staffing/v1/{tenant}` so the staffing functional surface stays
19126
18854
  // reachable from the same connection without a second base URL.
19127
18855
  baseUrl: { metadataKey: "apiBaseUrl" },
18856
+ allowedBaseUrlSuffixes: [".workday.com", ".myworkday.com"],
19128
18857
  defaultHeaders: {
19129
18858
  accept: "application/json"
19130
18859
  },
@@ -19631,21 +19360,42 @@ var zoominfoConnector = declarativeRestConnector({
19631
19360
  });
19632
19361
 
19633
19362
  // src/connectors/adapters/zuora.ts
19363
+ var ZUORA_API_BASE_URLS = [
19364
+ "https://rest.test.zuora.com",
19365
+ "https://rest.sandbox.na.zuora.com",
19366
+ "https://rest.apisandbox.zuora.com",
19367
+ "https://rest.na.zuora.com",
19368
+ "https://rest.zuora.com",
19369
+ "https://rest.test.eu.zuora.com",
19370
+ "https://rest.sandbox.eu.zuora.com",
19371
+ "https://rest.eu.zuora.com",
19372
+ "https://rest.test.ap.zuora.com",
19373
+ "https://rest.ap.zuora.com"
19374
+ ];
19634
19375
  var zuoraConnector = declarativeRestConnector({
19635
19376
  kind: "zuora",
19636
19377
  displayName: "Zuora",
19637
19378
  description: "Cloud-based subscription management platform. Query accounts, products, and rate plans; create invoices.",
19638
19379
  auth: {
19639
19380
  kind: "oauth2",
19640
- authorizationUrl: "https://www.zuora.com/apps/PersonalSettings.do?method=oauth",
19641
- tokenUrl: "https://rest.zuora.com/oauth/token",
19642
- scopes: ["api"],
19381
+ grantType: "client_credentials",
19382
+ tokenUrl: "{apiBaseUrl}/oauth/token",
19383
+ scopes: [],
19643
19384
  clientIdEnv: "ZUORA_OAUTH_CLIENT_ID",
19644
- clientSecretEnv: "ZUORA_OAUTH_CLIENT_SECRET"
19385
+ clientSecretEnv: "ZUORA_OAUTH_CLIENT_SECRET",
19386
+ tokenClientAuthMethod: "client_secret_post",
19387
+ pkce: "unsupported",
19388
+ urlTemplateMetadata: {
19389
+ apiBaseUrl: {
19390
+ kind: "base-url",
19391
+ allowedBaseUrls: ZUORA_API_BASE_URLS
19392
+ }
19393
+ }
19645
19394
  },
19646
19395
  category: "crm",
19647
19396
  defaultConsistencyModel: "authoritative",
19648
- baseUrl: "https://rest.zuora.com",
19397
+ baseUrl: { metadataKey: "apiBaseUrl" },
19398
+ allowedBaseUrls: ZUORA_API_BASE_URLS,
19649
19399
  test: { method: "GET", path: "/v1/accounts" },
19650
19400
  capabilities: [
19651
19401
  {
@@ -19659,8 +19409,7 @@ var zuoraConnector = declarativeRestConnector({
19659
19409
  },
19660
19410
  required: ["accountId"]
19661
19411
  },
19662
- request: { method: "GET", path: "/v1/accounts/{accountId}" },
19663
- requiredScopes: ["api"]
19412
+ request: { method: "GET", path: "/v1/accounts/{accountId}" }
19664
19413
  },
19665
19414
  {
19666
19415
  name: "products.find",
@@ -19673,8 +19422,7 @@ var zuoraConnector = declarativeRestConnector({
19673
19422
  },
19674
19423
  required: ["productId"]
19675
19424
  },
19676
- request: { method: "GET", path: "/v1/products/{productId}" },
19677
- requiredScopes: ["api"]
19425
+ request: { method: "GET", path: "/v1/products/{productId}" }
19678
19426
  },
19679
19427
  {
19680
19428
  name: "products.rate_plans.find",
@@ -19688,8 +19436,7 @@ var zuoraConnector = declarativeRestConnector({
19688
19436
  },
19689
19437
  required: ["productId", "ratePlanId"]
19690
19438
  },
19691
- request: { method: "GET", path: "/v1/products/{productId}/rate-plans/{ratePlanId}" },
19692
- requiredScopes: ["api"]
19439
+ request: { method: "GET", path: "/v1/products/{productId}/rate-plans/{ratePlanId}" }
19693
19440
  },
19694
19441
  {
19695
19442
  name: "invoices.create",
@@ -19713,8 +19460,7 @@ var zuoraConnector = declarativeRestConnector({
19713
19460
  path: "/v1/invoices",
19714
19461
  body: { accountId: "{accountId}", subscriptionId: "{subscriptionId}", items: "{invoiceItems}" }
19715
19462
  },
19716
- cas: "native-idempotency",
19717
- requiredScopes: ["api"]
19463
+ cas: "native-idempotency"
19718
19464
  },
19719
19465
  {
19720
19466
  name: "subscriptions.create",
@@ -19740,8 +19486,7 @@ var zuoraConnector = declarativeRestConnector({
19740
19486
  body: "args"
19741
19487
  },
19742
19488
  cas: "native-idempotency",
19743
- externalEffect: true,
19744
- requiredScopes: ["api"]
19489
+ externalEffect: true
19745
19490
  },
19746
19491
  {
19747
19492
  name: "subscriptions.cancel",
@@ -19769,8 +19514,7 @@ var zuoraConnector = declarativeRestConnector({
19769
19514
  body: "args"
19770
19515
  },
19771
19516
  cas: "native-idempotency",
19772
- externalEffect: true,
19773
- requiredScopes: ["api"]
19517
+ externalEffect: true
19774
19518
  },
19775
19519
  {
19776
19520
  name: "subscriptions.update",
@@ -19793,8 +19537,7 @@ var zuoraConnector = declarativeRestConnector({
19793
19537
  body: "args"
19794
19538
  },
19795
19539
  cas: "native-idempotency",
19796
- externalEffect: true,
19797
- requiredScopes: ["api"]
19540
+ externalEffect: true
19798
19541
  },
19799
19542
  {
19800
19543
  name: "payments.create",
@@ -19822,8 +19565,7 @@ var zuoraConnector = declarativeRestConnector({
19822
19565
  body: "args"
19823
19566
  },
19824
19567
  cas: "native-idempotency",
19825
- externalEffect: true,
19826
- requiredScopes: ["api"]
19568
+ externalEffect: true
19827
19569
  }
19828
19570
  ]
19829
19571
  });
@@ -77890,11 +77632,19 @@ var marketoConnector = declarativeRestConnector({
77890
77632
  description: "Manage Marketo leads, static lists, and smart campaigns through the REST API v1.",
77891
77633
  auth: {
77892
77634
  kind: "oauth2",
77893
- authorizationUrl: "https://app.marketo.com/identity/oauth/authorize",
77894
- tokenUrl: "https://app.marketo.com/identity/oauth/token",
77635
+ grantType: "client_credentials",
77636
+ tokenUrl: "{restEndpoint}/identity/oauth/token",
77895
77637
  scopes: [],
77896
77638
  clientIdEnv: "MARKETO_OAUTH_CLIENT_ID",
77897
- clientSecretEnv: "MARKETO_OAUTH_CLIENT_SECRET"
77639
+ clientSecretEnv: "MARKETO_OAUTH_CLIENT_SECRET",
77640
+ tokenClientAuthMethod: "client_secret_post",
77641
+ pkce: "unsupported",
77642
+ urlTemplateMetadata: {
77643
+ restEndpoint: {
77644
+ kind: "base-url",
77645
+ allowedBaseUrlSuffixes: [".mktorest.com"]
77646
+ }
77647
+ }
77898
77648
  },
77899
77649
  category: "crm",
77900
77650
  defaultConsistencyModel: "authoritative",
@@ -84246,10 +83996,7 @@ var CONNECTOR_ADAPTER_FACTORIES = [
84246
83996
  clientId: "NIFTY_OAUTH_CLIENT_ID",
84247
83997
  clientSecret: "NIFTY_OAUTH_CLIENT_SECRET"
84248
83998
  }),
84249
- defineFactoryAdapter(() => opsgenieConnector, {
84250
- clientId: "OPSGENIE_OAUTH_CLIENT_ID",
84251
- clientSecret: "OPSGENIE_OAUTH_CLIENT_SECRET"
84252
- }),
83999
+ defineFactoryAdapter(() => opsgenieConnector, {}),
84253
84000
  defineFactoryAdapter(() => pagerdutyConnector, {
84254
84001
  clientId: "PAGERDUTY_OAUTH_CLIENT_ID",
84255
84002
  clientSecret: "PAGERDUTY_OAUTH_CLIENT_SECRET"
@@ -149758,4 +149505,4 @@ export {
149758
149505
  getresponseConnector,
149759
149506
  adapters_exports
149760
149507
  };
149761
- //# sourceMappingURL=chunk-2JRYKWYX.js.map
149508
+ //# sourceMappingURL=chunk-QL6CRJ3E.js.map