opal-security 3.1.1-beta.e5e99da → 3.1.1-beta.e966e75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,7 +22,7 @@ $ npm install -g opal-security
22
22
  $ opal COMMAND
23
23
  running command...
24
24
  $ opal (--version)
25
- opal-security/3.1.1-beta.e5e99da linux-x64 node-v20.19.1
25
+ opal-security/3.1.1-beta.e966e75 linux-x64 node-v20.19.1
26
26
  $ opal --help [COMMAND]
27
27
  USAGE
28
28
  $ opal COMMAND
@@ -101,7 +101,7 @@ EXAMPLES
101
101
  $ opal aws:identity
102
102
  ```
103
103
 
104
- _See code: [src/commands/aws/identity.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/aws/identity.ts)_
104
+ _See code: [src/commands/aws/identity.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/aws/identity.ts)_
105
105
 
106
106
  ## `opal clear-auth-provider`
107
107
 
@@ -121,7 +121,7 @@ EXAMPLES
121
121
  $ opal clear-auth-provider
122
122
  ```
123
123
 
124
- _See code: [src/commands/clear-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/clear-auth-provider.ts)_
124
+ _See code: [src/commands/clear-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/clear-auth-provider.ts)_
125
125
 
126
126
  ## `opal curl-example`
127
127
 
@@ -138,7 +138,7 @@ DESCRIPTION
138
138
  Prints out an example cURL command containing the parameters the CLI uses to query the Opal server.
139
139
  ```
140
140
 
141
- _See code: [src/commands/curl-example.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/curl-example.ts)_
141
+ _See code: [src/commands/curl-example.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/curl-example.ts)_
142
142
 
143
143
  ## `opal groups get`
144
144
 
@@ -159,7 +159,7 @@ EXAMPLES
159
159
  $ opal groups:get --id 54052a3e-5375-4392-aeaf-0c6c44c131d4
160
160
  ```
161
161
 
162
- _See code: [src/commands/groups/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/groups/get.ts)_
162
+ _See code: [src/commands/groups/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/groups/get.ts)_
163
163
 
164
164
  ## `opal help [COMMANDS]`
165
165
 
@@ -209,7 +209,7 @@ EXAMPLES
209
209
  $ opal iam-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --profileName "custom-profile"
210
210
  ```
211
211
 
212
- _See code: [src/commands/iam-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/iam-roles/start.ts)_
212
+ _See code: [src/commands/iam-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/iam-roles/start.ts)_
213
213
 
214
214
  ## `opal kube-roles start`
215
215
 
@@ -240,7 +240,7 @@ EXAMPLES
240
240
  $ opal kube-roles:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --accessLevelRemoteId "arn:aws:iam::712234975475:role/acme-eks-cluster-admin-role"
241
241
  ```
242
242
 
243
- _See code: [src/commands/kube-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/kube-roles/start.ts)_
243
+ _See code: [src/commands/kube-roles/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/kube-roles/start.ts)_
244
244
 
245
245
  ## `opal login`
246
246
 
@@ -261,7 +261,7 @@ EXAMPLES
261
261
  $ opal login
262
262
  ```
263
263
 
264
- _See code: [src/commands/login.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/login.ts)_
264
+ _See code: [src/commands/login.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/login.ts)_
265
265
 
266
266
  ## `opal logout`
267
267
 
@@ -281,7 +281,7 @@ EXAMPLES
281
281
  $ opal logout
282
282
  ```
283
283
 
284
- _See code: [src/commands/logout.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/logout.ts)_
284
+ _See code: [src/commands/logout.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/logout.ts)_
285
285
 
286
286
  ## `opal postgres-instances start`
287
287
 
@@ -318,7 +318,7 @@ EXAMPLES
318
318
  $ opal postgres-instances:start --id 51f7176b-0464-4a6f-8369-e951e187b398 --accessLevelRemoteId fullaccess --action view
319
319
  ```
320
320
 
321
- _See code: [src/commands/postgres-instances/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/postgres-instances/start.ts)_
321
+ _See code: [src/commands/postgres-instances/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/postgres-instances/start.ts)_
322
322
 
323
323
  ## `opal resources get`
324
324
 
@@ -339,7 +339,7 @@ EXAMPLES
339
339
  $ opal resources:get --id 54052a3e-5375-4392-aeaf-0c6c44c131d4
340
340
  ```
341
341
 
342
- _See code: [src/commands/resources/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/resources/get.ts)_
342
+ _See code: [src/commands/resources/get.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/resources/get.ts)_
343
343
 
344
344
  ## `opal set-auth-provider`
345
345
 
@@ -365,7 +365,7 @@ EXAMPLES
365
365
  $ opal set-auth-provider --clientID 1234asdf --issuerUrl https://auth.example.com
366
366
  ```
367
367
 
368
- _See code: [src/commands/set-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/set-auth-provider.ts)_
368
+ _See code: [src/commands/set-auth-provider.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/set-auth-provider.ts)_
369
369
 
370
370
  ## `opal set-custom-header`
371
371
 
@@ -386,7 +386,7 @@ EXAMPLES
386
386
  $ opal set-custom-header --header 'cf-access-token: $TOKEN'
387
387
  ```
388
388
 
389
- _See code: [src/commands/set-custom-header.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/set-custom-header.ts)_
389
+ _See code: [src/commands/set-custom-header.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/set-custom-header.ts)_
390
390
 
391
391
  ## `opal set-token`
392
392
 
@@ -406,7 +406,7 @@ EXAMPLES
406
406
  $ opal set-token
407
407
  ```
408
408
 
409
- _See code: [src/commands/set-token.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/set-token.ts)_
409
+ _See code: [src/commands/set-token.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/set-token.ts)_
410
410
 
411
411
  ## `opal set-url [URL]`
412
412
 
@@ -430,7 +430,7 @@ EXAMPLES
430
430
  $ opal set-url
431
431
  ```
432
432
 
433
- _See code: [src/commands/set-url.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/set-url.ts)_
433
+ _See code: [src/commands/set-url.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/set-url.ts)_
434
434
 
435
435
  ## `opal ssh copyFrom`
436
436
 
@@ -461,7 +461,7 @@ EXAMPLES
461
461
  $ opal ssh:copyFrom --src instance/dir --dest my/dir --id 51f7176b-0464-4a6f-8369-e951e187b398
462
462
  ```
463
463
 
464
- _See code: [src/commands/ssh/copyFrom.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/ssh/copyFrom.ts)_
464
+ _See code: [src/commands/ssh/copyFrom.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/ssh/copyFrom.ts)_
465
465
 
466
466
  ## `opal ssh copyTo`
467
467
 
@@ -492,7 +492,7 @@ EXAMPLES
492
492
  $ opal ssh:copyTo --src my/dir --dest instance/dir --id 51f7176b-0464-4a6f-8369-e951e187b398
493
493
  ```
494
494
 
495
- _See code: [src/commands/ssh/copyTo.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/ssh/copyTo.ts)_
495
+ _See code: [src/commands/ssh/copyTo.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/ssh/copyTo.ts)_
496
496
 
497
497
  ## `opal ssh start`
498
498
 
@@ -519,7 +519,7 @@ EXAMPLES
519
519
  $ opal ssh:start --id 51f7176b-0464-4a6f-8369-e951e187b398
520
520
  ```
521
521
 
522
- _See code: [src/commands/ssh/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e5e99da/src/commands/ssh/start.ts)_
522
+ _See code: [src/commands/ssh/start.ts](https://github.com/opalsecurity/opal-cli/blob/v3.1.1-beta.e966e75/src/commands/ssh/start.ts)_
523
523
 
524
524
  ## `opal version`
525
525
 
@@ -6,6 +6,7 @@ const apollo_1 = require("../../lib/apollo");
6
6
  const cmd_1 = require("../../lib/cmd");
7
7
  const config_1 = require("../../lib/config");
8
8
  const flags_1 = require("../../lib/flags");
9
+ const displays_1 = require("../../utils/displays");
9
10
  const utils_1 = require("../../utils/utils");
10
11
  const GET_REQUEST = (0, graphql_1.graphql)(`
11
12
  query GetRequest(
@@ -17,6 +18,12 @@ const GET_REQUEST = (0, graphql_1.graphql)(`
17
18
  request {
18
19
  id
19
20
  status
21
+ requester {
22
+ displayName
23
+ }
24
+ targetUser {
25
+ displayName
26
+ }
20
27
  requestedResources {
21
28
  resource {
22
29
  displayName
@@ -69,7 +76,7 @@ class GetRequest extends core_1.Command {
69
76
  });
70
77
  switch (resp.data.request.__typename) {
71
78
  case "RequestResult":
72
- (0, apollo_1.printResponse)(this, resp);
79
+ (0, displays_1.displayRequestDetails)(this, resp);
73
80
  this.log(`\n💡Click to see request details on web: ${configData[config_1.urlKey]}/requests/sent/${flags.id}`);
74
81
  return;
75
82
  case "RequestNotFoundError":
@@ -1,6 +1,11 @@
1
1
  import { Command } from "@oclif/core";
2
- export default class RequestList extends Command {
2
+ export default class ListRequests extends Command {
3
3
  static hidden: boolean;
4
4
  static description: string;
5
+ static flags: {
6
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
7
+ id: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ pageSize: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ };
5
10
  run(): Promise<void>;
6
11
  }
@@ -1,14 +1,95 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@oclif/core");
4
+ const graphql_1 = require("../../graphql");
5
+ const apollo_1 = require("../../lib/apollo");
6
+ const cmd_1 = require("../../lib/cmd");
7
+ const config_1 = require("../../lib/config");
8
+ const flags_1 = require("../../lib/flags");
4
9
  const utils_1 = require("../../utils/utils");
5
- class RequestList extends core_1.Command {
6
- // static aliases = ["request:ls"];
10
+ // Add date filters, search query,
11
+ const GET_REQUESTS = (0, graphql_1.graphql)(`
12
+ query GetRequests($pageSize: Int, $showPendingOnly: Boolean!) {
13
+ requests(input: {
14
+ requestType: OUTGOING
15
+ maxNumEntries: $pageSize
16
+ filters: {
17
+ showPendingOnly: $showPendingOnly
18
+ }
19
+ }) {
20
+ __typename
21
+ ... on RequestsResult {
22
+ requestType
23
+ requests {
24
+ createdAt
25
+ id
26
+ requester {
27
+ displayName
28
+ }
29
+ targetUser {
30
+ displayName
31
+ }
32
+ reason
33
+ requestedResources {
34
+ resource {
35
+ displayName
36
+ id
37
+ }
38
+ }
39
+ requestedGroups {
40
+ group {
41
+ name
42
+ id
43
+ }
44
+ }
45
+ status
46
+ }
47
+
48
+ }
49
+
50
+ }
51
+ }`);
52
+ class ListRequests extends core_1.Command {
7
53
  async run() {
8
54
  (0, utils_1.restrictToDev)(); //TODO: Remove after development is complete
9
- this.log("Running the list command");
55
+ (0, cmd_1.setMostRecentCommand)(this);
56
+ const configData = (0, config_1.getOrCreateConfigData)(this.config.configDir);
57
+ const client = await (0, apollo_1.getClient)(this, true);
58
+ let pageSize = 10;
59
+ const showPendingOnly = false;
60
+ const { flags } = await this.parse(ListRequests);
61
+ if (flags.pageSize) {
62
+ if (flags.pageSize < 1) {
63
+ this.error("pageSize must be greater than 0");
64
+ }
65
+ if (flags.pageSize > 100) {
66
+ this.error("pageSize must be less than 100");
67
+ }
68
+ pageSize = flags.pageSize;
69
+ }
70
+ const resp = await client.query({
71
+ query: GET_REQUESTS,
72
+ variables: {
73
+ pageSize: pageSize,
74
+ showPendingOnly: showPendingOnly,
75
+ },
76
+ fetchPolicy: "network-only", // to avoid caching
77
+ });
78
+ //TODO: Make this pretty
79
+ (0, apollo_1.printResponse)(this, resp);
10
80
  }
11
81
  }
12
- RequestList.hidden = true;
13
- RequestList.description = "Lists access requests";
14
- exports.default = RequestList;
82
+ ListRequests.hidden = true;
83
+ ListRequests.description = "Lists your recent outgoing access requests.\
84
+ \n--pageSize flag sets number of requests to be returned. Defaults to 10 requests.\
85
+ \n--showPendingOnly flag will show only pending requests. Defaults to false.";
86
+ // static aliases = ["request:ls"]; // uncomment when ready for release
87
+ ListRequests.flags = {
88
+ help: flags_1.SHARED_FLAGS.help,
89
+ id: flags_1.SHARED_FLAGS.id,
90
+ pageSize: core_1.Flags.integer({
91
+ multiple: false,
92
+ description: "Sets number of requests to be returned. Defaults to 10 requests.",
93
+ }),
94
+ };
95
+ exports.default = ListRequests;
@@ -13,7 +13,8 @@ import * as types from "./graphql";
13
13
  */
14
14
  type Documents = {
15
15
  "\nquery GetGroup($id: GroupId!) {\n group(input: { id: $id }) {\n __typename\n ... on GroupResult {\n group {\n name\n id\n description\n groupType\n adminOwnerId\n groupLeaders {\n fullName\n email\n id\n }\n connection {\n name\n id\n connectionType\n }\n paginatedGroupUsers {\n totalNumGroupUsers\n groupUsers {\n user {\n fullName\n email\n id\n }\n }\n }\n }\n }\n ... on GroupNotFoundError {\n message\n }\n }\n}": typeof types.GetGroupDocument;
16
- "\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n": typeof types.GetRequestDocument;
16
+ "\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n": typeof types.GetRequestDocument;
17
+ "\n query GetRequests($pageSize: Int, $showPendingOnly: Boolean!) {\n requests(input: {\n requestType: OUTGOING\n maxNumEntries: $pageSize\n filters: {\n showPendingOnly: $showPendingOnly\n }\n }) {\n __typename\n ... on RequestsResult {\n requestType\n requests {\n createdAt\n id\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n reason\n requestedResources {\n resource {\n displayName\n id\n }\n }\n requestedGroups {\n group {\n name\n id\n }\n }\n status\n }\n \n }\n \n }\n}": typeof types.GetRequestsDocument;
17
18
  "\nquery CheckAuthSessionQuery {\n organizationSettings {\n ... on OrganizationSettingsResult {\n settings {\n id\n }\n }\n }\n}\n": typeof types.CheckAuthSessionQueryDocument;
18
19
  '\n query GetRequestableAppsQuery($searchQuery: String) {\n appsV2(\n filters: {\n access: REQUESTABLE\n searchQuery: $searchQuery\n }\n ) @connection(key: "paginated-app-dropdown") {\n edges {\n node {\n id\n displayName\n ... on Connection {\n connectionType\n }\n ... on Resource {\n resourceType\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n ': typeof types.GetRequestableAppsQueryDocument;
19
20
  "\n query PaginatedEntityDropdown(\n $id: UUID!\n $searchQuery: String\n) {\n app(id: $id) {\n __typename\n ... on App {\n id\n items(\n input: {\n access: REQUESTABLE\n searchQuery: $searchQuery\n includeOnlyRequestable: true\n }\n ) {\n items {\n key\n resource {\n id\n name\n }\n group {\n id\n name\n }\n }\n cursor\n }\n }\n ... on AppNotFoundError {\n message\n }\n }\n}\n": typeof types.PaginatedEntityDropdownDocument;
@@ -41,7 +42,11 @@ export declare function graphql(source: "\nquery GetGroup($id: GroupId!) {\n
41
42
  /**
42
43
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
43
44
  */
44
- export declare function graphql(source: "\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n"): (typeof documents)["\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n"];
45
+ export declare function graphql(source: "\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n"): (typeof documents)["\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n"];
46
+ /**
47
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
48
+ */
49
+ export declare function graphql(source: "\n query GetRequests($pageSize: Int, $showPendingOnly: Boolean!) {\n requests(input: {\n requestType: OUTGOING\n maxNumEntries: $pageSize\n filters: {\n showPendingOnly: $showPendingOnly\n }\n }) {\n __typename\n ... on RequestsResult {\n requestType\n requests {\n createdAt\n id\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n reason\n requestedResources {\n resource {\n displayName\n id\n }\n }\n requestedGroups {\n group {\n name\n id\n }\n }\n status\n }\n \n }\n \n }\n}"): (typeof documents)["\n query GetRequests($pageSize: Int, $showPendingOnly: Boolean!) {\n requests(input: {\n requestType: OUTGOING\n maxNumEntries: $pageSize\n filters: {\n showPendingOnly: $showPendingOnly\n }\n }) {\n __typename\n ... on RequestsResult {\n requestType\n requests {\n createdAt\n id\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n reason\n requestedResources {\n resource {\n displayName\n id\n }\n }\n requestedGroups {\n group {\n name\n id\n }\n }\n status\n }\n \n }\n \n }\n}"];
45
50
  /**
46
51
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
47
52
  */
@@ -5,7 +5,8 @@ exports.graphql = graphql;
5
5
  const types = require("./graphql");
6
6
  const documents = {
7
7
  "\nquery GetGroup($id: GroupId!) {\n group(input: { id: $id }) {\n __typename\n ... on GroupResult {\n group {\n name\n id\n description\n groupType\n adminOwnerId\n groupLeaders {\n fullName\n email\n id\n }\n connection {\n name\n id\n connectionType\n }\n paginatedGroupUsers {\n totalNumGroupUsers\n groupUsers {\n user {\n fullName\n email\n id\n }\n }\n }\n }\n }\n ... on GroupNotFoundError {\n message\n }\n }\n}": types.GetGroupDocument,
8
- "\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n": types.GetRequestDocument,
8
+ "\n query GetRequest(\n $id: RequestId!\n) {\n request(input: {id: $id}) {\n __typename\n ... on RequestResult {\n request {\n id\n status\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n requestedResources {\n resource {\n displayName\n id\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n durationInMinutes\n requestedGroups {\n group {\n id\n name\n }\n accessLevel {\n accessLevelName\n accessLevelRemoteId\n }\n }\n reason\n }\n }\n ... on RequestNotFoundError {\n message\n }\n }\n}\n": types.GetRequestDocument,
9
+ "\n query GetRequests($pageSize: Int, $showPendingOnly: Boolean!) {\n requests(input: {\n requestType: OUTGOING\n maxNumEntries: $pageSize\n filters: {\n showPendingOnly: $showPendingOnly\n }\n }) {\n __typename\n ... on RequestsResult {\n requestType\n requests {\n createdAt\n id\n requester {\n displayName\n }\n targetUser {\n displayName\n }\n reason\n requestedResources {\n resource {\n displayName\n id\n }\n }\n requestedGroups {\n group {\n name\n id\n }\n }\n status\n }\n \n }\n \n }\n}": types.GetRequestsDocument,
9
10
  "\nquery CheckAuthSessionQuery {\n organizationSettings {\n ... on OrganizationSettingsResult {\n settings {\n id\n }\n }\n }\n}\n": types.CheckAuthSessionQueryDocument,
10
11
  '\n query GetRequestableAppsQuery($searchQuery: String) {\n appsV2(\n filters: {\n access: REQUESTABLE\n searchQuery: $searchQuery\n }\n ) @connection(key: "paginated-app-dropdown") {\n edges {\n node {\n id\n displayName\n ... on Connection {\n connectionType\n }\n ... on Resource {\n resourceType\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n ': types.GetRequestableAppsQueryDocument,
11
12
  "\n query PaginatedEntityDropdown(\n $id: UUID!\n $searchQuery: String\n) {\n app(id: $id) {\n __typename\n ... on App {\n id\n items(\n input: {\n access: REQUESTABLE\n searchQuery: $searchQuery\n includeOnlyRequestable: true\n }\n ) {\n items {\n key\n resource {\n id\n name\n }\n group {\n id\n name\n }\n }\n cursor\n }\n }\n ... on AppNotFoundError {\n message\n }\n }\n}\n": types.PaginatedEntityDropdownDocument,
@@ -1812,6 +1812,7 @@ export type App = {
1812
1812
  export type AppItemTypesArgs = {
1813
1813
  access: AccessOption;
1814
1814
  ancestorResourceId?: InputMaybe<NullableResourceId>;
1815
+ excludeComputedGroups?: InputMaybe<Scalars["Boolean"]["input"]>;
1815
1816
  parentResourceId?: InputMaybe<NullableResourceId>;
1816
1817
  };
1817
1818
  export type AppItemsArgs = {
@@ -1905,6 +1906,7 @@ export type AppItemsInput = {
1905
1906
  access: AccessOption;
1906
1907
  ancestorResourceId?: InputMaybe<NullableResourceId>;
1907
1908
  cursor?: InputMaybe<Scalars["String"]["input"]>;
1909
+ excludeComputedGroups?: InputMaybe<Scalars["Boolean"]["input"]>;
1908
1910
  groupIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>;
1909
1911
  hasV3?: InputMaybe<Scalars["Boolean"]["input"]>;
1910
1912
  includeGroups?: InputMaybe<Scalars["Boolean"]["input"]>;
@@ -2549,14 +2551,14 @@ export type CertIsTooLargeError = Error & {
2549
2551
  __typename?: "CertIsTooLargeError";
2550
2552
  message: Scalars["String"]["output"];
2551
2553
  };
2552
- export type ClearResourceUserPropagationStatusInput = {
2554
+ export type ClearPropagationStatusInput = {
2553
2555
  accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["input"];
2554
- resourceId: Scalars["ResourceId"]["input"];
2555
- userId: Scalars["UserId"]["input"];
2556
+ entityId: Scalars["EntityId"]["input"];
2557
+ principalId: Scalars["PrincipalId"]["input"];
2556
2558
  };
2557
- export type ClearResourceUserPropagationStatusOutput = ClearResourceUserPropagationStatusResult;
2558
- export type ClearResourceUserPropagationStatusResult = {
2559
- __typename?: "ClearResourceUserPropagationStatusResult";
2559
+ export type ClearPropagationStatusOutput = ClearPropagationStatusResult;
2560
+ export type ClearPropagationStatusResult = {
2561
+ __typename?: "ClearPropagationStatusResult";
2560
2562
  success: Scalars["Boolean"]["output"];
2561
2563
  };
2562
2564
  export type ClosedRequestMetricsResult = {
@@ -3270,7 +3272,7 @@ export type CreateRequestInput = {
3270
3272
  targetGroupId?: InputMaybe<Scalars["GroupId"]["input"]>;
3271
3273
  targetUserId?: InputMaybe<Scalars["UserId"]["input"]>;
3272
3274
  };
3273
- export type CreateRequestOutput = BulkRequestTooLargeError | CreateRequestResult | GroupNestingNotAllowedError | ItemCannotBeRequestedError | LinkedGroupNotRequestableError | MfaInvalidError | NoManagerSetForRequestingUserError | NoReviewersSetForGroupError | NoReviewersSetForOwnerError | NoReviewersSetForResourceError | RequestDurationTooLargeError | RequestFieldValueMissingError | RequestReasonMissingError | RequestRequiresUserAuthTokenForConnectionError | TargetUserHasNestedAccessError | UserCannotRequestAccessForTargetGroupError;
3275
+ export type CreateRequestOutput = BulkRequestTooLargeError | CreateRequestResult | GroupNestingNotAllowedError | ItemCannotBeRequestedError | LinkedGroupNotRequestableError | MfaInvalidError | NoManagerSetForRequestingUserError | NoReviewersSetForGroupError | NoReviewersSetForOwnerError | NoReviewersSetForResourceError | RequestDurationTooLargeError | RequestFieldValueMissingError | RequestReasonBelowMinLengthError | RequestReasonMissingError | RequestRequiresUserAuthTokenForConnectionError | TargetUserHasNestedAccessError | UserCannotRequestAccessForTargetGroupError;
3274
3276
  export type CreateRequestProposalInput = {
3275
3277
  adminOwnerId: Scalars["OwnerId"]["input"];
3276
3278
  connectionId: Scalars["ConnectionId"]["input"];
@@ -4395,6 +4397,10 @@ export type FilterInput = {
4395
4397
  tagFilter?: InputMaybe<TagFilterInput>;
4396
4398
  usersFilter?: InputMaybe<UsersFilterInput>;
4397
4399
  };
4400
+ export declare enum FilterRule {
4401
+ MatchAll = "MATCH_ALL",
4402
+ MatchAny = "MATCH_ANY"
4403
+ }
4398
4404
  export type FilteredConnectionsInput = {
4399
4405
  filters?: InputMaybe<FiltersInput>;
4400
4406
  };
@@ -4832,7 +4838,7 @@ export type GroupGroup = {
4832
4838
  id: Scalars["GroupGroupId"]["output"];
4833
4839
  memberGroup?: Maybe<Group>;
4834
4840
  memberGroupId: Scalars["GroupId"]["output"];
4835
- propagationStatus?: Maybe<GroupGroupPropagationStatus>;
4841
+ propagationStatus?: Maybe<PropagationStatus>;
4836
4842
  quickAccess?: Maybe<GroupGroupQuickAccess>;
4837
4843
  };
4838
4844
  export type GroupGroupAccess = {
@@ -4883,18 +4889,6 @@ export type GroupGroupNotFound = Error & {
4883
4889
  __typename?: "GroupGroupNotFound";
4884
4890
  message: Scalars["String"]["output"];
4885
4891
  };
4886
- export type GroupGroupPropagationStatus = {
4887
- __typename?: "GroupGroupPropagationStatus";
4888
- errorMessage?: Maybe<Scalars["String"]["output"]>;
4889
- groupGroupId: Scalars["GroupGroupId"]["output"];
4890
- lastSynced: Scalars["Time"]["output"];
4891
- statusCode: PropagationStatusCode;
4892
- taskType: PropagationTaskType;
4893
- };
4894
- export type GroupGroupPushTaskResult = {
4895
- __typename?: "GroupGroupPushTaskResult";
4896
- propStatuses: Array<GroupGroupPropagationStatus>;
4897
- };
4898
4892
  export type GroupGroupQuickAccess = {
4899
4893
  __typename?: "GroupGroupQuickAccess";
4900
4894
  expiration?: Maybe<Scalars["Time"]["output"]>;
@@ -4951,16 +4945,6 @@ export type GroupOnCallSchedulesResult = {
4951
4945
  groupOnCallSchedules: Array<GroupOnCallSchedule>;
4952
4946
  };
4953
4947
  export type GroupOutput = GroupNotFoundError | GroupResult;
4954
- export type GroupPropagationStatus = {
4955
- __typename?: "GroupPropagationStatus";
4956
- errorMessage?: Maybe<Scalars["String"]["output"]>;
4957
- groupId: Scalars["GroupId"]["output"];
4958
- lastSynced: Scalars["Time"]["output"];
4959
- statusCode: PropagationStatusCode;
4960
- taskType: PropagationTaskType;
4961
- ticketPropagation?: Maybe<GroupUserTicketPropagation>;
4962
- userId: Scalars["UserId"]["output"];
4963
- };
4964
4948
  export type GroupRequestConfigurationOutput = {
4965
4949
  __typename?: "GroupRequestConfigurationOutput";
4966
4950
  accessLevelRemoteId?: Maybe<Scalars["AccessLevelRemoteId"]["output"]>;
@@ -4983,7 +4967,7 @@ export type GroupResource = {
4983
4967
  group?: Maybe<Group>;
4984
4968
  groupId: Scalars["GroupId"]["output"];
4985
4969
  lastUsedAt?: Maybe<Scalars["Time"]["output"]>;
4986
- propagationStatus?: Maybe<GroupResourcePropagationStatus>;
4970
+ propagationStatus?: Maybe<PropagationStatus>;
4987
4971
  resource?: Maybe<Resource>;
4988
4972
  resourceId: Scalars["ResourceId"]["output"];
4989
4973
  source: GroupResourceSource;
@@ -5039,20 +5023,6 @@ export type GroupResourceEdge = {
5039
5023
  metadata?: Maybe<EdgeMetadata>;
5040
5024
  resourceId: Scalars["ResourceId"]["output"];
5041
5025
  };
5042
- export type GroupResourcePropagationStatus = {
5043
- __typename?: "GroupResourcePropagationStatus";
5044
- accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"];
5045
- errorMessage?: Maybe<Scalars["String"]["output"]>;
5046
- groupId: Scalars["GroupId"]["output"];
5047
- lastSynced: Scalars["Time"]["output"];
5048
- resourceId: Scalars["ResourceId"]["output"];
5049
- statusCode: PropagationStatusCode;
5050
- taskType: PropagationTaskType;
5051
- };
5052
- export type GroupResourcePushTaskResult = {
5053
- __typename?: "GroupResourcePushTaskResult";
5054
- propStatuses: Array<GroupResourcePropagationStatus>;
5055
- };
5056
5026
  export declare enum GroupResourceSource {
5057
5027
  /** GroupResource that's inherited from another remote resource */
5058
5028
  Inherited = "INHERITED",
@@ -5123,7 +5093,7 @@ export type GroupTypesFilterInput = {
5123
5093
  };
5124
5094
  export type GroupTypesWithCountsInput = {
5125
5095
  connectionIds?: InputMaybe<Array<Scalars["ConnectionId"]["input"]>>;
5126
- includeHiddenGroupTypes?: InputMaybe<Scalars["Boolean"]["input"]>;
5096
+ excludeComputedGroups?: InputMaybe<Scalars["Boolean"]["input"]>;
5127
5097
  query?: InputMaybe<Scalars["String"]["input"]>;
5128
5098
  };
5129
5099
  export type GroupTypesWithCountsOutput = GroupTypesWithCountsResult;
@@ -5139,7 +5109,7 @@ export type GroupUser = {
5139
5109
  group?: Maybe<Group>;
5140
5110
  groupId: Scalars["GroupId"]["output"];
5141
5111
  lastUsedAt?: Maybe<Scalars["Time"]["output"]>;
5142
- propagationStatus?: Maybe<GroupPropagationStatus>;
5112
+ propagationStatus?: Maybe<PropagationStatus>;
5143
5113
  provisionSource: ProvisionSource;
5144
5114
  source: GroupUserSource;
5145
5115
  user?: Maybe<User>;
@@ -5205,10 +5175,6 @@ export type GroupUserInsights = {
5205
5175
  attributeCounts: Array<Maybe<AttributeCounts>>;
5206
5176
  numGroupUsersWithUsage: Scalars["Int"]["output"];
5207
5177
  };
5208
- export type GroupUserPushTaskResult = {
5209
- __typename?: "GroupUserPushTaskResult";
5210
- propStatuses: Array<GroupPropagationStatus>;
5211
- };
5212
5178
  export declare enum GroupUserSortByField {
5213
5179
  AccessLevelName = "ACCESS_LEVEL_NAME",
5214
5180
  ExpiresAt = "EXPIRES_AT",
@@ -5228,14 +5194,11 @@ export declare enum GroupUserSource {
5228
5194
  /** Regular GroupUser that's imported from a nested group. */
5229
5195
  RegularNested = "REGULAR_NESTED"
5230
5196
  }
5231
- export type GroupUserTicketPropagation = {
5232
- __typename?: "GroupUserTicketPropagation";
5233
- resourceTickets: Array<ResourceTicketPropagation>;
5234
- };
5235
5197
  export type GroupsInput = {
5236
5198
  connectionIds?: InputMaybe<Array<Scalars["ConnectionId"]["input"]>>;
5237
5199
  connectionType?: InputMaybe<ConnectionType>;
5238
5200
  cursor?: InputMaybe<Scalars["String"]["input"]>;
5201
+ excludeComputedGroups?: InputMaybe<Scalars["Boolean"]["input"]>;
5239
5202
  groupIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>;
5240
5203
  groupType?: InputMaybe<GroupType>;
5241
5204
  leaderOfGroupsOnly?: InputMaybe<Scalars["Boolean"]["input"]>;
@@ -5938,7 +5901,7 @@ export type Mutation = {
5938
5901
  bulkImportRemoteItems: BulkImportRemoteItemsOutput;
5939
5902
  bulkUpdateItems: BulkUpdateItemsOutput;
5940
5903
  cancelRequest: CancelRequestOutput;
5941
- clearResourceUserPropagationStatus: ClearResourceUserPropagationStatusOutput;
5904
+ clearPropagationStatus: ClearPropagationStatusOutput;
5942
5905
  cliTokenExchange: CliTokenExchangeOutput;
5943
5906
  confirmEndSystemRevocation: ConfirmEndSystemRevocationOutput;
5944
5907
  createAuthProviderApplication: CreateAuthProviderApplicationOutput;
@@ -6165,8 +6128,8 @@ export type MutationBulkUpdateItemsArgs = {
6165
6128
  export type MutationCancelRequestArgs = {
6166
6129
  input: CancelRequestInput;
6167
6130
  };
6168
- export type MutationClearResourceUserPropagationStatusArgs = {
6169
- input: ClearResourceUserPropagationStatusInput;
6131
+ export type MutationClearPropagationStatusArgs = {
6132
+ input: ClearPropagationStatusInput;
6170
6133
  };
6171
6134
  export type MutationCliTokenExchangeArgs = {
6172
6135
  input: CliTokenExchangeInput;
@@ -6949,6 +6912,7 @@ export type OrganizationSettings = {
6949
6912
  isRemoteReadOnly?: Maybe<Scalars["Boolean"]["output"]>;
6950
6913
  maxGroupDurationInMinutes?: Maybe<Scalars["Int"]["output"]>;
6951
6914
  maxResourceDurationInMinutes?: Maybe<Scalars["Int"]["output"]>;
6915
+ reasonMinWordCount?: Maybe<Scalars["Int"]["output"]>;
6952
6916
  roleCreationReviewerOwner?: Maybe<Owner>;
6953
6917
  roleCreationReviewerOwnerId?: Maybe<Scalars["OwnerId"]["output"]>;
6954
6918
  syncErrorHandlerOwnerId?: Maybe<Scalars["OwnerId"]["output"]>;
@@ -7249,6 +7213,7 @@ export type PropagationStatus = {
7249
7213
  principalId: Scalars["EntityId"]["output"];
7250
7214
  statusCode: PropagationStatusCode;
7251
7215
  taskType: PropagationTaskType;
7216
+ ticketPropagationMetadata?: Maybe<TicketPropagationMetadata>;
7252
7217
  };
7253
7218
  export declare enum PropagationStatusCode {
7254
7219
  ErrDryRunModeEnabled = "ERR_DRY_RUN_MODE_ENABLED",
@@ -7291,15 +7256,16 @@ export declare enum PropagationTaskType {
7291
7256
  ResourcesDeleteUsers = "RESOURCES_DELETE_USERS",
7292
7257
  ResourcesUpdateUsers = "RESOURCES_UPDATE_USERS"
7293
7258
  }
7259
+ export type PropagationTicket = {
7260
+ __typename?: "PropagationTicket";
7261
+ entityId: Scalars["EntityId"]["output"];
7262
+ ticket?: Maybe<SupportTicket>;
7263
+ ticketId: Scalars["SupportTicketId"]["output"];
7264
+ };
7294
7265
  export type PropagationTicketConnectionMetadata = {
7295
7266
  __typename?: "PropagationTicketConnectionMetadata";
7296
7267
  ticketProvider?: Maybe<TicketProvider>;
7297
7268
  };
7298
- export type PropagationTicketMetadata = {
7299
- __typename?: "PropagationTicketMetadata";
7300
- ticket?: Maybe<SupportTicket>;
7301
- ticketId?: Maybe<Scalars["SupportTicketId"]["output"]>;
7302
- };
7303
7269
  export type PropagationTicketOwnerMetadata = {
7304
7270
  __typename?: "PropagationTicketOwnerMetadata";
7305
7271
  owner?: Maybe<Owner>;
@@ -7361,7 +7327,7 @@ export type PushTaskComplete = {
7361
7327
  result: PushTaskCompleteResult;
7362
7328
  taskType: PropagationTaskType;
7363
7329
  };
7364
- export type PushTaskCompleteResult = ConnectionUserPushTaskResult | GroupGroupPushTaskResult | GroupResourcePushTaskResult | GroupUserPushTaskResult | ResourceUserPushTaskResult | RoleAssignmentPushTaskResult;
7330
+ export type PushTaskCompleteResult = ConnectionUserPushTaskResult | RoleAssignmentPushTaskResult;
7365
7331
  export type PushTaskInput = {
7366
7332
  id: Scalars["PushTaskId"]["input"];
7367
7333
  };
@@ -7392,7 +7358,7 @@ export type Query = {
7392
7358
  accessReviewConnectionUsers: AccessReviewConnectionUsersOutput;
7393
7359
  accessReviewConnections: AccessReviewConnectionsOutput;
7394
7360
  accessReviewGroup: AccessReviewGroupOutput;
7395
- accessReviewGroupResourceAssignments: AccessReviewGroupItemAssignmentsResult;
7361
+ accessReviewGroupItemAssignments: AccessReviewGroupItemAssignmentsResult;
7396
7362
  accessReviewGroupUsers: AccessReviewGroupUsersOutput;
7397
7363
  accessReviewGroups: AccessReviewGroupsOutput;
7398
7364
  accessReviewItems: AccessReviewItemsResult;
@@ -7569,7 +7535,7 @@ export type QueryAccessReviewConnectionsArgs = {
7569
7535
  export type QueryAccessReviewGroupArgs = {
7570
7536
  input: AccessReviewGroupInput;
7571
7537
  };
7572
- export type QueryAccessReviewGroupResourceAssignmentsArgs = {
7538
+ export type QueryAccessReviewGroupItemAssignmentsArgs = {
7573
7539
  after?: InputMaybe<Scalars["String"]["input"]>;
7574
7540
  before?: InputMaybe<Scalars["String"]["input"]>;
7575
7541
  filters?: InputMaybe<AccessReviewGroupItemAssignmentFilters>;
@@ -7971,6 +7937,10 @@ export type ReadUiNotificationsResult = {
7971
7937
  __typename?: "ReadUINotificationsResult";
7972
7938
  success: Scalars["Boolean"]["output"];
7973
7939
  };
7940
+ export type ReasonMinWordCountInvalidError = Error & {
7941
+ __typename?: "ReasonMinWordCountInvalidError";
7942
+ message: Scalars["String"]["output"];
7943
+ };
7974
7944
  export type RecommendationsBulkSuggestion = Edge & {
7975
7945
  __typename?: "RecommendationsBulkSuggestion";
7976
7946
  cursor: Scalars["String"]["output"];
@@ -8039,6 +8009,7 @@ export declare enum RecommendationsMetricType {
8039
8009
  DailyIrregularUserAccess = "DAILY_IRREGULAR_USER_ACCESS",
8040
8010
  DailyOutsideUserAccess = "DAILY_OUTSIDE_USER_ACCESS",
8041
8011
  DailyPerpetualUserAccess = "DAILY_PERPETUAL_USER_ACCESS",
8012
+ DailyUnusedNhiAccess = "DAILY_UNUSED_NHI_ACCESS",
8042
8013
  DailyUnusedUserAccess = "DAILY_UNUSED_USER_ACCESS",
8043
8014
  EntitiesWithCriticalRiskScore = "ENTITIES_WITH_CRITICAL_RISK_SCORE",
8044
8015
  EntitiesWithHighRiskScore = "ENTITIES_WITH_HIGH_RISK_SCORE",
@@ -8545,6 +8516,10 @@ export type RequestNotFoundError = Error & {
8545
8516
  message: Scalars["String"]["output"];
8546
8517
  };
8547
8518
  export type RequestOutput = RequestNotFoundError | RequestResult;
8519
+ export type RequestReasonBelowMinLengthError = Error & {
8520
+ __typename?: "RequestReasonBelowMinLengthError";
8521
+ message: Scalars["String"]["output"];
8522
+ };
8548
8523
  export type RequestReasonMissingError = Error & {
8549
8524
  __typename?: "RequestReasonMissingError";
8550
8525
  groupIds?: Maybe<Array<Scalars["GroupId"]["output"]>>;
@@ -8675,7 +8650,7 @@ export type RequestedGroup = {
8675
8650
  accessLevel?: Maybe<GroupAccessLevel>;
8676
8651
  group?: Maybe<Group>;
8677
8652
  groupId: Scalars["GroupId"]["output"];
8678
- propagationStatus?: Maybe<GroupPropagationStatus>;
8653
+ propagationStatus?: Maybe<PropagationStatus>;
8679
8654
  targetUserAccess?: Maybe<UserGroupAccess>;
8680
8655
  };
8681
8656
  export type RequestedGroupInput = {
@@ -8685,7 +8660,7 @@ export type RequestedGroupInput = {
8685
8660
  export type RequestedResource = {
8686
8661
  __typename?: "RequestedResource";
8687
8662
  accessLevel: ResourceAccessLevel;
8688
- propagationStatus?: Maybe<ResourcePropagationStatus>;
8663
+ propagationStatus?: Maybe<PropagationStatus>;
8689
8664
  resource?: Maybe<Resource>;
8690
8665
  resourceId: Scalars["ResourceId"]["output"];
8691
8666
  targetUserAccess?: Maybe<UserResourceAccess>;
@@ -8946,17 +8921,6 @@ export type ResourceNotFoundError = Error & {
8946
8921
  message: Scalars["String"]["output"];
8947
8922
  };
8948
8923
  export type ResourceOutput = ResourceNotFoundError | ResourceResult;
8949
- export type ResourcePropagationStatus = {
8950
- __typename?: "ResourcePropagationStatus";
8951
- accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"];
8952
- errorMessage?: Maybe<Scalars["String"]["output"]>;
8953
- lastSynced: Scalars["Time"]["output"];
8954
- metadata?: Maybe<ResourceUserPropagationMetadata>;
8955
- resourceId: Scalars["ResourceId"]["output"];
8956
- statusCode: PropagationStatusCode;
8957
- taskType: PropagationTaskType;
8958
- userId: Scalars["UserId"]["output"];
8959
- };
8960
8924
  export type ResourceProposal = {
8961
8925
  __typename?: "ResourceProposal";
8962
8926
  adminOwnerId: Scalars["OwnerId"]["output"];
@@ -9036,12 +9000,6 @@ export type ResourceTagsResult = {
9036
9000
  __typename?: "ResourceTagsResult";
9037
9001
  resourceTags: Array<ResourceTag>;
9038
9002
  };
9039
- export type ResourceTicketPropagation = {
9040
- __typename?: "ResourceTicketPropagation";
9041
- resourceId: Scalars["ResourceId"]["output"];
9042
- ticket?: Maybe<SupportTicket>;
9043
- ticketId: Scalars["SupportTicketId"]["output"];
9044
- };
9045
9003
  export declare enum ResourceType {
9046
9004
  AwsAccount = "AWS_ACCOUNT",
9047
9005
  AwsEc2Instance = "AWS_EC2_INSTANCE",
@@ -9079,6 +9037,7 @@ export declare enum ResourceType {
9079
9037
  GcpOrganization = "GCP_ORGANIZATION",
9080
9038
  GcpProject = "GCP_PROJECT",
9081
9039
  GcpServiceAccount = "GCP_SERVICE_ACCOUNT",
9040
+ GitHubOrgRole = "GIT_HUB_ORG_ROLE",
9082
9041
  GitHubRepo = "GIT_HUB_REPO",
9083
9042
  GitLabProject = "GIT_LAB_PROJECT",
9084
9043
  GoogleWorkspaceRole = "GOOGLE_WORKSPACE_ROLE",
@@ -9146,7 +9105,7 @@ export type ResourceUser = {
9146
9105
  accessStats?: Maybe<AccessStats>;
9147
9106
  id: Scalars["UUID"]["output"];
9148
9107
  mostRecentSessionEnded?: Maybe<Scalars["Time"]["output"]>;
9149
- propagationStatus?: Maybe<ResourcePropagationStatus>;
9108
+ propagationStatus?: Maybe<PropagationStatus>;
9150
9109
  provisionSource: ProvisionSource;
9151
9110
  resource?: Maybe<Resource>;
9152
9111
  resourceId: Scalars["ResourceId"]["output"];
@@ -9212,11 +9171,6 @@ export type ResourceUserFiltersInput = {
9212
9171
  resourceTypes?: InputMaybe<Array<ResourceType>>;
9213
9172
  userFullName?: InputMaybe<Scalars["String"]["input"]>;
9214
9173
  };
9215
- export type ResourceUserPropagationMetadata = PropagationTicketMetadata;
9216
- export type ResourceUserPushTaskResult = {
9217
- __typename?: "ResourceUserPushTaskResult";
9218
- propStatuses: Array<ResourcePropagationStatus>;
9219
- };
9220
9174
  export declare enum ResourceUserSortByField {
9221
9175
  AccessLevelName = "ACCESS_LEVEL_NAME",
9222
9176
  ExpiresAt = "EXPIRES_AT",
@@ -9440,8 +9394,8 @@ export type RoleAssignmentRiskFactor = {
9440
9394
  export type RoleAssignmentScope = {
9441
9395
  accessScope: AccessScope;
9442
9396
  entityScope: EntityScope;
9397
+ filterRule?: InputMaybe<FilterRule>;
9443
9398
  principalScope: PrincipalScope;
9444
- searchQuery?: InputMaybe<Scalars["String"]["input"]>;
9445
9399
  };
9446
9400
  export type RoleAssignmentSearchScope = {
9447
9401
  entityScope?: InputMaybe<RoleAssignmentEntityScope>;
@@ -10383,6 +10337,10 @@ export type TicketPropagationInput = {
10383
10337
  onRevocation: Scalars["Boolean"]["input"];
10384
10338
  ticketProvider?: InputMaybe<TicketProviderInput>;
10385
10339
  };
10340
+ export type TicketPropagationMetadata = {
10341
+ __typename?: "TicketPropagationMetadata";
10342
+ tickets: Array<PropagationTicket>;
10343
+ };
10386
10344
  export type TicketProvider = {
10387
10345
  __typename?: "TicketProvider";
10388
10346
  ticketProjectId: Scalars["TicketProjectId"]["output"];
@@ -10783,12 +10741,13 @@ export type UpdateOrganizationSettingsInput = {
10783
10741
  isRemoteReadOnly?: InputMaybe<Scalars["Boolean"]["input"]>;
10784
10742
  maxGroupDurationInMinutes?: InputMaybe<NullableInt>;
10785
10743
  maxResourceDurationInMinutes?: InputMaybe<NullableInt>;
10744
+ reasonMinWordCount?: InputMaybe<NullableInt>;
10786
10745
  roleCreationReviewerOwnerId?: InputMaybe<NullableOwnerId>;
10787
10746
  settings?: InputMaybe<Array<GeneralSettingType>>;
10788
10747
  syncErrorHandlerOwnerId?: InputMaybe<NullableOwnerId>;
10789
10748
  unusedAccessThresholdInDays?: InputMaybe<Scalars["Int"]["input"]>;
10790
10749
  };
10791
- export type UpdateOrganizationSettingsOutput = AccessExpiringNotificationsInvalidError | AccessRequestEscalationPeriodInvalidError | AuthSessionExpirationInvalidError | CustomerSupportSettingsInvalid | OidcIssuerNotValidError | OrgMaxGroupDurationInvalidError | OrgMaxResourceDurationInvalidError | OrganizationSettingsNotFoundError | UpdateOrganizationSettingsResult;
10750
+ export type UpdateOrganizationSettingsOutput = AccessExpiringNotificationsInvalidError | AccessRequestEscalationPeriodInvalidError | AuthSessionExpirationInvalidError | CustomerSupportSettingsInvalid | OidcIssuerNotValidError | OrgMaxGroupDurationInvalidError | OrgMaxResourceDurationInvalidError | OrganizationSettingsNotFoundError | ReasonMinWordCountInvalidError | UpdateOrganizationSettingsResult;
10792
10751
  export type UpdateOrganizationSettingsResult = {
10793
10752
  __typename?: "UpdateOrganizationSettingsResult";
10794
10753
  settings: OrganizationSettings;
@@ -11495,6 +11454,14 @@ export type GetRequestQuery = {
11495
11454
  status: RequestStatus;
11496
11455
  durationInMinutes?: number | null;
11497
11456
  reason: string;
11457
+ requester?: {
11458
+ __typename?: "User";
11459
+ displayName: string;
11460
+ } | null;
11461
+ targetUser?: {
11462
+ __typename?: "User";
11463
+ displayName: string;
11464
+ } | null;
11498
11465
  requestedResources: Array<{
11499
11466
  __typename?: "RequestedResource";
11500
11467
  resource?: {
@@ -11524,6 +11491,48 @@ export type GetRequestQuery = {
11524
11491
  };
11525
11492
  };
11526
11493
  };
11494
+ export type GetRequestsQueryVariables = Exact<{
11495
+ pageSize?: InputMaybe<Scalars["Int"]["input"]>;
11496
+ showPendingOnly: Scalars["Boolean"]["input"];
11497
+ }>;
11498
+ export type GetRequestsQuery = {
11499
+ __typename?: "Query";
11500
+ requests: {
11501
+ __typename: "RequestsResult";
11502
+ requestType?: RequestType | null;
11503
+ requests: Array<{
11504
+ __typename?: "Request";
11505
+ createdAt: string;
11506
+ id: string;
11507
+ reason: string;
11508
+ status: RequestStatus;
11509
+ requester?: {
11510
+ __typename?: "User";
11511
+ displayName: string;
11512
+ } | null;
11513
+ targetUser?: {
11514
+ __typename?: "User";
11515
+ displayName: string;
11516
+ } | null;
11517
+ requestedResources: Array<{
11518
+ __typename?: "RequestedResource";
11519
+ resource?: {
11520
+ __typename?: "Resource";
11521
+ displayName: string;
11522
+ id: string;
11523
+ } | null;
11524
+ }>;
11525
+ requestedGroups: Array<{
11526
+ __typename?: "RequestedGroup";
11527
+ group?: {
11528
+ __typename?: "Group";
11529
+ name: string;
11530
+ id: string;
11531
+ } | null;
11532
+ }>;
11533
+ }>;
11534
+ };
11535
+ };
11527
11536
  export type CheckAuthSessionQueryQueryVariables = Exact<{
11528
11537
  [key: string]: never;
11529
11538
  }>;
@@ -11641,6 +11650,7 @@ export type RequestDefaultsQuery = {
11641
11650
  };
11642
11651
  export declare const GetGroupDocument: DocumentNode<GetGroupQuery, GetGroupQueryVariables>;
11643
11652
  export declare const GetRequestDocument: DocumentNode<GetRequestQuery, GetRequestQueryVariables>;
11653
+ export declare const GetRequestsDocument: DocumentNode<GetRequestsQuery, GetRequestsQueryVariables>;
11644
11654
  export declare const CheckAuthSessionQueryDocument: DocumentNode<CheckAuthSessionQueryQuery, CheckAuthSessionQueryQueryVariables>;
11645
11655
  export declare const GetRequestableAppsQueryDocument: DocumentNode<GetRequestableAppsQueryQuery, GetRequestableAppsQueryQueryVariables>;
11646
11656
  export declare const PaginatedEntityDropdownDocument: DocumentNode<PaginatedEntityDropdownQuery, PaginatedEntityDropdownQueryVariables>;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HealthStatus = exports.GroupUserSource = exports.GroupUserSortByField = exports.GroupType = exports.GroupResourceSource = exports.GroupBindingsSortByField = exports.GroupBindingSuggestionsSortByField = exports.GeneralSettingType = exports.FiltersMatchMode = exports.FactorType = exports.EventType = exports.EventSeverity = exports.ErrorNotificationSettingType = exports.EntityType = exports.ConnectionValidationStatus = exports.ConnectionValidationSeverity = exports.ConnectionType = exports.BundlesSortByField = exports.BundleItemsSortByField = exports.AuthType = exports.AuthSessionStatus = exports.AuthFlowType = exports.AssociatedItemsSortByField = exports.AssignmentsSortByField = exports.AppsSortByField = exports.AppType = exports.AppItemsSortByField = exports.AppCategory = exports.ApiAuthType = exports.ApiAccessLevel = exports.AldwinRole = exports.AccessType = exports.AccessRuleStatus = exports.AccessReviewUserWarningType = exports.AccessReviewType = exports.AccessReviewTab = exports.AccessReviewSummaryStatus = exports.AccessReviewStatus = exports.AccessReviewReviewerAssignmentPolicy = exports.AccessReviewItemsSortByField = exports.AccessReviewItemStatus = exports.AccessReviewItemOutcome = exports.AccessReviewGroupResourceVisibilityPolicy = exports.AccessReviewGroupItemKind = exports.AccessReviewEndUserView = exports.AccessReviewAssignedStatus = exports.AccessReviewAction = exports.AccessOption = exports.AccessChangeType = exports.AwsIdentityCenterImportSetting = void 0;
4
- exports.TaskTrigger = exports.TagsSortByField = exports.TagFilterMatchMode = exports.SyncType = exports.SyncTaskStatus = exports.SubEventsSortByField = exports.StringFormatType = exports.SortDirection = exports.ServiceType = exports.SearchType = exports.RolePermissionTargetType = exports.RolePermission = exports.RoleAssignmentsSortByField = exports.RoleAssignmentSource = exports.RiskLevel = exports.ReviewerUserStatus = exports.ReviewerAction = exports.ReviewStageOperator = exports.ResourceUserSource = exports.ResourceUserSortByField = exports.ResourceType = exports.RequestsSortByField = exports.RequestType = exports.RequestTemplateCustomFieldType = exports.RequestStatus = exports.RequestMessageLevel = exports.RequestMessageCode = exports.RequestApprovalType = exports.RecommendationsSubscoreType = exports.RecommendationsMetricType = exports.RecommendationsFeedbackType = exports.RecommendationsEntityType = exports.PubsubPublishMessageType = exports.PubsubPublishMessageStatusCode = exports.PubsubPublishConnectionType = exports.ProvisionSource = exports.PropagationTaskType = exports.PropagationStatusCode = exports.OwnersSortByField = exports.OrganizationType = exports.OidcProviderType = exports.NotificationType = exports.MessageChannelType = exports.MfaProvider = exports.IntegrationType = exports.ImportSetting = exports.IdpConnectionUserAttributeUseAs = exports.IdpConnectionType = exports.IdentityCategory = exports.HrIdpStatus = void 0;
5
- exports.RequestDefaultsDocument = exports.ResourceAccessLevelsDocument = exports.PaginatedEntityDropdownDocument = exports.GetRequestableAppsQueryDocument = exports.CheckAuthSessionQueryDocument = exports.GetRequestDocument = exports.GetGroupDocument = exports.RequestDecisionLevel = exports.WebhookPubsubPublishConnectionAuthType = exports.WebhookPubsubPublishConnectionApiKeyLocation = exports.Visibility = exports.VerifyFactorStatus = exports.UsersSortByField = exports.UserProductRole = exports.UserErrorType = exports.UsageAttributionType = exports.UiSource = exports.TimePeriod = exports.TimeBucket = exports.ThirdPartyProvider = void 0;
3
+ exports.GroupUserSource = exports.GroupUserSortByField = exports.GroupType = exports.GroupResourceSource = exports.GroupBindingsSortByField = exports.GroupBindingSuggestionsSortByField = exports.GeneralSettingType = exports.FiltersMatchMode = exports.FilterRule = exports.FactorType = exports.EventType = exports.EventSeverity = exports.ErrorNotificationSettingType = exports.EntityType = exports.ConnectionValidationStatus = exports.ConnectionValidationSeverity = exports.ConnectionType = exports.BundlesSortByField = exports.BundleItemsSortByField = exports.AuthType = exports.AuthSessionStatus = exports.AuthFlowType = exports.AssociatedItemsSortByField = exports.AssignmentsSortByField = exports.AppsSortByField = exports.AppType = exports.AppItemsSortByField = exports.AppCategory = exports.ApiAuthType = exports.ApiAccessLevel = exports.AldwinRole = exports.AccessType = exports.AccessRuleStatus = exports.AccessReviewUserWarningType = exports.AccessReviewType = exports.AccessReviewTab = exports.AccessReviewSummaryStatus = exports.AccessReviewStatus = exports.AccessReviewReviewerAssignmentPolicy = exports.AccessReviewItemsSortByField = exports.AccessReviewItemStatus = exports.AccessReviewItemOutcome = exports.AccessReviewGroupResourceVisibilityPolicy = exports.AccessReviewGroupItemKind = exports.AccessReviewEndUserView = exports.AccessReviewAssignedStatus = exports.AccessReviewAction = exports.AccessOption = exports.AccessChangeType = exports.AwsIdentityCenterImportSetting = void 0;
4
+ exports.TagsSortByField = exports.TagFilterMatchMode = exports.SyncType = exports.SyncTaskStatus = exports.SubEventsSortByField = exports.StringFormatType = exports.SortDirection = exports.ServiceType = exports.SearchType = exports.RolePermissionTargetType = exports.RolePermission = exports.RoleAssignmentsSortByField = exports.RoleAssignmentSource = exports.RiskLevel = exports.ReviewerUserStatus = exports.ReviewerAction = exports.ReviewStageOperator = exports.ResourceUserSource = exports.ResourceUserSortByField = exports.ResourceType = exports.RequestsSortByField = exports.RequestType = exports.RequestTemplateCustomFieldType = exports.RequestStatus = exports.RequestMessageLevel = exports.RequestMessageCode = exports.RequestApprovalType = exports.RecommendationsSubscoreType = exports.RecommendationsMetricType = exports.RecommendationsFeedbackType = exports.RecommendationsEntityType = exports.PubsubPublishMessageType = exports.PubsubPublishMessageStatusCode = exports.PubsubPublishConnectionType = exports.ProvisionSource = exports.PropagationTaskType = exports.PropagationStatusCode = exports.OwnersSortByField = exports.OrganizationType = exports.OidcProviderType = exports.NotificationType = exports.MessageChannelType = exports.MfaProvider = exports.IntegrationType = exports.ImportSetting = exports.IdpConnectionUserAttributeUseAs = exports.IdpConnectionType = exports.IdentityCategory = exports.HrIdpStatus = exports.HealthStatus = void 0;
5
+ exports.RequestDefaultsDocument = exports.ResourceAccessLevelsDocument = exports.PaginatedEntityDropdownDocument = exports.GetRequestableAppsQueryDocument = exports.CheckAuthSessionQueryDocument = exports.GetRequestsDocument = exports.GetRequestDocument = exports.GetGroupDocument = exports.RequestDecisionLevel = exports.WebhookPubsubPublishConnectionAuthType = exports.WebhookPubsubPublishConnectionApiKeyLocation = exports.Visibility = exports.VerifyFactorStatus = exports.UsersSortByField = exports.UserProductRole = exports.UserErrorType = exports.UsageAttributionType = exports.UiSource = exports.TimePeriod = exports.TimeBucket = exports.ThirdPartyProvider = exports.TaskTrigger = void 0;
6
6
  var AwsIdentityCenterImportSetting;
7
7
  (function (AwsIdentityCenterImportSetting) {
8
8
  AwsIdentityCenterImportSetting["All"] = "ALL";
@@ -689,6 +689,11 @@ var FactorType;
689
689
  FactorType["OktaPush"] = "OKTA_PUSH";
690
690
  FactorType["OktaTotp"] = "OKTA_TOTP";
691
691
  })(FactorType || (exports.FactorType = FactorType = {}));
692
+ var FilterRule;
693
+ (function (FilterRule) {
694
+ FilterRule["MatchAll"] = "MATCH_ALL";
695
+ FilterRule["MatchAny"] = "MATCH_ANY";
696
+ })(FilterRule || (exports.FilterRule = FilterRule = {}));
692
697
  var FiltersMatchMode;
693
698
  (function (FiltersMatchMode) {
694
699
  FiltersMatchMode["All"] = "ALL";
@@ -973,6 +978,7 @@ var RecommendationsMetricType;
973
978
  RecommendationsMetricType["DailyIrregularUserAccess"] = "DAILY_IRREGULAR_USER_ACCESS";
974
979
  RecommendationsMetricType["DailyOutsideUserAccess"] = "DAILY_OUTSIDE_USER_ACCESS";
975
980
  RecommendationsMetricType["DailyPerpetualUserAccess"] = "DAILY_PERPETUAL_USER_ACCESS";
981
+ RecommendationsMetricType["DailyUnusedNhiAccess"] = "DAILY_UNUSED_NHI_ACCESS";
976
982
  RecommendationsMetricType["DailyUnusedUserAccess"] = "DAILY_UNUSED_USER_ACCESS";
977
983
  RecommendationsMetricType["EntitiesWithCriticalRiskScore"] = "ENTITIES_WITH_CRITICAL_RISK_SCORE";
978
984
  RecommendationsMetricType["EntitiesWithHighRiskScore"] = "ENTITIES_WITH_HIGH_RISK_SCORE";
@@ -1095,6 +1101,7 @@ var ResourceType;
1095
1101
  ResourceType["GcpOrganization"] = "GCP_ORGANIZATION";
1096
1102
  ResourceType["GcpProject"] = "GCP_PROJECT";
1097
1103
  ResourceType["GcpServiceAccount"] = "GCP_SERVICE_ACCOUNT";
1104
+ ResourceType["GitHubOrgRole"] = "GIT_HUB_ORG_ROLE";
1098
1105
  ResourceType["GitHubRepo"] = "GIT_HUB_REPO";
1099
1106
  ResourceType["GitLabProject"] = "GIT_LAB_PROJECT";
1100
1107
  ResourceType["GoogleWorkspaceRole"] = "GOOGLE_WORKSPACE_ROLE";
@@ -1732,6 +1739,38 @@ exports.GetRequestDocument = {
1732
1739
  kind: "Field",
1733
1740
  name: { kind: "Name", value: "status" },
1734
1741
  },
1742
+ {
1743
+ kind: "Field",
1744
+ name: { kind: "Name", value: "requester" },
1745
+ selectionSet: {
1746
+ kind: "SelectionSet",
1747
+ selections: [
1748
+ {
1749
+ kind: "Field",
1750
+ name: {
1751
+ kind: "Name",
1752
+ value: "displayName",
1753
+ },
1754
+ },
1755
+ ],
1756
+ },
1757
+ },
1758
+ {
1759
+ kind: "Field",
1760
+ name: { kind: "Name", value: "targetUser" },
1761
+ selectionSet: {
1762
+ kind: "SelectionSet",
1763
+ selections: [
1764
+ {
1765
+ kind: "Field",
1766
+ name: {
1767
+ kind: "Name",
1768
+ value: "displayName",
1769
+ },
1770
+ },
1771
+ ],
1772
+ },
1773
+ },
1735
1774
  {
1736
1775
  kind: "Field",
1737
1776
  name: {
@@ -1883,6 +1922,227 @@ exports.GetRequestDocument = {
1883
1922
  },
1884
1923
  ],
1885
1924
  };
1925
+ exports.GetRequestsDocument = {
1926
+ kind: "Document",
1927
+ definitions: [
1928
+ {
1929
+ kind: "OperationDefinition",
1930
+ operation: "query",
1931
+ name: { kind: "Name", value: "GetRequests" },
1932
+ variableDefinitions: [
1933
+ {
1934
+ kind: "VariableDefinition",
1935
+ variable: {
1936
+ kind: "Variable",
1937
+ name: { kind: "Name", value: "pageSize" },
1938
+ },
1939
+ type: { kind: "NamedType", name: { kind: "Name", value: "Int" } },
1940
+ },
1941
+ {
1942
+ kind: "VariableDefinition",
1943
+ variable: {
1944
+ kind: "Variable",
1945
+ name: { kind: "Name", value: "showPendingOnly" },
1946
+ },
1947
+ type: {
1948
+ kind: "NonNullType",
1949
+ type: {
1950
+ kind: "NamedType",
1951
+ name: { kind: "Name", value: "Boolean" },
1952
+ },
1953
+ },
1954
+ },
1955
+ ],
1956
+ selectionSet: {
1957
+ kind: "SelectionSet",
1958
+ selections: [
1959
+ {
1960
+ kind: "Field",
1961
+ name: { kind: "Name", value: "requests" },
1962
+ arguments: [
1963
+ {
1964
+ kind: "Argument",
1965
+ name: { kind: "Name", value: "input" },
1966
+ value: {
1967
+ kind: "ObjectValue",
1968
+ fields: [
1969
+ {
1970
+ kind: "ObjectField",
1971
+ name: { kind: "Name", value: "requestType" },
1972
+ value: { kind: "EnumValue", value: "OUTGOING" },
1973
+ },
1974
+ {
1975
+ kind: "ObjectField",
1976
+ name: { kind: "Name", value: "maxNumEntries" },
1977
+ value: {
1978
+ kind: "Variable",
1979
+ name: { kind: "Name", value: "pageSize" },
1980
+ },
1981
+ },
1982
+ {
1983
+ kind: "ObjectField",
1984
+ name: { kind: "Name", value: "filters" },
1985
+ value: {
1986
+ kind: "ObjectValue",
1987
+ fields: [
1988
+ {
1989
+ kind: "ObjectField",
1990
+ name: { kind: "Name", value: "showPendingOnly" },
1991
+ value: {
1992
+ kind: "Variable",
1993
+ name: { kind: "Name", value: "showPendingOnly" },
1994
+ },
1995
+ },
1996
+ ],
1997
+ },
1998
+ },
1999
+ ],
2000
+ },
2001
+ },
2002
+ ],
2003
+ selectionSet: {
2004
+ kind: "SelectionSet",
2005
+ selections: [
2006
+ { kind: "Field", name: { kind: "Name", value: "__typename" } },
2007
+ {
2008
+ kind: "InlineFragment",
2009
+ typeCondition: {
2010
+ kind: "NamedType",
2011
+ name: { kind: "Name", value: "RequestsResult" },
2012
+ },
2013
+ selectionSet: {
2014
+ kind: "SelectionSet",
2015
+ selections: [
2016
+ {
2017
+ kind: "Field",
2018
+ name: { kind: "Name", value: "requestType" },
2019
+ },
2020
+ {
2021
+ kind: "Field",
2022
+ name: { kind: "Name", value: "requests" },
2023
+ selectionSet: {
2024
+ kind: "SelectionSet",
2025
+ selections: [
2026
+ {
2027
+ kind: "Field",
2028
+ name: { kind: "Name", value: "createdAt" },
2029
+ },
2030
+ {
2031
+ kind: "Field",
2032
+ name: { kind: "Name", value: "id" },
2033
+ },
2034
+ {
2035
+ kind: "Field",
2036
+ name: { kind: "Name", value: "requester" },
2037
+ selectionSet: {
2038
+ kind: "SelectionSet",
2039
+ selections: [
2040
+ {
2041
+ kind: "Field",
2042
+ name: {
2043
+ kind: "Name",
2044
+ value: "displayName",
2045
+ },
2046
+ },
2047
+ ],
2048
+ },
2049
+ },
2050
+ {
2051
+ kind: "Field",
2052
+ name: { kind: "Name", value: "targetUser" },
2053
+ selectionSet: {
2054
+ kind: "SelectionSet",
2055
+ selections: [
2056
+ {
2057
+ kind: "Field",
2058
+ name: {
2059
+ kind: "Name",
2060
+ value: "displayName",
2061
+ },
2062
+ },
2063
+ ],
2064
+ },
2065
+ },
2066
+ {
2067
+ kind: "Field",
2068
+ name: { kind: "Name", value: "reason" },
2069
+ },
2070
+ {
2071
+ kind: "Field",
2072
+ name: {
2073
+ kind: "Name",
2074
+ value: "requestedResources",
2075
+ },
2076
+ selectionSet: {
2077
+ kind: "SelectionSet",
2078
+ selections: [
2079
+ {
2080
+ kind: "Field",
2081
+ name: { kind: "Name", value: "resource" },
2082
+ selectionSet: {
2083
+ kind: "SelectionSet",
2084
+ selections: [
2085
+ {
2086
+ kind: "Field",
2087
+ name: {
2088
+ kind: "Name",
2089
+ value: "displayName",
2090
+ },
2091
+ },
2092
+ {
2093
+ kind: "Field",
2094
+ name: { kind: "Name", value: "id" },
2095
+ },
2096
+ ],
2097
+ },
2098
+ },
2099
+ ],
2100
+ },
2101
+ },
2102
+ {
2103
+ kind: "Field",
2104
+ name: { kind: "Name", value: "requestedGroups" },
2105
+ selectionSet: {
2106
+ kind: "SelectionSet",
2107
+ selections: [
2108
+ {
2109
+ kind: "Field",
2110
+ name: { kind: "Name", value: "group" },
2111
+ selectionSet: {
2112
+ kind: "SelectionSet",
2113
+ selections: [
2114
+ {
2115
+ kind: "Field",
2116
+ name: { kind: "Name", value: "name" },
2117
+ },
2118
+ {
2119
+ kind: "Field",
2120
+ name: { kind: "Name", value: "id" },
2121
+ },
2122
+ ],
2123
+ },
2124
+ },
2125
+ ],
2126
+ },
2127
+ },
2128
+ {
2129
+ kind: "Field",
2130
+ name: { kind: "Name", value: "status" },
2131
+ },
2132
+ ],
2133
+ },
2134
+ },
2135
+ ],
2136
+ },
2137
+ },
2138
+ ],
2139
+ },
2140
+ },
2141
+ ],
2142
+ },
2143
+ },
2144
+ ],
2145
+ };
1886
2146
  exports.CheckAuthSessionQueryDocument = {
1887
2147
  kind: "Document",
1888
2148
  definitions: [
@@ -1,5 +1,8 @@
1
+ import type { ApolloQueryResult } from "@apollo/client";
1
2
  import type { Command } from "@oclif/core/lib/command";
3
+ import type { GetRequestQuery } from "../graphql/graphql";
2
4
  import type { RequestMap } from "../lib/requests";
3
5
  export declare function headerMessage(cmd: Command): void;
4
6
  export declare function treeifyRequestMap(requestMap: RequestMap): string;
5
7
  export declare function displayFinalRequestSummary(cmd: Command, requestMap: RequestMap, reason: string, expiration: string): void;
8
+ export declare function displayRequestDetails(cmd: Command, requestResp: ApolloQueryResult<GetRequestQuery>): void;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.headerMessage = headerMessage;
4
4
  exports.treeifyRequestMap = treeifyRequestMap;
5
5
  exports.displayFinalRequestSummary = displayFinalRequestSummary;
6
+ exports.displayRequestDetails = displayRequestDetails;
7
+ const prettyjson_1 = require("prettyjson");
6
8
  const treeify = require("object-treeify");
7
9
  const Table = require("cli-table3");
8
10
  const tableStyle = {
@@ -63,3 +65,53 @@ function displayFinalRequestSummary(cmd, requestMap, reason, expiration) {
63
65
  table.push(["Requested Assets", requestedAssets], ["Reason", reason], ["Expiration", expiration]);
64
66
  cmd.log(table.toString());
65
67
  }
68
+ function displayRequestDetails(cmd, requestResp) {
69
+ var _a, _b;
70
+ cmd.log("============================================================");
71
+ cmd.log("Request Details\n");
72
+ switch (requestResp.data.request.__typename) {
73
+ case "RequestResult": {
74
+ const requester = (_a = requestResp.data.request.request.requester) === null || _a === void 0 ? void 0 : _a.displayName;
75
+ const targetUser = (_b = requestResp.data.request.request.targetUser) === null || _b === void 0 ? void 0 : _b.displayName;
76
+ const durationInMinutes = requestResp.data.request.request.durationInMinutes;
77
+ cmd.log(`ID: ${requestResp.data.request.request.id}`);
78
+ cmd.log(`STATUS: ${requestResp.data.request.request.status}`);
79
+ if (requester) {
80
+ cmd.log(`Requester: ${requester}`);
81
+ }
82
+ if (targetUser) {
83
+ cmd.log(`Target: ${targetUser}`);
84
+ }
85
+ if (durationInMinutes) {
86
+ const days = Math.floor(durationInMinutes / 1440);
87
+ const remainingMinutes = durationInMinutes % 1440;
88
+ const hours = Math.floor(remainingMinutes / 60);
89
+ const minutes = remainingMinutes % 60;
90
+ let durationStr = "";
91
+ if (days > 0)
92
+ durationStr += `${days}d`;
93
+ if (hours > 0)
94
+ durationStr += `${hours}h`;
95
+ if (minutes > 0)
96
+ durationStr += `${minutes}m`;
97
+ if (durationStr === "")
98
+ durationStr = `${durationInMinutes}m`;
99
+ durationStr += ` (${durationInMinutes}m)`;
100
+ cmd.log(`\nDuration: ${durationStr}`);
101
+ }
102
+ const requestedResources = requestResp.data.request.request.requestedResources;
103
+ const requestedGroups = requestResp.data.request.request.requestedGroups;
104
+ if (requestedResources && requestedResources.length > 0) {
105
+ cmd.log("\nRequested Resources:");
106
+ cmd.log((0, prettyjson_1.render)(requestedResources));
107
+ }
108
+ if (requestedGroups && requestedGroups.length > 0) {
109
+ cmd.log("\nRequested Groups:");
110
+ cmd.log((0, prettyjson_1.render)(requestedGroups));
111
+ }
112
+ if (requestResp.data.request.request.reason) {
113
+ cmd.log(`\nReason: "${requestResp.data.request.request.reason}"`);
114
+ }
115
+ }
116
+ }
117
+ }
@@ -657,8 +657,31 @@
657
657
  "request:list": {
658
658
  "aliases": [],
659
659
  "args": {},
660
- "description": "Lists access requests",
661
- "flags": {},
660
+ "description": "Lists your recent outgoing access requests. \n--pageSize flag sets number of requests to be returned. Defaults to 10 requests. \n--showPendingOnly flag will show only pending requests. Defaults to false.",
661
+ "flags": {
662
+ "help": {
663
+ "char": "h",
664
+ "description": "Show CLI help.",
665
+ "name": "help",
666
+ "allowNo": false,
667
+ "type": "boolean"
668
+ },
669
+ "id": {
670
+ "char": "i",
671
+ "description": "The Opal ID of the resource. You can find this from the URL, e.g. https://opal.dev/resources/[ID]",
672
+ "name": "id",
673
+ "hasDynamicHelp": false,
674
+ "multiple": false,
675
+ "type": "option"
676
+ },
677
+ "pageSize": {
678
+ "description": "Sets number of requests to be returned. Defaults to 10 requests.",
679
+ "name": "pageSize",
680
+ "hasDynamicHelp": false,
681
+ "multiple": false,
682
+ "type": "option"
683
+ }
684
+ },
662
685
  "hasDynamicHelp": false,
663
686
  "hidden": true,
664
687
  "hiddenAliases": [],
@@ -923,5 +946,5 @@
923
946
  ]
924
947
  }
925
948
  },
926
- "version": "3.1.1-beta.e5e99da"
949
+ "version": "3.1.1-beta.e966e75"
927
950
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opal-security",
3
3
  "description": "Opal allows you to centrally manage access to all of your sensitive systems.",
4
- "version": "3.1.1-beta.e5e99da",
4
+ "version": "3.1.1-beta.e966e75",
5
5
  "author": "Stephen Cobbe",
6
6
  "bin": {
7
7
  "opal": "./bin/run"
@@ -39,6 +39,7 @@
39
39
  "@types/lodash": "^4.14.169",
40
40
  "@types/node": "^22.14.0",
41
41
  "@types/prettyjson": "0.0.29",
42
+ "@types/react": "^19.1.4",
42
43
  "@types/semver": "^7.3.8",
43
44
  "better-npm-audit": "^3.7.3",
44
45
  "get-graphql-schema": "^2.1.2",