Require a valid source parameter in Express requests.
Last updated a month ago by the-ft .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @financial-times/source-param-middleware 
SYNC missed versions from official npm registry.

Source Param Middleware

Middleware to require a valid source parameter in Express requests.

NPM version Build status MIT licensed

Table Of Contents



Running the Source Param Middleware requires Node.js 6.x and npm. You can install with:

npm install @financial-times/source-param-middleware

API Documentation

This library provides Express middleware, familiarity is assumed in the rest of the API documentation. In the examples, app is your Express application. You'll also need to require the module with:

const sourceParam = require('@financial-times/source-param-middleware');

sourceParam( [options] )

This function returns a new middleware function which can be used to validate a source parameter. You can configure the created middleware with an options object if you need to override any defaults.

const requireSourceParam = sourceParam({
    cmdbApiKey: 'xxxxxx'

app.get('/your-api-endpoint', requireSourceParam, (request, response) => {
    // route code goes here...


The Source Param Middleware can be configured with a variety of options, passed in as an object to the sourceParam function. The available options are as follows:

  • cmdbApiKey: The CMDB API key used to validate the source parameter.
  • errorMessage: The error message to output if the source parameter is not present and valid. Defaults to "The source parameter is required and should be a valid system code"
  • pollInterval: How often to check for new system codes on CMDB in milliseconds. Defaults to 60000 (1 minute)
  • validationExceptions: An array of source parameter values which should always pass validation, bypassing CMDB checks. These values are still required to be between 1 and 255 characters in length. Defaults to ["test"]
  • verifyUsingCmdb: Whether to verify that the source parameter is a valid system code using CMDB. Defaults to true


This module has a full suite of unit tests, and is verified with ESLint. You can use the following commands to check your code before opening a pull request.

make verify  # verify JavaScript code with ESLint
make test    # run the unit tests and check coverage


New versions of the module are published automatically by CI when a new tag is created matching the pattern /v.*/.


If you have any questions or comments about this module, or need help using it, please either raise an issue, visit #origami-support or email Origami Support.


This software is published by the Financial Times under the MIT licence.

Current Tags

  • 1.0.8                                ...           latest (a month ago)

11 Versions

  • 1.0.8                                ...           a month ago
  • 1.0.7                                ...           2 months ago
  • 1.0.6                                ...           3 years ago
  • 1.0.5                                ...           3 years ago
  • 1.0.4                                ...           3 years ago
  • 1.0.2                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
  • 0.3.0                                ...           3 years ago
  • 0.2.0                                ...           3 years ago
  • 0.1.0                                ...           3 years ago
Today 0
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 27
Dependencies (4)
Dev Dependencies (8)
Dependents (0)

Copyright 2014 - 2016 © taobao.org |