@tangle-network/agent-integrations 0.53.20 → 0.53.22

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.
@@ -431,6 +431,7 @@ __export(adapters_exports, {
431
431
  ntfyConnector: () => ntfyConnector,
432
432
  oceanIoConnector: () => oceanIoConnector,
433
433
  odooConnector: () => odooConnector,
434
+ oktaConnector: () => oktaConnector,
434
435
  omniCoConnector: () => omniCoConnector,
435
436
  omnihrConnector: () => omnihrConnector,
436
437
  oneDrive: () => oneDrive,
@@ -1291,6 +1292,251 @@ async function safeErrorText(res) {
1291
1292
  return await res.text().catch(() => res.statusText) || res.statusText;
1292
1293
  }
1293
1294
 
1295
+ // src/connectors/adapters/okta.ts
1296
+ var userId = {
1297
+ type: "string",
1298
+ description: "Okta user id or login. Email addresses are accepted as logins."
1299
+ };
1300
+ var groupId = { type: "string", description: "Okta group id." };
1301
+ var oktaConnector = declarativeRestConnector({
1302
+ kind: "okta",
1303
+ displayName: "Okta",
1304
+ description: "Manage Okta users, lifecycle state, groups, memberships, and system-log events.",
1305
+ auth: {
1306
+ kind: "api-key",
1307
+ hint: "Okta API token. Set domain to the full HTTPS URL of the Okta organization."
1308
+ },
1309
+ category: "other",
1310
+ defaultConsistencyModel: "authoritative",
1311
+ baseUrl: { metadataKey: "domain" },
1312
+ allowedBaseUrlSuffixes: [
1313
+ ".okta.com",
1314
+ ".okta-emea.com",
1315
+ ".oktapreview.com",
1316
+ ".okta-gov.com"
1317
+ ],
1318
+ requirePublicHttpsBaseUrl: true,
1319
+ credentialPlacement: { kind: "header", header: "Authorization", prefix: "SSWS " },
1320
+ defaultHeaders: { Accept: "application/json" },
1321
+ test: { method: "GET", path: "/api/v1/users", query: { limit: 1 } },
1322
+ capabilities: [
1323
+ {
1324
+ name: "users.list",
1325
+ class: "read",
1326
+ description: "List or search users in the Okta organization.",
1327
+ parameters: {
1328
+ type: "object",
1329
+ properties: {
1330
+ limit: { type: "integer", minimum: 1, maximum: 200 },
1331
+ after: { type: "string" },
1332
+ search: { type: "string", description: "Okta Users API search expression." },
1333
+ filter: { type: "string", description: "Okta Users API filter expression." },
1334
+ q: { type: "string" }
1335
+ }
1336
+ },
1337
+ request: {
1338
+ method: "GET",
1339
+ path: "/api/v1/users",
1340
+ query: {
1341
+ limit: "{limit}",
1342
+ after: "{after}",
1343
+ search: "{search}",
1344
+ filter: "{filter}",
1345
+ q: "{q}"
1346
+ }
1347
+ }
1348
+ },
1349
+ {
1350
+ name: "users.get",
1351
+ class: "read",
1352
+ description: "Read one user by id or login.",
1353
+ parameters: { type: "object", properties: { userId }, required: ["userId"] },
1354
+ request: { method: "GET", path: "/api/v1/users/{userId}" }
1355
+ },
1356
+ {
1357
+ name: "users.find-by-email",
1358
+ class: "read",
1359
+ description: "Read a user whose Okta login is the supplied email address.",
1360
+ parameters: {
1361
+ type: "object",
1362
+ properties: { email: { type: "string" } },
1363
+ required: ["email"]
1364
+ },
1365
+ request: { method: "GET", path: "/api/v1/users/{email}" }
1366
+ },
1367
+ {
1368
+ name: "groups.list",
1369
+ class: "read",
1370
+ description: "List or search Okta groups.",
1371
+ parameters: {
1372
+ type: "object",
1373
+ properties: {
1374
+ q: { type: "string" },
1375
+ filter: { type: "string" },
1376
+ after: { type: "string" },
1377
+ limit: { type: "integer", minimum: 1, maximum: 1e4 }
1378
+ }
1379
+ },
1380
+ request: {
1381
+ method: "GET",
1382
+ path: "/api/v1/groups",
1383
+ query: { q: "{q}", filter: "{filter}", after: "{after}", limit: "{limit}" }
1384
+ }
1385
+ },
1386
+ {
1387
+ name: "groups.users.list",
1388
+ class: "read",
1389
+ description: "List users assigned to one Okta group.",
1390
+ parameters: { type: "object", properties: { groupId }, required: ["groupId"] },
1391
+ request: { method: "GET", path: "/api/v1/groups/{groupId}/users" }
1392
+ },
1393
+ {
1394
+ name: "system.logs.list",
1395
+ class: "read",
1396
+ description: "Read Okta System Log events for audit and synchronization.",
1397
+ parameters: {
1398
+ type: "object",
1399
+ properties: {
1400
+ since: { type: "string", description: "ISO 8601 lower timestamp bound." },
1401
+ until: { type: "string", description: "ISO 8601 upper timestamp bound." },
1402
+ filter: { type: "string" },
1403
+ q: { type: "string" },
1404
+ after: { type: "string" },
1405
+ limit: { type: "integer", minimum: 1, maximum: 1e3 },
1406
+ sortOrder: { type: "string", enum: ["ASCENDING", "DESCENDING"] }
1407
+ }
1408
+ },
1409
+ request: {
1410
+ method: "GET",
1411
+ path: "/api/v1/logs",
1412
+ query: {
1413
+ since: "{since}",
1414
+ until: "{until}",
1415
+ filter: "{filter}",
1416
+ q: "{q}",
1417
+ after: "{after}",
1418
+ limit: "{limit}",
1419
+ sortOrder: "{sortOrder}"
1420
+ }
1421
+ }
1422
+ },
1423
+ {
1424
+ name: "users.create",
1425
+ class: "mutation",
1426
+ description: "Create an Okta user from a provider-native profile object.",
1427
+ parameters: {
1428
+ type: "object",
1429
+ properties: {
1430
+ profile: { type: "object", description: "Okta user profile. login and email are required by Okta." },
1431
+ activate: { type: "boolean" }
1432
+ },
1433
+ required: ["profile"]
1434
+ },
1435
+ request: {
1436
+ method: "POST",
1437
+ path: "/api/v1/users",
1438
+ query: { activate: "{activate}" },
1439
+ body: { profile: "{profile}" }
1440
+ },
1441
+ cas: "none",
1442
+ externalEffect: true
1443
+ },
1444
+ {
1445
+ name: "users.update",
1446
+ class: "mutation",
1447
+ description: "Update an Okta user profile.",
1448
+ parameters: {
1449
+ type: "object",
1450
+ properties: { userId, profile: { type: "object" } },
1451
+ required: ["userId", "profile"]
1452
+ },
1453
+ request: {
1454
+ method: "POST",
1455
+ path: "/api/v1/users/{userId}",
1456
+ body: { profile: "{profile}" }
1457
+ },
1458
+ cas: "optimistic-read-verify",
1459
+ externalEffect: true
1460
+ },
1461
+ ...lifecycleCapabilities(),
1462
+ {
1463
+ name: "groups.create",
1464
+ class: "mutation",
1465
+ description: "Create an Okta group.",
1466
+ parameters: {
1467
+ type: "object",
1468
+ properties: { profile: { type: "object", description: "Group profile containing at least name." } },
1469
+ required: ["profile"]
1470
+ },
1471
+ request: { method: "POST", path: "/api/v1/groups", body: { profile: "{profile}" } },
1472
+ cas: "none",
1473
+ externalEffect: true
1474
+ },
1475
+ {
1476
+ name: "groups.update",
1477
+ class: "mutation",
1478
+ description: "Update an Okta group profile.",
1479
+ parameters: {
1480
+ type: "object",
1481
+ properties: { groupId, profile: { type: "object" } },
1482
+ required: ["groupId", "profile"]
1483
+ },
1484
+ request: {
1485
+ method: "PUT",
1486
+ path: "/api/v1/groups/{groupId}",
1487
+ body: { profile: "{profile}" }
1488
+ },
1489
+ cas: "optimistic-read-verify",
1490
+ externalEffect: true
1491
+ },
1492
+ membershipCapability("groups.users.add", "PUT", "Add a user to an Okta group."),
1493
+ membershipCapability("groups.users.remove", "DELETE", "Remove a user from an Okta group.")
1494
+ ]
1495
+ });
1496
+ function lifecycleCapabilities() {
1497
+ return [
1498
+ lifecycleCapability("users.activate", "activate", "Activate an Okta user.", true),
1499
+ lifecycleCapability("users.deactivate", "deactivate", "Deactivate an Okta user.", true),
1500
+ lifecycleCapability("users.suspend", "suspend", "Suspend an Okta user."),
1501
+ lifecycleCapability("users.unsuspend", "unsuspend", "Unsuspend an Okta user.")
1502
+ ];
1503
+ }
1504
+ function lifecycleCapability(name, operation, description, supportsEmail = false) {
1505
+ return {
1506
+ name,
1507
+ class: "mutation",
1508
+ description,
1509
+ parameters: {
1510
+ type: "object",
1511
+ properties: { userId, ...supportsEmail ? { sendEmail: { type: "boolean" } } : {} },
1512
+ required: ["userId"]
1513
+ },
1514
+ request: {
1515
+ method: "POST",
1516
+ path: `/api/v1/users/{userId}/lifecycle/${operation}`,
1517
+ body: {},
1518
+ ...supportsEmail ? { query: { sendEmail: "{sendEmail}" } } : {}
1519
+ },
1520
+ cas: "native-idempotency",
1521
+ externalEffect: true
1522
+ };
1523
+ }
1524
+ function membershipCapability(name, method, description) {
1525
+ return {
1526
+ name,
1527
+ class: "mutation",
1528
+ description,
1529
+ parameters: {
1530
+ type: "object",
1531
+ properties: { groupId, userId },
1532
+ required: ["groupId", "userId"]
1533
+ },
1534
+ request: { method, path: "/api/v1/groups/{groupId}/users/{userId}", body: {} },
1535
+ cas: "native-idempotency",
1536
+ externalEffect: true
1537
+ };
1538
+ }
1539
+
1294
1540
  // src/connectors/adapters/actualbudget.ts
1295
1541
  var actualbudgetConnector = declarativeRestConnector({
1296
1542
  kind: "actualbudget",
@@ -27336,19 +27582,55 @@ var ironcladConnector = declarativeRestConnector({
27336
27582
  });
27337
27583
 
27338
27584
  // src/connectors/adapters/jira-cloud.ts
27585
+ var JIRA_READ_SCOPE = "read:jira-work";
27586
+ var JIRA_WRITE_SCOPE = "write:jira-work";
27587
+ var JIRA_USER_SCOPE = "read:jira-user";
27588
+ var jiraSiteProperty = {
27589
+ cloudId: {
27590
+ type: "string",
27591
+ description: "Atlassian site id from resources.list."
27592
+ }
27593
+ };
27339
27594
  var jiraCloudConnector = declarativeRestConnector({
27340
27595
  kind: "jira-cloud",
27341
27596
  displayName: "Jira Cloud",
27342
27597
  description: "Issue tracking and project management on Jira Cloud \u2014 create, update, comment on, transition, and search issues via the REST API v3.",
27343
27598
  auth: {
27344
- kind: "api-key",
27345
- hint: "Jira Cloud API token (https://id.atlassian.com/manage-profile/security/api-tokens). The instance URL (e.g. https://example.atlassian.net) is supplied per data source as metadata.instanceUrl."
27599
+ kind: "oauth2",
27600
+ authorizationUrl: "https://auth.atlassian.com/authorize",
27601
+ tokenUrl: "https://auth.atlassian.com/oauth/token",
27602
+ scopes: [
27603
+ "offline_access",
27604
+ JIRA_READ_SCOPE,
27605
+ JIRA_WRITE_SCOPE,
27606
+ JIRA_USER_SCOPE
27607
+ ],
27608
+ clientIdEnv: "ATLASSIAN_OAUTH_CLIENT_ID",
27609
+ clientSecretEnv: "ATLASSIAN_OAUTH_CLIENT_SECRET",
27610
+ extraAuthParams: {
27611
+ audience: "api.atlassian.com",
27612
+ prompt: "consent"
27613
+ }
27346
27614
  },
27347
27615
  category: "doc",
27348
27616
  defaultConsistencyModel: "authoritative",
27349
- baseUrl: { metadataKey: "instanceUrl" },
27350
- test: { method: "GET", path: "/rest/api/3/myself" },
27617
+ baseUrl: "https://api.atlassian.com",
27618
+ defaultHeaders: { accept: "application/json" },
27619
+ test: { method: "GET", path: "/oauth/token/accessible-resources" },
27351
27620
  capabilities: [
27621
+ {
27622
+ name: "resources.list",
27623
+ class: "read",
27624
+ description: "List Atlassian sites authorized for this connection. Use a returned id as the cloudId required by every Jira action.",
27625
+ parameters: {
27626
+ type: "object",
27627
+ properties: {}
27628
+ },
27629
+ request: {
27630
+ method: "GET",
27631
+ path: "/oauth/token/accessible-resources"
27632
+ }
27633
+ },
27352
27634
  {
27353
27635
  name: "issues.create",
27354
27636
  class: "mutation",
@@ -27356,16 +27638,28 @@ var jiraCloudConnector = declarativeRestConnector({
27356
27638
  parameters: {
27357
27639
  type: "object",
27358
27640
  properties: {
27641
+ ...jiraSiteProperty,
27359
27642
  fields: { type: "object", description: "Issue fields \u2014 must include project, summary, and issuetype." },
27360
27643
  update: { type: "object" },
27361
27644
  transition: { type: "object" },
27362
27645
  properties: { type: "array" },
27363
27646
  historyMetadata: { type: "object" }
27364
27647
  },
27365
- required: ["fields"]
27648
+ required: ["cloudId", "fields"]
27366
27649
  },
27367
- request: { method: "POST", path: "/rest/api/3/issue", body: "args" },
27368
- cas: "native-idempotency"
27650
+ request: {
27651
+ method: "POST",
27652
+ path: "/ex/jira/{cloudId}/rest/api/3/issue",
27653
+ body: {
27654
+ fields: "{fields}",
27655
+ update: "{update}",
27656
+ transition: "{transition}",
27657
+ properties: "{properties}",
27658
+ historyMetadata: "{historyMetadata}"
27659
+ }
27660
+ },
27661
+ cas: "native-idempotency",
27662
+ requiredScopes: [JIRA_WRITE_SCOPE]
27369
27663
  },
27370
27664
  {
27371
27665
  name: "issues.search",
@@ -27374,6 +27668,7 @@ var jiraCloudConnector = declarativeRestConnector({
27374
27668
  parameters: {
27375
27669
  type: "object",
27376
27670
  properties: {
27671
+ ...jiraSiteProperty,
27377
27672
  jql: { type: "string", description: "JQL query (see https://support.atlassian.com/jira-software-cloud/docs/use-advanced-search-with-jira-query-language-jql/)." },
27378
27673
  startAt: { type: "integer", minimum: 0 },
27379
27674
  maxResults: { type: "integer", minimum: 1, maximum: 100 },
@@ -27381,11 +27676,11 @@ var jiraCloudConnector = declarativeRestConnector({
27381
27676
  expand: { type: "string" },
27382
27677
  validateQuery: { type: "string", enum: ["strict", "warn", "none", "true", "false"] }
27383
27678
  },
27384
- required: ["jql"]
27679
+ required: ["cloudId", "jql"]
27385
27680
  },
27386
27681
  request: {
27387
27682
  method: "GET",
27388
- path: "/rest/api/3/search",
27683
+ path: "/ex/jira/{cloudId}/rest/api/3/search",
27389
27684
  query: {
27390
27685
  jql: "{jql}",
27391
27686
  startAt: "{startAt}",
@@ -27394,7 +27689,8 @@ var jiraCloudConnector = declarativeRestConnector({
27394
27689
  expand: "{expand}",
27395
27690
  validateQuery: "{validateQuery}"
27396
27691
  }
27397
- }
27692
+ },
27693
+ requiredScopes: [JIRA_READ_SCOPE]
27398
27694
  },
27399
27695
  {
27400
27696
  name: "issues.get",
@@ -27403,18 +27699,20 @@ var jiraCloudConnector = declarativeRestConnector({
27403
27699
  parameters: {
27404
27700
  type: "object",
27405
27701
  properties: {
27702
+ ...jiraSiteProperty,
27406
27703
  issueIdOrKey: { type: "string" },
27407
27704
  fields: { type: "string" },
27408
27705
  expand: { type: "string", description: 'Comma-delimited expand list \u2014 e.g. "renderedFields,names,schema,transitions".' },
27409
27706
  properties: { type: "string" }
27410
27707
  },
27411
- required: ["issueIdOrKey"]
27708
+ required: ["cloudId", "issueIdOrKey"]
27412
27709
  },
27413
27710
  request: {
27414
27711
  method: "GET",
27415
- path: "/rest/api/3/issue/{issueIdOrKey}",
27712
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}",
27416
27713
  query: { fields: "{fields}", expand: "{expand}", properties: "{properties}" }
27417
- }
27714
+ },
27715
+ requiredScopes: [JIRA_READ_SCOPE]
27418
27716
  },
27419
27717
  {
27420
27718
  name: "issues.update",
@@ -27423,6 +27721,7 @@ var jiraCloudConnector = declarativeRestConnector({
27423
27721
  parameters: {
27424
27722
  type: "object",
27425
27723
  properties: {
27724
+ ...jiraSiteProperty,
27426
27725
  issueIdOrKey: { type: "string" },
27427
27726
  fields: { type: "object" },
27428
27727
  update: { type: "object" },
@@ -27430,15 +27729,16 @@ var jiraCloudConnector = declarativeRestConnector({
27430
27729
  historyMetadata: { type: "object" },
27431
27730
  notifyUsers: { type: "boolean" }
27432
27731
  },
27433
- required: ["issueIdOrKey"]
27732
+ required: ["cloudId", "issueIdOrKey"]
27434
27733
  },
27435
27734
  request: {
27436
27735
  method: "PUT",
27437
- path: "/rest/api/3/issue/{issueIdOrKey}",
27736
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}",
27438
27737
  query: { notifyUsers: "{notifyUsers}" },
27439
27738
  body: { fields: "{fields}", update: "{update}", properties: "{properties}", historyMetadata: "{historyMetadata}" }
27440
27739
  },
27441
- cas: "optimistic-read-verify"
27740
+ cas: "optimistic-read-verify",
27741
+ requiredScopes: [JIRA_WRITE_SCOPE]
27442
27742
  },
27443
27743
  {
27444
27744
  name: "issues.assign",
@@ -27447,17 +27747,19 @@ var jiraCloudConnector = declarativeRestConnector({
27447
27747
  parameters: {
27448
27748
  type: "object",
27449
27749
  properties: {
27750
+ ...jiraSiteProperty,
27450
27751
  issueIdOrKey: { type: "string" },
27451
27752
  accountId: { type: ["string", "null"] }
27452
27753
  },
27453
- required: ["issueIdOrKey"]
27754
+ required: ["cloudId", "issueIdOrKey"]
27454
27755
  },
27455
27756
  request: {
27456
27757
  method: "PUT",
27457
- path: "/rest/api/3/issue/{issueIdOrKey}/assignee",
27758
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/assignee",
27458
27759
  body: { accountId: "{accountId}" }
27459
27760
  },
27460
- cas: "optimistic-read-verify"
27761
+ cas: "optimistic-read-verify",
27762
+ requiredScopes: [JIRA_WRITE_SCOPE]
27461
27763
  },
27462
27764
  {
27463
27765
  name: "issues.transition",
@@ -27466,20 +27768,22 @@ var jiraCloudConnector = declarativeRestConnector({
27466
27768
  parameters: {
27467
27769
  type: "object",
27468
27770
  properties: {
27771
+ ...jiraSiteProperty,
27469
27772
  issueIdOrKey: { type: "string" },
27470
27773
  transition: { type: "object", description: "Object with at least { id: string }." },
27471
27774
  fields: { type: "object" },
27472
27775
  update: { type: "object" },
27473
27776
  historyMetadata: { type: "object" }
27474
27777
  },
27475
- required: ["issueIdOrKey", "transition"]
27778
+ required: ["cloudId", "issueIdOrKey", "transition"]
27476
27779
  },
27477
27780
  request: {
27478
27781
  method: "POST",
27479
- path: "/rest/api/3/issue/{issueIdOrKey}/transitions",
27782
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/transitions",
27480
27783
  body: { transition: "{transition}", fields: "{fields}", update: "{update}", historyMetadata: "{historyMetadata}" }
27481
27784
  },
27482
- cas: "native-idempotency"
27785
+ cas: "native-idempotency",
27786
+ requiredScopes: [JIRA_WRITE_SCOPE]
27483
27787
  },
27484
27788
  {
27485
27789
  name: "issues.link",
@@ -27488,19 +27792,21 @@ var jiraCloudConnector = declarativeRestConnector({
27488
27792
  parameters: {
27489
27793
  type: "object",
27490
27794
  properties: {
27795
+ ...jiraSiteProperty,
27491
27796
  type: { type: "object", description: "Link type \u2014 { name: string } or { id: string }." },
27492
27797
  inwardIssue: { type: "object", description: "{ key: string } | { id: string }." },
27493
27798
  outwardIssue: { type: "object", description: "{ key: string } | { id: string }." },
27494
27799
  comment: { type: "object" }
27495
27800
  },
27496
- required: ["type", "inwardIssue", "outwardIssue"]
27801
+ required: ["cloudId", "type", "inwardIssue", "outwardIssue"]
27497
27802
  },
27498
27803
  request: {
27499
27804
  method: "POST",
27500
- path: "/rest/api/3/issueLink",
27805
+ path: "/ex/jira/{cloudId}/rest/api/3/issueLink",
27501
27806
  body: { type: "{type}", inwardIssue: "{inwardIssue}", outwardIssue: "{outwardIssue}", comment: "{comment}" }
27502
27807
  },
27503
- cas: "native-idempotency"
27808
+ cas: "native-idempotency",
27809
+ requiredScopes: [JIRA_WRITE_SCOPE]
27504
27810
  },
27505
27811
  {
27506
27812
  name: "issues.watchers.add",
@@ -27509,17 +27815,19 @@ var jiraCloudConnector = declarativeRestConnector({
27509
27815
  parameters: {
27510
27816
  type: "object",
27511
27817
  properties: {
27818
+ ...jiraSiteProperty,
27512
27819
  issueIdOrKey: { type: "string" },
27513
27820
  accountId: { type: "string" }
27514
27821
  },
27515
- required: ["issueIdOrKey", "accountId"]
27822
+ required: ["cloudId", "issueIdOrKey", "accountId"]
27516
27823
  },
27517
27824
  request: {
27518
27825
  method: "POST",
27519
- path: "/rest/api/3/issue/{issueIdOrKey}/watchers",
27826
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/watchers",
27520
27827
  body: "{accountId}"
27521
27828
  },
27522
- cas: "native-idempotency"
27829
+ cas: "native-idempotency",
27830
+ requiredScopes: [JIRA_WRITE_SCOPE]
27523
27831
  },
27524
27832
  {
27525
27833
  name: "comments.list",
@@ -27528,19 +27836,21 @@ var jiraCloudConnector = declarativeRestConnector({
27528
27836
  parameters: {
27529
27837
  type: "object",
27530
27838
  properties: {
27839
+ ...jiraSiteProperty,
27531
27840
  issueIdOrKey: { type: "string" },
27532
27841
  startAt: { type: "integer", minimum: 0 },
27533
27842
  maxResults: { type: "integer", minimum: 1, maximum: 100 },
27534
27843
  orderBy: { type: "string", enum: ["created", "-created", "+created"] },
27535
27844
  expand: { type: "string" }
27536
27845
  },
27537
- required: ["issueIdOrKey"]
27846
+ required: ["cloudId", "issueIdOrKey"]
27538
27847
  },
27539
27848
  request: {
27540
27849
  method: "GET",
27541
- path: "/rest/api/3/issue/{issueIdOrKey}/comment",
27850
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment",
27542
27851
  query: { startAt: "{startAt}", maxResults: "{maxResults}", orderBy: "{orderBy}", expand: "{expand}" }
27543
- }
27852
+ },
27853
+ requiredScopes: [JIRA_READ_SCOPE]
27544
27854
  },
27545
27855
  {
27546
27856
  name: "comments.create",
@@ -27549,19 +27859,21 @@ var jiraCloudConnector = declarativeRestConnector({
27549
27859
  parameters: {
27550
27860
  type: "object",
27551
27861
  properties: {
27862
+ ...jiraSiteProperty,
27552
27863
  issueIdOrKey: { type: "string" },
27553
27864
  body: { type: ["object", "string"], description: 'ADF document or plain string (wiki text via "expand=renderedBody" in subsequent fetch).' },
27554
27865
  visibility: { type: "object" },
27555
27866
  properties: { type: "array" }
27556
27867
  },
27557
- required: ["issueIdOrKey", "body"]
27868
+ required: ["cloudId", "issueIdOrKey", "body"]
27558
27869
  },
27559
27870
  request: {
27560
27871
  method: "POST",
27561
- path: "/rest/api/3/issue/{issueIdOrKey}/comment",
27872
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment",
27562
27873
  body: { body: "{body}", visibility: "{visibility}", properties: "{properties}" }
27563
27874
  },
27564
- cas: "native-idempotency"
27875
+ cas: "native-idempotency",
27876
+ requiredScopes: [JIRA_WRITE_SCOPE]
27565
27877
  },
27566
27878
  {
27567
27879
  name: "comments.update",
@@ -27570,20 +27882,22 @@ var jiraCloudConnector = declarativeRestConnector({
27570
27882
  parameters: {
27571
27883
  type: "object",
27572
27884
  properties: {
27885
+ ...jiraSiteProperty,
27573
27886
  issueIdOrKey: { type: "string" },
27574
27887
  commentId: { type: "string" },
27575
27888
  body: { type: ["object", "string"] },
27576
27889
  visibility: { type: "object" },
27577
27890
  properties: { type: "array" }
27578
27891
  },
27579
- required: ["issueIdOrKey", "commentId", "body"]
27892
+ required: ["cloudId", "issueIdOrKey", "commentId", "body"]
27580
27893
  },
27581
27894
  request: {
27582
27895
  method: "PUT",
27583
- path: "/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}",
27896
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}",
27584
27897
  body: { body: "{body}", visibility: "{visibility}", properties: "{properties}" }
27585
27898
  },
27586
- cas: "optimistic-read-verify"
27899
+ cas: "optimistic-read-verify",
27900
+ requiredScopes: [JIRA_WRITE_SCOPE]
27587
27901
  },
27588
27902
  {
27589
27903
  name: "comments.delete",
@@ -27592,16 +27906,18 @@ var jiraCloudConnector = declarativeRestConnector({
27592
27906
  parameters: {
27593
27907
  type: "object",
27594
27908
  properties: {
27909
+ ...jiraSiteProperty,
27595
27910
  issueIdOrKey: { type: "string" },
27596
27911
  commentId: { type: "string" }
27597
27912
  },
27598
- required: ["issueIdOrKey", "commentId"]
27913
+ required: ["cloudId", "issueIdOrKey", "commentId"]
27599
27914
  },
27600
27915
  request: {
27601
27916
  method: "DELETE",
27602
- path: "/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}"
27917
+ path: "/ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}"
27603
27918
  },
27604
- cas: "optimistic-read-verify"
27919
+ cas: "optimistic-read-verify",
27920
+ requiredScopes: [JIRA_WRITE_SCOPE]
27605
27921
  },
27606
27922
  {
27607
27923
  name: "attachments.get",
@@ -27609,13 +27925,17 @@ var jiraCloudConnector = declarativeRestConnector({
27609
27925
  description: "Fetch attachment metadata by attachment ID.",
27610
27926
  parameters: {
27611
27927
  type: "object",
27612
- properties: { attachmentId: { type: "string" } },
27613
- required: ["attachmentId"]
27928
+ properties: {
27929
+ ...jiraSiteProperty,
27930
+ attachmentId: { type: "string" }
27931
+ },
27932
+ required: ["cloudId", "attachmentId"]
27614
27933
  },
27615
27934
  request: {
27616
27935
  method: "GET",
27617
- path: "/rest/api/3/attachment/{attachmentId}"
27618
- }
27936
+ path: "/ex/jira/{cloudId}/rest/api/3/attachment/{attachmentId}"
27937
+ },
27938
+ requiredScopes: [JIRA_READ_SCOPE]
27619
27939
  },
27620
27940
  {
27621
27941
  name: "users.find",
@@ -27624,22 +27944,25 @@ var jiraCloudConnector = declarativeRestConnector({
27624
27944
  parameters: {
27625
27945
  type: "object",
27626
27946
  properties: {
27947
+ ...jiraSiteProperty,
27627
27948
  query: { type: "string" },
27628
27949
  accountId: { type: "string" },
27629
27950
  startAt: { type: "integer", minimum: 0 },
27630
27951
  maxResults: { type: "integer", minimum: 1, maximum: 1e3 }
27631
- }
27952
+ },
27953
+ required: ["cloudId"]
27632
27954
  },
27633
27955
  request: {
27634
27956
  method: "GET",
27635
- path: "/rest/api/3/user/search",
27957
+ path: "/ex/jira/{cloudId}/rest/api/3/user/search",
27636
27958
  query: {
27637
27959
  query: "{query}",
27638
27960
  accountId: "{accountId}",
27639
27961
  startAt: "{startAt}",
27640
27962
  maxResults: "{maxResults}"
27641
27963
  }
27642
- }
27964
+ },
27965
+ requiredScopes: [JIRA_USER_SCOPE]
27643
27966
  }
27644
27967
  ]
27645
27968
  });
@@ -31521,9 +31844,9 @@ function microsoftGraph(opts) {
31521
31844
  return { data: { groups }, fetchedAt: Date.now() };
31522
31845
  }
31523
31846
  if (inv.capabilityName === "list_group_members") {
31524
- const { groupId, top } = inv.args;
31847
+ const { groupId: groupId2, top } = inv.args;
31525
31848
  const t = Math.min(Math.max(1, top ?? 50), 100);
31526
- const url = `${GRAPH}/groups/${encodeURIComponent(groupId)}/members?$select=id,displayName,mail,userPrincipalName&$top=${t}`;
31849
+ const url = `${GRAPH}/groups/${encodeURIComponent(groupId2)}/members?$select=id,displayName,mail,userPrincipalName&$top=${t}`;
31527
31850
  const json = await graphGet(url, accessToken3, inv.source.id);
31528
31851
  const members = (json.value ?? []).map((m) => ({
31529
31852
  // odata.type is '#microsoft.graph.user' | '#microsoft.graph.group'
@@ -56988,7 +57311,10 @@ var CONNECTOR_ADAPTER_FACTORIES = [
56988
57311
  clientSecret: "TODOIST_OAUTH_CLIENT_SECRET"
56989
57312
  }),
56990
57313
  defineFactoryAdapter(() => trelloConnector, {}),
56991
- defineFactoryAdapter(() => jiraCloudConnector, {}),
57314
+ defineFactoryAdapter(() => jiraCloudConnector, {
57315
+ clientId: "ATLASSIAN_OAUTH_CLIENT_ID",
57316
+ clientSecret: "ATLASSIAN_OAUTH_CLIENT_SECRET"
57317
+ }),
56992
57318
  defineFactoryAdapter(() => ringcentralConnector, {
56993
57319
  clientId: "RINGCENTRAL_OAUTH_CLIENT_ID",
56994
57320
  clientSecret: "RINGCENTRAL_OAUTH_CLIENT_SECRET"
@@ -57072,6 +57398,7 @@ var CONNECTOR_ADAPTER_FACTORIES = [
57072
57398
  clientId: "AUTH0_OAUTH_CLIENT_ID",
57073
57399
  clientSecret: "AUTH0_OAUTH_CLIENT_SECRET"
57074
57400
  }),
57401
+ defineFactoryAdapter(() => oktaConnector, {}),
57075
57402
  defineFactoryAdapter(() => twentyConnector, {}),
57076
57403
  defineFactoryAdapter(() => folkConnector, {}),
57077
57404
  defineFactoryAdapter(() => freshsalesConnector, {}),
@@ -136782,6 +137109,7 @@ var demandbaseConnector = declarativeRestConnector({
136782
137109
 
136783
137110
  export {
136784
137111
  declarativeRestConnector,
137112
+ oktaConnector,
136785
137113
  actualbudgetConnector,
136786
137114
  aianswerConnector,
136787
137115
  airparserConnector,
@@ -137394,4 +137722,4 @@ export {
137394
137722
  demandbaseConnector,
137395
137723
  adapters_exports
137396
137724
  };
137397
- //# sourceMappingURL=chunk-PGJ7LAF3.js.map
137725
+ //# sourceMappingURL=chunk-GODEAAAZ.js.map