secret-keeper 0.1.0 → 0.1.1

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -0
  3. data/spec/secret-keeper_spec.rb +50 -0
  4. metadata +14 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb41f3ee6ff58c816d18e1f424cc5abd800df058
4
- data.tar.gz: dcb36b9f0f983d79369d7d1a51b393486400b3cb
3
+ metadata.gz: bbd2fa36c693a0c02dfdb01eece37e1f0467d78a
4
+ data.tar.gz: c1ae32d09ed3d1ac0cff3af984c5bd68b62af31f
5
5
  SHA512:
6
- metadata.gz: 2814775b46269013b94356ea9dd8982161aa657d5fec7da696820462712f12903cdbf6c6b55c5b56cf17fdfa9ecf1c02705d6af4ffa477787e76e50826e9873b
7
- data.tar.gz: 4fbb767f3696a876f6d41e00eb345c287c87e822a4bb019ab3115027169850937b569b24834a7e82ab1bb2de88284aaaea4280938563b8fd422f342b6504620b
6
+ metadata.gz: 4a0ac28f552387514b3e0dbe85983debd485b670172f635d04a82b548a60e9ebed7136d3d41122fc328ddbb7e1dff0562df9a3fcc4216eeedc4ded007be7bcce
7
+ data.tar.gz: 50bc5aac70bd82875d69d6153a6f18745608c993933dc2d1c4237127ac9d33255be9e4b0eae383160a67b05389fb8d6a91785625bc9d0c1a318ca42b76485d7b
@@ -0,0 +1,63 @@
1
+ # Secret Keeper
2
+
3
+ Keep all your secret files within openssl
4
+
5
+ ## Install
6
+
7
+ from console
8
+
9
+ gem install secret-keeper
10
+
11
+ with bundler, write follwing line in your Gemfile
12
+
13
+ gem 'secret-keeper', require: false
14
+
15
+
16
+ ## Usage
17
+ using environment variable OPENSSL_PASS to be your key of cipher
18
+
19
+ $> OPENSSL_PASS=[YOUR-CIPHER-KEY-HERE] irb
20
+
21
+ require on demand
22
+
23
+ irb> require 'secret-keeper'
24
+
25
+ encrypt files based on your tasks defined in config/secret-keeper.yml
26
+
27
+ irb> SecretKeeper.encrypt_files
28
+ # Encrypting...
29
+ # * example/database.yml --> example/database.yml.enc, ok
30
+ # * example/secrets.yml --> example/secrets.yml.enc, ok
31
+ # Over!
32
+
33
+ decrypt files based on your tasks defined in config/secret-keeper.yml
34
+
35
+ irb> SecretKeeper.decrypt_files
36
+ # Decrypting...
37
+ # * example/database.yml.enc --> example/database.yml, ok
38
+ # * example/secrets.yml.enc --> example/secrets.yml, ok
39
+ # Over!
40
+
41
+ ## Available Ciphers
42
+
43
+ OpenSSL::Cipher.ciphers
44
+
45
+ ## Config Example
46
+
47
+ development: &development
48
+ cipher: AES-256-CBC
49
+ tasks:
50
+ -
51
+ encrypt_from: example/database.yml
52
+ encrypt_to: example/database.yml.enc
53
+ # decrypt_from: example/database.yml.enc
54
+ # decrypt_to: example/database.yml
55
+ -
56
+ encrypt_from: example/secrets_from_other_source.yml
57
+ encrypt_to: example/secrets.yml.enc
58
+ # decrypt_from: example/secrets.yml.enc
59
+ decrypt_to: example/secrets.yml
60
+ test:
61
+ <<: *development
62
+ production:
63
+ <<: *development
@@ -0,0 +1,50 @@
1
+ describe SecretKeeper do
2
+ before(:each) do
3
+ ENV['OPENSSL_PASS'] = 'PASSWORD'
4
+ end
5
+
6
+ describe '.encrypt_files' do
7
+ it 'should return true' do
8
+ result = SecretKeeper.encrypt_files
9
+ expect(result).to eq(true)
10
+ end
11
+ end
12
+
13
+ describe '.decrypt_files' do
14
+ it 'should return true' do
15
+ result = SecretKeeper.decrypt_files
16
+ expect(result).to eq(true)
17
+ end
18
+
19
+ it 'should be false, if OPENSSL_PASS incorrect' do
20
+ ENV['OPENSSL_PASS'] = 'incorrect'
21
+ result = SecretKeeper.decrypt_files
22
+ expect(result).to eq(false)
23
+ end
24
+
25
+ it 'should raise error, if OPENSSL_PASS nil' do
26
+ ENV['OPENSSL_PASS'] = nil
27
+ expect{ SecretKeeper.decrypt_files }.to raise_error(RuntimeError)
28
+ end
29
+
30
+ it 'should raise error, if config file not found' do
31
+ FileUtils.mv('config/secret-keeper.yml', 'config/secret-keeper-tmp.yml')
32
+ expect{ SecretKeeper.decrypt_files }.to raise_error(Errno::ENOENT)
33
+ FileUtils.mv('config/secret-keeper-tmp.yml', 'config/secret-keeper.yml')
34
+ end
35
+
36
+ it 'should raise error, if config file format incorrect' do
37
+ FileUtils.mv('config/secret-keeper.yml', 'config/secret-keeper-tmp.yml')
38
+ FileUtils.cp('config/secret-keeper-incorrect-format.yml', 'config/secret-keeper.yml')
39
+ expect{ SecretKeeper.decrypt_files }.to raise_error(Psych::SyntaxError)
40
+ FileUtils.mv('config/secret-keeper-tmp.yml', 'config/secret-keeper.yml')
41
+ end
42
+
43
+ it 'should raise error, if config file lack enviorment' do
44
+ FileUtils.mv('config/secret-keeper.yml', 'config/secret-keeper-tmp.yml')
45
+ FileUtils.cp('config/secret-keeper-lack-env.yml', 'config/secret-keeper.yml')
46
+ expect{ SecretKeeper.decrypt_files }.to raise_error(RuntimeError)
47
+ FileUtils.mv('config/secret-keeper-tmp.yml', 'config/secret-keeper.yml')
48
+ end
49
+ end
50
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secret-keeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Lee
@@ -14,36 +14,40 @@ dependencies:
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '3.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '3.0'
27
27
  description: A Secret keeper
28
28
  email: ray-lee@kdanmobile.com
29
29
  executables: []
30
30
  extensions: []
31
- extra_rdoc_files: []
31
+ extra_rdoc_files:
32
+ - README.md
32
33
  files:
34
+ - README.md
33
35
  - lib/secret-keeper.rb
36
+ - spec/secret-keeper_spec.rb
34
37
  homepage: https://github.com/redtear1115/secret-keeper
35
38
  licenses:
36
39
  - MIT
37
40
  metadata: {}
38
41
  post_install_message:
39
- rdoc_options: []
42
+ rdoc_options:
43
+ - "--charset=UTF-8"
40
44
  require_paths:
41
45
  - lib
42
46
  required_ruby_version: !ruby/object:Gem::Requirement
43
47
  requirements:
44
48
  - - ">="
45
49
  - !ruby/object:Gem::Version
46
- version: '0'
50
+ version: 2.3.1
47
51
  required_rubygems_version: !ruby/object:Gem::Requirement
48
52
  requirements:
49
53
  - - ">="
@@ -55,4 +59,5 @@ rubygems_version: 2.6.14
55
59
  signing_key:
56
60
  specification_version: 4
57
61
  summary: Keep all your secret files within openssl
58
- test_files: []
62
+ test_files:
63
+ - spec/secret-keeper_spec.rb