openam-agent-custom
Version:
Customized ForgeRock AM Policy Agent for Node.js from Zoltan Tarcsay
96 lines (79 loc) • 2.5 kB
text/typescript
import { Logger } from 'winston';
import { AmClient } from '../amclient/am-client';
import { Cache } from '../cache/cache';
export interface EvaluationErrorDetails {
status: number;
message: string;
details?: string;
pkg?: any;
}
/**
* Constructor options for PolicyAgent
*/
export interface PolicyAgentOptions {
/**
* The deployment URI of the OpenAM server, e.g. http://openam.example.com:8080/openam
*/
serverUrl: string;
/**
* The deployment IP of the OpenAM server, e.g. 127.0.0.1
*/
privateIP?: string;
/**
* Agent username (needed for certain operations, e.g. policy decision requests)
*/
username?: string;
/**
* Agent password (needed for certain operations, e.g. policy decision requests)
*/
password?: string;
/**
* Agent realm (needed for certain operations, e.g. policy decision requests)
*/
realm?: string;
/**
* The root URL of the application, e.g. http://app.example.com:8080 (required for notifications)
*/
appUrl?: string;
/**
* Callback function. If present, the function's return value will be sent as an
* error page, otherwise the default error template will be used. The function will be called with a context object as
* the argument.
*/
errorPage?: (details: EvaluationErrorDetails) => string;
/**
* A Winston.js logger instance. If undefined, a new Console logger
* is created.
*/
logger?: Logger;
/**
* Logging level: see winston's documentation; only used when logger is undefined.
*/
logLevel?: string;
/**
* Change the log output format to JSON (just shorthand for setting up a Winston logger with JSON output to console)
*/
logAsJson?: boolean;
/**
* Custom session cache object (if undefined, a SimpleCache instance will be
* created with an expiry time of 5 minutes)
*/
sessionCache?: Cache;
/**
* When set to true if an error arises then next() will be called, allowing the client application to handle the
* errors. When set to false then a text/html response is made on behalf of the client.
*/
letClientHandleErrors?: boolean;
/**
* Custom OpenAMClient object (mostly for testing purposes)
*/
openAMClient?: AmClient;
/**
* If true, the agent will not fetch the AM server info on instantiation (default: false)
*/
noInit?: boolean;
/**
* Enables session notifications; AM must be able to reach this agent via HTTP to send the notification
*/
notificationsEnabled?: boolean;
}