UNPKG

1.32 kBJavaScriptView Raw
1'use strict'
2
3let cli = require('heroku-cli-util')
4let co = require('co')
5
6function * run (context, heroku) {
7 let lib = require('../../lib/trusted-ips')(heroku)
8 let space = context.flags.space
9 let ruleset = yield lib.getRules(space)
10 ruleset.rules = ruleset.rules || []
11 if (ruleset.rules.find((rs) => rs.source === context.args.source)) throw new Error(`A rule already exists for ${context.args.source}.`)
12 ruleset.rules.push({action: 'allow', source: context.args.source})
13 ruleset = yield lib.putRules(space, ruleset)
14 cli.log(`Added ${cli.color.cyan.bold(context.args.source)} to trusted IP ranges on ${cli.color.cyan.bold(space)}`)
15 cli.warn('It may take a few moments for the changes to take effect.')
16}
17
18module.exports = {
19 topic: 'trusted-ips',
20 command: 'add',
21 description: 'Add one range to the list of trusted IP ranges',
22 help: `
23Uses CIDR notation.
24
25Example:
26 $ heroku trusted-ips:add --space my-space 192.168.2.0/24
27 Added 192.168.0.1/24 to trusted IP ranges on my-space
28 `,
29 needsApp: false,
30 needsAuth: true,
31 args: [
32 {name: 'source'}
33 ],
34 flags: [
35 {name: 'space', char: 's', hasValue: true, description: 'space to add rule to'},
36 {name: 'confirm', hasValue: true, description: 'set to space name to bypass confirm prompt'}
37 ],
38 run: cli.command(co.wrap(run))
39}