inspec-core 4.24.8 → 4.26.4

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