Socket
Book a DemoInstallSign in
Socket

feathers-alive-ready

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

feathers-alive-ready

feathersjs health check endpoints

latest
Source
npmnpm
Version
1.2.2
Version published
Maintainers
1
Created
Source

feathers-alive-ready

npm version test-lib

feathersjs health check endpoints

a plugin to add health check endpoints to a feathersjs application

Installation

// install peer dependencies
npm install --save @feathersjs/errors @feathersjs/express @feathersjs/feathers

// install module
npm install --save feathers-alive-ready

Setup

Step 1: Add readiness config

// default.json
// add any number of arbitrary keys here, mongoose is just an example
{
  "readiness": {
    "mongoose": false
  }
}

Step 2: Configure the plugin

import feathers from '@feathersjs/feathers';
import { health } from 'feathers-alive-ready';
import mongoose from './mongoose';

// Initialize the application
const app = feathers();

// Initialize the plugin before all other services that may require
// a health check
app.configure(health());
app.configure(mongoose);

What happens in step 2

By default, the plugin will add two endponts /health/alive and /health/ready to the application.

Step 3: Tell the application when your service is ready

Use the helper method below to tell the application your service is now ready

// ./mongoose.ts

import { setReady } from 'feathers-alive-ready';

export default function (app: Application) {
  mongoose
    .connect(app.get('mongodb'), {
      useCreateIndex: true,
      useNewUrlParser: true,
      useUnifiedTopology: true,
    })
    .then(() => {
      setReady(app, 'mongoose');
    })
    .catch((err) => {
      logger.error(err);
      process.exit(1);
    });

  mongoose.Promise = global.Promise;

  app.set('mongooseClient', mongoose);
}

The ready endpoint will not return a positive result until all keys in the readiness config are truthy

Configure

You can customize the plugin by passing in options.

Propertydefaultdescription
configKeyreadinesswhich property to look for the readiness config in the app config files
returnDatafalsedetermines if to return the readiness object in the ready endpoint
aliveUrl/health/alivealive endpoint
readyUrl/health/readyready endpoint
customOnlyfalsewill only honour custom checks when set to true, if false will honour both readiness config + custom checks
custom[]an array of functions that return a boolean eg. [(app) => true]
app.configure(
  health({
    configKey: 'readiness',
    returnData: true,
    aliveUrl: '/health/alive',
    readyUrl: '/health/ready',
  }),
);

Optional Configuration

If you want to do your own custom checks then do the following

app.configure(
  health({
    customOnly: true,
    custom: [(app: Application) => !!app.get('mongooseClient')],
  }),
);

License

Licensed under the MIT license.

Keywords

health

FAQs

Package last updated on 21 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts