inspec-core 4.24.8 → 4.26.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -14
  3. data/inspec-core.gemspec +9 -8
  4. data/lib/bundles/inspec-supermarket/api.rb +2 -2
  5. data/lib/bundles/inspec-supermarket/target.rb +1 -1
  6. data/lib/inspec/archive/tar.rb +1 -1
  7. data/lib/inspec/archive/zip.rb +3 -3
  8. data/lib/inspec/base_cli.rb +4 -2
  9. data/lib/inspec/cached_fetcher.rb +1 -1
  10. data/lib/inspec/cli.rb +1 -1
  11. data/lib/inspec/config.rb +19 -6
  12. data/lib/inspec/dependencies/cache.rb +1 -1
  13. data/lib/inspec/env_printer.rb +2 -2
  14. data/lib/inspec/fetcher/git.rb +3 -3
  15. data/lib/inspec/fetcher/local.rb +1 -1
  16. data/lib/inspec/fetcher/url.rb +4 -4
  17. data/lib/inspec/file_provider.rb +4 -4
  18. data/lib/inspec/input.rb +3 -0
  19. data/lib/inspec/input_registry.rb +5 -3
  20. data/lib/inspec/metadata.rb +1 -1
  21. data/lib/inspec/plugin/v1/plugins.rb +2 -2
  22. data/lib/inspec/plugin/v2.rb +5 -0
  23. data/lib/inspec/plugin/v2/config_file.rb +1 -1
  24. data/lib/inspec/plugin/v2/filter.rb +2 -2
  25. data/lib/inspec/plugin/v2/installer.rb +5 -5
  26. data/lib/inspec/plugin/v2/loader.rb +1 -1
  27. data/lib/inspec/plugin/v2/registry.rb +2 -2
  28. data/lib/inspec/profile.rb +3 -3
  29. data/lib/inspec/profile_context.rb +1 -1
  30. data/lib/inspec/reporters/automate.rb +2 -2
  31. data/lib/inspec/reporters/json.rb +1 -1
  32. data/lib/inspec/reporters/json_automate.rb +1 -1
  33. data/lib/inspec/resources.rb +5 -5
  34. data/lib/inspec/resources/apt.rb +1 -1
  35. data/lib/inspec/resources/auditd.rb +1 -1
  36. data/lib/inspec/resources/csv.rb +1 -1
  37. data/lib/inspec/resources/dh_params.rb +1 -1
  38. data/lib/inspec/resources/file.rb +1 -1
  39. data/lib/inspec/resources/http.rb +1 -1
  40. data/lib/inspec/resources/iis_website.rb +1 -1
  41. data/lib/inspec/resources/interfaces.rb +1 -1
  42. data/lib/inspec/resources/json.rb +2 -2
  43. data/lib/inspec/resources/key_rsa.rb +1 -1
  44. data/lib/inspec/resources/mssql_session.rb +5 -1
  45. data/lib/inspec/resources/mysql_session.rb +1 -1
  46. data/lib/inspec/resources/nginx.rb +1 -1
  47. data/lib/inspec/resources/nginx_conf.rb +40 -1
  48. data/lib/inspec/resources/npm.rb +1 -1
  49. data/lib/inspec/resources/oracledb_session.rb +2 -2
  50. data/lib/inspec/resources/parse_config.rb +5 -2
  51. data/lib/inspec/resources/port.rb +1 -1
  52. data/lib/inspec/resources/postgres_session.rb +1 -1
  53. data/lib/inspec/resources/ppa.rb +1 -1
  54. data/lib/inspec/resources/processes.rb +1 -1
  55. data/lib/inspec/resources/rabbitmq_conf.rb +1 -1
  56. data/lib/inspec/resources/registry_key.rb +1 -1
  57. data/lib/inspec/resources/ssh_config.rb +24 -2
  58. data/lib/inspec/resources/sshd_config.rb +1 -1
  59. data/lib/inspec/resources/ssl.rb +2 -2
  60. data/lib/inspec/resources/toml.rb +1 -1
  61. data/lib/inspec/resources/vbscript.rb +1 -1
  62. data/lib/inspec/resources/windows_registry_key.rb +1 -1
  63. data/lib/inspec/resources/wmi.rb +1 -1
  64. data/lib/inspec/resources/x509_certificate.rb +1 -1
  65. data/lib/inspec/resources/xml.rb +1 -1
  66. data/lib/inspec/runner.rb +2 -2
  67. data/lib/inspec/schema.rb +1 -1
  68. data/lib/inspec/schema/output_schema.rb +1 -1
  69. data/lib/inspec/schema/primitives.rb +1 -1
  70. data/lib/inspec/shell_detector.rb +2 -2
  71. data/lib/inspec/utils/command_wrapper.rb +1 -1
  72. data/lib/inspec/utils/deprecation/config_file.rb +2 -2
  73. data/lib/inspec/utils/json_log.rb +1 -1
  74. data/lib/inspec/utils/run_data_filters.rb +7 -5
  75. data/lib/inspec/utils/telemetry/collector.rb +1 -1
  76. data/lib/inspec/utils/telemetry/data_series.rb +1 -1
  77. data/lib/inspec/version.rb +1 -1
  78. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +5 -5
  79. data/lib/plugins/inspec-compliance/README.md +1 -1
  80. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +3 -3
  81. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +2 -2
  82. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +2 -2
  83. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +3 -3
  84. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +1 -1
  85. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +1 -1
  86. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +2 -2
  87. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +3 -3
  88. data/lib/plugins/inspec-reporter-html2/lib/inspec-reporter-html2/reporter.rb +1 -1
  89. data/lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb +1 -1
  90. data/lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit/reporter.rb +1 -1
  91. data/lib/plugins/shared/core_plugin_test_helper.rb +6 -6
  92. metadata +63 -25
@@ -13,7 +13,7 @@ module Inspec::Resources
13
13
  EXAMPLE
14
14
 
15
15
  def parse(content)
16
- require "rexml/document"
16
+ require "rexml/document" unless defined?(REXML::Document)
17
17
  REXML::Document.new(content)
18
18
  rescue => e
19
19
  raise Inspec::Exceptions::ResourceFailed, "Unable to parse XML: #{e.message}"
@@ -1,7 +1,7 @@
1
1
  # copyright: 2015, Dominik Richter
2
2
 
3
- require "forwardable"
4
- require "uri"
3
+ require "forwardable" unless defined?(Forwardable)
4
+ require "uri" unless defined?(URI)
5
5
  require "inspec/backend"
6
6
  require "inspec/profile_context"
7
7
  require "inspec/profile"
@@ -1,4 +1,4 @@
1
- require "json"
1
+ require "json" unless defined?(JSON)
2
2
 
3
3
  module Inspec
4
4
  class Schema
@@ -1,4 +1,4 @@
1
- require "json"
1
+ require "json" unless defined?(JSON)
2
2
  require "inspec/schema/primitives"
3
3
  require "inspec/schema/exec_json"
4
4
  require "inspec/schema/exec_json_min"
@@ -1,4 +1,4 @@
1
- require "set"
1
+ require "set" unless defined?(Set)
2
2
 
3
3
  # These elements are shared between more than one output type
4
4
 
@@ -1,5 +1,5 @@
1
- require "etc"
2
- require "rbconfig"
1
+ require "etc" unless defined?(Etc)
2
+ require "rbconfig" unless defined?(RbConfig)
3
3
 
4
4
  module Inspec
5
5
  #
@@ -1,4 +1,4 @@
1
- require "shellwords"
1
+ require "shellwords" unless defined?(Shellwords)
2
2
 
3
3
  class CommandWrapper
4
4
  UNIX_SHELLS = %w{sh bash zsh ksh}.freeze
@@ -1,5 +1,5 @@
1
- require "stringio"
2
- require "json"
1
+ require "stringio" unless defined?(StringIO)
2
+ require "json" unless defined?(JSON)
3
3
  require "inspec/globals"
4
4
  require "inspec/config"
5
5
 
@@ -1,4 +1,4 @@
1
- require "json"
1
+ require "json" unless defined?(JSON)
2
2
 
3
3
  # a simple streaming json logger
4
4
  class Logger::JSONFormatter < Logger::Formatter
@@ -18,7 +18,7 @@ module Inspec
18
18
  sort_controls
19
19
  end
20
20
 
21
- # Apply options such as message truncation and removal of backtraces
21
+ # Apply options such as message and code_desc truncation, and removal of backtraces
22
22
  def apply_report_resize_options
23
23
  runtime_config = @config[:runtime_config]
24
24
 
@@ -30,7 +30,7 @@ module Inspec
30
30
  p[:controls].each do |c|
31
31
  c[:results]&.map! do |r|
32
32
  r.delete(:backtrace) unless include_backtrace
33
- process_message_truncation(r)
33
+ process_truncation(r)
34
34
  end
35
35
  end
36
36
  end
@@ -93,9 +93,11 @@ module Inspec
93
93
 
94
94
  private
95
95
 
96
- def process_message_truncation(result)
97
- if result.key?(:message) && result[:message] != "" && @trunc > -1 && result[:message].length > @trunc
98
- result[:message] = result[:message][0...@trunc] + "[Truncated to #{@trunc} characters]"
96
+ def process_truncation(result)
97
+ %i{code_desc message}.each do |field|
98
+ if result.key?(field) && result[field] != "" && @trunc > -1 && result[field].length > @trunc
99
+ result[field] = result[field][0...@trunc] + "[Truncated to #{@trunc} characters]"
100
+ end
99
101
  end
100
102
  result
101
103
  end
@@ -1,6 +1,6 @@
1
1
  require "inspec/config"
2
2
  require "inspec/utils/telemetry/data_series"
3
- require "singleton"
3
+ require "singleton" unless defined?(Singleton)
4
4
 
5
5
  module Inspec::Telemetry
6
6
  # A Singleton collection of data series objects.
@@ -1,4 +1,4 @@
1
- require "json"
1
+ require "json" unless defined?(JSON)
2
2
 
3
3
  module Inspec; end
4
4
 
@@ -1,3 +1,3 @@
1
1
  module Inspec
2
- VERSION = "4.24.8".freeze
2
+ VERSION = "4.26.4".freeze
3
3
  end
@@ -1,8 +1,8 @@
1
- require "base64"
2
- require "openssl"
3
- require "pathname"
4
- require "set"
5
- require "tempfile"
1
+ require "base64" unless defined?(Base64)
2
+ require "openssl" unless defined?(OpenSSL)
3
+ require "pathname" unless defined?(Pathname)
4
+ require "set" unless defined?(Set)
5
+ require "tempfile" unless defined?(Tempfile)
6
6
  require "yaml"
7
7
  require "inspec/dist"
8
8
  require "inspec/utils/json_profile_summary"
@@ -71,7 +71,7 @@ $ inspec compliance login https://automate.compliance.test --insecure --user 'ad
71
71
 
72
72
  You will need an access token for authentication. You can retrieve one via:
73
73
 
74
- ![Chef Compliance Token](images/cc-token.png)
74
+ ![Chef Compliance Token](lib/inspec-compliance/images/cc-token.png)
75
75
 
76
76
  You can choose the access token (`--token`) or the refresh token (`--refresh_token`)
77
77
 
@@ -1,6 +1,6 @@
1
- require "net/http"
2
- require "uri"
3
- require "json"
1
+ require "net/http" unless defined?(Net::HTTP)
2
+ require "uri" unless defined?(URI)
3
+ require "json" unless defined?(JSON)
4
4
  require "inspec/dist"
5
5
 
6
6
  require_relative "api/login"
@@ -1,6 +1,6 @@
1
- require "net/http"
1
+ require "net/http" unless defined?(Net::HTTP)
2
2
  require "net/http/post/multipart"
3
- require "uri"
3
+ require "uri" unless defined?(URI)
4
4
 
5
5
  module InspecPlugins
6
6
  module Compliance
@@ -1,4 +1,4 @@
1
- require "uri"
1
+ require "uri" unless defined?(URI)
2
2
  require "inspec/fetcher"
3
3
  require "inspec/errors"
4
4
  require "inspec/dist"
@@ -85,7 +85,7 @@ module InspecPlugins
85
85
  # If version was specified, it will be the first and only result.
86
86
  # Note we are calling the sha256 as a string, not a symbol since
87
87
  # it was returned as json from the Compliance API.
88
- profile_info = profile_result.sort_by { |x| Gem::Version.new(x["version"]) }[0]
88
+ profile_info = profile_result.min_by { |x| Gem::Version.new(x["version"]) }
89
89
  profile_checksum = profile_info.key?("sha256") ? profile_info["sha256"] : ""
90
90
  end
91
91
  end
@@ -1,7 +1,7 @@
1
1
  require "inspec/profile_vendor"
2
- require "mixlib/shellout"
3
- require "tomlrb"
4
- require "ostruct"
2
+ require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
3
+ require "tomlrb" unless defined?(Tomlrb)
4
+ require "ostruct" unless defined?(OpenStruct)
5
5
  require "inspec/dist"
6
6
 
7
7
  module InspecPlugins
@@ -1,4 +1,4 @@
1
- require "pathname"
1
+ require "pathname" unless defined?(Pathname)
2
2
  require_relative "renderer"
3
3
 
4
4
  module InspecPlugins
@@ -1,4 +1,4 @@
1
- require "pathname"
1
+ require "pathname" unless defined?(Pathname)
2
2
  require_relative "renderer"
3
3
 
4
4
  module InspecPlugins
@@ -1,5 +1,5 @@
1
- require "fileutils"
2
- require "erb"
1
+ require "fileutils" unless defined?(FileUtils)
2
+ require "erb" unless defined?(Erb)
3
3
 
4
4
  module InspecPlugins
5
5
  module Init
@@ -1,4 +1,4 @@
1
- require "pathname"
1
+ require "pathname" unless defined?(Pathname)
2
2
  require "inspec/plugin/v2"
3
3
  require "inspec/plugin/v2/installer"
4
4
  require "inspec/dist"
@@ -505,8 +505,8 @@ module InspecPlugins
505
505
  plugin_name = status.name.to_s
506
506
  Inspec::Plugin::V2::Loader.list_installed_plugin_gems
507
507
  .select { |spec| spec.name == plugin_name }
508
- .sort_by(&:version)
509
- .last.version
508
+ .max_by(&:version)
509
+ .version
510
510
  end
511
511
  when :path
512
512
  "src"
@@ -1,4 +1,4 @@
1
- require "erb"
1
+ require "erb" unless defined?(Erb)
2
2
  require "inspec/config"
3
3
 
4
4
  module InspecPlugins::Html2Reporter
@@ -1,4 +1,4 @@
1
- require "json"
1
+ require "json" unless defined?(JSON)
2
2
 
3
3
  module InspecPlugins::JsonMinReporter
4
4
  class Reporter < Inspec.plugin(2, :reporter)
@@ -5,7 +5,7 @@ module InspecPlugins::JUnitReporter
5
5
  end
6
6
 
7
7
  def render
8
- require "rexml/document"
8
+ require "rexml/document" unless defined?(REXML::Document)
9
9
  xml_output = REXML::Document.new
10
10
  xml_output.add(REXML::XMLDecl.new)
11
11
 
@@ -3,14 +3,14 @@ require "minitest/autorun"
3
3
  require "minitest/pride"
4
4
 
5
5
  # Data formats commonly used in testing
6
- require "json"
7
- require "ostruct"
6
+ require "json" unless defined?(JSON)
7
+ require "ostruct" unless defined?(OpenStruct)
8
8
 
9
9
  # Utilities often needed
10
- require "fileutils"
11
- require "tmpdir"
12
- require "pathname"
13
- require "forwardable"
10
+ require "fileutils" unless defined?(FileUtils)
11
+ require "tmpdir" unless defined?(Dir.mktmpdir)
12
+ require "pathname" unless defined?(Pathname)
13
+ require "forwardable" unless defined?(Forwardable)
14
14
 
15
15
  require "functional/helper"
16
16
  require "inspec/plugin/v2"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.24.8
4
+ version: 4.26.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef InSpec Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-09 00:00:00.000000000 Z
11
+ date: 2021-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-telemetry
@@ -88,36 +88,42 @@ dependencies:
88
88
  name: rubyzip
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - "~>"
92
- - !ruby/object:Gem::Version
93
- version: '1.2'
94
91
  - - ">="
95
92
  - !ruby/object:Gem::Version
96
93
  version: 1.2.2
94
+ - - "<"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
97
  type: :runtime
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.2'
104
101
  - - ">="
105
102
  - !ruby/object:Gem::Version
106
103
  version: 1.2.2
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '3.0'
107
107
  - !ruby/object:Gem::Dependency
108
108
  name: rspec
109
109
  requirement: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - "~>"
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '3.9'
114
+ - - "<"
112
115
  - !ruby/object:Gem::Version
113
- version: 3.9.0
116
+ version: '3.11'
114
117
  type: :runtime
115
118
  prerelease: false
116
119
  version_requirements: !ruby/object:Gem::Requirement
117
120
  requirements:
118
- - - "~>"
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '3.9'
124
+ - - "<"
119
125
  - !ruby/object:Gem::Version
120
- version: 3.9.0
126
+ version: '3.11'
121
127
  - !ruby/object:Gem::Dependency
122
128
  name: rspec-its
123
129
  requirement: !ruby/object:Gem::Requirement
@@ -150,16 +156,22 @@ dependencies:
150
156
  name: hashie
151
157
  requirement: !ruby/object:Gem::Requirement
152
158
  requirements:
153
- - - "~>"
159
+ - - ">="
154
160
  - !ruby/object:Gem::Version
155
161
  version: '3.4'
162
+ - - "<"
163
+ - !ruby/object:Gem::Version
164
+ version: '5.0'
156
165
  type: :runtime
157
166
  prerelease: false
158
167
  version_requirements: !ruby/object:Gem::Requirement
159
168
  requirements:
160
- - - "~>"
169
+ - - ">="
161
170
  - !ruby/object:Gem::Version
162
171
  version: '3.4'
172
+ - - "<"
173
+ - !ruby/object:Gem::Version
174
+ version: '5.0'
163
175
  - !ruby/object:Gem::Dependency
164
176
  name: mixlib-log
165
177
  requirement: !ruby/object:Gem::Requirement
@@ -211,7 +223,7 @@ dependencies:
211
223
  version: 0.9.0
212
224
  - - "<"
213
225
  - !ruby/object:Gem::Version
214
- version: '1.1'
226
+ version: '1.4'
215
227
  type: :runtime
216
228
  prerelease: false
217
229
  version_requirements: !ruby/object:Gem::Requirement
@@ -221,7 +233,21 @@ dependencies:
221
233
  version: 0.9.0
222
234
  - - "<"
223
235
  - !ruby/object:Gem::Version
224
- version: '1.1'
236
+ version: '1.4'
237
+ - !ruby/object:Gem::Dependency
238
+ name: faraday_middleware
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '1.0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '1.0'
225
251
  - !ruby/object:Gem::Dependency
226
252
  name: tty-table
227
253
  requirement: !ruby/object:Gem::Requirement
@@ -254,16 +280,22 @@ dependencies:
254
280
  name: tomlrb
255
281
  requirement: !ruby/object:Gem::Requirement
256
282
  requirements:
257
- - - "~>"
283
+ - - ">="
258
284
  - !ruby/object:Gem::Version
259
- version: 1.2.0
285
+ version: '1.2'
286
+ - - "<"
287
+ - !ruby/object:Gem::Version
288
+ version: '2.1'
260
289
  type: :runtime
261
290
  prerelease: false
262
291
  version_requirements: !ruby/object:Gem::Requirement
263
292
  requirements:
264
- - - "~>"
293
+ - - ">="
294
+ - !ruby/object:Gem::Version
295
+ version: '1.2'
296
+ - - "<"
265
297
  - !ruby/object:Gem::Version
266
- version: 1.2.0
298
+ version: '2.1'
267
299
  - !ruby/object:Gem::Dependency
268
300
  name: addressable
269
301
  requirement: !ruby/object:Gem::Requirement
@@ -282,16 +314,22 @@ dependencies:
282
314
  name: parslet
283
315
  requirement: !ruby/object:Gem::Requirement
284
316
  requirements:
285
- - - "~>"
317
+ - - ">="
286
318
  - !ruby/object:Gem::Version
287
319
  version: '1.5'
320
+ - - "<"
321
+ - !ruby/object:Gem::Version
322
+ version: '2.0'
288
323
  type: :runtime
289
324
  prerelease: false
290
325
  version_requirements: !ruby/object:Gem::Requirement
291
326
  requirements:
292
- - - "~>"
327
+ - - ">="
293
328
  - !ruby/object:Gem::Version
294
329
  version: '1.5'
330
+ - - "<"
331
+ - !ruby/object:Gem::Version
332
+ version: '2.0'
295
333
  - !ruby/object:Gem::Dependency
296
334
  name: semverse
297
335
  requirement: !ruby/object:Gem::Requirement
@@ -723,16 +761,16 @@ require_paths:
723
761
  - lib
724
762
  required_ruby_version: !ruby/object:Gem::Requirement
725
763
  requirements:
726
- - - "~>"
764
+ - - ">="
727
765
  - !ruby/object:Gem::Version
728
- version: '2.4'
766
+ version: '2.5'
729
767
  required_rubygems_version: !ruby/object:Gem::Requirement
730
768
  requirements:
731
769
  - - ">="
732
770
  - !ruby/object:Gem::Version
733
771
  version: '0'
734
772
  requirements: []
735
- rubygems_version: 3.0.3
773
+ rubygems_version: 3.1.4
736
774
  signing_key:
737
775
  specification_version: 4
738
776
  summary: Infrastructure and compliance testing. Core library.