/bundle-version

Static asset version middleware

Primary LanguageJavaScript

Middleware and plugin that provides response headers that show the bundle versions this service expects to work with.

Usage (above your app routers)

var buildNumber = config.get('build'); // Or whatever appropriate in your environment
var buildVersion = require('bundle-version')(buildNumber, cdnUrl);
app.use(buildVersion.middleware);

Typically you would have a build number in a runtime configuration file (added to a service docker file by Jenkins for example as part of the build).

{
 'build':102
}

The assetBase name can be anything you like, it defaults to 'assets', but if you use Bosco as part of your static asset pipeline will form part of the URL generation for the CDN:

{{header['x-cdn-url'] || cdnUrl }}/{{serviceName}}/{{buildVersion}}/

In the above example, the cdnBaseUrl is provided to the service via a 'x-cdn-url' header. If you do not use this header you can pass the entire cdnUrl through as the cdnUrl property when creating the middleware (no trailing slash).

Accessing the CDN Url

If you use a combination of Bosco + Compoxure (or either), this middleware also sets a CDN Url property for you that ensures that any references to images or other items works correctly based on the service build number.

Express

The configuration is appended to the application config, accessible on each request.

  req.app.get('cdnUrl');

Hapi

The configuration is appended to the pre object on the request (similar to a pre handler).

  request.pre.cdnUrl

TODO: Confirm the Hapi version actually works.