Skip to content

artcom/bootstrap-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bootstrap Client

Queries bootstrap data from the bootstrap server and initializes an MQTT client and a logger for services.

Usage

Install this library via npm:

npm install @artcom/bootstrap-client

Bootstrap as follows:

const bootstrap = require("@artcom/bootstrap-client")

bootstrap(bootstrapUrl, serviceId).then(async ({ logger, mqttClient, queryConfig, data }) => {
  // log something
  logger.info("Hello world!")

  // publish "bar" to topic "foo"
  mqttClient.publish("foo", "bar")

  // query some configurations with (optional) options
  const myConfig = await queryConfig("config/path", { version: "master", listFiles: false, includeCommitHash = false, parseJSON = true })

  // use raw bootstrap data
  logger.info(`I am running on device: ${data.device}`)
})

The following additional options are supported:

  • timeout: is the time in milliseconds until the query times out, default: 2000
  • retryDelay: is the time in milliseconds until the query is sent again, default: 10000
  • debugBootstrapData: can be set to skip querying data from the bootstrap server for debugging, default: null

Bootstrap Data

The client expects the following properties in the bootstrap server response or debugBootstrapData:

{
  tcpBrokerUri: string,
  httpBrokerUri: string,
  configServerUri: string,
  device: string
}

Checkout the bootstrap server documentation for details.

About

A library which queries and processes bootstrap data from a bootstrap server.

Resources

License

Stars

Watchers

Forks

Packages

No packages published