Skip to content

balena-io-modules/balena-device-config

Repository files navigation

balena-device-config

npm version dependencies Build Status Build status

Join our online chat at Gitter chat

Get device config.json configuration.

Role

The intention of this module is to provide low level access to how a balena.io device config.json file is generated.

THIS MODULE IS LOW LEVEL AND IS NOT MEANT TO BE USED BY END USERS DIRECTLY.

Installation

Install balena-device-config by running:

$ npm install --save balena-device-config

Documentation

deviceConfig.generate(options, params) ⇒ Object

Kind: static method of deviceConfig
Summary: Generate a basic config.json object
Returns: Object - config.json
Access: public

Param Type Description
options Object options
params Object user params

Example

config = deviceConfig.generate
	application:
		id: 18
		device_type: 'raspberry-pi'
	apiKey: 'asdf'
	vpnPort: 443
	endpoints:
		api: 'https://api.balena-cloud.com'
		vpn: 'vpn.balena-cloud.com'
		registry: 'registry.balena-cloud.com'
,
	network: 'ethernet'
	appUpdatePollInterval: 50000

console.log(config)

Example

config = deviceConfig.generate
	application:
		id: 18
		device_type: 'raspberry-pi2'
	deviceType: 'raspberrypi3'
	apiKey: 'asdf'
	vpnPort: 443
	endpoints:
		api: 'https://api.balena-cloud.com'
		vpn: 'vpn.balena-cloud.com'
		registry: 'registry.balena-cloud.com'
,
	network: 'ethernet'
	appUpdatePollInterval: 50000

console.log(config)

deviceConfig.validate(config)

Kind: static method of deviceConfig
Summary: Validate a generated config.json object
Throws:

  • Will throw if there is a validation error

Access: public

Param Type Description
config Object generated config object

Example

config = deviceConfig.generate
	application:
		id: 18
		device_type: 'raspberry-pi'
	apiKey: 'asdf'
	vpnPort: 443
	endpoints:
		api: 'https://api.balena-cloud.com'
		vpn: 'vpn.balena-cloud.com'
		registry: 'registry.balena-cloud.com'
,
	network: 'ethernet'
	appUpdatePollInterval: 50000

deviceConfig.validate(config)

Support

If you're having any problem, please raise an issue on GitHub and the balena.io team will be happy to help.

Tests

Run the test suite by doing:

$ gulp test

Contribute

Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:

$ gulp lint

License

The project is licensed under the Apache 2.0 license.