Please do not run this plugin within tests in your application
This plugin will push exceptions to Rollbar.
$ npm install -S @goodwaygroup/lib-hapi-rollbar
In your index.js
for the Hapi server, register the plugin:
// Rollbar
if (process.env.ROLLBAR_TOKEN && ['production', 'staging'].indexOf(process.env.NODE_ENV) > -1) {
await server.register({
plugin: require('@goodwaygroup/lib-hapi-rollbar'), // eslint-disable-line global-require
options: {
accessToken: process.env.ROLLBAR_TOKEN,
captureEmail: true,
captureUncaught: true,
captureUnhandledRejections: true,
omittedResponseCodes: [400, 401, 404, 409],
codeVersion: require('../package.json').version // eslint-disable-line global-require
}
});
} else {
// passthru helper method to clean up code when rollbar is not configured
server.decorate('request', 'sendRollbarMessage', () => {});
}
When passing a configuration option, it will overwrite the defaults.
You can pass in any configuration option for the Rollbar library.
Custom options:
omittedResponseCodes
: AnARRAY
of HTTP codes (as integers) to not report to Rollbar.- Defaults to
[]
, but we recommend[400, 401, 404, 409]
to avoid spam exceptions.
- Defaults to
The plugin uses the standard Person Tracking features. To ensure you are passing the correct info to Rollbar, place the data you want to track in the request.auth.credentials
object. This will be copied to request.rollbar_person
when pushing the exception to Rollbar.
You can send custom messages to Rollbar via the request.sendRollbarMessage
decorator. It will default to the error
level. You use any Rollbar supported level:
debug
info
warning
error
critical
Example call:
request.sendRollbarMessage({
level: 'warning', // defaults to 'error'
message: 'Custom Message',
payload: { custom: { payload: 'data' } }
})
Rollbar allows a custom object to be passed through and sent in the payload delivered to a Rollbar occurence (see here). In lib-hapi-rollbar
, we couple this to Boom such that any data passed in as an argument to a Boom error will be delivered through to Rollbar. For example, Boom.badImplementation('message', data)
will result in the contents of data
landing as part of the Rollbar occurence report.
To run tests, just run the following:
npm test
All commits are tested on CircleCI
To run eslint
:
npm run lint
To auto-resolve:
npm run lint:fix
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use milestones and npm
version to bump versions. We also employ git-chglog to manage the CHANGELOG.md. For the versions available, see the tags on this repository.
To initiate a version change:
npm version major|minor|patch
- Derek Smith - Initial work - @clok
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE file for details
- yayuhh and their work on icecreambar