miam 0.2.2.beta → 0.2.2.beta2
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/README.md +70 -1
- data/lib/miam.rb +2 -0
- data/lib/miam/dsl/context.rb +16 -3
- data/lib/miam/dsl/context/group.rb +4 -1
- data/lib/miam/dsl/context/role.rb +4 -1
- data/lib/miam/dsl/context/user.rb +4 -1
- data/lib/miam/template_helper.rb +20 -0
- data/lib/miam/version.rb +1 -1
- data/miam.gemspec +1 -0
- data/spec/miam/create_spec.rb +157 -54
- metadata +43 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02694ddfe3ad49f32f2105b74f6367f52cdf0eaa
|
4
|
+
data.tar.gz: 950a3109de9a191931aaadf6313b9628da4f943c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 332e80bae95488ee96f9b269d120cb80d896ba7eec058419e5498f784c45cc40a5018f9a14c5c59d2995a2c326ac100d8c607690d23798e7a3114ca9ac62ddcf
|
7
|
+
data.tar.gz: c7f97f201ab25b1765e8dc8fa445110354c41546f8ad6c9a376a85b3e3fffc0e72b067967151eed40fab6fc9896266a3012cd1b8a0ff4af5beddcbdfb3d4aa02
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -6,7 +6,7 @@ It defines the state of IAM using DSL, and updates IAM according to DSL.
|
|
6
6
|
|
7
7
|
[](http://badge.fury.io/rb/miam)
|
8
8
|
[](https://travis-ci.org/winebarrel/miam)
|
9
|
-
[](https://coveralls.io/github/winebarrel/miam?branch=master)
|
10
10
|
|
11
11
|
**Notice**
|
12
12
|
|
@@ -15,6 +15,9 @@ It defines the state of IAM using DSL, and updates IAM according to DSL.
|
|
15
15
|
* `>= 0.2.1`
|
16
16
|
* Support Managed Policy attach/detach
|
17
17
|
* Support JSON format
|
18
|
+
* `>= 0.2.2`
|
19
|
+
* Improve update (show diff)
|
20
|
+
* Support Template
|
18
21
|
|
19
22
|
## Installation
|
20
23
|
|
@@ -216,5 +219,71 @@ Apply `iam.json` to IAM (dry-run)
|
|
216
219
|
No change
|
217
220
|
```
|
218
221
|
|
222
|
+
## Use Template
|
223
|
+
|
224
|
+
```ruby
|
225
|
+
template "common-policy" do
|
226
|
+
policy "my-policy" do
|
227
|
+
{"Version"=>context.version,
|
228
|
+
"Statement"=>
|
229
|
+
[{"Action"=>
|
230
|
+
["s3:Get*",
|
231
|
+
"s3:List*"],
|
232
|
+
"Effect"=>"Allow",
|
233
|
+
"Resource"=>"*"}]}
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
template "common-role-attrs" do
|
238
|
+
assume_role_policy_document do
|
239
|
+
{"Version"=>context.version,
|
240
|
+
"Statement"=>
|
241
|
+
[{"Sid"=>"",
|
242
|
+
"Effect"=>"Allow",
|
243
|
+
"Principal"=>{"Service"=>"ec2.amazonaws.com"},
|
244
|
+
"Action"=>"sts:AssumeRole"}]}
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
user "bob", :path => "/developer/" do
|
249
|
+
login_profile :password_reset_required=>true
|
250
|
+
|
251
|
+
groups(
|
252
|
+
"Admin"
|
253
|
+
)
|
254
|
+
|
255
|
+
include_template "common-policy", version: "2012-10-17"
|
256
|
+
end
|
257
|
+
|
258
|
+
user "mary", :path => "/staff/" do
|
259
|
+
# login_profile :password_reset_required=>true
|
260
|
+
|
261
|
+
groups(
|
262
|
+
# no group
|
263
|
+
)
|
264
|
+
|
265
|
+
context.version = "2012-10-17"
|
266
|
+
include_template "common-policy"
|
267
|
+
|
268
|
+
attached_managed_policies(
|
269
|
+
"arn:aws:iam::aws:policy/AdministratorAccess",
|
270
|
+
"arn:aws:iam::123456789012:policy/my_policy"
|
271
|
+
)
|
272
|
+
end
|
273
|
+
|
274
|
+
role "S3", :path => "/" do
|
275
|
+
instance_profiles(
|
276
|
+
"S3"
|
277
|
+
)
|
278
|
+
|
279
|
+
include_template "common-role-attrs"
|
280
|
+
|
281
|
+
policy "S3-role-policy" do
|
282
|
+
{"Version"=>"2012-10-17",
|
283
|
+
"Statement"=>[{"Effect"=>"Allow", "Action"=>"*", "Resource"=>"*"}]}
|
284
|
+
end
|
285
|
+
end
|
286
|
+
```
|
287
|
+
|
219
288
|
## Similar tools
|
220
289
|
* [Codenize.tools](http://codenize.tools/)
|
data/lib/miam.rb
CHANGED
@@ -10,9 +10,11 @@ require 'ruby-progressbar'
|
|
10
10
|
require 'parallel'
|
11
11
|
require 'term/ansicolor'
|
12
12
|
require 'diffy'
|
13
|
+
require 'hashie'
|
13
14
|
|
14
15
|
module Miam; end
|
15
16
|
require 'miam/logger'
|
17
|
+
require 'miam/template_helper'
|
16
18
|
require 'miam/client'
|
17
19
|
require 'miam/driver'
|
18
20
|
require 'miam/dsl'
|
data/lib/miam/dsl/context.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
class Miam::DSL::Context
|
2
|
+
include Miam::TemplateHelper
|
3
|
+
|
2
4
|
def self.eval(dsl, path, options = {})
|
3
5
|
self.new(path, options) {
|
4
6
|
eval(dsl, binding, path)
|
@@ -11,9 +13,20 @@ class Miam::DSL::Context
|
|
11
13
|
@path = path
|
12
14
|
@options = options
|
13
15
|
@result = {:users => {}, :groups => {}, :roles => {}, :instance_profiles => {}}
|
16
|
+
|
17
|
+
@context = Hashie::Mash.new(
|
18
|
+
:path => path,
|
19
|
+
:options => options,
|
20
|
+
:templates => {}
|
21
|
+
)
|
22
|
+
|
14
23
|
instance_eval(&block)
|
15
24
|
end
|
16
25
|
|
26
|
+
def template(name, &block)
|
27
|
+
@context.templates[name.to_s] = block
|
28
|
+
end
|
29
|
+
|
17
30
|
private
|
18
31
|
|
19
32
|
def require(file)
|
@@ -35,7 +48,7 @@ class Miam::DSL::Context
|
|
35
48
|
raise "User `#{name}` is already defined"
|
36
49
|
end
|
37
50
|
|
38
|
-
attrs = Miam::DSL::Context::User.new(name, &block).result
|
51
|
+
attrs = Miam::DSL::Context::User.new(@context, name, &block).result
|
39
52
|
@result[:users][name] = user_options.merge(attrs)
|
40
53
|
end
|
41
54
|
|
@@ -46,7 +59,7 @@ class Miam::DSL::Context
|
|
46
59
|
raise "Group `#{name}` is already defined"
|
47
60
|
end
|
48
61
|
|
49
|
-
attrs = Miam::DSL::Context::Group.new(name, &block).result
|
62
|
+
attrs = Miam::DSL::Context::Group.new(@context, name, &block).result
|
50
63
|
@result[:groups][name] = group_options.merge(attrs)
|
51
64
|
end
|
52
65
|
|
@@ -57,7 +70,7 @@ class Miam::DSL::Context
|
|
57
70
|
raise "Role `#{name}` is already defined"
|
58
71
|
end
|
59
72
|
|
60
|
-
attrs = Miam::DSL::Context::Role.new(name, &block).result
|
73
|
+
attrs = Miam::DSL::Context::Role.new(@context, name, &block).result
|
61
74
|
@result[:roles][name] = role_options.merge(attrs)
|
62
75
|
end
|
63
76
|
|
@@ -1,6 +1,9 @@
|
|
1
1
|
class Miam::DSL::Context::Group
|
2
|
-
|
2
|
+
include Miam::TemplateHelper
|
3
|
+
|
4
|
+
def initialize(context, name, &block)
|
3
5
|
@group_name = name
|
6
|
+
@context = context.merge(:group_name => name)
|
4
7
|
@result = {:policies => {}, :attached_managed_policies => []}
|
5
8
|
instance_eval(&block)
|
6
9
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
class Miam::DSL::Context::Role
|
2
|
-
|
2
|
+
include Miam::TemplateHelper
|
3
|
+
|
4
|
+
def initialize(context, name, &block)
|
3
5
|
@role_name = name
|
6
|
+
@context = context.merge(:role_name => name)
|
4
7
|
@result = {:instance_profiles => [], :policies => {}, :attached_managed_policies => []}
|
5
8
|
instance_eval(&block)
|
6
9
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
class Miam::DSL::Context::User
|
2
|
-
|
2
|
+
include Miam::TemplateHelper
|
3
|
+
|
4
|
+
def initialize(context, name, &block)
|
3
5
|
@user_name = name
|
6
|
+
@context = context.merge(:user_name => name)
|
4
7
|
@result = {:groups => [], :policies => {}, :attached_managed_policies => []}
|
5
8
|
instance_eval(&block)
|
6
9
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Miam
|
2
|
+
module TemplateHelper
|
3
|
+
def include_template(template_name, context = {})
|
4
|
+
tmplt = @context.templates[template_name.to_s]
|
5
|
+
|
6
|
+
unless tmplt
|
7
|
+
raise "Template `#{template_name}` is not defined"
|
8
|
+
end
|
9
|
+
|
10
|
+
context_orig = @context
|
11
|
+
@context = @context.merge(context)
|
12
|
+
instance_eval(&tmplt)
|
13
|
+
@context = context_orig
|
14
|
+
end
|
15
|
+
|
16
|
+
def context
|
17
|
+
@context
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/miam/version.rb
CHANGED
data/miam.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_dependency 'parallel'
|
26
26
|
spec.add_dependency 'term-ansicolor'
|
27
27
|
spec.add_dependency 'diffy'
|
28
|
+
spec.add_dependency 'hashie'
|
28
29
|
spec.add_development_dependency 'bundler'
|
29
30
|
spec.add_development_dependency 'rake'
|
30
31
|
spec.add_development_dependency 'rspec', '>= 3.0.0'
|
data/spec/miam/create_spec.rb
CHANGED
@@ -85,68 +85,171 @@ describe 'create' do
|
|
85
85
|
context 'when apply' do
|
86
86
|
subject { client }
|
87
87
|
|
88
|
+
let(:expected) do
|
89
|
+
{:users=>
|
90
|
+
{"bob"=>
|
91
|
+
{:path=>"/devloper/",
|
92
|
+
:groups=>["Admin", "SES"],
|
93
|
+
:attached_managed_policies=>[],
|
94
|
+
:policies=>
|
95
|
+
{"S3"=>
|
96
|
+
{"Statement"=>
|
97
|
+
[{"Action"=>["s3:Get*", "s3:List*"],
|
98
|
+
"Effect"=>"Allow",
|
99
|
+
"Resource"=>"*"}]}},
|
100
|
+
:login_profile=>{:password_reset_required=>true}},
|
101
|
+
"mary"=>
|
102
|
+
{:path=>"/staff/",
|
103
|
+
:groups=>[],
|
104
|
+
:attached_managed_policies=>[],
|
105
|
+
:policies=>
|
106
|
+
{"S3"=>
|
107
|
+
{"Statement"=>
|
108
|
+
[{"Action"=>["s3:Get*", "s3:List*"],
|
109
|
+
"Effect"=>"Allow",
|
110
|
+
"Resource"=>"*"}]}}}},
|
111
|
+
:groups=>
|
112
|
+
{"Admin"=>
|
113
|
+
{:path=>"/admin/",
|
114
|
+
:attached_managed_policies=>[],
|
115
|
+
:policies=>
|
116
|
+
{"Admin"=>
|
117
|
+
{"Statement"=>[{"Effect"=>"Allow", "Action"=>"*", "Resource"=>"*"}]}}},
|
118
|
+
"SES"=>
|
119
|
+
{:path=>"/ses/",
|
120
|
+
:attached_managed_policies=>[],
|
121
|
+
:policies=>
|
122
|
+
{"ses-policy"=>
|
123
|
+
{"Statement"=>
|
124
|
+
[{"Effect"=>"Allow",
|
125
|
+
"Action"=>"ses:SendRawEmail",
|
126
|
+
"Resource"=>"*"}]}}}},
|
127
|
+
:roles=>
|
128
|
+
{"my-role"=>
|
129
|
+
{:path=>"/any/",
|
130
|
+
:assume_role_policy_document=>
|
131
|
+
{"Version"=>"2012-10-17",
|
132
|
+
"Statement"=>
|
133
|
+
[{"Sid"=>"",
|
134
|
+
"Effect"=>"Allow",
|
135
|
+
"Principal"=>{"Service"=>"ec2.amazonaws.com"},
|
136
|
+
"Action"=>"sts:AssumeRole"}]},
|
137
|
+
:instance_profiles=>["my-instance-profile"],
|
138
|
+
:attached_managed_policies=>[],
|
139
|
+
:policies=>
|
140
|
+
{"role-policy"=>
|
141
|
+
{"Statement"=>
|
142
|
+
[{"Action"=>["s3:Get*", "s3:List*"],
|
143
|
+
"Effect"=>"Allow",
|
144
|
+
"Resource"=>"*"}]}}}},
|
145
|
+
:instance_profiles=>{"my-instance-profile"=>{:path=>"/profile/"}}}
|
146
|
+
end
|
147
|
+
|
88
148
|
it do
|
89
149
|
updated = apply(subject) { dsl }
|
90
150
|
expect(updated).to be_truthy
|
91
|
-
expect(export).to eq
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
151
|
+
expect(export).to eq expected
|
152
|
+
end
|
153
|
+
|
154
|
+
context 'when using template' do
|
155
|
+
let(:dsl) do
|
156
|
+
<<-RUBY
|
157
|
+
template "bob" do
|
158
|
+
login_profile :password_reset_required=>true
|
159
|
+
|
160
|
+
groups(
|
161
|
+
"Admin",
|
162
|
+
"SES"
|
163
|
+
)
|
164
|
+
|
165
|
+
policy "S3" do
|
166
|
+
{"Statement"=>
|
167
|
+
[{"Action"=>
|
168
|
+
["s3:Get*",
|
169
|
+
"s3:List*"],
|
170
|
+
"Effect"=>"Allow",
|
171
|
+
"Resource"=>"*"}]}
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
template "mary" do
|
176
|
+
policy "S3" do
|
177
|
+
{"Statement"=>
|
178
|
+
[{"Action"=>
|
179
|
+
["s3:Get*",
|
180
|
+
"s3:List*"],
|
181
|
+
"Effect"=>"Allow",
|
182
|
+
"Resource"=>"*"}]}
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
user "bob", :path=>"/devloper/" do
|
187
|
+
include_template context.user_name
|
188
|
+
end
|
189
|
+
|
190
|
+
user "mary", :path=>"/staff/" do
|
191
|
+
include_template context.user_name
|
192
|
+
end
|
193
|
+
|
194
|
+
template "Admin" do
|
195
|
+
policy context.policy_name do
|
196
|
+
{"Statement"=>[{"Effect"=>"Allow", "Action"=>"*", "Resource"=>"*"}]}
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
template "SES" do
|
201
|
+
policy context.policy_name do
|
202
|
+
{"Statement"=>
|
203
|
+
[{"Effect"=>"Allow", "Action"=>"ses:SendRawEmail", "Resource"=>"*"}]}
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
group "Admin", :path=>"/admin/" do
|
208
|
+
include_template context.group_name, policy_name: "Admin"
|
209
|
+
end
|
210
|
+
|
211
|
+
group "SES", :path=>"/ses/" do
|
212
|
+
context.policy_name = "ses-policy"
|
213
|
+
include_template context.group_name
|
214
|
+
end
|
215
|
+
|
216
|
+
template "my-role" do
|
217
|
+
instance_profiles(
|
218
|
+
"my-instance-profile"
|
219
|
+
)
|
220
|
+
|
221
|
+
assume_role_policy_document do
|
134
222
|
{"Version"=>"2012-10-17",
|
135
223
|
"Statement"=>
|
136
224
|
[{"Sid"=>"",
|
137
225
|
"Effect"=>"Allow",
|
138
226
|
"Principal"=>{"Service"=>"ec2.amazonaws.com"},
|
139
|
-
"Action"=>"sts:AssumeRole"}]}
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
{"
|
144
|
-
{"
|
145
|
-
|
146
|
-
"
|
147
|
-
|
148
|
-
|
149
|
-
|
227
|
+
"Action"=>"sts:AssumeRole"}]}
|
228
|
+
end
|
229
|
+
|
230
|
+
policy "role-policy" do
|
231
|
+
{"Statement"=>
|
232
|
+
[{"Action"=>
|
233
|
+
["s3:Get*",
|
234
|
+
"s3:List*"],
|
235
|
+
"Effect"=>"Allow",
|
236
|
+
"Resource"=>"*"}]}
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
role "my-role", :path=>"/any/" do
|
241
|
+
include_template context.role_name
|
242
|
+
end
|
243
|
+
|
244
|
+
instance_profile "my-instance-profile", :path=>"/profile/"
|
245
|
+
RUBY
|
246
|
+
end
|
247
|
+
|
248
|
+
it do
|
249
|
+
updated = apply(subject) { dsl }
|
250
|
+
expect(updated).to be_truthy
|
251
|
+
expect(export).to eq expected
|
252
|
+
end
|
150
253
|
end
|
151
254
|
end
|
152
255
|
|
metadata
CHANGED
@@ -1,153 +1,167 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.2.
|
4
|
+
version: 0.2.2.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09
|
11
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.0.42
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.0.42
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ruby-progressbar
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: parallel
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: term-ansicolor
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: diffy
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: hashie
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '0'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rake
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - ">="
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- -
|
122
|
+
- - ">="
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: 3.0.0
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- -
|
136
|
+
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: 3.0.0
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: rspec-instafail
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- -
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
145
|
version: '0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- -
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: coveralls
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- -
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
159
|
version: '0'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- -
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
166
|
version: '0'
|
153
167
|
description: Miam is a tool to manage IAM. It defines the state of IAM using DSL,
|
@@ -159,9 +173,9 @@ executables:
|
|
159
173
|
extensions: []
|
160
174
|
extra_rdoc_files: []
|
161
175
|
files:
|
162
|
-
- .gitignore
|
163
|
-
- .rspec
|
164
|
-
- .travis.yml
|
176
|
+
- ".gitignore"
|
177
|
+
- ".rspec"
|
178
|
+
- ".travis.yml"
|
165
179
|
- Gemfile
|
166
180
|
- LICENSE.txt
|
167
181
|
- README.md
|
@@ -180,6 +194,7 @@ files:
|
|
180
194
|
- lib/miam/ext/string_ext.rb
|
181
195
|
- lib/miam/logger.rb
|
182
196
|
- lib/miam/password_manager.rb
|
197
|
+
- lib/miam/template_helper.rb
|
183
198
|
- lib/miam/utils.rb
|
184
199
|
- lib/miam/version.rb
|
185
200
|
- miam.gemspec
|
@@ -199,17 +214,17 @@ require_paths:
|
|
199
214
|
- lib
|
200
215
|
required_ruby_version: !ruby/object:Gem::Requirement
|
201
216
|
requirements:
|
202
|
-
- -
|
217
|
+
- - ">="
|
203
218
|
- !ruby/object:Gem::Version
|
204
219
|
version: '0'
|
205
220
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
221
|
requirements:
|
207
|
-
- -
|
222
|
+
- - ">"
|
208
223
|
- !ruby/object:Gem::Version
|
209
224
|
version: 1.3.1
|
210
225
|
requirements: []
|
211
226
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.
|
227
|
+
rubygems_version: 2.4.5
|
213
228
|
signing_key:
|
214
229
|
specification_version: 4
|
215
230
|
summary: Miam is a tool to manage IAM.
|