okta-mcp-server
Version:
Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching
79 lines • 1.59 kB
TypeScript
/**
* Rate limiting interfaces
*/
export interface RateLimitOptions {
/**
* Maximum number of requests
*/
max: number;
/**
* Time window in milliseconds
*/
window: number;
/**
* Key generator function
*/
keyGenerator?: (context: any) => string;
/**
* Skip rate limiting for certain conditions
*/
skip?: (context: any) => boolean;
}
export interface RateLimitResult {
/**
* Whether the request is allowed
*/
allowed: boolean;
/**
* Number of remaining requests in the window
*/
remaining: number;
/**
* Time when the window resets (timestamp)
*/
reset: number;
/**
* Total limit
*/
limit: number;
}
export interface IRateLimiter {
/**
* Check if a request is allowed
*/
check(key: string): Promise<RateLimitResult>;
/**
* Consume a request
*/
consume(key: string, tokens?: number): Promise<RateLimitResult>;
/**
* Reset rate limit for a key
*/
reset(key: string): Promise<void>;
/**
* Get current status for a key
*/
status(key: string): Promise<RateLimitResult>;
}
/**
* Token bucket implementation for rate limiting
*/
export interface TokenBucket {
/**
* Current number of tokens
*/
tokens: number;
/**
* Last refill timestamp
*/
lastRefill: number;
/**
* Maximum capacity
*/
capacity: number;
/**
* Refill rate (tokens per second)
*/
refillRate: number;
}
//# sourceMappingURL=interface.d.ts.map