opal-security 3.2.1 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +28 -25
  2. package/lib/commands/login.js +8 -1
  3. package/lib/commands/request/create.d.ts +2 -0
  4. package/lib/commands/request/create.js +41 -20
  5. package/lib/commands/request/get.js +5 -57
  6. package/lib/commands/request/list.js +3 -60
  7. package/lib/graphql/gql.d.ts +35 -15
  8. package/lib/graphql/gql.js +9 -5
  9. package/lib/graphql/graphql.d.ts +286 -228
  10. package/lib/graphql/graphql.js +1674 -1095
  11. package/lib/labels.d.ts +3 -0
  12. package/lib/labels.js +37 -0
  13. package/lib/lib/request/api/index.d.ts +6 -0
  14. package/lib/lib/request/api/index.js +20 -0
  15. package/lib/lib/request/api/mutations/create-request.d.ts +8 -0
  16. package/lib/lib/request/api/mutations/create-request.js +159 -0
  17. package/lib/lib/request/api/queries/apps.d.ts +4 -0
  18. package/lib/lib/request/api/queries/apps.js +73 -0
  19. package/lib/lib/request/api/queries/assets.d.ts +6 -0
  20. package/lib/lib/request/api/queries/assets.js +136 -0
  21. package/lib/lib/request/api/queries/request-defaults.d.ts +5 -0
  22. package/lib/lib/request/api/queries/request-defaults.js +51 -0
  23. package/lib/lib/request/api/queries/requests.d.ts +4 -0
  24. package/lib/lib/request/api/queries/requests.js +163 -0
  25. package/lib/lib/request/api/queries/roles.d.ts +5 -0
  26. package/lib/lib/request/api/queries/roles.js +239 -0
  27. package/lib/{utils → lib/request}/displays.d.ts +4 -2
  28. package/lib/{utils → lib/request}/displays.js +41 -19
  29. package/lib/lib/request/prompts/apps-prompt.d.ts +4 -0
  30. package/lib/lib/request/prompts/apps-prompt.js +35 -0
  31. package/lib/lib/request/prompts/asset-prompt.d.ts +5 -0
  32. package/lib/lib/request/prompts/asset-prompt.js +81 -0
  33. package/lib/lib/request/prompts/duration-prompt.d.ts +2 -0
  34. package/lib/lib/request/prompts/duration-prompt.js +122 -0
  35. package/lib/lib/request/prompts/index.d.ts +8 -0
  36. package/lib/lib/request/prompts/index.js +20 -0
  37. package/lib/lib/request/prompts/reason-prompt.d.ts +2 -0
  38. package/lib/lib/request/prompts/reason-prompt.js +20 -0
  39. package/lib/lib/request/prompts/role-prompt.d.ts +4 -0
  40. package/lib/lib/request/prompts/role-prompt.js +44 -0
  41. package/lib/lib/request/prompts/validate-prompt.d.ts +4 -0
  42. package/lib/lib/request/prompts/validate-prompt.js +29 -0
  43. package/lib/lib/request/request-utils.d.ts +15 -0
  44. package/lib/lib/request/request-utils.js +467 -0
  45. package/lib/lib/request/types.d.ts +55 -0
  46. package/lib/lib/request/types.js +15 -0
  47. package/lib/lib/util.d.ts +1 -0
  48. package/lib/lib/util.js +16 -0
  49. package/lib/types.d.ts +19 -3
  50. package/lib/types.js +18 -2
  51. package/oclif.manifest.json +54 -38
  52. package/package.json +1 -1
  53. package/lib/lib/requests.d.ts +0 -54
  54. package/lib/lib/requests.js +0 -1160
  55. package/lib/utils/utils.d.ts +0 -1
  56. package/lib/utils/utils.js +0 -18
@@ -0,0 +1,3 @@
1
+ import { ConnectionType, EntityType } from "./graphql/graphql";
2
+ export declare const connectionTypeLabelByType: Record<ConnectionType, string>;
3
+ export declare const DisplayLabels: Partial<Record<EntityType, string>>;
package/lib/labels.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DisplayLabels = exports.connectionTypeLabelByType = void 0;
4
+ const graphql_1 = require("./graphql/graphql");
5
+ exports.connectionTypeLabelByType = {
6
+ [graphql_1.ConnectionType.ActiveDirectory]: "Active Directory",
7
+ [graphql_1.ConnectionType.Aws]: "Amazon Web Services (Legacy)",
8
+ [graphql_1.ConnectionType.AwsSso]: "Amazon Web Services",
9
+ [graphql_1.ConnectionType.Custom]: "Custom Integration",
10
+ [graphql_1.ConnectionType.CustomConnector]: "Custom App Connector",
11
+ [graphql_1.ConnectionType.Duo]: "Duo",
12
+ [graphql_1.ConnectionType.Gcp]: "Google Cloud Platform",
13
+ [graphql_1.ConnectionType.GitHub]: "GitHub",
14
+ [graphql_1.ConnectionType.GitLab]: "GitLab",
15
+ [graphql_1.ConnectionType.GoogleGroups]: "Google Groups",
16
+ [graphql_1.ConnectionType.GoogleWorkspace]: "Google Workspace",
17
+ [graphql_1.ConnectionType.Ldap]: "LDAP",
18
+ [graphql_1.ConnectionType.Mongo]: "MongoDB Database",
19
+ [graphql_1.ConnectionType.MongoAtlas]: "MongoDB Atlas Database",
20
+ [graphql_1.ConnectionType.OktaDirectory]: "Okta Directory",
21
+ [graphql_1.ConnectionType.Opal]: "Opal",
22
+ [graphql_1.ConnectionType.Pagerduty]: "PagerDuty",
23
+ [graphql_1.ConnectionType.Tailscale]: "Tailscale",
24
+ [graphql_1.ConnectionType.Salesforce]: "Salesforce",
25
+ [graphql_1.ConnectionType.Workday]: "Workday",
26
+ [graphql_1.ConnectionType.Mysql]: "MySQL",
27
+ [graphql_1.ConnectionType.Mariadb]: "MariaDB",
28
+ [graphql_1.ConnectionType.Postgres]: "PostgreSQL",
29
+ [graphql_1.ConnectionType.Teleport]: "Teleport",
30
+ [graphql_1.ConnectionType.AzureAd]: "Azure",
31
+ [graphql_1.ConnectionType.Snowflake]: "Snowflake",
32
+ [graphql_1.ConnectionType.Databricks]: "Databricks",
33
+ };
34
+ exports.DisplayLabels = {
35
+ [graphql_1.EntityType.Resource]: "Resource",
36
+ [graphql_1.EntityType.Group]: "Group",
37
+ };
@@ -0,0 +1,6 @@
1
+ export { queryRequestableApps } from "./queries/apps";
2
+ export { queryRequestableAssets, queryCatalogItems } from "./queries/assets";
3
+ export { queryAssetRoles, queryAssociatedItems } from "./queries/roles";
4
+ export { queryRequestDefaults } from "./queries/request-defaults";
5
+ export { queryRequest, queryRequests } from "./queries/requests";
6
+ export { createRequest } from "./mutations/create-request";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRequest = exports.queryRequests = exports.queryRequest = exports.queryRequestDefaults = exports.queryAssociatedItems = exports.queryAssetRoles = exports.queryCatalogItems = exports.queryRequestableAssets = exports.queryRequestableApps = void 0;
4
+ // Query exports
5
+ var apps_1 = require("./queries/apps");
6
+ Object.defineProperty(exports, "queryRequestableApps", { enumerable: true, get: function () { return apps_1.queryRequestableApps; } });
7
+ var assets_1 = require("./queries/assets");
8
+ Object.defineProperty(exports, "queryRequestableAssets", { enumerable: true, get: function () { return assets_1.queryRequestableAssets; } });
9
+ Object.defineProperty(exports, "queryCatalogItems", { enumerable: true, get: function () { return assets_1.queryCatalogItems; } });
10
+ var roles_1 = require("./queries/roles");
11
+ Object.defineProperty(exports, "queryAssetRoles", { enumerable: true, get: function () { return roles_1.queryAssetRoles; } });
12
+ Object.defineProperty(exports, "queryAssociatedItems", { enumerable: true, get: function () { return roles_1.queryAssociatedItems; } });
13
+ var request_defaults_1 = require("./queries/request-defaults");
14
+ Object.defineProperty(exports, "queryRequestDefaults", { enumerable: true, get: function () { return request_defaults_1.queryRequestDefaults; } });
15
+ var requests_1 = require("./queries/requests");
16
+ Object.defineProperty(exports, "queryRequest", { enumerable: true, get: function () { return requests_1.queryRequest; } });
17
+ Object.defineProperty(exports, "queryRequests", { enumerable: true, get: function () { return requests_1.queryRequests; } });
18
+ // Mutation exports
19
+ var create_request_1 = require("./mutations/create-request");
20
+ Object.defineProperty(exports, "createRequest", { enumerable: true, get: function () { return create_request_1.createRequest; } });
@@ -0,0 +1,8 @@
1
+ import type { ApolloClient, NormalizedCacheObject } from "@apollo/client";
2
+ import type { Command } from "@oclif/core";
3
+ import type { RequestedGroupInput, RequestedResourceInput } from "../../../../graphql/graphql";
4
+ export declare function createRequest(cmd: Command, client: ApolloClient<NormalizedCacheObject>, requestedResources: RequestedResourceInput[], requestedGroups: RequestedGroupInput[], reason: string, durationInMinutes?: number): Promise<{
5
+ __typename?: "Request";
6
+ id: string;
7
+ status: import("../../../../graphql/graphql").RequestStatus;
8
+ } | undefined>;
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRequest = createRequest;
4
+ const graphql_1 = require("../../../../graphql");
5
+ const CREATE_REQUEST_MUTATION = (0, graphql_1.graphql)(`
6
+ mutation CreateRequest(
7
+ $requestedResources: [RequestedResourceInput!]!
8
+ $requestedGroups: [RequestedGroupInput!]!
9
+ $reason: String!
10
+ $durationInMinutes: Int
11
+ ) {
12
+ createRequest(
13
+ input: {
14
+ requestedResources: $requestedResources
15
+ requestedGroups: $requestedGroups
16
+ reason: $reason
17
+ durationInMinutes: $durationInMinutes
18
+ }
19
+ ) {
20
+ ... on CreateRequestResult {
21
+ request {
22
+ id
23
+ status
24
+ }
25
+ }
26
+ ... on RequestDurationTooLargeError {
27
+ message
28
+ }
29
+ ... on RequestRequiresUserAuthTokenForConnectionError {
30
+ message
31
+ }
32
+ ... on NoReviewersSetForOwnerError {
33
+ message
34
+ ownerId
35
+ }
36
+ ... on NoReviewersSetForResourceError {
37
+ message
38
+ resourceId
39
+ }
40
+ ... on NoReviewersSetForGroupError {
41
+ message
42
+ groupId
43
+ }
44
+ ... on NoManagerSetForRequestingUserError {
45
+ message
46
+ }
47
+ ... on MfaInvalidError {
48
+ message
49
+ }
50
+ ... on BulkRequestTooLargeError {
51
+ message
52
+ }
53
+ ... on ItemCannotBeRequestedError {
54
+ message
55
+ }
56
+ ... on UserCannotRequestAccessForTargetGroupError {
57
+ message
58
+ groupId
59
+ userId
60
+ }
61
+ ... on GroupNestingNotAllowedError {
62
+ message
63
+ fromGroupId
64
+ toGroupId
65
+ }
66
+ ... on TargetUserHasNestedAccessError {
67
+ message
68
+ groupIds
69
+ }
70
+ ... on RequestReasonMissingError {
71
+ message
72
+ }
73
+ ... on RequestFieldValueMissingError {
74
+ message
75
+ fieldName
76
+ }
77
+ ... on LinkedGroupNotRequestableError {
78
+ message
79
+ sourceGroupId
80
+ groupBindingId
81
+ }
82
+ ... on RequestReasonBelowMinLengthError {
83
+ message
84
+ }
85
+
86
+ }
87
+ }
88
+ `);
89
+ async function createRequest(cmd, client, requestedResources, requestedGroups, reason, durationInMinutes) {
90
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
91
+ try {
92
+ const resp = await client.mutate({
93
+ mutation: CREATE_REQUEST_MUTATION,
94
+ variables: {
95
+ requestedResources: requestedResources,
96
+ requestedGroups: requestedGroups,
97
+ reason: reason,
98
+ durationInMinutes: durationInMinutes,
99
+ },
100
+ });
101
+ switch ((_a = resp.data) === null || _a === void 0 ? void 0 : _a.createRequest.__typename) {
102
+ case "CreateRequestResult":
103
+ return (_b = resp.data) === null || _b === void 0 ? void 0 : _b.createRequest.request;
104
+ case "RequestDurationTooLargeError":
105
+ cmd.log((_c = resp.data) === null || _c === void 0 ? void 0 : _c.createRequest.message);
106
+ break;
107
+ case "RequestRequiresUserAuthTokenForConnectionError":
108
+ cmd.log((_d = resp.data) === null || _d === void 0 ? void 0 : _d.createRequest.message);
109
+ break;
110
+ case "NoReviewersSetForOwnerError":
111
+ cmd.log((_e = resp.data) === null || _e === void 0 ? void 0 : _e.createRequest.message);
112
+ break;
113
+ case "NoReviewersSetForResourceError":
114
+ cmd.log((_f = resp.data) === null || _f === void 0 ? void 0 : _f.createRequest.message);
115
+ break;
116
+ case "NoReviewersSetForGroupError":
117
+ cmd.log((_g = resp.data) === null || _g === void 0 ? void 0 : _g.createRequest.message);
118
+ break;
119
+ case "NoManagerSetForRequestingUserError":
120
+ cmd.log((_h = resp.data) === null || _h === void 0 ? void 0 : _h.createRequest.message);
121
+ break;
122
+ case "MfaInvalidError":
123
+ cmd.log((_j = resp.data) === null || _j === void 0 ? void 0 : _j.createRequest.message);
124
+ break;
125
+ case "BulkRequestTooLargeError":
126
+ cmd.log((_k = resp.data) === null || _k === void 0 ? void 0 : _k.createRequest.message);
127
+ break;
128
+ case "ItemCannotBeRequestedError":
129
+ cmd.log((_l = resp.data) === null || _l === void 0 ? void 0 : _l.createRequest.message);
130
+ break;
131
+ case "UserCannotRequestAccessForTargetGroupError":
132
+ cmd.log((_m = resp.data) === null || _m === void 0 ? void 0 : _m.createRequest.message);
133
+ break;
134
+ case "GroupNestingNotAllowedError":
135
+ cmd.log((_o = resp.data) === null || _o === void 0 ? void 0 : _o.createRequest.message);
136
+ break;
137
+ case "TargetUserHasNestedAccessError":
138
+ cmd.log((_p = resp.data) === null || _p === void 0 ? void 0 : _p.createRequest.message);
139
+ break;
140
+ case "RequestReasonMissingError":
141
+ cmd.log((_q = resp.data) === null || _q === void 0 ? void 0 : _q.createRequest.message);
142
+ break;
143
+ case "RequestFieldValueMissingError":
144
+ cmd.log((_r = resp.data) === null || _r === void 0 ? void 0 : _r.createRequest.message);
145
+ break;
146
+ case "LinkedGroupNotRequestableError":
147
+ cmd.log((_s = resp.data) === null || _s === void 0 ? void 0 : _s.createRequest.message);
148
+ break;
149
+ case "RequestReasonBelowMinLengthError":
150
+ cmd.log((_t = resp.data) === null || _t === void 0 ? void 0 : _t.createRequest.message);
151
+ break;
152
+ }
153
+ }
154
+ catch (error) {
155
+ if (error instanceof Error || typeof error === "string") {
156
+ cmd.error(error);
157
+ }
158
+ }
159
+ }
@@ -0,0 +1,4 @@
1
+ import type { ApolloClient, NormalizedCacheObject } from "@apollo/client";
2
+ import type { Command } from "@oclif/core";
3
+ import type { PromptChoice } from "../../types";
4
+ export declare function queryRequestableApps(cmd: Command, client: ApolloClient<NormalizedCacheObject>, input: string | undefined): Promise<PromptChoice[] | undefined>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryRequestableApps = queryRequestableApps;
4
+ const graphql_1 = require("../../../../graphql");
5
+ // TODO: add pagination ability from CLI. (Load more...) option
6
+ const GET_REQUESTABLE_APPS_QUERY = (0, graphql_1.graphql)(`
7
+ query GetRequestableAppsQuery($searchQuery: String) {
8
+ appsV2(
9
+ filters: {
10
+ access: REQUESTABLE
11
+ searchQuery: $searchQuery
12
+ }
13
+ ) @connection(key: "paginated-app-dropdown") {
14
+ edges {
15
+ node {
16
+ id
17
+ displayName
18
+ ... on Connection {
19
+ connectionType
20
+ }
21
+ ... on Resource {
22
+ resourceType
23
+ }
24
+ }
25
+ }
26
+ pageInfo {
27
+ hasNextPage
28
+ hasPreviousPage
29
+ startCursor
30
+ endCursor
31
+ }
32
+ }
33
+ }
34
+ `);
35
+ async function queryRequestableApps(cmd, client, input) {
36
+ var _a, _b;
37
+ try {
38
+ const resp = await client.query({
39
+ query: GET_REQUESTABLE_APPS_QUERY,
40
+ variables: {
41
+ searchQuery: input || "",
42
+ },
43
+ fetchPolicy: "network-only", // to avoid caching
44
+ });
45
+ return (_b = (_a = resp === null || resp === void 0 ? void 0 : resp.data) === null || _a === void 0 ? void 0 : _a.appsV2) === null || _b === void 0 ? void 0 : _b.edges.map((edge) => {
46
+ let type = undefined;
47
+ switch (edge.node.__typename) {
48
+ case "Resource":
49
+ type = edge.node.resourceType;
50
+ break;
51
+ case "Connection":
52
+ type = edge.node.connectionType;
53
+ break;
54
+ default:
55
+ type = edge.node.__typename;
56
+ }
57
+ return {
58
+ message: `${edge.node.displayName} [${type}]`,
59
+ value: {
60
+ id: edge.node.id,
61
+ name: edge.node.displayName,
62
+ type: type,
63
+ toString: () => edge.node.displayName,
64
+ },
65
+ };
66
+ });
67
+ }
68
+ catch (error) {
69
+ if (error instanceof Error || typeof error === "string") {
70
+ cmd.error(error);
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,6 @@
1
+ import type { ApolloClient, ApolloQueryResult, NormalizedCacheObject } from "@apollo/client";
2
+ import type { Command } from "@oclif/core";
3
+ import type { GetCatalogItemQuery } from "../../../../graphql/graphql";
4
+ import { type PromptChoice } from "../../types";
5
+ export declare function queryRequestableAssets(cmd: Command, client: ApolloClient<NormalizedCacheObject>, appId: string, input: string | undefined): Promise<PromptChoice[] | undefined>;
6
+ export declare function queryCatalogItems(cmd: Command, client: ApolloClient<NormalizedCacheObject>, assetId: string): Promise<ApolloQueryResult<GetCatalogItemQuery>>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryRequestableAssets = queryRequestableAssets;
4
+ exports.queryCatalogItems = queryCatalogItems;
5
+ const graphql_1 = require("../../../../graphql");
6
+ const types_1 = require("../../types");
7
+ const GET_ASSETS_QUERY = (0, graphql_1.graphql)(`
8
+ query PaginatedEntityDropdown(
9
+ $id: UUID!
10
+ $searchQuery: String
11
+ ) {
12
+ app(id: $id) {
13
+ __typename
14
+ ... on App {
15
+ id
16
+ items(
17
+ input: {
18
+ access: REQUESTABLE
19
+ searchQuery: $searchQuery
20
+ includeOnlyRequestable: true
21
+ }
22
+ ) {
23
+ items {
24
+ key
25
+ resource {
26
+ id
27
+ name
28
+ }
29
+ group {
30
+ id
31
+ name
32
+ }
33
+ }
34
+ cursor
35
+ }
36
+ }
37
+ ... on AppNotFoundError {
38
+ message
39
+ }
40
+ }
41
+ }
42
+ `);
43
+ async function queryRequestableAssets(cmd, client, appId, input) {
44
+ var _a, _b, _c, _d, _e, _f;
45
+ try {
46
+ const resp = await client.query({
47
+ query: GET_ASSETS_QUERY,
48
+ variables: {
49
+ id: appId || "",
50
+ searchQuery: input || "",
51
+ },
52
+ fetchPolicy: "network-only", // to avoid caching
53
+ });
54
+ // no fall through doesn't consider process.exit();
55
+ let x;
56
+ switch (resp.data.app.__typename) {
57
+ case "App":
58
+ return (_d = (_c = (_b = (_a = resp.data) === null || _a === void 0 ? void 0 : _a.app) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.items) === null || _d === void 0 ? void 0 : _d.map((item) => {
59
+ var _a, _b, _c, _d, _e, _f, _g, _h;
60
+ const name = ((_a = item.resource) === null || _a === void 0 ? void 0 : _a.name) || ((_b = item.group) === null || _b === void 0 ? void 0 : _b.name);
61
+ const id = ((_c = item.resource) === null || _c === void 0 ? void 0 : _c.id) || ((_d = item.group) === null || _d === void 0 ? void 0 : _d.id);
62
+ const type = ((_e = item.resource) === null || _e === void 0 ? void 0 : _e.__typename) || ((_f = item.group) === null || _f === void 0 ? void 0 : _f.__typename);
63
+ return {
64
+ message: `${name} [${type}]`,
65
+ value: {
66
+ name: name || "",
67
+ id: id || "",
68
+ type: (0, types_1.entityTypeFromString)(((_g = item.resource) === null || _g === void 0 ? void 0 : _g.__typename) || ((_h = item.group) === null || _h === void 0 ? void 0 : _h.__typename)),
69
+ },
70
+ };
71
+ });
72
+ case "AppNotFoundError":
73
+ x = cmd.error((_f = (_e = resp.data) === null || _e === void 0 ? void 0 : _e.app) === null || _f === void 0 ? void 0 : _f.message);
74
+ break;
75
+ default:
76
+ cmd.error(resp.error || "Unknown error occurred.");
77
+ }
78
+ }
79
+ catch (error) {
80
+ if (error instanceof Error || typeof error === "string") {
81
+ cmd.error(error);
82
+ }
83
+ }
84
+ }
85
+ const CATALOG_ITEM = (0, graphql_1.graphql)(`
86
+ query GetCatalogItem($uuid: UUID!) {
87
+ catalogItem(id: $uuid) {
88
+ __typename
89
+ ... on Connection {
90
+ id
91
+ displayName
92
+ }
93
+ ... on Resource {
94
+ id
95
+ displayName
96
+ connection {
97
+ id
98
+ displayName
99
+ }
100
+ accessLevels{
101
+ accessLevelName
102
+ accessLevelRemoteId
103
+ }
104
+ }
105
+ ...on Group {
106
+ id
107
+ name
108
+ connection {
109
+ id
110
+ displayName
111
+ }
112
+ accessLevels{
113
+ accessLevelName
114
+ accessLevelRemoteId
115
+ }
116
+ }
117
+ ... on UserFacingError {
118
+ message
119
+ }
120
+ }
121
+ }
122
+ `);
123
+ async function queryCatalogItems(cmd, client, assetId) {
124
+ try {
125
+ return await client.query({
126
+ query: CATALOG_ITEM,
127
+ variables: {
128
+ uuid: assetId || "",
129
+ },
130
+ fetchPolicy: "network-only", // to avoid caching
131
+ });
132
+ }
133
+ catch (_a) {
134
+ cmd.error("Unknown error retreiving catalog items");
135
+ }
136
+ }
@@ -0,0 +1,5 @@
1
+ import type { ApolloClient, NormalizedCacheObject } from "@apollo/client";
2
+ import type { Command } from "@oclif/core";
3
+ import type { RequestConfigurationGroupInput, RequestConfigurationResourceInput } from "../../../../graphql/graphql";
4
+ import type { RequestDefaults } from "../../types";
5
+ export declare function queryRequestDefaults(cmd: Command, client: ApolloClient<NormalizedCacheObject>, requestedResources: RequestConfigurationResourceInput[], requestedGroups: RequestConfigurationGroupInput[]): Promise<RequestDefaults | undefined>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryRequestDefaults = queryRequestDefaults;
4
+ const graphql_1 = require("../../../../graphql");
5
+ const REQUEST_DEFAULTS_QUERY = (0, graphql_1.graphql)(`
6
+ query RequestDefaults(
7
+ $requestedResources: [RequestConfigurationResourceInput!]!
8
+ $requestedGroups: [RequestConfigurationGroupInput!]!
9
+ ) {
10
+ requestDefaults(input: {
11
+ requestedResources: $requestedResources,
12
+ requestedGroups: $requestedGroups,
13
+ }
14
+ ) {
15
+ ... on RequestDefaults {
16
+ durationOptions {
17
+ durationInMinutes
18
+ label
19
+ }
20
+ recommendedDurationInMinutes
21
+ defaultDurationInMinutes
22
+ maxDurationInMinutes
23
+ requireSupportTicket
24
+ reasonOptional
25
+ requesterIsAdmin
26
+ messages {
27
+ entityId
28
+ level
29
+ code
30
+ }
31
+ }
32
+ }
33
+ }`);
34
+ async function queryRequestDefaults(cmd, client, requestedResources, requestedGroups) {
35
+ try {
36
+ const resp = await client.query({
37
+ query: REQUEST_DEFAULTS_QUERY,
38
+ variables: {
39
+ requestedResources: requestedResources,
40
+ requestedGroups: requestedGroups,
41
+ },
42
+ fetchPolicy: "network-only", // to avoid caching
43
+ });
44
+ return resp.data.requestDefaults;
45
+ }
46
+ catch (error) {
47
+ if (error instanceof Error || typeof error === "string") {
48
+ cmd.error(error);
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,4 @@
1
+ import type { ApolloClient, NormalizedCacheObject } from "@apollo/client";
2
+ export declare const queryRequest: (client: ApolloClient<NormalizedCacheObject>, requestId: string) => Promise<import("@apollo/client").ApolloQueryResult<import("../../../../graphql/graphql").GetRequestQuery>>;
3
+ export declare const queryRequests: (client: ApolloClient<NormalizedCacheObject>, pageSize: number, showPendingOnly: boolean) => Promise<import("@apollo/client").ApolloQueryResult<import("../../../../graphql/graphql").GetRequestsQuery>>;
4
+ export declare const queryBundle: (client: ApolloClient<NormalizedCacheObject>, bundleId: string) => Promise<import("@apollo/client").ApolloQueryResult<import("../../../../graphql/graphql").GetBundleQuery>>;