@gati-framework/runtime
Version:
Gati runtime execution engine for running handler-based applications
62 lines • 1.97 kB
TypeScript
/**
* @module runtime/ingress
* @description Ingress component for receiving and normalizing HTTP requests
*/
import type { IncomingMessage } from 'http';
import type { IngressComponent, IngressConfig, AuthResult, NormalizedHeaders, RequestDescriptor, RequestIdMetadata, QueueFabric } from './types/ingress.js';
import type { HttpHeaders } from './types/request.js';
/**
* Ingress component implementation
* Receives external HTTP requests, authenticates, normalizes, and publishes to routing fabric
*/
export declare class Ingress implements IngressComponent {
private config;
private queueFabric;
constructor(config: IngressConfig, queueFabric: QueueFabric);
/**
* Handle an incoming HTTP request
* Main entry point for all external requests
*/
handleRequest(rawRequest: IncomingMessage): Promise<void>;
/**
* Authenticate a request based on configured auth method
*/
authenticate(request: IncomingMessage): Promise<AuthResult>;
/**
* Authenticate using JWT
*/
private authenticateJWT;
/**
* Authenticate using API key
*/
private authenticateApiKey;
/**
* Authenticate using OAuth
*/
private authenticateOAuth;
/**
* Normalize HTTP headers to consistent format
*/
normalizeHeaders(headers: HttpHeaders): NormalizedHeaders;
/**
* Assign a unique request ID with embedded metadata
*/
assignRequestId(_metadata: RequestIdMetadata): string;
/**
* Publish request descriptor to routing fabric
*/
publishToRoutingFabric(descriptor: RequestDescriptor): Promise<void>;
/**
* Read request body from IncomingMessage
*/
private readBody;
/**
* Extract metadata from request
*/
private extractMetadata;
}
/**
* Create an Ingress instance
*/
export declare function createIngress(config: IngressConfig, queueFabric: QueueFabric): Ingress;
//# sourceMappingURL=ingress.d.ts.map