controls 1.5.1 → 1.6.0
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/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +9 -0
- data/README.md +2 -0
- data/Rakefile +6 -1
- data/apiary.apib +60 -0
- data/controls.gemspec +0 -3
- data/lib/controls/client.rb +11 -4
- data/lib/controls/client/events.rb +21 -0
- data/lib/controls/client/guidance.rb +0 -4
- data/lib/controls/client/security_controls.rb +0 -4
- data/lib/controls/client/threats.rb +0 -4
- data/lib/controls/default.rb +2 -1
- data/lib/controls/ext/dish/plate.rb +8 -10
- data/lib/controls/objects.rb +4 -0
- data/lib/controls/objects/coverage_information.rb +0 -1
- data/lib/controls/objects/event.rb +18 -0
- data/lib/controls/objects/product_change_event_payload.rb +4 -0
- data/lib/controls/objects/security_control_change_event_payload.rb +4 -0
- data/lib/controls/objects/site_change_event_payload.rb +4 -0
- data/lib/controls/version.rb +1 -1
- data/spec/controls/client/assessments_spec.rb +24 -0
- data/spec/controls/client/events_spec.rb +54 -0
- data/spec/matchers.rb +46 -0
- data/spec/spec_helper.rb +14 -0
- metadata +17 -71
- data/docs/Gemfile +0 -10
- data/docs/Rules +0 -31
- data/docs/content/index.md +0 -8
- data/docs/content/v1.md +0 -8
- data/docs/content/v1/authentication.md +0 -3
- data/docs/content/v1/search.md +0 -11
- data/docs/content/v1/troubleshooting.md +0 -3
- data/docs/layouts/default.html +0 -46
- data/docs/layouts/home.html +0 -51
- data/docs/lib/default.rb +0 -2
- data/docs/nanoc.yaml +0 -43
- data/docs/static/css/bootstrap-theme.css +0 -397
- data/docs/static/css/bootstrap-theme.min.css +0 -7
- data/docs/static/css/bootstrap.css +0 -7118
- data/docs/static/css/bootstrap.min.css +0 -7
- data/docs/static/fonts/glyphicons-halflings-regular.eot +0 -0
- data/docs/static/fonts/glyphicons-halflings-regular.svg +0 -229
- data/docs/static/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/docs/static/fonts/glyphicons-halflings-regular.woff +0 -0
- data/docs/static/images/controlsinsight-shield.png +0 -0
- data/docs/static/images/controlsinsight.png +0 -0
- data/docs/static/js/bootstrap.js +0 -2006
- data/docs/static/js/bootstrap.min.js +0 -7
- data/spec/controls_spec.rb +0 -22
- data/spec/helper.rb +0 -42
data/spec/matchers.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rspec/expectations'
|
2
|
+
|
3
|
+
# Assessment Matchers
|
4
|
+
RSpec::Matchers.define :match_assessment_format do
|
5
|
+
match do |resource|
|
6
|
+
# Reverses the coercion
|
7
|
+
resource.timestamp = resource.timestamp.to_i
|
8
|
+
[
|
9
|
+
resource.high_risk_asset_count,
|
10
|
+
resource.id,
|
11
|
+
resource.low_risk_asset_count,
|
12
|
+
resource.medium_risk_asset_count,
|
13
|
+
resource.timestamp,
|
14
|
+
resource.total_asset_count
|
15
|
+
].each do |attribute|
|
16
|
+
expect(attribute.class).to eq(Fixnum)
|
17
|
+
end
|
18
|
+
|
19
|
+
expect(resource.assessing.class).to include([TrueClass, FalseClass])
|
20
|
+
expect(resource.overall_risk_score.class).to include([Float])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
#RSpec::Matchers.define :match_event_format do
|
25
|
+
# [Fixnum].include? resource.createdAt
|
26
|
+
# [Hash].include? resource.payload
|
27
|
+
# [String].include? resource.type
|
28
|
+
# [String].include? resource.user
|
29
|
+
#end
|
30
|
+
#
|
31
|
+
#RSpec::Matchers.define :match_site_change_event_payload_format do
|
32
|
+
# [TrueClass,FalseClass].include? resource.impactsGrade.class
|
33
|
+
# [String].include? resource.notes.class
|
34
|
+
# [String].include? resource.productVersion.class
|
35
|
+
#end
|
36
|
+
#
|
37
|
+
#RSpec::Matchers.define :match_security_control_change_event_payload_format do
|
38
|
+
# [String,NilClass].include?resource.reason
|
39
|
+
# [String]}]].include?resource.changes:[Array,[Hash,{securityControlName:[String],action
|
40
|
+
#end
|
41
|
+
#
|
42
|
+
#RSpec::Matchers.define :match__change_event_payload_format do
|
43
|
+
# [String,NilClass].include?resource.reason
|
44
|
+
# [Fixnum]}]].include?resource.enabledSites:[Array,[Hash,{name:[String],id
|
45
|
+
# [TrueClass.include?resource.importAllFalseClass]
|
46
|
+
#end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'controls'
|
2
|
+
require_relative './matchers.rb'
|
3
|
+
|
4
|
+
module SpecHelpers
|
5
|
+
def login_to_environment
|
6
|
+
# Allow self-signed certs in continuous integration
|
7
|
+
Controls.verify_ssl = false
|
8
|
+
Controls.login(ENV['CONTROLS_USERNAME'], ENV['CONTROLS_PASSWORD'])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec.configure do |rspec|
|
13
|
+
rspec.include SpecHelpers
|
14
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: controls
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erran Carey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dish
|
@@ -80,48 +80,6 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: vcr
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: yard
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
83
|
description: This gem interfaces to Rapid7's **controls**insight API.
|
126
84
|
email:
|
127
85
|
- "'me@errancarey.com'"
|
@@ -131,35 +89,14 @@ extra_rdoc_files: []
|
|
131
89
|
files:
|
132
90
|
- ".gitignore"
|
133
91
|
- ".ruby-version"
|
92
|
+
- ".travis.yml"
|
134
93
|
- ".yardopts"
|
135
94
|
- Gemfile
|
136
95
|
- LICENSE.md
|
137
96
|
- README.md
|
138
97
|
- Rakefile
|
98
|
+
- apiary.apib
|
139
99
|
- controls.gemspec
|
140
|
-
- docs/Gemfile
|
141
|
-
- docs/Rules
|
142
|
-
- docs/content/index.md
|
143
|
-
- docs/content/v1.md
|
144
|
-
- docs/content/v1/authentication.md
|
145
|
-
- docs/content/v1/search.md
|
146
|
-
- docs/content/v1/troubleshooting.md
|
147
|
-
- docs/layouts/default.html
|
148
|
-
- docs/layouts/home.html
|
149
|
-
- docs/lib/default.rb
|
150
|
-
- docs/nanoc.yaml
|
151
|
-
- docs/static/css/bootstrap-theme.css
|
152
|
-
- docs/static/css/bootstrap-theme.min.css
|
153
|
-
- docs/static/css/bootstrap.css
|
154
|
-
- docs/static/css/bootstrap.min.css
|
155
|
-
- docs/static/fonts/glyphicons-halflings-regular.eot
|
156
|
-
- docs/static/fonts/glyphicons-halflings-regular.svg
|
157
|
-
- docs/static/fonts/glyphicons-halflings-regular.ttf
|
158
|
-
- docs/static/fonts/glyphicons-halflings-regular.woff
|
159
|
-
- docs/static/images/controlsinsight-shield.png
|
160
|
-
- docs/static/images/controlsinsight.png
|
161
|
-
- docs/static/js/bootstrap.js
|
162
|
-
- docs/static/js/bootstrap.min.js
|
163
100
|
- lib/controls.rb
|
164
101
|
- lib/controls/authentication.rb
|
165
102
|
- lib/controls/client.rb
|
@@ -167,6 +104,7 @@ files:
|
|
167
104
|
- lib/controls/client/assets.rb
|
168
105
|
- lib/controls/client/configurations.rb
|
169
106
|
- lib/controls/client/coverage.rb
|
107
|
+
- lib/controls/client/events.rb
|
170
108
|
- lib/controls/client/guidance.rb
|
171
109
|
- lib/controls/client/prioritized_guidance.rb
|
172
110
|
- lib/controls/client/security_controls.rb
|
@@ -182,17 +120,23 @@ files:
|
|
182
120
|
- lib/controls/objects/configuration.rb
|
183
121
|
- lib/controls/objects/configuration_finding.rb
|
184
122
|
- lib/controls/objects/coverage_information.rb
|
123
|
+
- lib/controls/objects/event.rb
|
185
124
|
- lib/controls/objects/guidance.rb
|
125
|
+
- lib/controls/objects/product_change_event_payload.rb
|
186
126
|
- lib/controls/objects/security_control.rb
|
127
|
+
- lib/controls/objects/security_control_change_event_payload.rb
|
187
128
|
- lib/controls/objects/security_control_coverage.rb
|
188
129
|
- lib/controls/objects/security_control_finding.rb
|
130
|
+
- lib/controls/objects/site_change_event_payload.rb
|
189
131
|
- lib/controls/objects/threat.rb
|
190
132
|
- lib/controls/objects/threat_vector.rb
|
191
133
|
- lib/controls/objects/trend.rb
|
192
134
|
- lib/controls/response.rb
|
193
135
|
- lib/controls/version.rb
|
194
|
-
- spec/
|
195
|
-
- spec/
|
136
|
+
- spec/controls/client/assessments_spec.rb
|
137
|
+
- spec/controls/client/events_spec.rb
|
138
|
+
- spec/matchers.rb
|
139
|
+
- spec/spec_helper.rb
|
196
140
|
homepage: ''
|
197
141
|
licenses:
|
198
142
|
- MIT
|
@@ -218,6 +162,8 @@ signing_key:
|
|
218
162
|
specification_version: 4
|
219
163
|
summary: This gem interfaces to Rapid7's **controls**insight API.
|
220
164
|
test_files:
|
221
|
-
- spec/
|
222
|
-
- spec/
|
165
|
+
- spec/controls/client/assessments_spec.rb
|
166
|
+
- spec/controls/client/events_spec.rb
|
167
|
+
- spec/matchers.rb
|
168
|
+
- spec/spec_helper.rb
|
223
169
|
has_rdoc:
|
data/docs/Gemfile
DELETED
data/docs/Rules
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
compile '/static/*' do
|
4
|
-
end
|
5
|
-
|
6
|
-
compile '/stylesheet/' do
|
7
|
-
end
|
8
|
-
|
9
|
-
compile '*' do
|
10
|
-
unless item.binary?
|
11
|
-
filter :erb
|
12
|
-
filter :maruku
|
13
|
-
filter :colorize_syntax,
|
14
|
-
:colorizers => { :ruby => :pygmentsrb, :json => :pygmentsrb }
|
15
|
-
layout item[:layout] || 'default'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
route '/static/*' do
|
20
|
-
item.identifier[7..-2]
|
21
|
-
end
|
22
|
-
|
23
|
-
route '*' do
|
24
|
-
if item.binary?
|
25
|
-
item.identifier.chop + '.' + item[:extension]
|
26
|
-
else
|
27
|
-
item.identifier + 'index.html'
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
layout '*', :erb
|
data/docs/content/index.md
DELETED
data/docs/content/v1.md
DELETED
data/docs/content/v1/search.md
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Search
|
3
|
-
---
|
4
|
-
## Asset Search {: #asset-search}
|
5
|
-
Find assets by multiple criteria including, but not limited to the
|
6
|
-
asset's:
|
7
|
-
- name
|
8
|
-
- hostname
|
9
|
-
- IP address
|
10
|
-
|
11
|
-
<pre><code>GET /assets/search?query={query}{&page,per_page,sort}</code></pre>
|
data/docs/layouts/default.html
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
<!DOCTYPE HTML>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="utf-8">
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
-
<base href="http://rapid7.github.io/controlsinsight.rb/">
|
7
|
-
<title><%= @item[:title] %> | ControlsInsight API</title>
|
8
|
-
<link rel="stylesheet" href="css/bootstrap.css">
|
9
|
-
|
10
|
-
<meta name="generator" content="nanoc <%= Nanoc::VERSION %>">
|
11
|
-
</head>
|
12
|
-
<body>
|
13
|
-
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
|
14
|
-
<a href="#" class="navbar-brand">ControlsInsight</a>
|
15
|
-
<ul class="nav navbar-nav pull-right">
|
16
|
-
<li><a href="#">Overview</a></li>
|
17
|
-
<li><a href="v1/">API</a></li>
|
18
|
-
<li><a href="https://community.rapid7.com/community/controls-insight/blog">Blog</a></li>
|
19
|
-
<li><a href="http://www.rapid7.com/contact/">Support</a></li>
|
20
|
-
</ul>
|
21
|
-
</nav>
|
22
|
-
|
23
|
-
<div class="container">
|
24
|
-
<div class="page-header">
|
25
|
-
<h1><%= @item[:title] %></h1>
|
26
|
-
</div>
|
27
|
-
|
28
|
-
<div class="row">
|
29
|
-
<div class="col-xs-8"><%= yield %></div>
|
30
|
-
|
31
|
-
<div class="col-xs-2"></div>
|
32
|
-
<div class="col-xs-2">
|
33
|
-
<ul class="nav nav-pills nav-stacked">
|
34
|
-
<!-- Overview items -->
|
35
|
-
<li><h4><a href="v1/">Overview</a></h4></li>
|
36
|
-
<li><a href="v1/authentication/">Authentication</a></li>
|
37
|
-
<li><a href="v1/troubleshooting/">Troubleshooting</a></li>
|
38
|
-
<!-- Search items -->
|
39
|
-
<li><h4><a href="v1/search/">Search</a></h4></li>
|
40
|
-
<li><a href="v1/search/#asset-search">Asset Search</a></li>
|
41
|
-
</ul>
|
42
|
-
</div>
|
43
|
-
</div>
|
44
|
-
</div>
|
45
|
-
</body>
|
46
|
-
</html>
|
data/docs/layouts/home.html
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
<!DOCTYPE HTML>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<meta charset="utf-8">
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
-
<base href="http://rapid7.github.io/controlsinsight.rb/">
|
7
|
-
<title><%= @item[:title] %></title>
|
8
|
-
<link rel="stylesheet" href="css/bootstrap.css">
|
9
|
-
|
10
|
-
<!-- you don't need to keep this, but it's cool for stats! -->
|
11
|
-
<meta name="generator" content="nanoc <%= Nanoc::VERSION %>">
|
12
|
-
</head>
|
13
|
-
<body>
|
14
|
-
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
|
15
|
-
<a href="#" class="navbar-brand">ControlsInsight</a>
|
16
|
-
<ul class="nav navbar-nav pull-right">
|
17
|
-
<li><a href="#">Overview</a></li>
|
18
|
-
<li><a href="v1/">API</a></li>
|
19
|
-
<li><a href="https://community.rapid7.com/community/controls-insight/blog">Blog</a></li>
|
20
|
-
<li><a href="http://www.rapid7.com/contact/">Support</a></li>
|
21
|
-
</ul>
|
22
|
-
</nav>
|
23
|
-
|
24
|
-
<div class="container">
|
25
|
-
<div class="page-header"><h1><%= @item[:title] %></h1></div>
|
26
|
-
<%= yield %>
|
27
|
-
</div>
|
28
|
-
|
29
|
-
<div class="row well">
|
30
|
-
<div class="container">
|
31
|
-
<div class="col-lg-4">
|
32
|
-
<h1 class="text-center"><span class="glyphicon glyphicon-book"></span></h1>
|
33
|
-
<p class="text-center lead"><a href="guides/">API Usage</a></h2>
|
34
|
-
<p class="text-center">Just getting started? Make sure to read the guides.</p>
|
35
|
-
</div>
|
36
|
-
|
37
|
-
<div class="col-lg-4">
|
38
|
-
<h1 class="text-center"><span class="glyphicon glyphicon-list"></span></h1>
|
39
|
-
<p class="text-center lead"><a href="libraries/">Client Libraries</a></h2>
|
40
|
-
<p class="text-center">Check out some client libraries written for the ControlsInsight API.</p>
|
41
|
-
</div>
|
42
|
-
|
43
|
-
<div class="col-lg-4">
|
44
|
-
<h1 class="text-center"><span class="glyphicon glyphicon-info-sign"></span></h1>
|
45
|
-
<p class="text-center lead"><a href="http://www.rapid7.com/contact/">Support</a></h2>
|
46
|
-
<p class="text-center">If the <a href="v1/troubleshooting/">troubleshooting/FAQs</a> didn't help you please contact Rapid7 Support.</p>
|
47
|
-
</div>
|
48
|
-
</div>
|
49
|
-
</div>
|
50
|
-
</body>
|
51
|
-
</html>
|
data/docs/lib/default.rb
DELETED
data/docs/nanoc.yaml
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
output_dir: output
|
2
|
-
index_filenames:
|
3
|
-
- index.html
|
4
|
-
enable_output_diff: false
|
5
|
-
data_sources:
|
6
|
-
-
|
7
|
-
type: filesystem_unified
|
8
|
-
items_root: /
|
9
|
-
layouts_root: /
|
10
|
-
allow_periods_in_identifiers: false
|
11
|
-
-
|
12
|
-
type: static
|
13
|
-
items_root: /static
|
14
|
-
allow_periods_in_identifiers: true
|
15
|
-
prune:
|
16
|
-
auto_prune: false
|
17
|
-
exclude:
|
18
|
-
- .git
|
19
|
-
- .hg
|
20
|
-
- .svn
|
21
|
-
- CVS
|
22
|
-
text_extensions:
|
23
|
-
- coffee
|
24
|
-
- css
|
25
|
-
- erb
|
26
|
-
- haml
|
27
|
-
- handlebars
|
28
|
-
- hb
|
29
|
-
- htm
|
30
|
-
- html
|
31
|
-
- js
|
32
|
-
- less
|
33
|
-
- markdown
|
34
|
-
- md
|
35
|
-
- ms
|
36
|
-
- mustache
|
37
|
-
- php
|
38
|
-
- rb
|
39
|
-
- sass
|
40
|
-
- scss
|
41
|
-
- txt
|
42
|
-
- xhtml
|
43
|
-
- xml
|