@credal/actions 0.2.4 → 0.2.6
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/dist/actions/actionMapper.d.ts +1 -1
- package/dist/actions/actionMapper.js +162 -94
- package/dist/actions/autogen/templates.d.ts +12 -1
- package/dist/actions/autogen/templates.js +888 -0
- package/dist/actions/autogen/types.d.ts +997 -0
- package/dist/actions/autogen/types.js +290 -0
- package/dist/actions/groups.d.ts +1 -1
- package/dist/actions/groups.js +17 -1
- package/dist/actions/invoke.js +1 -1
- package/dist/actions/parse.js +1 -1
- package/dist/actions/providers/asana/createAsanaTask.js +1 -1
- package/dist/actions/providers/asana/updateAsanaTask.js +1 -1
- package/dist/actions/providers/bing/getTopNSearchResultUrls.d.ts +1 -1
- package/dist/actions/providers/bing/getTopNSearchResultUrls.js +2 -2
- package/dist/actions/providers/confluence/fetchPageContent.d.ts +1 -1
- package/dist/actions/providers/confluence/fetchPageContent.js +3 -3
- package/dist/actions/providers/confluence/overwritePage.d.ts +1 -1
- package/dist/actions/providers/confluence/overwritePage.js +3 -3
- package/dist/actions/providers/finnhub/getBasicFinancials.d.ts +1 -1
- package/dist/actions/providers/finnhub/getBasicFinancials.js +2 -2
- package/dist/actions/providers/finnhub/symbolLookup.d.ts +1 -1
- package/dist/actions/providers/finnhub/symbolLookup.js +2 -2
- package/dist/actions/providers/firecrawl/deepResearch.d.ts +1 -1
- package/dist/actions/providers/firecrawl/deepResearch.js +1 -1
- package/dist/actions/providers/firecrawl/scrapeTweetDataWithNitter.d.ts +1 -1
- package/dist/actions/providers/firecrawl/scrapeTweetDataWithNitter.js +1 -1
- package/dist/actions/providers/firecrawl/scrapeUrl.d.ts +1 -1
- package/dist/actions/providers/firecrawl/scrapeUrl.js +1 -1
- package/dist/actions/providers/github/createBranch.d.ts +1 -1
- package/dist/actions/providers/github/createBranch.js +1 -1
- package/dist/actions/providers/github/createOrUpdateFile.d.ts +1 -1
- package/dist/actions/providers/github/createOrUpdateFile.js +1 -1
- package/dist/actions/providers/github/createPullRequest.d.ts +1 -1
- package/dist/actions/providers/github/createPullRequest.js +1 -1
- package/dist/actions/providers/github/listPullRequests.d.ts +1 -1
- package/dist/actions/providers/github/listPullRequests.js +2 -2
- package/dist/actions/providers/gong/getGongTranscripts.d.ts +1 -1
- package/dist/actions/providers/gong/getGongTranscripts.js +1 -1
- package/dist/actions/providers/googlemail/listGmailThreads.js +1 -1
- package/dist/actions/providers/googlemail/searchGmailMessages.js +1 -1
- package/dist/actions/providers/jira/assignJiraTicket.js +1 -1
- package/dist/actions/providers/jira/createJiraTicket.js +1 -1
- package/dist/actions/providers/math/add.d.ts +1 -1
- package/dist/actions/providers/microsoft/createDocument.js +1 -1
- package/dist/actions/providers/microsoft/getDocument.js +1 -1
- package/dist/actions/providers/microsoft/messageTeamsChannel.js +1 -1
- package/dist/actions/providers/microsoft/messageTeamsChat.js +1 -1
- package/dist/actions/providers/microsoft/updateDocument.js +1 -1
- package/dist/actions/providers/microsoft/updateSpreadsheet.js +1 -1
- package/dist/actions/providers/okta/addUserToGroup.d.ts +3 -0
- package/dist/actions/providers/okta/addUserToGroup.js +56 -0
- package/dist/actions/providers/okta/getOktaGroup.d.ts +3 -0
- package/dist/actions/providers/okta/getOktaGroup.js +73 -0
- package/dist/actions/providers/okta/getOktaUser.d.ts +3 -0
- package/dist/actions/providers/okta/getOktaUser.js +40 -0
- package/dist/actions/providers/okta/listMFA.d.ts +3 -0
- package/dist/actions/providers/okta/listMFA.js +52 -0
- package/dist/actions/providers/okta/listOktaGroupMembers.d.ts +3 -0
- package/dist/actions/providers/okta/listOktaGroupMembers.js +99 -0
- package/dist/actions/providers/okta/listOktaGroups.d.ts +3 -0
- package/dist/actions/providers/okta/listOktaGroups.js +92 -0
- package/dist/actions/providers/okta/listOktaUserGroups.d.ts +3 -0
- package/dist/actions/providers/okta/listOktaUserGroups.js +83 -0
- package/dist/actions/providers/okta/listOktaUsers.d.ts +3 -0
- package/dist/actions/providers/okta/listOktaUsers.js +100 -0
- package/dist/actions/providers/okta/removeUserFromGroup.d.ts +3 -0
- package/dist/actions/providers/okta/removeUserFromGroup.js +56 -0
- package/dist/actions/providers/okta/resetMFA.d.ts +3 -0
- package/dist/actions/providers/okta/resetMFA.js +62 -0
- package/dist/actions/providers/okta/resetPassword.d.ts +3 -0
- package/dist/actions/providers/okta/resetPassword.js +57 -0
- package/dist/actions/providers/slack/getChannelMessages.js +1 -1
- package/dist/actions/providers/slack/sendMessage.js +1 -1
- package/dist/actions/providers/snowflake/getRowByFieldValue.js +1 -1
- package/dist/actions/providers/snowflake/runSnowflakeQuery.js +1 -1
- package/dist/app.d.ts +2 -2
- package/dist/app.js +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/package.json +1 -1
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
};
|
10
10
|
import { axiosClient } from "../../util/axiosClient";
|
11
11
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants";
|
12
|
-
import { getEmailContent } from "../google-oauth/utils/decodeMessage";
|
12
|
+
import { getEmailContent } from "../google-oauth/utils/decodeMessage.js";
|
13
13
|
const listGmailThreads = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
14
|
if (!authParams.authToken) {
|
15
15
|
return { success: false, error: MISSING_AUTH_TOKEN, threads: [] };
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
};
|
10
10
|
import { axiosClient } from "../../util/axiosClient";
|
11
11
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants";
|
12
|
-
import { getEmailContent } from "../google-oauth/utils/decodeMessage";
|
12
|
+
import { getEmailContent } from "../google-oauth/utils/decodeMessage.js";
|
13
13
|
const searchGmailMessages = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
14
|
if (!authParams.authToken) {
|
15
15
|
return { success: false, error: MISSING_AUTH_TOKEN, messages: [] };
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import axios from "axios";
|
11
|
-
import { getUserAccountIdFromEmail } from "./utils";
|
11
|
+
import { getUserAccountIdFromEmail } from "./utils.js";
|
12
12
|
const assignJiraTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { authToken, cloudId, baseUrl } = authParams;
|
14
14
|
const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/`;
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import { axiosClient } from "../../util/axiosClient";
|
11
|
-
import { getUserAccountIdFromEmail } from "./utils";
|
11
|
+
import { getUserAccountIdFromEmail } from "./utils.js";
|
12
12
|
const createJiraTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { authToken, cloudId, baseUrl } = authParams;
|
14
14
|
const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/`;
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import { microsoftCreateDocumentDefinition } from "../../autogen/templates";
|
11
|
-
import { getGraphClient, validateAndSanitizeFileName } from "./utils";
|
11
|
+
import { getGraphClient, validateAndSanitizeFileName } from "./utils.js";
|
12
12
|
const createDocument = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { folderId, name, content, siteId } = params;
|
14
14
|
let client = undefined;
|
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
8
|
});
|
9
9
|
};
|
10
|
-
import { getGraphClient } from "./utils";
|
10
|
+
import { getGraphClient } from "./utils.js";
|
11
11
|
const getDocument = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
12
12
|
const { siteId, documentId } = params;
|
13
13
|
let client;
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import { microsoftMessageTeamsChannelDefinition } from "../../autogen/templates";
|
11
|
-
import { getGraphClient } from "./utils";
|
11
|
+
import { getGraphClient } from "./utils.js";
|
12
12
|
const sendMessageToTeamsChannel = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { channelId, teamId, message } = params;
|
14
14
|
let client = undefined;
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import { microsoftMessageTeamsChatDefinition } from "../../autogen/templates";
|
11
|
-
import { getGraphClient } from "./utils";
|
11
|
+
import { getGraphClient } from "./utils.js";
|
12
12
|
const sendMessageToTeamsChat = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { chatId, message } = params;
|
14
14
|
let client = undefined;
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import { microsoftUpdateDocumentDefinition } from "../../autogen/templates";
|
11
|
-
import { getGraphClient } from "./utils";
|
11
|
+
import { getGraphClient } from "./utils.js";
|
12
12
|
const updateDocument = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { documentId, content, siteId } = params;
|
14
14
|
let client = undefined;
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
});
|
9
9
|
};
|
10
10
|
import { microsoftUpdateSpreadsheetDefinition } from "../../autogen/templates";
|
11
|
-
import { getGraphClient } from "./utils";
|
11
|
+
import { getGraphClient } from "./utils.js";
|
12
12
|
const updateSpreadsheet = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
13
13
|
const { spreadsheetId, range, values, siteId } = params; // Added siteId to destructured params
|
14
14
|
let client = undefined;
|
@@ -0,0 +1,56 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { AxiosError } from "axios";
|
11
|
+
import { axiosClient } from "../../util/axiosClient";
|
12
|
+
const addUserToGroup = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
13
|
+
var _b, _c;
|
14
|
+
const { authToken, baseUrl } = authParams;
|
15
|
+
if (!authToken || !baseUrl) {
|
16
|
+
return {
|
17
|
+
success: false,
|
18
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
19
|
+
};
|
20
|
+
}
|
21
|
+
try {
|
22
|
+
const requestConfig = {
|
23
|
+
headers: {
|
24
|
+
Authorization: `Bearer ${authToken}`,
|
25
|
+
Accept: "application/json",
|
26
|
+
"Content-Type": "application/json",
|
27
|
+
},
|
28
|
+
};
|
29
|
+
const endpointUrl = new URL(`/api/v1/groups/${params.groupId}/users/${params.userId}`, baseUrl).toString();
|
30
|
+
const response = yield axiosClient.put(endpointUrl, {}, requestConfig);
|
31
|
+
if (response.status === 204) {
|
32
|
+
return { success: true };
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
const errorDetail = ((_b = response.data) === null || _b === void 0 ? void 0 : _b.errorSummary) || ((_c = response.data) === null || _c === void 0 ? void 0 : _c.message) || `Okta API responded with status ${response.status}`;
|
36
|
+
return { success: false, error: `Failed to add user to group: ${errorDetail}` };
|
37
|
+
}
|
38
|
+
}
|
39
|
+
catch (error) {
|
40
|
+
console.error("Error adding user to group:", error);
|
41
|
+
let errorMessage = "Unknown error while adding user to group";
|
42
|
+
if (error instanceof AxiosError && error.response) {
|
43
|
+
const oktaError = error.response.data;
|
44
|
+
errorMessage =
|
45
|
+
(oktaError === null || oktaError === void 0 ? void 0 : oktaError.errorSummary) || (oktaError === null || oktaError === void 0 ? void 0 : oktaError.message) || `Okta API request failed with status ${error.response.status}`;
|
46
|
+
}
|
47
|
+
else if (error instanceof Error) {
|
48
|
+
errorMessage = error.message;
|
49
|
+
}
|
50
|
+
return {
|
51
|
+
success: false,
|
52
|
+
error: errorMessage,
|
53
|
+
};
|
54
|
+
}
|
55
|
+
});
|
56
|
+
export default addUserToGroup;
|
@@ -0,0 +1,73 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { AxiosError } from "axios";
|
11
|
+
import { axiosClient } from "../../util/axiosClient";
|
12
|
+
const getOktaGroup = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
13
|
+
var _b, _c, _d, _e, _f;
|
14
|
+
const { authToken, baseUrl } = authParams;
|
15
|
+
if (!authToken || !baseUrl) {
|
16
|
+
return {
|
17
|
+
success: false,
|
18
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
19
|
+
};
|
20
|
+
}
|
21
|
+
try {
|
22
|
+
const requestConfig = {
|
23
|
+
headers: {
|
24
|
+
Authorization: `Bearer ${authToken}`,
|
25
|
+
Accept: "application/json",
|
26
|
+
"Content-Type": "application/json",
|
27
|
+
},
|
28
|
+
};
|
29
|
+
const endpointUrl = new URL(`/api/v1/groups/${params.groupId}`, baseUrl).toString();
|
30
|
+
const response = yield axiosClient.get(endpointUrl, requestConfig);
|
31
|
+
if (response.status === 200 && response.data) {
|
32
|
+
const group = {
|
33
|
+
id: response.data.id,
|
34
|
+
created: response.data.created,
|
35
|
+
lastUpdated: response.data.lastUpdated,
|
36
|
+
lastMembershipUpdated: response.data.lastMembershipUpdated,
|
37
|
+
objectClass: response.data.objectClass,
|
38
|
+
type: response.data.type,
|
39
|
+
profile: {
|
40
|
+
name: response.data.profile.name,
|
41
|
+
description: response.data.profile.description,
|
42
|
+
},
|
43
|
+
_links: {
|
44
|
+
logo: ((_b = response.data._links) === null || _b === void 0 ? void 0 : _b.logo) || [],
|
45
|
+
users: ((_c = response.data._links) === null || _c === void 0 ? void 0 : _c.users) || {},
|
46
|
+
apps: ((_d = response.data._links) === null || _d === void 0 ? void 0 : _d.apps) || {},
|
47
|
+
},
|
48
|
+
};
|
49
|
+
return { success: true, group };
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
const errorDetail = ((_e = response.data) === null || _e === void 0 ? void 0 : _e.errorSummary) || ((_f = response.data) === null || _f === void 0 ? void 0 : _f.message) || `Okta API responded with status ${response.status}`;
|
53
|
+
return { success: false, error: `Failed to retrieve group details: ${errorDetail}` };
|
54
|
+
}
|
55
|
+
}
|
56
|
+
catch (error) {
|
57
|
+
console.error("Error retrieving group details:", error);
|
58
|
+
let errorMessage = "Unknown error while retrieving group details";
|
59
|
+
if (error instanceof AxiosError && error.response) {
|
60
|
+
const oktaError = error.response.data;
|
61
|
+
errorMessage =
|
62
|
+
(oktaError === null || oktaError === void 0 ? void 0 : oktaError.errorSummary) || (oktaError === null || oktaError === void 0 ? void 0 : oktaError.message) || `Okta API request failed with status ${error.response.status}`;
|
63
|
+
}
|
64
|
+
else if (error instanceof Error) {
|
65
|
+
errorMessage = error.message;
|
66
|
+
}
|
67
|
+
return {
|
68
|
+
success: false,
|
69
|
+
error: errorMessage,
|
70
|
+
};
|
71
|
+
}
|
72
|
+
});
|
73
|
+
export default getOktaGroup;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { axiosClient } from "../../util/axiosClient";
|
11
|
+
const getOktaUser = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
12
|
+
const { authToken, baseUrl } = authParams;
|
13
|
+
if (!authToken || !baseUrl) {
|
14
|
+
return {
|
15
|
+
success: false,
|
16
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
17
|
+
};
|
18
|
+
}
|
19
|
+
try {
|
20
|
+
const requestConfig = {
|
21
|
+
headers: {
|
22
|
+
Authorization: `Bearer ${authToken}`,
|
23
|
+
Accept: "application/json",
|
24
|
+
"Content-Type": "application/json",
|
25
|
+
},
|
26
|
+
};
|
27
|
+
const endpointUrl = new URL(`/api/v1/users/${params.userId}`, baseUrl).toString();
|
28
|
+
const response = yield axiosClient.get(endpointUrl, requestConfig);
|
29
|
+
if (response.status === 200 && response.data) {
|
30
|
+
return { success: true, user: response.data };
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
return { success: false, error: "Failed to retrieve user details" };
|
34
|
+
}
|
35
|
+
}
|
36
|
+
catch (error) {
|
37
|
+
return { success: false, error: error instanceof Error ? error.message : "Unknown error occurred" };
|
38
|
+
}
|
39
|
+
});
|
40
|
+
export default getOktaUser;
|
@@ -0,0 +1,52 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { AxiosError } from "axios";
|
11
|
+
import { axiosClient } from "../../util/axiosClient";
|
12
|
+
const listMFA = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
13
|
+
var _b, _c;
|
14
|
+
const { authToken, baseUrl } = authParams;
|
15
|
+
if (!authToken || !baseUrl) {
|
16
|
+
return {
|
17
|
+
success: false,
|
18
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
19
|
+
};
|
20
|
+
}
|
21
|
+
try {
|
22
|
+
const endpointUrl = new URL(`/api/v1/users/${params.userId}/factors`, baseUrl).toString();
|
23
|
+
const requestConfig = {
|
24
|
+
headers: {
|
25
|
+
Authorization: `Bearer ${authToken}`,
|
26
|
+
Accept: "application/json",
|
27
|
+
},
|
28
|
+
};
|
29
|
+
const response = yield axiosClient.get(endpointUrl, requestConfig);
|
30
|
+
if (response.status === 200) {
|
31
|
+
return { success: true, factors: response.data };
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
const errorDetail = ((_b = response.data) === null || _b === void 0 ? void 0 : _b.errorSummary) || ((_c = response.data) === null || _c === void 0 ? void 0 : _c.message) || `Okta API responded with status ${response.status}`;
|
35
|
+
return { success: false, error: `Failed to list MFA factors: ${errorDetail}` };
|
36
|
+
}
|
37
|
+
}
|
38
|
+
catch (error) {
|
39
|
+
console.error("Error listing MFA factors:", error);
|
40
|
+
let errorMessage = "Unknown error while listing MFA factors";
|
41
|
+
if (error instanceof AxiosError && error.response) {
|
42
|
+
const oktaError = error.response.data;
|
43
|
+
errorMessage =
|
44
|
+
(oktaError === null || oktaError === void 0 ? void 0 : oktaError.errorSummary) || (oktaError === null || oktaError === void 0 ? void 0 : oktaError.message) || `Okta API request failed with status ${error.response.status}`;
|
45
|
+
}
|
46
|
+
else if (error instanceof Error) {
|
47
|
+
errorMessage = error.message;
|
48
|
+
}
|
49
|
+
return { success: false, error: errorMessage };
|
50
|
+
}
|
51
|
+
});
|
52
|
+
export default listMFA;
|
@@ -0,0 +1,99 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { AxiosError } from "axios";
|
11
|
+
import { axiosClient } from "../../util/axiosClient";
|
12
|
+
// page limit recommended by Okta documentation
|
13
|
+
// https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Group/#tag/Group/operation/listGroupUsers
|
14
|
+
const DEFAULT_LIMIT = 200;
|
15
|
+
const listOktaGroupMembers = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
16
|
+
var _b, _c, _d, _e;
|
17
|
+
const { authToken, baseUrl } = authParams;
|
18
|
+
if (!authToken || !baseUrl) {
|
19
|
+
return {
|
20
|
+
success: false,
|
21
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
22
|
+
};
|
23
|
+
}
|
24
|
+
try {
|
25
|
+
const requestConfig = {
|
26
|
+
headers: {
|
27
|
+
Authorization: `Bearer ${authToken}`,
|
28
|
+
Accept: "application/json",
|
29
|
+
"Content-Type": "application/json",
|
30
|
+
},
|
31
|
+
};
|
32
|
+
const endpointUrl = new URL(`/api/v1/groups/${params.groupId}/users`, baseUrl);
|
33
|
+
endpointUrl.searchParams.set("limit", Math.min(DEFAULT_LIMIT, params.maxResults || DEFAULT_LIMIT).toString());
|
34
|
+
let nextUrl = endpointUrl.toString();
|
35
|
+
let members = [];
|
36
|
+
let totalFetched = 0;
|
37
|
+
while (nextUrl) {
|
38
|
+
const remainingResults = params.maxResults ? params.maxResults - totalFetched : DEFAULT_LIMIT;
|
39
|
+
const adjustedUrl = new URL(nextUrl);
|
40
|
+
if (params.maxResults && remainingResults < DEFAULT_LIMIT) {
|
41
|
+
adjustedUrl.searchParams.set("limit", Math.min(DEFAULT_LIMIT, remainingResults).toString());
|
42
|
+
}
|
43
|
+
console.debug("Fetching group members from URL:", adjustedUrl.toString());
|
44
|
+
const response = yield axiosClient.get(adjustedUrl.toString(), requestConfig);
|
45
|
+
if (response.status === 200 && Array.isArray(response.data)) {
|
46
|
+
members = members.concat(response.data.map(user => ({
|
47
|
+
id: user.id,
|
48
|
+
status: user.status,
|
49
|
+
created: user.created,
|
50
|
+
activated: user.activated,
|
51
|
+
statusChanged: user.statusChanged,
|
52
|
+
lastLogin: user.lastLogin,
|
53
|
+
lastUpdated: user.lastUpdated,
|
54
|
+
passwordChanged: user.passwordChanged,
|
55
|
+
type: user.type,
|
56
|
+
profile: {
|
57
|
+
firstName: user.profile.firstName,
|
58
|
+
lastName: user.profile.lastName,
|
59
|
+
mobilePhone: user.profile.mobilePhone,
|
60
|
+
secondEmail: user.profile.secondEmail,
|
61
|
+
login: user.profile.login,
|
62
|
+
email: user.profile.email,
|
63
|
+
},
|
64
|
+
})));
|
65
|
+
totalFetched += response.data.length;
|
66
|
+
if (params.maxResults && totalFetched >= params.maxResults) {
|
67
|
+
members = members.slice(0, params.maxResults);
|
68
|
+
break;
|
69
|
+
}
|
70
|
+
nextUrl = ((_c = (_b = response.headers.link) === null || _b === void 0 ? void 0 : _b.match(/<([^>]+)>;\s*rel="next"/)) === null || _c === void 0 ? void 0 : _c[1]) || null;
|
71
|
+
if (nextUrl) {
|
72
|
+
console.debug("Next page URL:", nextUrl);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
const errorDetail = ((_d = response.data) === null || _d === void 0 ? void 0 : _d.errorSummary) || ((_e = response.data) === null || _e === void 0 ? void 0 : _e.message) || `Okta API responded with status ${response.status}`;
|
77
|
+
return { success: false, error: `Failed to list group members: ${errorDetail}` };
|
78
|
+
}
|
79
|
+
}
|
80
|
+
return { success: true, members };
|
81
|
+
}
|
82
|
+
catch (error) {
|
83
|
+
console.error("Error listing group members:", error);
|
84
|
+
let errorMessage = "Unknown error while listing group members";
|
85
|
+
if (error instanceof AxiosError && error.response) {
|
86
|
+
const oktaError = error.response.data;
|
87
|
+
errorMessage =
|
88
|
+
(oktaError === null || oktaError === void 0 ? void 0 : oktaError.errorSummary) || (oktaError === null || oktaError === void 0 ? void 0 : oktaError.message) || `Okta API request failed with status ${error.response.status}`;
|
89
|
+
}
|
90
|
+
else if (error instanceof Error) {
|
91
|
+
errorMessage = error.message;
|
92
|
+
}
|
93
|
+
return {
|
94
|
+
success: false,
|
95
|
+
error: errorMessage,
|
96
|
+
};
|
97
|
+
}
|
98
|
+
});
|
99
|
+
export default listOktaGroupMembers;
|
@@ -0,0 +1,92 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { AxiosError } from "axios";
|
11
|
+
import { axiosClient } from "../../util/axiosClient";
|
12
|
+
// page limit 200 recomended by Okta documentation
|
13
|
+
// https://developer.okta.com/docs/api/openapi/okta-management/management/tag/Group/#tag/Group/operation/listGroups
|
14
|
+
const DEFAULT_LIMIT = 200;
|
15
|
+
const listOktaGroups = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
16
|
+
var _b, _c, _d, _e;
|
17
|
+
const { authToken, baseUrl } = authParams;
|
18
|
+
if (!authToken || !baseUrl) {
|
19
|
+
return {
|
20
|
+
success: false,
|
21
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
22
|
+
};
|
23
|
+
}
|
24
|
+
try {
|
25
|
+
const requestConfig = {
|
26
|
+
headers: {
|
27
|
+
Authorization: `Bearer ${authToken}`,
|
28
|
+
Accept: "application/json",
|
29
|
+
"Content-Type": "application/json",
|
30
|
+
},
|
31
|
+
};
|
32
|
+
const endpointUrl = new URL("/api/v1/groups", baseUrl);
|
33
|
+
endpointUrl.searchParams.set("limit", Math.min(DEFAULT_LIMIT, params.maxResults || DEFAULT_LIMIT).toString());
|
34
|
+
if (params.searchQuery) {
|
35
|
+
endpointUrl.searchParams.set("search", params.searchQuery);
|
36
|
+
}
|
37
|
+
if (!params.maxResults) {
|
38
|
+
endpointUrl.searchParams.set("limit", DEFAULT_LIMIT.toString());
|
39
|
+
}
|
40
|
+
let nextUrl = endpointUrl.toString();
|
41
|
+
let groups = [];
|
42
|
+
let totalFetched = 0;
|
43
|
+
while (nextUrl) {
|
44
|
+
const remainingResults = params.maxResults ? params.maxResults - totalFetched : DEFAULT_LIMIT;
|
45
|
+
const adjustedUrl = new URL(nextUrl);
|
46
|
+
if (params.maxResults && remainingResults < DEFAULT_LIMIT) {
|
47
|
+
adjustedUrl.searchParams.set("limit", Math.min(DEFAULT_LIMIT, remainingResults).toString());
|
48
|
+
}
|
49
|
+
const response = yield axiosClient.get(adjustedUrl.toString(), requestConfig);
|
50
|
+
if (response.status === 200 && Array.isArray(response.data)) {
|
51
|
+
groups = groups.concat(response.data.map(group => ({
|
52
|
+
id: group.id,
|
53
|
+
profile: {
|
54
|
+
name: group.profile.name,
|
55
|
+
description: group.profile.description,
|
56
|
+
},
|
57
|
+
})));
|
58
|
+
totalFetched += response.data.length;
|
59
|
+
if (params.maxResults && totalFetched >= params.maxResults) {
|
60
|
+
groups = groups.slice(0, params.maxResults);
|
61
|
+
break;
|
62
|
+
}
|
63
|
+
nextUrl = ((_c = (_b = response.headers.link) === null || _b === void 0 ? void 0 : _b.match(/<([^>]+)>;\s*rel="next"/)) === null || _c === void 0 ? void 0 : _c[1]) || null;
|
64
|
+
if (nextUrl) {
|
65
|
+
console.debug("Next page URL:", nextUrl);
|
66
|
+
}
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
const errorDetail = ((_d = response.data) === null || _d === void 0 ? void 0 : _d.errorSummary) || ((_e = response.data) === null || _e === void 0 ? void 0 : _e.message) || `Okta API responded with status ${response.status}`;
|
70
|
+
return { success: false, error: `Failed to list groups: ${errorDetail}` };
|
71
|
+
}
|
72
|
+
}
|
73
|
+
return { success: true, groups };
|
74
|
+
}
|
75
|
+
catch (error) {
|
76
|
+
console.error("Error listing groups:", error);
|
77
|
+
let errorMessage = "Unknown error while listing groups";
|
78
|
+
if (error instanceof AxiosError && error.response) {
|
79
|
+
const oktaError = error.response.data;
|
80
|
+
errorMessage =
|
81
|
+
(oktaError === null || oktaError === void 0 ? void 0 : oktaError.errorSummary) || (oktaError === null || oktaError === void 0 ? void 0 : oktaError.message) || `Okta API request failed with status ${error.response.status}`;
|
82
|
+
}
|
83
|
+
else if (error instanceof Error) {
|
84
|
+
errorMessage = error.message;
|
85
|
+
}
|
86
|
+
return {
|
87
|
+
success: false,
|
88
|
+
error: errorMessage,
|
89
|
+
};
|
90
|
+
}
|
91
|
+
});
|
92
|
+
export default listOktaGroups;
|
@@ -0,0 +1,83 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import { AxiosError } from "axios";
|
11
|
+
import { axiosClient } from "../../util/axiosClient";
|
12
|
+
const DEFAULT_LIMIT = 200;
|
13
|
+
const listOktaUserGroups = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, params, }) {
|
14
|
+
var _b, _c, _d, _e;
|
15
|
+
const { authToken, baseUrl } = authParams;
|
16
|
+
if (!authToken || !baseUrl) {
|
17
|
+
return {
|
18
|
+
success: false,
|
19
|
+
error: "Missing Okta OAuth token (authToken) or base URL (baseUrl) in authParams.",
|
20
|
+
};
|
21
|
+
}
|
22
|
+
try {
|
23
|
+
const requestConfig = {
|
24
|
+
headers: {
|
25
|
+
Authorization: `Bearer ${authToken}`,
|
26
|
+
Accept: "application/json",
|
27
|
+
"Content-Type": "application/json",
|
28
|
+
},
|
29
|
+
};
|
30
|
+
const endpointUrl = new URL(`/api/v1/users/${params.userId}/groups`, baseUrl);
|
31
|
+
if (params.maxResults) {
|
32
|
+
endpointUrl.searchParams.set("limit", Math.min(DEFAULT_LIMIT, params.maxResults).toString());
|
33
|
+
}
|
34
|
+
else {
|
35
|
+
endpointUrl.searchParams.set("limit", DEFAULT_LIMIT.toString());
|
36
|
+
}
|
37
|
+
let nextUrl = endpointUrl.toString();
|
38
|
+
let groups = [];
|
39
|
+
let totalFetched = 0;
|
40
|
+
while (nextUrl) {
|
41
|
+
const remainingResults = params.maxResults ? params.maxResults - totalFetched : DEFAULT_LIMIT;
|
42
|
+
const adjustedUrl = new URL(nextUrl);
|
43
|
+
if (params.maxResults && remainingResults < DEFAULT_LIMIT) {
|
44
|
+
adjustedUrl.searchParams.set("limit", Math.min(DEFAULT_LIMIT, remainingResults).toString());
|
45
|
+
}
|
46
|
+
const response = yield axiosClient.get(adjustedUrl.toString(), requestConfig);
|
47
|
+
if (response.status === 200 && Array.isArray(response.data)) {
|
48
|
+
groups = groups.concat(response.data);
|
49
|
+
totalFetched += response.data.length;
|
50
|
+
if (params.maxResults && totalFetched >= params.maxResults) {
|
51
|
+
groups = groups.slice(0, params.maxResults);
|
52
|
+
break;
|
53
|
+
}
|
54
|
+
nextUrl = ((_c = (_b = response.headers.link) === null || _b === void 0 ? void 0 : _b.match(/<([^>]+)>;\s*rel="next"/)) === null || _c === void 0 ? void 0 : _c[1]) || null;
|
55
|
+
if (nextUrl) {
|
56
|
+
console.debug("Next page URL:", nextUrl);
|
57
|
+
}
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
const errorDetail = ((_d = response.data) === null || _d === void 0 ? void 0 : _d.errorSummary) || ((_e = response.data) === null || _e === void 0 ? void 0 : _e.message) || `Okta API responded with status ${response.status}`;
|
61
|
+
return { success: false, error: `Failed to list user groups: ${errorDetail}` };
|
62
|
+
}
|
63
|
+
}
|
64
|
+
return { success: true, groups };
|
65
|
+
}
|
66
|
+
catch (error) {
|
67
|
+
console.error("Error listing user groups:", error);
|
68
|
+
let errorMessage = "Unknown error while listing user groups";
|
69
|
+
if (error instanceof AxiosError && error.response) {
|
70
|
+
const oktaError = error.response.data;
|
71
|
+
errorMessage =
|
72
|
+
(oktaError === null || oktaError === void 0 ? void 0 : oktaError.errorSummary) || (oktaError === null || oktaError === void 0 ? void 0 : oktaError.message) || `Okta API request failed with status ${error.response.status}`;
|
73
|
+
}
|
74
|
+
else if (error instanceof Error) {
|
75
|
+
errorMessage = error.message;
|
76
|
+
}
|
77
|
+
return {
|
78
|
+
success: false,
|
79
|
+
error: errorMessage,
|
80
|
+
};
|
81
|
+
}
|
82
|
+
});
|
83
|
+
export default listOktaUserGroups;
|