@ethicalzen/sdk
Version:
Official EthicalZen SDK for Node.js - AI safety guardrails made simple
56 lines • 1.96 kB
TypeScript
import { Request, Response, NextFunction } from 'express';
import { EthicalZenConfig, EnforcementResponse } from './client';
export interface MiddlewareConfig extends EthicalZenConfig {
contractId: string;
enforceOn?: 'request' | 'response' | 'both';
failureMode?: 'block' | 'log' | 'pass';
onViolation?: (result: EnforcementResponse, req: Request, res: Response) => void;
extractPayload?: (req: Request, res: Response) => any;
}
/**
* Express middleware for automatic EthicalZen enforcement
*
* @param config - Middleware configuration
* @returns Express middleware function
*
* @example
* ```typescript
* import { EthicalZenMiddleware } from '@ethicalzen/sdk';
*
* app.use(EthicalZenMiddleware({
* apiKey: process.env.ETHICALZEN_API_KEY,
* contractId: 'chatbot/general/us/v1.0',
* enforceOn: 'response'
* }));
*
* app.post('/chat', async (req, res) => {
* const response = await generateAIResponse(req.body);
* res.json({ message: response }); // Automatically validated!
* });
* ```
*/
export declare function EthicalZenMiddleware(config: MiddlewareConfig): (req: Request, res: Response, next: NextFunction) => Promise<Response<any, Record<string, any>> | undefined>;
/**
* Route-specific middleware for selective enforcement
*
* @param config - Middleware configuration
* @returns Express middleware function
*
* @example
* ```typescript
* import { enforceRoute } from '@ethicalzen/sdk';
*
* app.post('/chat',
* enforceRoute({
* apiKey: process.env.ETHICALZEN_API_KEY,
* contractId: 'chatbot/general/us/v1.0'
* }),
* async (req, res) => {
* const response = await generateAIResponse(req.body);
* res.json({ message: response });
* }
* );
* ```
*/
export declare function enforceRoute(config: MiddlewareConfig): (req: Request, res: Response, next: NextFunction) => Promise<Response<any, Record<string, any>> | undefined>;
//# sourceMappingURL=middleware.d.ts.map