UNPKG

okta-mcp-server

Version:

Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching

86 lines 5.23 kB
/** * Cached wrapper for OktaClient to improve performance */ import { OktaClient } from './okta-client.js'; import { IOktaClient, ApiResponse } from './okta-client-interface.js'; import { ICache } from '../infrastructure/cache/interface.js'; import type { OktaUser, OktaGroup, OktaApplication, OktaPolicy, OktaPolicyRule } from './types.js'; export interface CachedOktaClientOptions { client: OktaClient; cache: ICache; defaultTtl?: number; cacheKeyPrefix?: string; } export declare class CachedOktaClient implements IOktaClient { private client; private cache; private defaultTtl; private keyPrefix; constructor(options: CachedOktaClientOptions); /** * Generate a cache key from method name and parameters */ private generateCacheKey; /** * Get tags for cache invalidation based on resource type */ private getTags; /** * Wrap a method with caching */ private withCache; listUsers(params?: Parameters<IOktaClient['listUsers']>[0]): Promise<ApiResponse<OktaUser[]>>; getUser(userIdOrLogin: string): Promise<OktaUser>; createUser(userData: Parameters<OktaClient['createUser']>[0], queryParams?: Parameters<OktaClient['createUser']>[1]): Promise<OktaUser>; updateUser(userId: string, userData: Parameters<OktaClient['updateUser']>[1]): Promise<OktaUser>; deleteUser(userId: string): Promise<void>; deactivateUser(userId: string, sendEmail?: boolean): Promise<void>; getUserGroups(userId: string, params?: Parameters<IOktaClient['getUserGroups']>[1]): Promise<ApiResponse<OktaGroup[]>>; listGroups(params?: Parameters<IOktaClient['listGroups']>[0]): Promise<ApiResponse<OktaGroup[]>>; getGroup(groupId: string): Promise<OktaGroup>; createGroup(groupData: Parameters<IOktaClient['createGroup']>[0]): Promise<OktaGroup>; updateGroup(groupId: string, groupData: Parameters<IOktaClient['updateGroup']>[1]): Promise<OktaGroup>; deleteGroup(groupId: string): Promise<void>; listGroupMembers(groupId: string, params?: Parameters<IOktaClient['listGroupMembers']>[1]): Promise<ApiResponse<OktaUser[]>>; addGroupMember(groupId: string, userId: string): Promise<void>; removeGroupMember(groupId: string, userId: string): Promise<void>; getLogs(params?: Parameters<IOktaClient['getLogs']>[0]): Promise<ApiResponse<unknown[]>>; listApps(params?: Parameters<IOktaClient['listApps']>[0]): Promise<ApiResponse<OktaApplication[]>>; getApp(appId: string, expand?: string): Promise<OktaApplication>; createApp(appData: Parameters<IOktaClient['createApp']>[0]): Promise<OktaApplication>; updateApp(appId: string, appData: Parameters<IOktaClient['updateApp']>[1]): Promise<OktaApplication>; deleteApp(appId: string): Promise<void>; activateApp(appId: string): Promise<void>; deactivateApp(appId: string): Promise<void>; assignUserToApp(appId: string, userId: string, assignmentData?: Parameters<IOktaClient['assignUserToApp']>[2]): Promise<unknown>; assignGroupToApp(appId: string, groupId: string, assignmentData?: Parameters<IOktaClient['assignGroupToApp']>[2]): Promise<unknown>; removeUserFromApp(appId: string, userId: string, sendEmail?: boolean): Promise<void>; removeGroupFromApp(appId: string, groupId: string): Promise<void>; listAppUsers(appId: string, params?: Parameters<IOktaClient['listAppUsers']>[1]): Promise<ApiResponse<unknown[]>>; listAppGroups(appId: string, params?: Parameters<IOktaClient['listAppGroups']>[1]): Promise<ApiResponse<unknown[]>>; updateAppUser(appId: string, userId: string, updateData: Parameters<IOktaClient['updateAppUser']>[2]): Promise<unknown>; listPolicies(params?: Parameters<IOktaClient['listPolicies']>[0]): Promise<ApiResponse<OktaPolicy[]>>; getPolicy(policyId: string, expand?: string): Promise<OktaPolicy>; createPolicy(policyData: Parameters<IOktaClient['createPolicy']>[0]): Promise<OktaPolicy>; updatePolicy(policyId: string, policyData: Parameters<IOktaClient['updatePolicy']>[1]): Promise<OktaPolicy>; deletePolicy(policyId: string): Promise<void>; activatePolicy(policyId: string): Promise<void>; deactivatePolicy(policyId: string): Promise<void>; listPolicyRules(policyId: string, params?: Parameters<IOktaClient['listPolicyRules']>[1]): Promise<ApiResponse<OktaPolicyRule[]>>; getPolicyRule(policyId: string, ruleId: string): Promise<OktaPolicyRule>; createPolicyRule(policyId: string, ruleData: Parameters<IOktaClient['createPolicyRule']>[1]): Promise<OktaPolicyRule>; updatePolicyRule(policyId: string, ruleId: string, ruleData: Parameters<IOktaClient['updatePolicyRule']>[2]): 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>; /** * Clear all cached data */ clearCache(): Promise<void>; /** * Clear cache for a specific resource type */ clearCacheByType(resourceType: 'users' | 'groups' | 'apps' | 'policies'): Promise<void>; } //# sourceMappingURL=cached-okta-client.d.ts.map