chef-vault 3.0.3 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -3
- data/Changelog.md +47 -238
- data/appveyor.yml +33 -0
- data/chef-vault.gemspec +5 -0
- data/features/clean_on_refresh.feature +1 -1
- data/features/clean_unknown_clients.feature +3 -15
- data/lib/chef-vault/item.rb +5 -6
- data/lib/chef-vault/item_keys.rb +14 -3
- data/lib/chef-vault/version.rb +1 -1
- data/lib/chef/knife/vault_create.rb +1 -1
- data/spec/chef-vault/item_keys_spec.rb +21 -6
- data/spec/chef-vault/item_spec.rb +5 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 416703868d576d9b4d982942231ade93be3275ab
|
4
|
+
data.tar.gz: 9e979c65cca7f7135597858631f7eef97c5abb3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55a98786c9b1329d75645d9ec2e092079cd929a08c72a3c8af82f0bac0575fea2a64f2ed8a0fd5e2b2637fcf6ae97467db6650945cc87b06984bcad7401fb869
|
7
|
+
data.tar.gz: 7099c41898ca19a7e37850a9dc773ef1543a000b8ffc2ba712e4614d07b1ddcb5f377f22fdb930c64869c9ee534759526cb6211422d46ad8952cbb6f3ff92286
|
data/.travis.yml
CHANGED
@@ -1,10 +1,19 @@
|
|
1
1
|
language: ruby
|
2
2
|
branches:
|
3
3
|
only:
|
4
|
-
|
4
|
+
- master
|
5
5
|
rvm:
|
6
|
-
|
7
|
-
|
6
|
+
- 2.2.5
|
7
|
+
- 2.3.1
|
8
|
+
- 2.4.1
|
8
9
|
install: bundle install --binstubs --without changelog
|
9
10
|
before_install: gem install bundler
|
10
11
|
env: TRAVIS_BUILD=true
|
12
|
+
deploy:
|
13
|
+
provider: rubygems
|
14
|
+
api_key:
|
15
|
+
secure: NNbOEQWaX+67bsMd1A/BB5lxd2dDzx+4uYsKxSvhVvx34UixKoLRmPhGJr0WapndsXdnG+crPpx3gpseOfJ3u42uNHQI9ASsgOOgmEiJKcW/MO/IQReRI998+XH2A4QLfLQ4JIWjpl8KNZCJSCp7w1LnDV6imy7FSM0mWS+3Lzk=
|
16
|
+
gem: chef-vault
|
17
|
+
on:
|
18
|
+
repo: chef/chef-vault
|
19
|
+
branch: master
|
data/Changelog.md
CHANGED
@@ -1,11 +1,37 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v3.1.0](https://github.com/chef/chef-vault/tree/v3.1.0) (2017-07-04)
|
4
|
+
[Full
|
5
|
+
Changelog](https://github.com/chef/chef-vault/compare/v3.0.3...v3.1.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Assume all nodes matching the search query are valid nodes [\#272](https://github.com/chef/chef-vault/pull/272) ([kamaradclimber](https://github.com/kamaradclimber))
|
10
|
+
- Avoid re-encrypting key for all existing clients [\#269](https://github.com/chef/chef-vault/pull/269) ([kamaradclimber](https://github.com/kamaradclimber))
|
11
|
+
|
12
|
+
**Fixed bugs:**
|
13
|
+
|
14
|
+
- Fix fatal error during create [\#281](https://github.com/chef/chef-vault/pull/281) ([neclimdul](https://github.com/neclimdul))
|
15
|
+
- Avoid sparse key read for non sparse secrets [\#280](https://github.com/chef/chef-vault/pull/280) ([kamaradclimber](https://github.com/kamaradclimber))
|
16
|
+
- Make sure sparse mode is used on secrets where it is explicit [\#271](https://github.com/chef/chef-vault/pull/271) ([kamaradclimber](https://github.com/kamaradclimber))
|
17
|
+
|
18
|
+
## [v3.0.3](https://github.com/chef/chef-vault/tree/v3.0.3) (2017-05-03)
|
19
|
+
[Full Changelog](https://github.com/chef/chef-vault/compare/v3.0.2...v3.0.3)
|
20
|
+
|
21
|
+
**Fixed bugs:**
|
22
|
+
|
23
|
+
- Reduce the search response limit from 100k to 10k [\#275](https://github.com/chef/chef-vault/pull/275) ([btm](https://github.com/btm))
|
24
|
+
- Replace edit\_data\(\) with edit\_hash\(\) in vault\_edit.rb [\#274](https://github.com/chef/chef-vault/pull/274) ([tmaczukin](https://github.com/tmaczukin))
|
25
|
+
|
26
|
+
## [v3.0.2](https://github.com/chef/chef-vault/tree/v3.0.2) (2017-04-20)
|
27
|
+
[Full Changelog](https://github.com/chef/chef-vault/compare/v3.0.1...v3.0.2)
|
28
|
+
|
3
29
|
## [v3.0.1](https://github.com/chef/chef-vault/tree/v3.0.1) (2017-04-11)
|
4
30
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v3.0.0...v3.0.1)
|
5
31
|
|
6
32
|
**Fixed bugs:**
|
7
33
|
|
8
|
-
-
|
34
|
+
- Change the chef dependency to development only [\#266](https://github.com/chef/chef-vault/pull/266) ([thommay](https://github.com/thommay))
|
9
35
|
|
10
36
|
## [v3.0.0](https://github.com/chef/chef-vault/tree/v3.0.0) (2017-04-10)
|
11
37
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.9.1...v3.0.0)
|
@@ -13,22 +39,34 @@
|
|
13
39
|
**Implemented enhancements:**
|
14
40
|
|
15
41
|
- Vault creation, list, and destruction in sparse mode [\#252](https://github.com/chef/chef-vault/pull/252) ([rveznaver](https://github.com/rveznaver))
|
42
|
+
|
43
|
+
## [v2.9.1](https://github.com/chef/chef-vault/tree/v2.9.1) (2017-01-19)
|
44
|
+
[Full Changelog](https://github.com/chef/chef-vault/compare/v3.0.0.rc2...v2.9.1)
|
45
|
+
|
46
|
+
## [v3.0.0.rc2](https://github.com/chef/chef-vault/tree/v3.0.0.rc2) (2016-12-05)
|
47
|
+
[Full Changelog](https://github.com/chef/chef-vault/compare/v3.0.0.rc1...v3.0.0.rc2)
|
48
|
+
|
49
|
+
**Implemented enhancements:**
|
50
|
+
|
16
51
|
- Add feature to save each key in different data bag item [\#246](https://github.com/chef/chef-vault/pull/246) ([rveznaver](https://github.com/rveznaver))
|
17
52
|
- Enable testing with Chef Zero [\#244](https://github.com/chef/chef-vault/pull/244) ([rveznaver](https://github.com/rveznaver))
|
18
53
|
- Minimize the number of searches [\#243](https://github.com/chef/chef-vault/pull/243) ([thommay](https://github.com/thommay))
|
19
54
|
- Optimise queries when finding nodes [\#240](https://github.com/chef/chef-vault/pull/240) ([thommay](https://github.com/thommay))
|
20
|
-
- Removed deprecated knife commands [\#236](https://github.com/chef/chef-vault/pull/236) ([thommay](https://github.com/thommay))
|
21
|
-
- rename ChefKey to Actor [\#234](https://github.com/chef/chef-vault/pull/234) ([thommay](https://github.com/thommay))
|
22
|
-
- Move to using a logger for all user output [\#232](https://github.com/chef/chef-vault/pull/232) ([thommay](https://github.com/thommay))
|
23
|
-
- Add support for clients [\#227](https://github.com/chef/chef-vault/pull/227) ([svanharmelen](https://github.com/svanharmelen))
|
24
55
|
|
25
56
|
**Fixed bugs:**
|
26
57
|
|
27
58
|
- Use solo\_legacy\_mode fully [\#242](https://github.com/chef/chef-vault/pull/242) ([thommay](https://github.com/thommay))
|
28
59
|
- Use legacy solo mode [\#241](https://github.com/chef/chef-vault/pull/241) ([thommay](https://github.com/thommay))
|
29
60
|
|
30
|
-
## [
|
31
|
-
[Full Changelog](https://github.com/chef/chef-vault/compare/v3.0.0.
|
61
|
+
## [v3.0.0.rc1](https://github.com/chef/chef-vault/tree/v3.0.0.rc1) (2016-10-21)
|
62
|
+
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.9.0...v3.0.0.rc1)
|
63
|
+
|
64
|
+
**Implemented enhancements:**
|
65
|
+
|
66
|
+
- Removed deprecated knife commands [\#236](https://github.com/chef/chef-vault/pull/236) ([thommay](https://github.com/thommay))
|
67
|
+
- rename ChefKey to Actor [\#234](https://github.com/chef/chef-vault/pull/234) ([thommay](https://github.com/thommay))
|
68
|
+
- Move to using a logger for all user output [\#232](https://github.com/chef/chef-vault/pull/232) ([thommay](https://github.com/thommay))
|
69
|
+
- Add support for clients [\#227](https://github.com/chef/chef-vault/pull/227) ([svanharmelen](https://github.com/svanharmelen))
|
32
70
|
|
33
71
|
## [v2.9.0](https://github.com/chef/chef-vault/tree/v2.9.0) (2016-04-08)
|
34
72
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.8.0...v2.9.0)
|
@@ -46,271 +84,42 @@
|
|
46
84
|
## [v2.8.0](https://github.com/chef/chef-vault/tree/v2.8.0) (2016-02-09)
|
47
85
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.8.0.rc1...v2.8.0)
|
48
86
|
|
49
|
-
**Merged pull requests:**
|
50
|
-
|
51
|
-
- UPGRADE: fixed a typo [\#198](https://github.com/chef/chef-vault/pull/198) ([joonas](https://github.com/joonas))
|
52
|
-
- adds link to Chef Vault blog post to README [\#197](https://github.com/chef/chef-vault/pull/197) ([nellshamrell](https://github.com/nellshamrell))
|
53
|
-
|
54
87
|
## [v2.8.0.rc1](https://github.com/chef/chef-vault/tree/v2.8.0.rc1) (2016-01-29)
|
55
88
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.7.1...v2.8.0.rc1)
|
56
89
|
|
57
|
-
**Merged pull requests:**
|
58
|
-
|
59
|
-
- Deal with more than 1000 nodes [\#196](https://github.com/chef/chef-vault/pull/196) ([thommay](https://github.com/thommay))
|
60
|
-
|
61
90
|
## [v2.7.1](https://github.com/chef/chef-vault/tree/v2.7.1) (2016-01-25)
|
62
91
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.7.0...v2.7.1)
|
63
92
|
|
64
93
|
## [v2.7.0](https://github.com/chef/chef-vault/tree/v2.7.0) (2016-01-25)
|
65
94
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.6.1...v2.7.0)
|
66
95
|
|
67
|
-
**Fixed bugs:**
|
68
|
-
|
69
|
-
- Should warn/error when modifying 1.x items [\#52](https://github.com/chef/chef-vault/issues/52)
|
70
|
-
|
71
|
-
**Closed issues:**
|
72
|
-
|
73
|
-
- Support data\_bag\_path arrays [\#191](https://github.com/chef/chef-vault/issues/191)
|
74
|
-
- Refresh fails if no search expression is set [\#188](https://github.com/chef/chef-vault/issues/188)
|
75
|
-
- knife vault create is failing [\#187](https://github.com/chef/chef-vault/issues/187)
|
76
|
-
- Issues with knife bootstrap --bootstrap-vault-item [\#185](https://github.com/chef/chef-vault/issues/185)
|
77
|
-
- Can't create anything. [\#183](https://github.com/chef/chef-vault/issues/183)
|
78
|
-
- knife vault refresh broken - chefdk0.7.0/chef11.1.1 [\#182](https://github.com/chef/chef-vault/issues/182)
|
79
|
-
- Environment Permissions [\#181](https://github.com/chef/chef-vault/issues/181)
|
80
|
-
- Knife vault stopped working after chefdk & chef-client upgrade [\#180](https://github.com/chef/chef-vault/issues/180)
|
81
|
-
- Chef 12.4.0 breaks user patch [\#176](https://github.com/chef/chef-vault/issues/176)
|
82
|
-
- vault refresh broken with chef 12.4.0 [\#175](https://github.com/chef/chef-vault/issues/175)
|
83
|
-
|
84
|
-
**Merged pull requests:**
|
85
|
-
|
86
|
-
- Correctly handle an array of data\_bag paths [\#192](https://github.com/chef/chef-vault/pull/192) ([thommay](https://github.com/thommay))
|
87
|
-
- add recognition of 'name' in response [\#184](https://github.com/chef/chef-vault/pull/184) ([lhandl](https://github.com/lhandl))
|
88
|
-
- typo in THEORY.md [\#179](https://github.com/chef/chef-vault/pull/179) ([mindyor](https://github.com/mindyor))
|
89
|
-
- Detect when trying to manage a v1 vault [\#173](https://github.com/chef/chef-vault/pull/173) ([jf647](https://github.com/jf647))
|
90
|
-
|
91
96
|
## [v2.6.1](https://github.com/chef/chef-vault/tree/v2.6.1) (2015-05-28)
|
92
97
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.6.0...v2.6.1)
|
93
98
|
|
94
|
-
**Closed issues:**
|
95
|
-
|
96
|
-
- Permission Issue - Missing Read Permission [\#171](https://github.com/chef/chef-vault/issues/171)
|
97
|
-
- undefined method `vault' for Chef::Resource::User [\#170](https://github.com/chef/chef-vault/issues/170)
|
98
|
-
- ChefVault::Item.refresh [\#168](https://github.com/chef/chef-vault/issues/168)
|
99
|
-
|
100
|
-
**Merged pull requests:**
|
101
|
-
|
102
|
-
- Only load the parts of chef we actually use [\#172](https://github.com/chef/chef-vault/pull/172) ([danielsdeleo](https://github.com/danielsdeleo))
|
103
|
-
- Remove dependency on rspec-its gem [\#169](https://github.com/chef/chef-vault/pull/169) ([dougireton](https://github.com/dougireton))
|
104
|
-
- Add gitter.im [\#167](https://github.com/chef/chef-vault/pull/167) ([jf647](https://github.com/jf647))
|
105
|
-
|
106
99
|
## [v2.6.0](https://github.com/chef/chef-vault/tree/v2.6.0) (2015-05-13)
|
107
100
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.5.0...v2.6.0)
|
108
101
|
|
109
|
-
**Implemented enhancements:**
|
110
|
-
|
111
|
-
- `ChefVault::Item` should not define `\#keys` method. [\#158](https://github.com/chef/chef-vault/issues/158)
|
112
|
-
- Add --clean to refresh option [\#151](https://github.com/chef/chef-vault/issues/151)
|
113
|
-
- Allow clients \(without a node\) to be returned via searches. [\#150](https://github.com/chef/chef-vault/issues/150)
|
114
|
-
- Need validation for item id: property [\#149](https://github.com/chef/chef-vault/issues/149)
|
115
|
-
- Add helper to get the keys of a vault item [\#142](https://github.com/chef/chef-vault/issues/142)
|
116
|
-
- Add knife vault show vaultname [\#141](https://github.com/chef/chef-vault/issues/141)
|
117
|
-
- Knife Vault Refresh Not Running on Server 2012R2 [\#129](https://github.com/chef/chef-vault/issues/129)
|
118
|
-
|
119
|
-
**Closed issues:**
|
120
|
-
|
121
|
-
- knife vault create examples using node/client names? [\#157](https://github.com/chef/chef-vault/issues/157)
|
122
|
-
- Unable to create a chef vault secret from a recipe [\#154](https://github.com/chef/chef-vault/issues/154)
|
123
|
-
- knife boostrap not picking up nodes from search query of vaults [\#148](https://github.com/chef/chef-vault/issues/148)
|
124
|
-
- Cannot update vault item [\#116](https://github.com/chef/chef-vault/issues/116)
|
125
|
-
- Refresh did not re-encrypt for an admin's new key [\#145](https://github.com/chef/chef-vault/issues/145)
|
126
|
-
- Chef 12.1.0 warning [\#143](https://github.com/chef/chef-vault/issues/143)
|
127
|
-
|
128
|
-
**Merged pull requests:**
|
129
|
-
|
130
|
-
- Add vault probing predicates [\#165](https://github.com/chef/chef-vault/pull/165) ([jf647](https://github.com/jf647))
|
131
|
-
- Allow the node name and path to the client key to be specified [\#163](https://github.com/chef/chef-vault/pull/163) ([jf647](https://github.com/jf647))
|
132
|
-
- Add a \#raw\_keys method to ChefVault::Item [\#162](https://github.com/chef/chef-vault/pull/162) ([jf647](https://github.com/jf647))
|
133
|
-
- Enhance 'knife vault show' to list vault items [\#161](https://github.com/chef/chef-vault/pull/161) ([jf647](https://github.com/jf647))
|
134
|
-
- Validate that the vault id hasn't changed since the \_keys item was created [\#160](https://github.com/chef/chef-vault/pull/160) ([jf647](https://github.com/jf647))
|
135
|
-
- Add --clean-unknown-clients to 'knife vault refresh' [\#159](https://github.com/chef/chef-vault/pull/159) ([jf647](https://github.com/jf647))
|
136
|
-
- Let ChefVault::Item\#clients accept a Chef::ApiClient instead of a search... [\#156](https://github.com/chef/chef-vault/pull/156) ([jf647](https://github.com/jf647))
|
137
|
-
- Allow ruby 1.9.3 to fail on Travis [\#155](https://github.com/chef/chef-vault/pull/155) ([jf647](https://github.com/jf647))
|
138
|
-
- Update docs to reflect the new compile\_time attribute of chef\_gem [\#144](https://github.com/chef/chef-vault/pull/144) ([jf647](https://github.com/jf647))
|
139
|
-
- very minor correction to typo [\#139](https://github.com/chef/chef-vault/pull/139) ([Dispader](https://github.com/Dispader))
|
140
|
-
- Release 2.6.0 [\#164](https://github.com/chef/chef-vault/pull/164) ([jf647](https://github.com/jf647))
|
141
|
-
|
142
102
|
## [v2.5.0](https://github.com/chef/chef-vault/tree/v2.5.0) (2015-02-09)
|
143
103
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.4.0...v2.5.0)
|
144
104
|
|
145
|
-
**Implemented enhancements:**
|
146
|
-
|
147
|
-
- knife vault list [\#97](https://github.com/chef/chef-vault/issues/97)
|
148
|
-
- Add chef-vault.bat to bin for windows users [\#60](https://github.com/chef/chef-vault/issues/60)
|
149
|
-
- OpenSSL error if private key does not match used public key [\#43](https://github.com/chef/chef-vault/issues/43)
|
150
|
-
- Skip missing/invalid client rather than raising exception [\#127](https://github.com/chef/chef-vault/issues/127)
|
151
|
-
|
152
|
-
**Fixed bugs:**
|
153
|
-
|
154
|
-
- 2.4.0 was not tagged in github [\#128](https://github.com/chef/chef-vault/issues/128)
|
155
|
-
- clean\_unknown\_clients not working [\#133](https://github.com/chef/chef-vault/issues/133)
|
156
|
-
- Skip missing/invalid client rather than raising exception [\#127](https://github.com/chef/chef-vault/issues/127)
|
157
|
-
|
158
|
-
**Closed issues:**
|
159
|
-
|
160
|
-
- Support pruning of deleted clients from vault access list when rotating keys [\#123](https://github.com/chef/chef-vault/issues/123)
|
161
|
-
- knife subcommands fail in cryptic fashion if you don't set --mode [\#117](https://github.com/chef/chef-vault/issues/117)
|
162
|
-
- vault commands force -A or knife.rb :vault\_admins [\#89](https://github.com/chef/chef-vault/issues/89)
|
163
|
-
- Add RSpec tests for chef-vault/chef/offline.rb [\#13](https://github.com/chef/chef-vault/issues/13)
|
164
|
-
- Need theory of operations/architecture documentation [\#109](https://github.com/chef/chef-vault/issues/109)
|
165
|
-
|
166
105
|
## [v2.4.0](https://github.com/chef/chef-vault/tree/v2.4.0) (2014-12-03)
|
167
106
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.3.0...v2.4.0)
|
168
107
|
|
169
|
-
**Closed issues:**
|
170
|
-
|
171
|
-
- Create, Refresh and Update behaviours [\#118](https://github.com/chef/chef-vault/issues/118)
|
172
|
-
- vault refresh remove clients from keys data bag? [\#111](https://github.com/chef/chef-vault/issues/111)
|
173
|
-
- There doesnt seem to be a way to remove authorized client from vault\_keys [\#103](https://github.com/chef/chef-vault/issues/103)
|
174
|
-
|
175
|
-
**Merged pull requests:**
|
176
|
-
|
177
|
-
- Upgrade to RSpec 3.1 and disable monkey-patching [\#122](https://github.com/chef/chef-vault/pull/122) ([dougireton](https://github.com/dougireton))
|
178
|
-
|
179
108
|
## [v2.3.0](https://github.com/chef/chef-vault/tree/v2.3.0) (2014-10-22)
|
180
109
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.2.4...v2.3.0)
|
181
110
|
|
182
|
-
**Closed issues:**
|
183
|
-
|
184
|
-
- Please push missing tags \(especially \> 2.2.1\) [\#119](https://github.com/chef/chef-vault/issues/119)
|
185
|
-
- Vault subcommands not showing for knife [\#114](https://github.com/chef/chef-vault/issues/114)
|
186
|
-
- cannot get client public\_key [\#113](https://github.com/chef/chef-vault/issues/113)
|
187
|
-
- Key update methods [\#105](https://github.com/chef/chef-vault/issues/105)
|
188
|
-
|
189
|
-
**Merged pull requests:**
|
190
|
-
|
191
|
-
- Add a knife vault download command for downloading encrypted files [\#104](https://github.com/chef/chef-vault/pull/104) ([justinlocsei](https://github.com/justinlocsei))
|
192
|
-
|
193
111
|
## [v2.2.4](https://github.com/chef/chef-vault/tree/v2.2.4) (2014-07-17)
|
194
112
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.2.3...v2.2.4)
|
195
113
|
|
196
|
-
**Closed issues:**
|
197
|
-
|
198
|
-
- Improvement: easier way to update stored search for an item [\#110](https://github.com/chef/chef-vault/issues/110)
|
199
|
-
- Missing refresh command [\#106](https://github.com/chef/chef-vault/issues/106)
|
200
|
-
- Add RSpec tests for chef-vault/certificate.rb [\#12](https://github.com/chef/chef-vault/issues/12)
|
201
|
-
- Add RSpec tests for chef-vault/user.rb [\#11](https://github.com/chef/chef-vault/issues/11)
|
202
|
-
|
203
|
-
**Merged pull requests:**
|
204
|
-
|
205
|
-
- Improved tests [\#112](https://github.com/chef/chef-vault/pull/112) ([rastasheep](https://github.com/rastasheep))
|
206
|
-
|
207
114
|
## [v2.2.3](https://github.com/chef/chef-vault/tree/v2.2.3) (2014-06-24)
|
208
115
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.2.2...v2.2.3)
|
209
116
|
|
210
117
|
## [v2.2.2](https://github.com/chef/chef-vault/tree/v2.2.2) (2014-06-03)
|
211
118
|
[Full Changelog](https://github.com/chef/chef-vault/compare/v2.2.1...v2.2.2)
|
212
119
|
|
213
|
-
**Closed issues:**
|
214
|
-
|
215
|
-
- cannot load such file -- chef/user [\#102](https://github.com/chef/chef-vault/issues/102)
|
216
|
-
- Reapply Search [\#95](https://github.com/chef/chef-vault/issues/95)
|
217
|
-
- knife vault create thows "can't convert Array into String \(TypeError\)" [\#94](https://github.com/chef/chef-vault/issues/94)
|
218
|
-
- ChefVault::Exceptions::KeysNotFound in test kitchen [\#92](https://github.com/chef/chef-vault/issues/92)
|
219
|
-
- Undefined method join for nil class [\#91](https://github.com/chef/chef-vault/issues/91)
|
220
|
-
- Purpose of `rotate keys` [\#90](https://github.com/chef/chef-vault/issues/90)
|
221
|
-
|
222
|
-
**Merged pull requests:**
|
223
|
-
|
224
|
-
- Add gem\_tasks to Rakefile so you can do `rake release` [\#98](https://github.com/chef/chef-vault/pull/98) ([dougireton](https://github.com/dougireton))
|
225
|
-
- Fixes \#95 - Adding reapply command [\#96](https://github.com/chef/chef-vault/pull/96) ([pdalinis](https://github.com/pdalinis))
|
226
|
-
- knife.rb node name is default admin [\#93](https://github.com/chef/chef-vault/pull/93) ([jgeiger](https://github.com/jgeiger))
|
227
|
-
- Fixed minor formatting in README to allow the vault\_admins info to display properly. [\#88](https://github.com/chef/chef-vault/pull/88) ([eklein](https://github.com/eklein))
|
228
|
-
- Add a short demo as an easy way in [\#87](https://github.com/chef/chef-vault/pull/87) ([aug24](https://github.com/aug24))
|
229
|
-
|
230
120
|
## [v2.2.1](https://github.com/chef/chef-vault/tree/v2.2.1) (2014-02-26)
|
231
|
-
|
121
|
+
[Full Changelog](https://github.com/chef/chef-vault/compare/e7d75c65441989ce915a30fc28782748c8a1ed1e...v2.2.1)
|
232
122
|
|
233
|
-
- Add a file-content option to the knife commands [\#42](https://github.com/chef/chef-vault/issues/42)
|
234
|
-
- Rotate shared secret when you remove nodes or admins [\#38](https://github.com/chef/chef-vault/issues/38)
|
235
123
|
|
236
|
-
**Fixed bugs:**
|
237
124
|
|
238
|
-
|
239
|
-
|
240
|
-
**Closed issues:**
|
241
|
-
|
242
|
-
- A question about keys. [\#85](https://github.com/chef/chef-vault/issues/85)
|
243
|
-
- --ADMINS option must be declared as mandatory when creating vault item [\#83](https://github.com/chef/chef-vault/issues/83)
|
244
|
-
- Vault UPDATE fails when vault item is created without any ADMINS specified [\#81](https://github.com/chef/chef-vault/issues/81)
|
245
|
-
- Changelog.md has a typo in "Released" date of version "v2.2.0" [\#79](https://github.com/chef/chef-vault/issues/79)
|
246
|
-
- Release updated gem to rubygems [\#78](https://github.com/chef/chef-vault/issues/78)
|
247
|
-
- knife encrypt allows illegal characters in dabag item ID [\#75](https://github.com/chef/chef-vault/issues/75)
|
248
|
-
- knife encrypt should store the search query [\#66](https://github.com/chef/chef-vault/issues/66)
|
249
|
-
- Allow for printing standard knife formatted output of the entire chef-vault'ed databag [\#62](https://github.com/chef/chef-vault/issues/62)
|
250
|
-
- Is there a way to test recipes using ChefVault with test-kitchen? [\#61](https://github.com/chef/chef-vault/issues/61)
|
251
|
-
- When is 2.1.0 scheduled for release? [\#59](https://github.com/chef/chef-vault/issues/59)
|
252
|
-
- Getting gem load error on windows 2012 chef solo client. [\#57](https://github.com/chef/chef-vault/issues/57)
|
253
|
-
- Typo in readme [\#55](https://github.com/chef/chef-vault/issues/55)
|
254
|
-
- JSON::ParserError: Unsupported `json\_class` type 'Chef::WebUIUser' [\#54](https://github.com/chef/chef-vault/issues/54)
|
255
|
-
- Improve knife commands and order [\#51](https://github.com/chef/chef-vault/issues/51)
|
256
|
-
- decrypt should emit json for the entire item [\#50](https://github.com/chef/chef-vault/issues/50)
|
257
|
-
- Use a larger key size for the generated secret by default, and allow keysize setting [\#46](https://github.com/chef/chef-vault/issues/46)
|
258
|
-
- Usage text is incorrect for `knife encrypt rotate keys` [\#44](https://github.com/chef/chef-vault/issues/44)
|
259
|
-
- Solo mode does not create knife data bag from file valid data bag file [\#40](https://github.com/chef/chef-vault/issues/40)
|
260
|
-
- ERROR: ChefVault::Exceptions::AdminNotFound for client admins [\#39](https://github.com/chef/chef-vault/issues/39)
|
261
|
-
- Warn when knife encrypt --search returns zero results [\#31](https://github.com/chef/chef-vault/issues/31)
|
262
|
-
- Clarify that knife encrypt creates databag and data bag items [\#30](https://github.com/chef/chef-vault/issues/30)
|
263
|
-
- Titlecase "chef" in README [\#29](https://github.com/chef/chef-vault/issues/29)
|
264
|
-
- knife dumps stack trace with Chef 10.24.0 after installing chef-vault gem [\#27](https://github.com/chef/chef-vault/issues/27)
|
265
|
-
- Remove Gemfile.lock from repo per Yehuda Katz and add dev dependencies to Gemspec [\#23](https://github.com/chef/chef-vault/issues/23)
|
266
|
-
- Setup project to run with Travis CI [\#18](https://github.com/chef/chef-vault/issues/18)
|
267
|
-
- Create Rake file to run tests [\#17](https://github.com/chef/chef-vault/issues/17)
|
268
|
-
- Add LICENSE file [\#16](https://github.com/chef/chef-vault/issues/16)
|
269
|
-
- Add Contributing guidelines [\#15](https://github.com/chef/chef-vault/issues/15)
|
270
|
-
- Add changelog [\#14](https://github.com/chef/chef-vault/issues/14)
|
271
|
-
- In `chef-vault.rb`, use data\_bag and chef\_config\_file getters instead of instance vars per POODR guidelines [\#9](https://github.com/chef/chef-vault/issues/9)
|
272
|
-
- Add RSpec tests for lib/chef-vault.rb [\#7](https://github.com/chef/chef-vault/issues/7)
|
273
|
-
- Splitting `admins` var on comma leaves in extraneous whitespace when --admins has spaces [\#5](https://github.com/chef/chef-vault/issues/5)
|
274
|
-
- Show better error message when 'certs' or 'passwords' directory is missing from chef-repo/databags/ directory [\#4](https://github.com/chef/chef-vault/issues/4)
|
275
|
-
- Readme should be clarified [\#1](https://github.com/chef/chef-vault/issues/1)
|
276
|
-
|
277
|
-
**Merged pull requests:**
|
278
|
-
|
279
|
-
- Add ability to use default administrators [\#84](https://github.com/chef/chef-vault/pull/84) ([dafyddcrosby](https://github.com/dafyddcrosby))
|
280
|
-
- Wrong year for recent update [\#82](https://github.com/chef/chef-vault/pull/82) ([lamont](https://github.com/lamont))
|
281
|
-
- Fixes \#79: "Released" date of version "v2.2.0" [\#80](https://github.com/chef/chef-vault/pull/80) ([techish1](https://github.com/techish1))
|
282
|
-
- Validate ID before saving item [\#77](https://github.com/chef/chef-vault/pull/77) ([eklein](https://github.com/eklein))
|
283
|
-
- Store search query & print vault admin data [\#74](https://github.com/chef/chef-vault/pull/74) ([eklein](https://github.com/eklein))
|
284
|
-
- Missed replacing "decrypt" w/ "show" in README.md [\#73](https://github.com/chef/chef-vault/pull/73) ([eklein](https://github.com/eklein))
|
285
|
-
- Rebased PR on top of jgeiger's merged PR [\#72](https://github.com/chef/chef-vault/pull/72) ([eklein](https://github.com/eklein))
|
286
|
-
- Add vault commands, deprecate encrypt, add rotate all keys [\#71](https://github.com/chef/chef-vault/pull/71) ([jgeiger](https://github.com/jgeiger))
|
287
|
-
- Fix github user name for repository [\#70](https://github.com/chef/chef-vault/pull/70) ([jgeiger](https://github.com/jgeiger))
|
288
|
-
- Fix \#51: update knife commands [\#68](https://github.com/chef/chef-vault/pull/68) ([jgeiger](https://github.com/jgeiger))
|
289
|
-
- Fix typos in KNIFE\_EXAMPLES.md [\#67](https://github.com/chef/chef-vault/pull/67) ([jgeiger](https://github.com/jgeiger))
|
290
|
-
- Issue 50: Use standard chef/knife formatting for all knife decrypt output [\#64](https://github.com/chef/chef-vault/pull/64) ([eklein](https://github.com/eklein))
|
291
|
-
- Issue \#62: Allow for printing entire chef-vault'ed databag [\#63](https://github.com/chef/chef-vault/pull/63) ([eklein](https://github.com/eklein))
|
292
|
-
- Fixes \#56: Typo in readme [\#56](https://github.com/chef/chef-vault/pull/56) ([bhicks](https://github.com/bhicks))
|
293
|
-
- Addresses \#46, use securerandom to generate secret [\#48](https://github.com/chef/chef-vault/pull/48) ([jtimberman](https://github.com/jtimberman))
|
294
|
-
- Fixes \#44: Usage text is incorrect for `knife encrypt rotate keys` [\#45](https://github.com/chef/chef-vault/pull/45) ([jer](https://github.com/jer))
|
295
|
-
- Fixing typo in command line option and README: vaules -\> values [\#41](https://github.com/chef/chef-vault/pull/41) ([trinitronx](https://github.com/trinitronx))
|
296
|
-
- Fix: open locked file on windows during data\_bag update [\#37](https://github.com/chef/chef-vault/pull/37) ([aseresun](https://github.com/aseresun))
|
297
|
-
- Allow any client key to act as admin [\#36](https://github.com/chef/chef-vault/pull/36) ([kisoku](https://github.com/kisoku))
|
298
|
-
- move the compat include into the lazy-load [\#35](https://github.com/chef/chef-vault/pull/35) ([spheromak](https://github.com/spheromak))
|
299
|
-
- Fix \#32: Correct Travis CI link [\#34](https://github.com/chef/chef-vault/pull/34) ([dougireton](https://github.com/dougireton))
|
300
|
-
- Fix \#32: Fix broken travis ci badge [\#33](https://github.com/chef/chef-vault/pull/33) ([dougireton](https://github.com/dougireton))
|
301
|
-
- Add Version Badge to Readme [\#26](https://github.com/chef/chef-vault/pull/26) ([dougireton](https://github.com/dougireton))
|
302
|
-
- Fixes \#18: Add .travis.yml file [\#25](https://github.com/chef/chef-vault/pull/25) ([dougireton](https://github.com/dougireton))
|
303
|
-
- Fixes \#23: Remove Gemfile.lock from repo per Yehuda Katz [\#24](https://github.com/chef/chef-vault/pull/24) ([dougireton](https://github.com/dougireton))
|
304
|
-
- Fixes \#15: Add Contributing guide [\#22](https://github.com/chef/chef-vault/pull/22) ([dougireton](https://github.com/dougireton))
|
305
|
-
- Fixes \#14: Add initial Changelog [\#21](https://github.com/chef/chef-vault/pull/21) ([dougireton](https://github.com/dougireton))
|
306
|
-
- Fixes \#16: Add Apache 2.0 license file and source headers [\#20](https://github.com/chef/chef-vault/pull/20) ([dougireton](https://github.com/dougireton))
|
307
|
-
- Fixes \#17: Add initial Rakefile to run specs [\#19](https://github.com/chef/chef-vault/pull/19) ([dougireton](https://github.com/dougireton))
|
308
|
-
- Fixes \#9: Use getters instead of instance vars [\#10](https://github.com/chef/chef-vault/pull/10) ([dougireton](https://github.com/dougireton))
|
309
|
-
- Fixes \#7: Add rspec tests for chef-vault.rb [\#8](https://github.com/chef/chef-vault/pull/8) ([dougireton](https://github.com/dougireton))
|
310
|
-
- Fixes \#2: Split --admins string on ',' and whitespace [\#6](https://github.com/chef/chef-vault/pull/6) ([dougireton](https://github.com/dougireton))
|
311
|
-
- Update for compatability with chef10/11 [\#3](https://github.com/chef/chef-vault/pull/3) ([spheromak](https://github.com/spheromak))
|
312
|
-
- Fixes \#1: Clarify readme [\#2](https://github.com/chef/chef-vault/pull/2) ([dougireton](https://github.com/dougireton))
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
125
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/appveyor.yml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
version: "master-{build}"
|
2
|
+
|
3
|
+
os: Windows Server 2012 R2
|
4
|
+
platform:
|
5
|
+
- x64
|
6
|
+
|
7
|
+
clone_depth: 1
|
8
|
+
skip_tags: true
|
9
|
+
skip_branch_with_pr: true
|
10
|
+
branches:
|
11
|
+
only:
|
12
|
+
- master
|
13
|
+
|
14
|
+
# caching vendor/bundle appears to break horribly in the face of gems checked out of git
|
15
|
+
# cache:
|
16
|
+
# - vendor/bundle
|
17
|
+
|
18
|
+
install:
|
19
|
+
- ps: iex (irm https://omnitruck.chef.io/install.ps1); Install-Project -Project chefdk -channel stable
|
20
|
+
- bundle config --local path vendor/bundle
|
21
|
+
- SET CI=true
|
22
|
+
- SET BUNDLE_WITHOUT=changelog:style
|
23
|
+
|
24
|
+
build_script:
|
25
|
+
- ps: c:\opscode\chefdk\bin\chef.bat shell-init powershell | iex
|
26
|
+
- bundle install || bundle install || bundle install
|
27
|
+
|
28
|
+
test_script:
|
29
|
+
- SET SPEC_OPTS=--format progress
|
30
|
+
- c:\opscode\chefdk\bin\chef.bat exec bundle exec rake spec
|
31
|
+
# aruba on windows seems pretty terribadly broken: https://github.com/cucumber/aruba/pull/422
|
32
|
+
# - c:\opscode\chefdk\bin\chef.bat exec bundle exec cucumber
|
33
|
+
- c:\opscode\chefdk\bin\chef.bat exec bundle exec rake style
|
data/chef-vault.gemspec
CHANGED
@@ -17,9 +17,14 @@
|
|
17
17
|
$:.push File.expand_path("../lib", __FILE__)
|
18
18
|
require "chef-vault/version"
|
19
19
|
|
20
|
+
def prerelease?
|
21
|
+
ENV["TRAVIS"] && !ENV["TRAVIS_TAG"]
|
22
|
+
end
|
23
|
+
|
20
24
|
Gem::Specification.new do |s|
|
21
25
|
s.name = "chef-vault"
|
22
26
|
s.version = ChefVault::VERSION
|
27
|
+
s.version = "#{s.version}-pre#{ENV['TRAVIS_BUILD_NUMBER']}" if prerelease?
|
23
28
|
s.has_rdoc = true
|
24
29
|
s.authors = ["Thom May"]
|
25
30
|
s.email = ["thom@chef.io"]
|
@@ -18,7 +18,7 @@ Feature: clean unknown clients on vault refresh
|
|
18
18
|
Given a local mode chef repo with nodes 'one,two,three'
|
19
19
|
And I create a vault item 'test/item' containing the JSON '{"foo": "bar"}' encrypted for 'one,two,three'
|
20
20
|
Then the vault item 'test/item' should be encrypted for 'one,two,three'
|
21
|
-
And I delete
|
21
|
+
And I delete node 'one' from the Chef server
|
22
22
|
And I refresh the vault item 'test/item' with the 'clean-unknown-clients' option
|
23
23
|
Then the output should contain "Removing unknown client 'one'"
|
24
24
|
And the vault item 'test/item' should be encrypted for 'two,three'
|
@@ -1,29 +1,17 @@
|
|
1
1
|
Feature: clean unknown clients on key rotation
|
2
2
|
When removing a client from a vault item, chef-vault normally
|
3
|
-
removes the key and then rotates the key. If a
|
3
|
+
removes the key and then rotates the key. If a node has been
|
4
4
|
deleted in the meantime from the Chef server but not the vault,
|
5
5
|
the rotation will fail due to that client's public key missing.
|
6
6
|
Using the --clean-unknown-clients switch will cause any clients
|
7
7
|
that have been removed to be removed from the vault item's
|
8
8
|
access list as well
|
9
9
|
|
10
|
-
Scenario: Prune clients when removing a client
|
11
|
-
Given a local mode chef repo with nodes 'one,two,three'
|
12
|
-
And I create a vault item 'test/item' containing the JSON '{"foo": "bar"}' encrypted for 'one,two,three'
|
13
|
-
Then the vault item 'test/item' should be encrypted for 'one,two,three'
|
14
|
-
And I delete client 'one' from the Chef server
|
15
|
-
And I remove client 'two' from vault item 'test/item' with the 'clean-unknown-clients' option
|
16
|
-
Then the output should contain "Removing unknown client 'one'"
|
17
|
-
And the vault item 'test/item' should be encrypted for 'three'
|
18
|
-
And the vault item 'test/item' should not be encrypted for 'one,two'
|
19
|
-
And 'three' should be a client for the vault item 'test/item'
|
20
|
-
And 'one,two' should not be a client for the vault item 'test/item'
|
21
|
-
|
22
10
|
Scenario: Prune clients when rotating keys
|
23
11
|
Given a local mode chef repo with nodes 'one,two,three'
|
24
12
|
And I create a vault item 'test/item' containing the JSON '{"foo": "bar"}' encrypted for 'one,two,three'
|
25
13
|
Then the vault item 'test/item' should be encrypted for 'one,two,three'
|
26
|
-
And I delete
|
14
|
+
And I delete node 'one' from the Chef server
|
27
15
|
And I rotate the keys for vault item 'test/item' with the 'clean-unknown-clients' option
|
28
16
|
Then the output should contain "Removing unknown client 'one'"
|
29
17
|
And the vault item 'test/item' should be encrypted for 'two,three'
|
@@ -35,7 +23,7 @@ Feature: clean unknown clients on key rotation
|
|
35
23
|
Given a local mode chef repo with nodes 'one,two,three'
|
36
24
|
And I create a vault item 'test/item' containing the JSON '{"foo": "bar"}' encrypted for 'one,two,three'
|
37
25
|
Then the vault item 'test/item' should be encrypted for 'one,two,three'
|
38
|
-
And I delete
|
26
|
+
And I delete nodes 'one,two' from the Chef server
|
39
27
|
And I rotate all keys with the 'clean-unknown-clients' option
|
40
28
|
Then the output should contain "Removing unknown client 'one'"
|
41
29
|
And the output should contain "Removing unknown client 'two'"
|
data/lib/chef-vault/item.rb
CHANGED
@@ -172,6 +172,9 @@ class ChefVault
|
|
172
172
|
def rotate_keys!(clean_unknown_clients = false)
|
173
173
|
@secret = generate_secret
|
174
174
|
|
175
|
+
# clean existing encrypted data for clients/admins
|
176
|
+
keys.clear_encrypted
|
177
|
+
|
175
178
|
unless get_clients.empty?
|
176
179
|
# a bit of a misnomer; this doesn't remove unknown
|
177
180
|
# admins, just clients which are nodes
|
@@ -411,15 +414,11 @@ class ChefVault
|
|
411
414
|
|
412
415
|
# checks if a node exists on the Chef server by performing
|
413
416
|
# a search against the node index. If the search returns no
|
414
|
-
# results, the node does not exist.
|
415
|
-
# check if there is a matching client
|
417
|
+
# results, the node does not exist.
|
416
418
|
# @param nodename [String] the name of the node
|
417
419
|
# @return [Boolean] whether the node exists or not
|
418
420
|
def node_exists?(nodename)
|
419
|
-
|
420
|
-
if client_exists?(nodename)
|
421
|
-
search_results.include?(nodename)
|
422
|
-
end
|
421
|
+
search_results.include?(nodename)
|
423
422
|
end
|
424
423
|
|
425
424
|
# checks if a client exists on the Chef server. If we get back
|
data/lib/chef-vault/item_keys.rb
CHANGED
@@ -39,7 +39,7 @@ class ChefVault
|
|
39
39
|
ckey = @cache[key]
|
40
40
|
return ckey unless ckey.nil?
|
41
41
|
# check if the key is saved in sparse mode
|
42
|
-
skey = sparse_key(sparse_id(key))
|
42
|
+
skey = sparse_key(sparse_id(key)) if sparse?
|
43
43
|
if skey
|
44
44
|
skey[key]
|
45
45
|
else
|
@@ -53,7 +53,7 @@ class ChefVault
|
|
53
53
|
ckey = @cache[key]
|
54
54
|
return (ckey ? true : false) unless ckey.nil?
|
55
55
|
# check if the key is saved in sparse mode
|
56
|
-
return true
|
56
|
+
return true if sparse? && sparse_key(sparse_id(key))
|
57
57
|
# fallback to non-sparse mode if sparse key is not found
|
58
58
|
@raw_data.keys.include?(key)
|
59
59
|
end
|
@@ -64,14 +64,21 @@ class ChefVault
|
|
64
64
|
raise ChefVault::Exceptions::V1Format,
|
65
65
|
"cannot manage a v1 vault. See UPGRADE.md for help"
|
66
66
|
end
|
67
|
-
@cache[chef_key.name] = ChefVault::ItemKeys.encode_key(chef_key.key, data_bag_shared_secret)
|
67
|
+
@cache[chef_key.name] = self[chef_key.name] || ChefVault::ItemKeys.encode_key(chef_key.key, data_bag_shared_secret)
|
68
68
|
@raw_data[type] << chef_key.name unless @raw_data[type].include?(chef_key.name)
|
69
69
|
@raw_data[type]
|
70
70
|
end
|
71
71
|
|
72
|
+
def clear_encrypted
|
73
|
+
@cache.clear
|
74
|
+
self["clients"].each { |client| @raw_data.delete(client) }
|
75
|
+
self["admins"].each { |admin| @raw_data.delete(admin) }
|
76
|
+
end
|
77
|
+
|
72
78
|
def delete(chef_key)
|
73
79
|
@cache[chef_key.name] = false
|
74
80
|
raw_data[chef_key.type].delete(chef_key.name)
|
81
|
+
raw_data.delete(chef_key.name)
|
75
82
|
end
|
76
83
|
|
77
84
|
def mode(mode = nil)
|
@@ -213,6 +220,10 @@ class ChefVault
|
|
213
220
|
|
214
221
|
# @private
|
215
222
|
|
223
|
+
def sparse?
|
224
|
+
@raw_data["mode"] == "sparse"
|
225
|
+
end
|
226
|
+
|
216
227
|
def sparse_id(key, item_id = @raw_data["id"])
|
217
228
|
"#{item_id.chomp("_keys")}_key_#{key}"
|
218
229
|
end
|
data/lib/chef-vault/version.rb
CHANGED
@@ -36,12 +36,27 @@ RSpec.describe ChefVault::ItemKeys do
|
|
36
36
|
keys.delete(chef_key)
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
context "when key is already there" do
|
40
|
+
it "keeps the encoded key in the data bag item under the actor's name and the name in the raw data" do
|
41
|
+
expect(described_class).not_to receive(:encode_key).with(public_key_string, shared_secret)
|
42
|
+
keys.add(chef_key, shared_secret)
|
43
|
+
expect(keys[name]).not_to be_empty
|
44
|
+
expect(keys[type].include?(name)).to eq(true)
|
45
|
+
expect(keys.include?(name)).to eq(true)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "when keys not already there" do
|
50
|
+
before do
|
51
|
+
keys.delete(chef_key)
|
52
|
+
end
|
53
|
+
it "stores the encoded key in the data bag item under the actor's name and the name in the raw data" do
|
54
|
+
expect(described_class).to receive(:encode_key).with(public_key_string, shared_secret).and_return("encrypted_result")
|
55
|
+
keys.add(chef_key, shared_secret)
|
56
|
+
expect(keys[name]).to eq("encrypted_result")
|
57
|
+
expect(keys[type].include?(name)).to eq(true)
|
58
|
+
expect(keys.include?(name)).to eq(true)
|
59
|
+
end
|
45
60
|
end
|
46
61
|
end
|
47
62
|
|
@@ -5,6 +5,11 @@ RSpec.describe ChefVault::Item do
|
|
5
5
|
|
6
6
|
before do
|
7
7
|
item["foo"] = "bar"
|
8
|
+
http_response = double("http_response")
|
9
|
+
allow(http_response).to receive(:code).and_return("404")
|
10
|
+
non_existing = Net::HTTPServerException.new("http error message", http_response)
|
11
|
+
|
12
|
+
allow(Chef::DataBagItem).to receive(:load).with(anything, /_key_/).and_raise(non_existing)
|
8
13
|
end
|
9
14
|
|
10
15
|
describe "vault probe predicates" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-vault
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thom May
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -116,6 +116,7 @@ files:
|
|
116
116
|
- Rakefile
|
117
117
|
- THEORY.md
|
118
118
|
- UPGRADE.md
|
119
|
+
- appveyor.yml
|
119
120
|
- bin/chef-vault
|
120
121
|
- chef-vault.gemspec
|
121
122
|
- features/clean.feature
|
@@ -193,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
194
|
version: '0'
|
194
195
|
requirements: []
|
195
196
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.
|
197
|
+
rubygems_version: 2.6.11
|
197
198
|
signing_key:
|
198
199
|
specification_version: 4
|
199
200
|
summary: Data encryption support for Chef using data bags
|