healthchecks-external
v1.2.4
Published
Minimal server health checks framework
Downloads
7
Maintainers
Readme
HealthChecks-External
[[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