forte-lifecycle
Forte Lifecycle is expressjs middleware that provides lifecycle magic to your Forte experience apps.
Features
- Automatic Organization Resolver and Cache
The first request processed will cause aforte-api
call to be made that fills the organization cache. A request.organization prop will also be available for use in other areas of your express server. - Automatic server.renderTime metric tracking
All requests are timed and logged via node-statsd
Install
$ npm i -S forte-lifecycle
Documentation
Quick Start
var express =var forteApi =var lifecycle =var app =var api =// register the middleware// be sure to register the middleware before any routes that require trunk/branch scope infoapp// now, all requests will have a request.lifecycle property// and log server.renderTime using node-statsdapp;app
API
Constructor
ForteLifecycle(apiClient, [options])
Creates an instance of the Forte Lifecycle middleware.
apiClient:
Aforte-api
client instance or an object that conforms to the following interface can also be supplied:organizations.getOne(filter): {organization}
Returns a promise that returns a single organization.filter
is an object map of props to filter by e.x.:{ hostname: '...'}
.organizations.getMany(filter): [{organization}, ...]
Returns a promise that returns all organizations.filter
is an object map of props to filter by e.x.:{ parentID: '...'}
.
options:
cacheDuration:
The duration in milliseconds or string in ms format to cache organizations lookups.
default: '15m'
stats:
An optional configuration object fornode-statsd
.
default: node-statsd defaults
see node-statsd usage
Request Properties
The lifecycle middleware adds the following properties to the request for use in subsequent middleware/handlers:
request.lifecycle.scope: {object}
hostname: {string}
The hostname of the request derived fromrequest.headers.host
.trunk: {string}
The trunk organization ID for the request.branch: {string}
The branch organization ID for the request.