healthchecks-external

1.2.4 • Public • Published

HealthChecks-External

NPM

Downloads per month npm version Build Status Known Vulnerabilities

[[TOC]]


Install

Install with npm:

  npm install healthchecks-external

Basic Usage

Require the module:

HealthChecks = require 'healthchecks-external'

Start using HealthChecks...

healthCheck = new HealthChecks()

check = ->
  res = await healthCheck.checkPortIsOpen 'google.com', 443
  return res

status = if check() then 'UP' else 'DOWN'
console.log "Google is #{status}"

Supported methods

Several checks are available:

addProfile

Add a complete TLS/SSL profile, useful for requests against client authentified endpoints.

A profile object is composed with:  
- key: the private certificate path
- cert: the public certificate path
- ca: the certificate authority path  
  • Args: name (string), profile (object)
  • Return: boolean

checkPortIsOpen

Verify that a remote TCP port is open.

  • Args: host (string), port (number)
  • Return: boolean

checkPortLatency

Verify latency of a remote TCP port (in ms).

  • Args: host (string), port (number)
  • Return: boolean

checkCertificateDN

Verify DN of remote peer certificate.

  • Args: host (string), port (number) [, profile_name (string)]
  • Return: array of issuer (string)

checkCertificateIssuer

Verify complete chain of remote peer certificate issuers.

  • Args: host (string), port (number) [, profile_name (string)]
  • Return: array of issuer (string)

checkCertificateExpiration

Verify remote peer certificate expiration date.

  • Args: host (string), port (number) [, profile_name (string)]
  • Return: expiration_date (string)

checkAPICallContent

Verify API call (using JSON POST method by default).

  • Args: url (string), method (string) [, profile_name (string)]
  • Return: answer (object) {status: 'status_code', data: data}

checkWebPageContent

Verify Web page content (using GET method by default).

  • Args: url (string), method (string) [, profile_name (string)]
  • Return: answer (object) {status: 'status_code', data: data}

checkClientAuthentication

Verify remote server is enforcing client authentication or not.

  • Args: host (string), port (number)
  • Return: boolean

Developers

If you want to contribute to this project you are more than welcome !

Run tests

npm test

Please use Coffeescript for development language

Compilation

Use coffeescript to compile your tests

coffee -wc ./test

Use npm to compile your changes in HealthChecks

npm run build

Publish

The NPM publishing is automated, just merge PR from develop into master in order to publish corresponding package in NPM and GitHub repositories.

TODO

  • [ ] write better doc
  • [ ] support full certificate chain validation of issuers
  • [ ] add UDP support
  • [ ] add vulners check
  • [ ] add some crazy checks
  • [ ] unittests vulners check

Package Sidebar

Install

npm i healthchecks-external

Weekly Downloads

10

Version

1.2.4

License

Apache-2.0

Unpacked Size

40.4 kB

Total Files

5

Last publish

Collaborators

  • x62en