Gateway CLI
The Weaklayer Gateway Reference Implementation CLI is a program that contains the Weaklayer Gateway Reference Implementation itself as well as other sub-commands to help with administration.
Sub-Commands
Help
The help sub-command lists all other sub-commands.
Here is the output of the help sub-command.
$ weaklayer-gateway help
Welcome to Weaklayer Gateway
This program contains the Weaklayer Gateway Server and associated admin utilities
More information and documentation at https://weaklayer.com
Usage:
  weaklayer-gateway [flags]
  weaklayer-gateway [command]
Available Commands:
  help        Help about any command
  key         Generate an install key and corresponding verifier
  license     Display license information for this program
  secret      Generate a random 512-bit secret
  server      Run the Weaklayer Gateway Server
Flags:
  -h, --help   help for weaklayer-gateway
Use "weaklayer-gateway [command] --help" for more information about a command.
Key
The key sub-command generates an install key / verifier pair that get put into the sensor and gateway configs respectively.
$ weaklayer-gateway  key --help
Generate an install key and corresponding verifier
Usage:
  weaklayer-gateway key [flags]
Flags:
      --group string   Valid UUID to indentify the sensor group (default "<New Random UUID>")
  -h, --help           help for key
The key sub-command has an option for --group.
This lets you create a new install key / verifier pair for an existing group.
This is useful if you want to rotate install keys.
Otherwise a new random UUID is generated for the group.
Here is an example.
$ weaklayer-gateway key --group 68886d61-572b-41a5-8edd-93a564fb5ba3
{
  "key": {
    "group": "68886d61-572b-41a5-8edd-93a564fb5ba3",
    "secret": "rc7/2LoF4VdEiev9s/pXMKmJRtpN6cuJLvdMXqtYWF2uJzdskIOU67eYpjvI2AnJs9snYvNO6N7e6JIILH5jxQ==",
    "checksum": "OHrdCijHV4Go5zOCR3d63UJzWU1NSi0R9Vjf3kdKKwE="
  },
  "verifier": {
    "group": "68886d61-572b-41a5-8edd-93a564fb5ba3",
    "salt": "1DPJow==",
    "hash": "MqeVIjhWiNIO0poSiJ/rQ85kb6CQHQxG3ZRJMe8HeGE=",
    "checksum": "53RCDG7qd5wDzPJ5EoPIaWIcKFxL/0kXCB5ip+5g6gk="
  }
}
The contents of the key object should be placed in a sensor configuration and the verifier contents should be placed in a gateway configuration.
By using this sub-command for install key / verifier generation, you guarantee that they will function correctly and are sufficiently random.
License
The license sub-command displays license information regarding the Weaklayer Gateway.
Secret
The secret sub-command generates a random 512-bit secret.
This secret value is meant to be used as a token signing / verification secret in the gateway configuration.
$ weaklayer-gateway secret --help
Generate a random 512-bit secret
Usage:
  weaklayer-gateway secret [flags]
Flags:
  -h, --help   help for secret
Here is an example.
$ weaklayer-gateway secret
{
  "secret": "ijfeBHAclCb6jnck2VPnwunq+H3Erb7/hcrQF6cBOGFgu4B8JTTBdTkW8NF2Vd8cklQNmXpYOk7g4FL2T/2TaA=="
}
Server
The server sub-command is use to actually run the Weaklayer Gateway.
$ weaklayer-gateway server --help
Run the Weaklayer Gateway Server
Usage:
  weaklayer-gateway server [flags]
Flags:
      --config string   Path to the desired config file
                        Permitted formats are YAML, JSON, TOML, HCL, envfile and Java properties config files
  -h, --help            help for server
You must provide a mandatory config file to the server sub-command. 
See the Gateway Configuration page for details on gateway configuration.
Here is an example.
$ weaklayer-gateway-macOS-amd64 server --config example_config.json
{"level":"info","time":1597755551631773,"message":"Starting Weaklayer Gateway Server"}
The printed line is an application log sent to stderr.