cfn-guardian 0.1.0 → 0.6.3

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 (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