mirror of
https://github.com/openstf/stf
synced 2025-10-03 17:59:28 +02:00
65 lines
1.7 KiB
JavaScript
65 lines
1.7 KiB
JavaScript
module.exports.command = 'websocket'
|
|
|
|
module.exports.describe = 'Start a websocket unit.'
|
|
|
|
module.exports.builder = function(yargs) {
|
|
return yargs
|
|
.env('STF_WEBSOCKET')
|
|
.strict()
|
|
.option('connect-push', {
|
|
alias: 'c'
|
|
, describe: 'App-side ZeroMQ PULL endpoint to connect to.'
|
|
, array: true
|
|
, demand: true
|
|
})
|
|
.option('connect-sub', {
|
|
alias: 'u'
|
|
, describe: 'App-side ZeroMQ PUB endpoint to connect to.'
|
|
, array: true
|
|
, demand: true
|
|
})
|
|
.option('port', {
|
|
alias: 'p'
|
|
, describe: 'The port to bind to.'
|
|
, type: 'number'
|
|
, default: process.env.PORT || 7110
|
|
})
|
|
.option('secret', {
|
|
alias: 's'
|
|
, describe: 'The secret to use for auth JSON Web Tokens. Anyone who ' +
|
|
'knows this token can freely enter the system if they want, so keep ' +
|
|
'it safe.'
|
|
, type: 'string'
|
|
, default: process.env.SECRET
|
|
, demand: true
|
|
})
|
|
.option('ssid', {
|
|
alias: 'i'
|
|
, describe: 'The name of the session ID cookie.'
|
|
, type: 'string'
|
|
, default: process.env.SSID || 'ssid'
|
|
})
|
|
.option('storage-url', {
|
|
alias: 'r'
|
|
, describe: 'URL to the storage unit.'
|
|
, type: 'string'
|
|
, demand: true
|
|
})
|
|
.epilog('Each option can be be overwritten with an environment variable ' +
|
|
'by converting the option to uppercase, replacing dashes with ' +
|
|
'underscores and prefixing it with `STF_WEBSOCKET_` (e.g. ' +
|
|
'`STF_WEBSOCKET_STORAGE_URL`).')
|
|
}
|
|
|
|
module.exports.handler = function(argv) {
|
|
return require('../../units/websocket')({
|
|
port: argv.port
|
|
, secret: argv.secret
|
|
, ssid: argv.ssid
|
|
, storageUrl: argv.storageUrl
|
|
, endpoints: {
|
|
sub: argv.connectSub
|
|
, push: argv.connectPush
|
|
}
|
|
})
|
|
}
|