cfn-guardian 0.1.0 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +1 -0
  3. data/.github/workflows/build-gem.yml +25 -0
  4. data/.github/workflows/release-gem.yml +25 -0
  5. data/.github/workflows/release-image.yml +33 -0
  6. data/.rspec +1 -0
  7. data/Dockerfile +19 -0
  8. data/Gemfile.lock +39 -21
  9. data/README.md +9 -378
  10. data/cfn-guardian.gemspec +7 -5
  11. data/docs/alarm_templates.md +130 -0
  12. data/docs/cli.md +182 -0
  13. data/docs/composite_alarms.md +24 -0
  14. data/docs/custom_checks/azure_file_check.md +28 -0
  15. data/docs/custom_checks/domain_expiry.md +10 -0
  16. data/docs/custom_checks/http.md +59 -0
  17. data/docs/custom_checks/log_group_metric_filters.md +27 -0
  18. data/docs/custom_checks/nrpe.md +29 -0
  19. data/docs/custom_checks/port.md +40 -0
  20. data/docs/custom_checks/sftp.md +73 -0
  21. data/docs/custom_checks/sql.md +44 -0
  22. data/docs/custom_checks/tls.md +25 -0
  23. data/docs/custom_metrics.md +71 -0
  24. data/docs/event_subscriptions.md +67 -0
  25. data/docs/maintenance_mode.md +85 -0
  26. data/docs/notifiers.md +33 -0
  27. data/docs/overview.md +22 -0
  28. data/docs/resources.md +93 -0
  29. data/docs/variables.md +58 -0
  30. data/lib/cfnguardian.rb +325 -37
  31. data/lib/cfnguardian/cloudwatch.rb +132 -0
  32. data/lib/cfnguardian/codecommit.rb +54 -0
  33. data/lib/cfnguardian/codepipeline.rb +138 -0
  34. data/lib/cfnguardian/compile.rb +142 -18
  35. data/lib/cfnguardian/config/defaults.yaml +103 -0
  36. data/lib/cfnguardian/deploy.rb +2 -16
  37. data/lib/cfnguardian/display_formatter.rb +163 -0
  38. data/lib/cfnguardian/drift.rb +79 -0
  39. data/lib/cfnguardian/error.rb +4 -0
  40. data/lib/cfnguardian/log.rb +0 -1
  41. data/lib/cfnguardian/models/alarm.rb +193 -59
  42. data/lib/cfnguardian/models/check.rb +128 -33
  43. data/lib/cfnguardian/models/composite.rb +21 -0
  44. data/lib/cfnguardian/models/event.rb +201 -49
  45. data/lib/cfnguardian/models/event_subscription.rb +96 -0
  46. data/lib/cfnguardian/models/metric_filter.rb +28 -0
  47. data/lib/cfnguardian/resources/amazonmq_rabbitmq.rb +136 -0
  48. data/lib/cfnguardian/resources/application_targetgroup.rb +2 -0
  49. data/lib/cfnguardian/resources/azure_file.rb +20 -0
  50. data/lib/cfnguardian/resources/base.rb +155 -33
  51. data/lib/cfnguardian/resources/ec2_instance.rb +11 -0
  52. data/lib/cfnguardian/resources/ecs_service.rb +2 -2
  53. data/lib/cfnguardian/resources/http.rb +17 -1
  54. data/lib/cfnguardian/resources/internal_http.rb +74 -0
  55. data/lib/cfnguardian/resources/internal_port.rb +33 -0
  56. data/lib/cfnguardian/resources/internal_sftp.rb +58 -0
  57. data/lib/cfnguardian/resources/log_group.rb +26 -0
  58. data/lib/cfnguardian/resources/network_targetgroup.rb +1 -0
  59. data/lib/cfnguardian/resources/port.rb +25 -0
  60. data/lib/cfnguardian/resources/rds_cluster.rb +14 -0
  61. data/lib/cfnguardian/resources/rds_instance.rb +73 -0
  62. data/lib/cfnguardian/resources/redshift_cluster.rb +2 -2
  63. data/lib/cfnguardian/resources/sftp.rb +50 -0
  64. data/lib/cfnguardian/resources/sql.rb +3 -3
  65. data/lib/cfnguardian/resources/tls.rb +66 -0
  66. data/lib/cfnguardian/s3.rb +3 -2
  67. data/lib/cfnguardian/stacks/main.rb +94 -72
  68. data/lib/cfnguardian/stacks/resources.rb +111 -43
  69. data/lib/cfnguardian/string.rb +12 -0
  70. data/lib/cfnguardian/version.rb +1 -1
  71. metadata +133 -10
@@ -1,4 +1,6 @@
1
1
  class String
2
+ include Term::ANSIColor
3
+
2
4
  def to_underscore
3
5
  self.gsub(/::/, '/').
4
6
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
@@ -16,4 +18,14 @@ class String
16
18
  map(&:capitalize).join.
17
19
  gsub(/[^0-9A-Za-z]/, '')
18
20
  end
21
+
22
+ def to_heading
23
+ self.split('_').collect(&:capitalize).join(' ')
24
+ end
25
+
26
+ def word_wrap(with=100)
27
+ self.scan(/\S.{0,#{with}}\S(?=\s|$)|\S+/).
28
+ map {|line| line + "\n"}.
29
+ join('')
30
+ end
19
31
  end
@@ -1,4 +1,4 @@
1
1
  module CfnGuardian
2
- VERSION = "0.1.0"
2
+ VERSION = "0.6.3"
3
3
  CHANGE_SET_VERSION = VERSION.gsub('.', '-').freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-guardian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guslington
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-20 00:00:00.000000000 Z
11
+ date: 2021-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -65,7 +65,7 @@ dependencies:
65
65
  - !ruby/object:Gem::Version
66
66
  version: '2'
67
67
  - !ruby/object:Gem::Dependency
68
- name: aws-sdk-s3
68
+ name: term-ansicolor
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
@@ -84,13 +84,33 @@ dependencies:
84
84
  - - "<"
85
85
  - !ruby/object:Gem::Version
86
86
  version: '2'
87
+ - !ruby/object:Gem::Dependency
88
+ name: aws-sdk-s3
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '1.60'
94
+ - - "<"
95
+ - !ruby/object:Gem::Version
96
+ version: '2'
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.60'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '2'
87
107
  - !ruby/object:Gem::Dependency
88
108
  name: aws-sdk-cloudformation
89
109
  requirement: !ruby/object:Gem::Requirement
90
110
  requirements:
91
111
  - - "~>"
92
112
  - !ruby/object:Gem::Version
93
- version: '1'
113
+ version: '1.31'
94
114
  - - "<"
95
115
  - !ruby/object:Gem::Version
96
116
  version: '2'
@@ -100,7 +120,67 @@ dependencies:
100
120
  requirements:
101
121
  - - "~>"
102
122
  - !ruby/object:Gem::Version
103
- version: '1'
123
+ version: '1.31'
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: '2'
127
+ - !ruby/object:Gem::Dependency
128
+ name: aws-sdk-cloudwatch
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '1.28'
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '2'
137
+ type: :runtime
138
+ prerelease: false
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '1.28'
144
+ - - "<"
145
+ - !ruby/object:Gem::Version
146
+ version: '2'
147
+ - !ruby/object:Gem::Dependency
148
+ name: aws-sdk-codecommit
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.28'
154
+ - - "<"
155
+ - !ruby/object:Gem::Version
156
+ version: '2'
157
+ type: :runtime
158
+ prerelease: false
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: '1.28'
164
+ - - "<"
165
+ - !ruby/object:Gem::Version
166
+ version: '2'
167
+ - !ruby/object:Gem::Dependency
168
+ name: aws-sdk-codepipeline
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.28'
174
+ - - "<"
175
+ - !ruby/object:Gem::Version
176
+ version: '2'
177
+ type: :runtime
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '1.28'
104
184
  - - "<"
105
185
  - !ruby/object:Gem::Version
106
186
  version: '2'
@@ -124,14 +204,14 @@ dependencies:
124
204
  requirements:
125
205
  - - "~>"
126
206
  - !ruby/object:Gem::Version
127
- version: '10.0'
207
+ version: '13.0'
128
208
  type: :development
129
209
  prerelease: false
130
210
  version_requirements: !ruby/object:Gem::Requirement
131
211
  requirements:
132
212
  - - "~>"
133
213
  - !ruby/object:Gem::Version
134
- version: '10.0'
214
+ version: '13.0'
135
215
  description: Manages AWS cloudwatch alarms with default templates using cloudformation
136
216
  email:
137
217
  - itsupport@base2services.com
@@ -140,25 +220,62 @@ executables:
140
220
  extensions: []
141
221
  extra_rdoc_files: []
142
222
  files:
223
+ - ".dockerignore"
224
+ - ".github/workflows/build-gem.yml"
225
+ - ".github/workflows/release-gem.yml"
226
+ - ".github/workflows/release-image.yml"
143
227
  - ".gitignore"
228
+ - ".rspec"
229
+ - Dockerfile
144
230
  - Gemfile
145
231
  - Gemfile.lock
146
232
  - LICENSE.txt
147
233
  - README.md
148
234
  - Rakefile
149
235
  - cfn-guardian.gemspec
236
+ - docs/alarm_templates.md
237
+ - docs/cli.md
238
+ - docs/composite_alarms.md
239
+ - docs/custom_checks/azure_file_check.md
240
+ - docs/custom_checks/domain_expiry.md
241
+ - docs/custom_checks/http.md
242
+ - docs/custom_checks/log_group_metric_filters.md
243
+ - docs/custom_checks/nrpe.md
244
+ - docs/custom_checks/port.md
245
+ - docs/custom_checks/sftp.md
246
+ - docs/custom_checks/sql.md
247
+ - docs/custom_checks/tls.md
248
+ - docs/custom_metrics.md
249
+ - docs/event_subscriptions.md
250
+ - docs/maintenance_mode.md
251
+ - docs/notifiers.md
252
+ - docs/overview.md
253
+ - docs/resources.md
254
+ - docs/variables.md
150
255
  - exe/cfn-guardian
151
256
  - lib/cfnguardian.rb
257
+ - lib/cfnguardian/cloudwatch.rb
258
+ - lib/cfnguardian/codecommit.rb
259
+ - lib/cfnguardian/codepipeline.rb
152
260
  - lib/cfnguardian/compile.rb
261
+ - lib/cfnguardian/config/defaults.yaml
153
262
  - lib/cfnguardian/deploy.rb
263
+ - lib/cfnguardian/display_formatter.rb
264
+ - lib/cfnguardian/drift.rb
265
+ - lib/cfnguardian/error.rb
154
266
  - lib/cfnguardian/log.rb
155
267
  - lib/cfnguardian/models/alarm.rb
156
268
  - lib/cfnguardian/models/check.rb
269
+ - lib/cfnguardian/models/composite.rb
157
270
  - lib/cfnguardian/models/event.rb
271
+ - lib/cfnguardian/models/event_subscription.rb
272
+ - lib/cfnguardian/models/metric_filter.rb
158
273
  - lib/cfnguardian/resources/amazonmq_broker.rb
274
+ - lib/cfnguardian/resources/amazonmq_rabbitmq.rb
159
275
  - lib/cfnguardian/resources/apigateway.rb
160
276
  - lib/cfnguardian/resources/application_targetgroup.rb
161
277
  - lib/cfnguardian/resources/autoscaling_group.rb
278
+ - lib/cfnguardian/resources/azure_file.rb
162
279
  - lib/cfnguardian/resources/base.rb
163
280
  - lib/cfnguardian/resources/cloudfront_distribution.rb
164
281
  - lib/cfnguardian/resources/domain_expiry.rb
@@ -170,14 +287,22 @@ files:
170
287
  - lib/cfnguardian/resources/elastic_loadbalancer.rb
171
288
  - lib/cfnguardian/resources/elasticache_replication_group.rb
172
289
  - lib/cfnguardian/resources/http.rb
290
+ - lib/cfnguardian/resources/internal_http.rb
291
+ - lib/cfnguardian/resources/internal_port.rb
292
+ - lib/cfnguardian/resources/internal_sftp.rb
173
293
  - lib/cfnguardian/resources/lambda.rb
294
+ - lib/cfnguardian/resources/log_group.rb
174
295
  - lib/cfnguardian/resources/network_targetgroup.rb
175
296
  - lib/cfnguardian/resources/nrpe.rb
297
+ - lib/cfnguardian/resources/port.rb
298
+ - lib/cfnguardian/resources/rds_cluster.rb
176
299
  - lib/cfnguardian/resources/rds_cluster_instance.rb
177
300
  - lib/cfnguardian/resources/rds_instance.rb
178
301
  - lib/cfnguardian/resources/redshift_cluster.rb
302
+ - lib/cfnguardian/resources/sftp.rb
179
303
  - lib/cfnguardian/resources/sql.rb
180
304
  - lib/cfnguardian/resources/sqs_queue.rb
305
+ - lib/cfnguardian/resources/tls.rb
181
306
  - lib/cfnguardian/s3.rb
182
307
  - lib/cfnguardian/stacks/main.rb
183
308
  - lib/cfnguardian/stacks/resources.rb
@@ -188,7 +313,6 @@ homepage: https://github.com/base2Services/cfn-guardian
188
313
  licenses:
189
314
  - MIT
190
315
  metadata:
191
- allowed_push_host: https://rubygems.org
192
316
  homepage_uri: https://github.com/base2Services/cfn-guardian
193
317
  source_code_uri: https://github.com/base2Services/cfn-guardian
194
318
  changelog_uri: https://github.com/base2Services/cfn-guardian
@@ -207,8 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
331
  - !ruby/object:Gem::Version
208
332
  version: '0'
209
333
  requirements: []
210
- rubyforge_project:
211
- rubygems_version: 2.7.6
334
+ rubygems_version: 3.1.4
212
335
  signing_key:
213
336
  specification_version: 4
214
337
  summary: Manages AWS cloudwatch alarms with default templates using cloudformation