chamber 3.0.0rc1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +5 -5
  4. data/lib/chamber/binary/runner.rb +10 -12
  5. data/lib/chamber/commands/base.rb +4 -4
  6. data/lib/chamber/commands/initialize.rb +5 -5
  7. data/lib/chamber/commands/securable.rb +5 -9
  8. data/lib/chamber/commands/show.rb +0 -1
  9. data/lib/chamber/context_resolver.rb +5 -4
  10. data/lib/chamber/encryption_methods/public_key.rb +26 -14
  11. data/lib/chamber/encryption_methods/ssl.rb +36 -28
  12. data/lib/chamber/errors/disallowed_class.rb +8 -0
  13. data/lib/chamber/errors/invalid_key_type.rb +8 -0
  14. data/lib/chamber/errors/missing_index.rb +13 -0
  15. data/lib/chamber/errors/missing_setting.rb +13 -0
  16. data/lib/chamber/errors/non_conforming_key.rb +8 -0
  17. data/lib/chamber/file.rb +18 -7
  18. data/lib/chamber/file_set.rb +5 -1
  19. data/lib/chamber/files/signature.rb +6 -6
  20. data/lib/chamber/filters/decryption_filter.rb +9 -11
  21. data/lib/chamber/filters/encryption_filter.rb +8 -9
  22. data/lib/chamber/filters/environment_filter.rb +16 -18
  23. data/lib/chamber/filters/failed_decryption_filter.rb +3 -3
  24. data/lib/chamber/filters/namespace_filter.rb +10 -12
  25. data/lib/chamber/filters/secure_filter.rb +3 -3
  26. data/lib/chamber/filters/translate_secure_keys_filter.rb +3 -3
  27. data/lib/chamber/instance.rb +4 -7
  28. data/lib/chamber/integrations/sinatra.rb +1 -1
  29. data/lib/chamber/keys/base.rb +11 -7
  30. data/lib/chamber/namespace_set.rb +2 -2
  31. data/lib/chamber/rails.rb +1 -1
  32. data/lib/chamber/refinements/deep_dup.rb +12 -36
  33. data/lib/chamber/refinements/enumerable.rb +8 -20
  34. data/lib/chamber/refinements/hash.rb +10 -36
  35. data/lib/chamber/rubinius_fix.rb +1 -1
  36. data/lib/chamber/settings.rb +39 -23
  37. data/lib/chamber/types/secured.rb +8 -8
  38. data/lib/chamber/version.rb +1 -1
  39. data/lib/chamber.rb +0 -5
  40. data.tar.gz.sig +0 -0
  41. metadata +29 -34
  42. metadata.gz.sig +0 -0
  43. data/lib/chamber/adapters/cloud/circle_ci.rb +0 -85
  44. data/lib/chamber/adapters/cloud/heroku.rb +0 -74
  45. data/lib/chamber/binary/circle_ci.rb +0 -123
  46. data/lib/chamber/binary/heroku.rb +0 -111
  47. data/lib/chamber/binary/travis.rb +0 -37
  48. data/lib/chamber/commands/cloud/base.rb +0 -35
  49. data/lib/chamber/commands/cloud/clear.rb +0 -25
  50. data/lib/chamber/commands/cloud/compare.rb +0 -26
  51. data/lib/chamber/commands/cloud/pull.rb +0 -29
  52. data/lib/chamber/commands/cloud/push.rb +0 -44
  53. data/lib/chamber/commands/travis/secure.rb +0 -37
  54. data/lib/chamber/refinements/array.rb +0 -20
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'chamber/commands/cloud/base'
4
-
5
- module Chamber
6
- module Commands
7
- module Cloud
8
- class Clear < Chamber::Commands::Cloud::Base
9
- def call
10
- chamber.to_environment.each_key do |key|
11
- next unless adapter.environment_variables.has_key?(key)
12
-
13
- if dry_run
14
- shell.say_status 'remove', key, :blue
15
- else
16
- shell.say_status 'remove', key, :green
17
-
18
- adapter.remove_environment_variable(key)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'chamber/commands/cloud/base'
4
- require 'chamber/commands/comparable'
5
- require 'chamber/commands/securable'
6
-
7
- module Chamber
8
- module Commands
9
- module Cloud
10
- class Compare < Chamber::Commands::Cloud::Base
11
- include Chamber::Commands::Securable
12
- include Chamber::Commands::Comparable
13
-
14
- protected
15
-
16
- def first_settings_data
17
- ::JSON.pretty_generate(securable_environment_variables)
18
- end
19
-
20
- def second_settings_data
21
- ::JSON.pretty_generate(adapter.environment_variables)
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
- require 'chamber/commands/cloud/base'
5
-
6
- module Chamber
7
- module Commands
8
- module Cloud
9
- class Pull < Chamber::Commands::Cloud::Base
10
- attr_accessor :target_file
11
-
12
- def initialize(into:, **args)
13
- super
14
-
15
- self.target_file = into
16
- end
17
-
18
- def call
19
- if target_file
20
- shell.create_file(target_file,
21
- ::JSON.pretty_generate(adapter.environment_variables))
22
- else
23
- adapter.environment_variables
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'chamber/commands/cloud/base'
4
- require 'chamber/commands/securable'
5
- require 'chamber/keys/decryption'
6
-
7
- module Chamber
8
- module Commands
9
- module Cloud
10
- class Push < Chamber::Commands::Cloud::Base
11
- include Chamber::Commands::Securable
12
-
13
- attr_accessor :keys
14
-
15
- def initialize(keys:, **args)
16
- super(**args)
17
-
18
- self.keys = keys
19
- end
20
-
21
- def call
22
- environment_variables = if keys
23
- Keys::Decryption
24
- .new(rootpath: chamber.configuration.rootpath,
25
- namespaces: chamber.configuration.namespaces)
26
- .as_environment_variables
27
- else
28
- securable_environment_variables
29
- end
30
-
31
- environment_variables.each do |key, value|
32
- if dry_run
33
- shell.say_status 'push', key, :blue
34
- else
35
- shell.say_status 'push', key, :green
36
-
37
- adapter.add_environment_variable(key, value)
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'chamber/commands/base'
4
- require 'chamber/commands/travis'
5
- require 'chamber/commands/securable'
6
-
7
- module Chamber
8
- module Commands
9
- module Travis
10
- class Secure < Chamber::Commands::Base
11
- include Chamber::Commands::Travis
12
- include Chamber::Commands::Securable
13
-
14
- def call
15
- securable_environment_variables.each do |key, value|
16
- if dry_run
17
- shell.say_status 'encrypt', key, :blue
18
- else
19
- command = first_environment_variable?(key) ? '--override' : '--append'
20
-
21
- shell.say_status 'encrypt', key, :green
22
- travis_encrypt("#{command} #{key}=#{value}")
23
- end
24
- end
25
- end
26
-
27
- protected
28
-
29
- def first_environment_variable?(key)
30
- @first_environment_key ||= securable_environment_variables.first[0]
31
-
32
- @first_environment_key == key
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rspectacular'
4
- require 'chamber/refinements/enumerable'
5
-
6
- module Chamber
7
- module Refinements
8
- module Array
9
- refine ::Array do
10
- def deep_transform_keys(&block)
11
- Refinements::Enumerable.deep_transform_keys(self, &block)
12
- end
13
-
14
- def deep_transform_values(&block)
15
- Refinements::Enumerable.deep_transform_values(nil, self, &block)
16
- end
17
- end
18
- end
19
- end
20
- end