okta-mcp-server
Version:
Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching
197 lines • 6.93 kB
TypeScript
/**
* Interface for Okta client operations
*/
import type { OktaUser, OktaGroup, OktaApplication, OktaPolicy, OktaPolicyRule } from './types.js';
export interface ApiResponse<T> {
data: T;
headers?: {
link?: string;
[key: string]: string | undefined;
};
}
export interface IOktaClient {
listUsers(params?: {
limit?: number;
after?: string;
filter?: string;
search?: string;
status?: string;
lastUpdated?: string;
sortBy?: string;
sortOrder?: 'asc' | 'desc';
}): Promise<ApiResponse<OktaUser[]>>;
getUser(userIdOrLogin: string): Promise<OktaUser>;
createUser(userData: {
profile: Record<string, unknown>;
credentials?: Record<string, unknown>;
groupIds?: string[];
}, queryParams?: {
activate?: boolean;
provider?: boolean;
nextLogin?: string;
}): Promise<OktaUser>;
updateUser(userId: string, userData: {
profile?: Record<string, unknown>;
credentials?: Record<string, unknown>;
}): Promise<OktaUser>;
deactivateUser(userId: string, sendEmail?: boolean): Promise<void>;
deleteUser(userId: string): Promise<void>;
getUserGroups(userId: string, params?: {
limit?: number;
after?: string;
}): Promise<ApiResponse<OktaGroup[]>>;
listGroups(params?: {
limit?: number;
after?: string;
filter?: string;
search?: string;
type?: string;
sortBy?: string;
sortOrder?: 'asc' | 'desc';
}): Promise<ApiResponse<OktaGroup[]>>;
getGroup(groupId: string): Promise<OktaGroup>;
createGroup(groupData: {
profile: {
name: string;
description?: string;
};
}): Promise<OktaGroup>;
updateGroup(groupId: string, groupData: {
profile: {
name?: string;
description?: string;
};
}): Promise<OktaGroup>;
deleteGroup(groupId: string): Promise<void>;
listGroupMembers(groupId: string, params?: {
limit?: number;
after?: string;
}): Promise<ApiResponse<OktaUser[]>>;
addGroupMember(groupId: string, userId: string): Promise<void>;
removeGroupMember(groupId: string, userId: string): Promise<void>;
getLogs(params?: {
since?: string;
until?: string;
filter?: string;
q?: string;
limit?: number;
sortOrder?: 'ASCENDING' | 'DESCENDING';
after?: string;
}): Promise<ApiResponse<unknown[]>>;
listApps(params?: {
limit?: number;
after?: string;
filter?: string;
q?: string;
expand?: string;
}): Promise<ApiResponse<OktaApplication[]>>;
getApp(appId: string, expand?: string): Promise<OktaApplication>;
createApp(appData: {
name: string;
label: string;
signOnMode: string;
status?: string;
accessibility?: Record<string, unknown>;
visibility?: Record<string, unknown>;
features?: string[];
settings?: Record<string, unknown>;
credentials?: Record<string, unknown>;
licensing?: Record<string, unknown>;
}): Promise<OktaApplication>;
updateApp(appId: string, appData: {
name?: string;
label?: string;
status?: string;
accessibility?: Record<string, unknown>;
visibility?: Record<string, unknown>;
features?: string[];
settings?: Record<string, unknown>;
credentials?: Record<string, unknown>;
licensing?: Record<string, unknown>;
}): Promise<OktaApplication>;
deleteApp(appId: string): Promise<void>;
activateApp(appId: string): Promise<void>;
deactivateApp(appId: string): Promise<void>;
assignUserToApp(appId: string, userId: string, assignmentData?: {
profile?: Record<string, unknown>;
credentials?: Record<string, unknown>;
}): Promise<unknown>;
assignGroupToApp(appId: string, groupId: string, assignmentData?: {
priority?: number;
profile?: Record<string, unknown>;
}): Promise<unknown>;
removeUserFromApp(appId: string, userId: string, sendEmail?: boolean): Promise<void>;
removeGroupFromApp(appId: string, groupId: string): Promise<void>;
listAppUsers(appId: string, params?: {
limit?: number;
after?: string;
q?: string;
filter?: string;
expand?: string;
}): Promise<ApiResponse<unknown[]>>;
listAppGroups(appId: string, params?: {
limit?: number;
after?: string;
q?: string;
expand?: string;
}): Promise<ApiResponse<unknown[]>>;
updateAppUser(appId: string, userId: string, updateData: {
profile?: Record<string, unknown>;
credentials?: Record<string, unknown>;
}): Promise<unknown>;
listPolicies(params?: {
type: string;
status?: string;
limit?: number;
after?: string;
sortBy?: string;
sortOrder?: 'asc' | 'desc';
filter?: string;
}): Promise<ApiResponse<OktaPolicy[]>>;
getPolicy(policyId: string, expand?: string): Promise<OktaPolicy>;
createPolicy(policyData: {
name: string;
type: string;
description?: string;
priority?: number;
status?: string;
conditions?: Record<string, unknown>;
settings?: Record<string, unknown>;
}): Promise<OktaPolicy>;
updatePolicy(policyId: string, policyData: {
name?: string;
description?: string;
priority?: number;
status?: string;
conditions?: Record<string, unknown>;
settings?: Record<string, unknown>;
}): Promise<OktaPolicy>;
deletePolicy(policyId: string): Promise<void>;
activatePolicy(policyId: string): Promise<void>;
deactivatePolicy(policyId: string): Promise<void>;
listPolicyRules(policyId: string, params?: {
limit?: number;
after?: string;
}): Promise<ApiResponse<OktaPolicyRule[]>>;
getPolicyRule(policyId: string, ruleId: string): Promise<OktaPolicyRule>;
createPolicyRule(policyId: string, ruleData: {
name: string;
priority?: number;
status?: string;
type?: string;
conditions?: Record<string, unknown>;
actions?: Record<string, unknown>;
}): Promise<OktaPolicyRule>;
updatePolicyRule(policyId: string, ruleId: string, ruleData: {
name?: string;
priority?: number;
status?: string;
conditions?: Record<string, unknown>;
actions?: Record<string, unknown>;
}): Promise<OktaPolicyRule>;
deletePolicyRule(policyId: string, ruleId: string): Promise<void>;
activatePolicyRule(policyId: string, ruleId: string): Promise<void>;
deactivatePolicyRule(policyId: string, ruleId: string): Promise<void>;
close(): Promise<void>;
}
//# sourceMappingURL=okta-client-interface.d.ts.map