The ServiceRegistryClient manages service registrations and circuit breakers.
Creates a new ServiceRegistryClient.
Parameters:
client(Client): An instance ofClient.
Retrieves all registered services.
Returns:
Promise<ServiceRegistry[]>: An array of all registered services.
Removes a service by name.
Parameters:
name(string): The name of the service to remove.
Returns:
Promise<void>
Gets a service by name.
Parameters:
name(string): The name of the service to retrieve.
Returns:
Promise<ServiceRegistry>: The requested service registry.
Opens the circuit breaker for a service.
Parameters:
name(string): The name of the service.
Returns:
Promise<CircuitBreakerTransitionResponse>: A response with the circuit breaker status.
Closes the circuit breaker for a service.
Parameters:
name(string): The name of the service.
Returns:
Promise<CircuitBreakerTransitionResponse>: A response with the circuit breaker status.
Gets the circuit breaker status for a service.
Parameters:
name(string): The name of the service.
Returns:
Promise<CircuitBreakerTransitionResponse>: A response with the circuit breaker status.
Adds or updates a service registry.
Parameters:
serviceRegistry(ServiceRegistry): The service registry to add or update.
Returns:
Promise<void>
Adds or updates a service method.
Parameters:
registryName(string): The name of the registry.method(ServiceMethod): The service method to add or update.
Returns:
Promise<void>
removeMethod(registryName: string, serviceName: string, method: string, methodType: string): Promise<void>
Removes a service method.
Parameters:
registryName(string): The name of the registry.serviceName(string): The name of the service.method(string): The name of the method.methodType(string): The type of the method.
Returns:
Promise<void>
Gets proto data.
Parameters:
registryName(string): The name of the registry.filename(string): The name of the proto file.
Returns:
Promise<Blob>: The proto file data as aBlob.
Sets proto data.
Parameters:
registryName(string): The name of the registry.filename(string): The name of the proto file.data(Blob): The proto file data.
Returns:
Promise<void>
Deletes a proto file.
Parameters:
registryName(string): The name of the registry.filename(string): The name of the proto file.
Returns:
Promise<void>
Gets all proto files for a registry.
Parameters:
registryName(string): The name of the registry.
Returns:
Promise<ProtoRegistryEntry[]>: A list of proto registry entries.
Discovers service methods.
Parameters:
name(string): The name of the service.create(boolean, optional): Whether to create the discovered methods. Defaults tofalse.
Returns:
Promise<ServiceMethod[]>: The discovered service methods.
export enum ServiceType {
HTTP = "HTTP",
MCP_REMOTE = "MCP_REMOTE",
gRPC = "gRPC",
}export type ServiceRegistry = {
circuitBreakerEnabled?: boolean;
config?: Config;
methods?: ServiceMethod[];
name?: string;
requestParams?: RequestParam[];
serviceURI?: string;
type?: "HTTP" | "gRPC" | "MCP_REMOTE";
};export type ServiceMethod = {
exampleInput?: {
[key: string]: unknown;
};
id?: number;
inputType?: string;
methodName?: string;
methodType?: string;
operationName?: string;
outputType?: string;
requestParams?: RequestParam[];
};export type CircuitBreakerTransitionResponse = {
currentState?: string;
message?: string;
previousState?: string;
service?: string;
transitionTimestamp?: number;
};export type ProtoRegistryEntry = {
data?: string;
filename?: string;
serviceName?: string;
};export type Config = {
circuitBreakerConfig?: OrkesCircuitBreakerConfig;
};export type OrkesCircuitBreakerConfig = {
automaticTransitionFromOpenToHalfOpenEnabled?: boolean;
failureRateThreshold?: number;
maxWaitDurationInHalfOpenState?: number;
minimumNumberOfCalls?: number;
permittedNumberOfCallsInHalfOpenState?: number;
slidingWindowSize?: number;
slowCallDurationThreshold?: number;
slowCallRateThreshold?: number;
waitDurationInOpenState?: number;
};export type RequestParam = {
name?: string;
required?: boolean;
schema?: Schema;
type?: string;
};export type Schema = {
defaultValue?: {
[key: string]: unknown;
};
format?: string;
type?: string;
};