brightbox-cli 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5c03039c9263c4872064938223b825be9550d1c08e2a77d438b68f1fd7b42cc
4
- data.tar.gz: 85f994952c28133cf8ad08c70d16228b165373f94a90916a0a83fe365e14672d
3
+ metadata.gz: 881d758fc2932375edc56797f613f757a7f83729087cf2335a44736f4554fe1d
4
+ data.tar.gz: cfb933331637277089d47a0feccf9456e18b45f0a248aa27f233c52f24ba2f61
5
5
  SHA512:
6
- metadata.gz: 013e062376468560718cfbf25c2e2221db7e0808bcadc6413b6cbf5532b966917de0e2c40d2ffd1a859f8fd78267c28b86166e5638d2869cfe22e9c315bd8a4b
7
- data.tar.gz: f81c26c3a3705e6caa3399e1598e4c8ad399f175a0be4d26c2383ccfab8a8cfc75c2ebde0135aa9cee2f4cd220df2119a4d3a880b4c585b3dfc113384cfe57e6
6
+ metadata.gz: a7b28703cc70a953b900f0caabaf036ff78c1e914810fcba9523b7f8b44ae5c7d148ee09f08d073d71449b587024f7d64ead1f88a659c3a2d2a52c502134d23a
7
+ data.tar.gz: ea62fcbe6b909e8b7cb8744da7acacd50c75bcb0c109fada221ef135ff1c1ac0d88dc01d8975ef3a8068c75e86956ce244ab88abc641e2dc3d79ed474502e59d
@@ -20,7 +20,7 @@ jobs:
20
20
 
21
21
  strategy:
22
22
  matrix:
23
- ruby: ["2.4", "2.5", "2.6", "2.7"]
23
+ ruby: ["2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "3.0"]
24
24
 
25
25
  steps:
26
26
  - uses: actions/checkout@v2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ### v3.3.0 / 2021-09-17
2
+
3
+ [Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v3.2.0...v3.3.0)
4
+
5
+ Changes:
6
+
7
+ * Update `fog-brightbox` to v1.4.0` (allowing Ruby 3.0 support)
8
+ * Added support for getting 2FA from helper
9
+ * Added missing `sql snapshot` fields
10
+ * Infrastructure changes to test on more versions of Ruby
11
+ * Added GitHub actions support for CI testing.
12
+ * Removed Travis CI support.
13
+
14
+ Bug fixes:
15
+
16
+ * Updates `crack` gem to switch from `safe_yaml` to `rexml`
17
+ * Bump addressable from 2.3.8 to 2.8.0. (fixing ReDoS vulnerability)
18
+ * Bump rexml from 3.2.4 to 3.2.5 (fixing round-trip vulnerability bugs)
19
+
1
20
  ### v3.2.0 / 2020-11-26
2
21
 
3
22
  [Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v3.1.0...v3.2.0)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- brightbox-cli (3.2.0)
4
+ brightbox-cli (3.3.0)
5
5
  dry-inflector (< 0.2)
6
6
  fog-brightbox (>= 1.3.0)
7
7
  fog-core (< 2.0)
@@ -15,15 +15,16 @@ PATH
15
15
  GEM
16
16
  remote: https://rubygems.org/
17
17
  specs:
18
- addressable (2.3.8)
18
+ addressable (2.8.0)
19
+ public_suffix (>= 2.0.2, < 5.0)
19
20
  builder (3.2.4)
20
21
  coderay (1.0.9)
21
- crack (0.4.2)
22
- safe_yaml (~> 1.0.0)
22
+ crack (0.4.5)
23
+ rexml
23
24
  diff-lcs (1.4.3)
24
25
  dry-inflector (0.1.2)
25
- excon (0.78.0)
26
- fog-brightbox (1.3.0)
26
+ excon (0.79.0)
27
+ fog-brightbox (1.4.0)
27
28
  dry-inflector
28
29
  fog-core (>= 1.45, < 3.0)
29
30
  fog-json
@@ -52,7 +53,9 @@ GEM
52
53
  pry-remote (0.1.8)
53
54
  pry (~> 0.9)
54
55
  slop (~> 3.0)
56
+ public_suffix (2.0.5)
55
57
  rake (12.3.3)
58
+ rexml (3.2.5)
56
59
  rspec (3.9.0)
57
60
  rspec-core (~> 3.9.0)
58
61
  rspec-expectations (~> 3.9.0)
@@ -66,7 +69,6 @@ GEM
66
69
  diff-lcs (>= 1.2.0, < 2.0)
67
70
  rspec-support (~> 3.9.0)
68
71
  rspec-support (3.9.3)
69
- safe_yaml (1.0.4)
70
72
  slop (3.4.5)
71
73
  vcr (2.5.0)
72
74
  webmock (1.21.0)
data/README CHANGED
@@ -9,17 +9,6 @@ You can sign up at https://manage.brightbox.com
9
9
 
10
10
  {<img src="https://travis-ci.org/brightbox/brightbox-cli.png?branch=master" alt="Build Status" />}[https://travis-ci.org/brightbox/brightbox-cli]
11
11
 
12
- == UPGRADE NOTES
13
-
14
- Version 1.0.0 adds a new top level `brightbox` command for the suite.
15
-
16
- This may clash with our `brightbox` (brightbox-deployment) gem which, before
17
- version 2.4.0, used `brightbox` as the name for it's binary. Please ensure you
18
- update your `brightbox` gem to avoid using the wrong command.
19
-
20
- We have included backwards compatible binaries for all the older CLI commands
21
- (brightbox-accounts, brightbox-servers etc...) but recommend getting used to the
22
- new form.
23
12
 
24
13
  == Installation instructions
25
14
 
@@ -36,7 +25,11 @@ For a list of available commands use:
36
25
 
37
26
  $ brightbox help
38
27
 
39
- To add client (account based) credentials use:
28
+ To login with your user credentials use:
29
+
30
+ $ brightbox login john@example.com
31
+
32
+ To instead add api client (account-specific) credentials use:
40
33
 
41
34
  $ brightbox config client_add cli-2igtb theclientsecret
42
35
  Using config file /home/ubuntu/.brightbox/config
@@ -49,7 +42,14 @@ To browse available resources use the resource name as the command:
49
42
  $ brightbox images
50
43
  ... List of images
51
44
 
52
- Command structure may be subject to change.
45
+ === Two factor authentication ===
46
+
47
+ If you've enabled two factor authentication for your user, you can enable it in
48
+ your config and the CLI will prompt for a two factor pin when needed:
49
+
50
+ [john@example.com]
51
+ username = john@example.com
52
+ two_factor = true
53
53
 
54
54
  === Integrating with a password manager
55
55
 
@@ -64,6 +64,13 @@ appropriate section:
64
64
  username = john@example.com
65
65
  password_helper_command = pass john-example-com-brightbox
66
66
 
67
+ You can also specify a separate helper command to retrive two factor pins:
68
+
69
+ [john@example.com]
70
+ username = john@example.com
71
+ password_helper_command = pass john-example-com-brightbox
72
+ two_factor_helper_command = get-two-factor-pin john-example-com-brightbox
73
+
67
74
  === Using GPG to secure passwords
68
75
 
69
76
  If you use an OAuth application to access your accounts
@@ -108,6 +115,20 @@ incorrectly or there may be an issue with your GPG configuration.
108
115
 
109
116
  To remove the password delete the `~/.brightbox/main.password.gpg` file.
110
117
 
118
+ === Integrating with a password manager
119
+
120
+ You can retrieve your passwords from an external password manager by specifying
121
+ a password helper command. This command will be executed any time your password
122
+ is required and its output used as your password.
123
+
124
+ Configure the command in your config file (usually ~/.brightbox/config) in the
125
+ appropriate section:
126
+
127
+ [john@example.com]
128
+ username = john@example.com
129
+ password_helper_command = pass john-example-com-brightbox
130
+
131
+
111
132
  == Usage guides
112
133
 
113
134
  * http://docs.brightbox.com/reference/cli
@@ -130,6 +151,18 @@ in the path, just specify the full path to it:
130
151
 
131
152
  complete -C /full/path/to/bin/_brightbox-bash-completer -o filenames brightbox
132
153
 
154
+ == UPGRADE NOTES
155
+
156
+ Version 1.0.0 adds a new top level `brightbox` command for the suite.
157
+
158
+ This may clash with our `brightbox` (brightbox-deployment) gem which, before
159
+ version 2.4.0, used `brightbox` as the name for it's binary. Please ensure you
160
+ update your `brightbox` gem to avoid using the wrong command.
161
+
162
+ We have included backwards compatible binaries for all the older CLI commands
163
+ (brightbox-accounts, brightbox-servers etc...) but recommend getting used to the
164
+ new form.
165
+
133
166
  == Testing
134
167
 
135
168
  You should be able to run the specs and features with the following steps:
@@ -21,8 +21,13 @@ module Brightbox
21
21
  :name,
22
22
  :description,
23
23
  :status,
24
+ :database_engine,
25
+ :database_version,
24
26
  :locked,
25
- :created_on
27
+ :created_on,
28
+ :created_at,
29
+ :size,
30
+ :source
26
31
  ]
27
32
  )
28
33
  render_table(servers, table_opts)
@@ -17,7 +17,10 @@ module Brightbox
17
17
  end
18
18
 
19
19
  def two_factor_pin
20
- @two_factor_pin ||= prompt_for_two_factor_pin if two_factor_enabled
20
+ if two_factor_enabled
21
+ @two_factor_pin ||= Brightbox.config.two_factor_helper_password
22
+ @two_factor_pin ||= prompt_for_two_factor_pin
23
+ end
21
24
  end
22
25
 
23
26
  def prompt_for_two_factor_pin
@@ -0,0 +1,38 @@
1
+ module Brightbox
2
+ module Config
3
+ module TwoFactorHelper
4
+ attr_accessor :two_factor_helper_password
5
+
6
+ def two_factor_helper_command
7
+ return config[client_name]["two_factor_helper_command"] unless client_name.nil?
8
+ end
9
+
10
+ # Return the two_factor code from the helper if it's possible
11
+ def two_factor_helper_password
12
+ if defined?(@two_factor_helper_password) && !@two_factor_helper_password.nil?
13
+ return @two_factor_helper_password
14
+ end
15
+
16
+ if two_factor_helper_command
17
+ @two_factor_helper_password = two_factor_helper_call
18
+ else
19
+ @two_factor_helper_password = nil
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def two_factor_helper_call
26
+ info "INFO: Calling two factor helper to obtain two factor"
27
+ begin
28
+ cmd = two_factor_helper_command.split(/\s+/)
29
+ IO.popen(cmd, "r") do |io|
30
+ io.readline.chomp
31
+ end
32
+ rescue Errno::ENOENT
33
+ nil
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -15,6 +15,7 @@ module Brightbox
15
15
  include Brightbox::Config::GpgEncryptedPasswords
16
16
  include Brightbox::Config::PasswordHelper
17
17
  include Brightbox::Config::TwoFactorAuth
18
+ include Brightbox::Config::TwoFactorHelper
18
19
  include Brightbox::Config::AuthenticationTokens
19
20
  include Brightbox::Config::Accounts
20
21
  include Brightbox::Config::Clients
@@ -23,7 +23,7 @@ module Brightbox
23
23
  end
24
24
 
25
25
  def self.default_field_order
26
- [:id, :status, :created_on, :name]
26
+ [:id, :status, :created_on, :size, :name]
27
27
  end
28
28
 
29
29
  def to_row
@@ -1,3 +1,3 @@
1
1
  module Brightbox
2
- VERSION = "3.2.0" unless defined?(Brightbox::VERSION)
2
+ VERSION = "3.3.0" unless defined?(Brightbox::VERSION)
3
3
  end
data/lib/brightbox_cli.rb CHANGED
@@ -73,6 +73,7 @@ require_relative "brightbox-cli/config/cache"
73
73
  require_relative "brightbox-cli/config/gpg_encrypted_passwords"
74
74
  require_relative "brightbox-cli/config/password_helper"
75
75
  require_relative "brightbox-cli/config/two_factor_auth"
76
+ require_relative "brightbox-cli/config/two_factor_helper"
76
77
  require_relative "brightbox-cli/config/authentication_tokens"
77
78
  require_relative "brightbox-cli/config/accounts"
78
79
  require_relative "brightbox-cli/config/clients"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brightbox-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Leach
@@ -243,7 +243,6 @@ extra_rdoc_files: []
243
243
  files:
244
244
  - ".github/workflows/ruby.yml"
245
245
  - ".gitignore"
246
- - ".travis.yml"
247
246
  - CHANGELOG.md
248
247
  - Gemfile
249
248
  - Gemfile.lock
@@ -373,6 +372,7 @@ files:
373
372
  - lib/brightbox-cli/config/sections.rb
374
373
  - lib/brightbox-cli/config/to_fog.rb
375
374
  - lib/brightbox-cli/config/two_factor_auth.rb
375
+ - lib/brightbox-cli/config/two_factor_helper.rb
376
376
  - lib/brightbox-cli/config/user_application.rb
377
377
  - lib/brightbox-cli/connection_manager.rb
378
378
  - lib/brightbox-cli/database_server.rb
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- language: ruby
2
- sudo: false
3
-
4
- rvm:
5
- - 2.0
6
- - 2.1
7
- - 2.2
8
- - 2.3