inspec-core 5.23.6 → 6.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/Chef-EULA +9 -0
- data/Gemfile +25 -41
- data/etc/features.sig +6 -0
- data/etc/features.yaml +94 -0
- data/inspec-core.gemspec +20 -18
- data/lib/inspec/backend.rb +2 -0
- data/lib/inspec/base_cli.rb +80 -14
- data/lib/inspec/cached_fetcher.rb +24 -3
- data/lib/inspec/cli.rb +292 -235
- data/lib/inspec/config.rb +24 -11
- data/lib/inspec/dependencies/cache.rb +33 -0
- data/lib/inspec/dependencies/dependency_set.rb +2 -2
- data/lib/inspec/dsl.rb +1 -1
- data/lib/inspec/enhanced_outcomes.rb +1 -0
- data/lib/inspec/errors.rb +5 -0
- data/lib/inspec/exceptions.rb +1 -0
- data/lib/inspec/feature/config.rb +75 -0
- data/lib/inspec/feature/runner.rb +26 -0
- data/lib/inspec/feature.rb +34 -0
- data/lib/inspec/fetcher/git.rb +6 -21
- data/lib/inspec/fetcher/url.rb +7 -29
- data/lib/inspec/globals.rb +6 -0
- data/lib/inspec/input_registry.rb +1 -5
- data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +7 -0
- data/lib/inspec/plugin/v2/plugin_types/streaming_reporter.rb +30 -2
- data/lib/inspec/profile.rb +49 -13
- data/lib/inspec/reporters/cli.rb +1 -1
- data/lib/inspec/reporters.rb +67 -54
- data/lib/inspec/resources/audit_policy.rb +2 -8
- data/lib/inspec/resources/groups.rb +0 -52
- data/lib/inspec/resources/nftables.rb +1 -14
- data/lib/inspec/resources/oracledb_session.rb +3 -9
- data/lib/inspec/resources/postgres_session.rb +5 -9
- data/lib/inspec/resources/sybase_session.rb +2 -11
- data/lib/inspec/resources/virtualization.rb +1 -1
- data/lib/inspec/rule.rb +9 -14
- data/lib/inspec/run_data.rb +7 -5
- data/lib/inspec/runner.rb +35 -6
- data/lib/inspec/runner_rspec.rb +12 -9
- data/lib/inspec/secrets/yaml.rb +5 -1
- data/lib/inspec/shell.rb +10 -0
- data/lib/inspec/ui.rb +4 -0
- data/lib/inspec/utils/licensing_config.rb +9 -0
- data/lib/inspec/utils/profile_ast_helpers.rb +2 -1
- data/lib/inspec/utils/waivers/csv_file_reader.rb +1 -1
- data/lib/inspec/utils/waivers/excel_file_reader.rb +1 -1
- data/lib/inspec/version.rb +1 -1
- data/lib/inspec/waiver_file_reader.rb +18 -35
- data/lib/inspec.rb +2 -1
- data/lib/matchers/matchers.rb +3 -3
- data/lib/plugins/inspec-compliance/README.md +1 -11
- data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +189 -170
- data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +10 -3
- data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +1 -0
- data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +23 -21
- data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +15 -13
- data/lib/plugins/inspec-init/lib/inspec-init/cli_resource.rb +15 -13
- data/lib/plugins/inspec-license/README.md +16 -0
- data/lib/plugins/inspec-license/inspec-license.gemspec +6 -0
- data/lib/plugins/inspec-license/lib/inspec-license/cli.rb +26 -0
- data/lib/plugins/inspec-license/lib/inspec-license.rb +14 -0
- data/lib/plugins/inspec-parallel/README.md +27 -0
- data/lib/plugins/inspec-parallel/inspec-parallel.gemspec +6 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/child_status_reporter.rb +61 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/cli.rb +39 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/command.rb +219 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/runner.rb +265 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/base.rb +24 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/silent.rb +7 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/status.rb +124 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/text.rb +23 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel/validator.rb +170 -0
- data/lib/plugins/inspec-parallel/lib/inspec-parallel.rb +18 -0
- data/lib/plugins/inspec-sign/lib/inspec-sign/base.rb +10 -11
- data/lib/plugins/inspec-sign/lib/inspec-sign/cli.rb +11 -4
- data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/streaming_reporter.rb +6 -13
- data/lib/source_readers/inspec.rb +1 -1
- metadata +51 -43
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative "base"
|
2
2
|
require "inspec/dist"
|
3
|
+
require "inspec/feature"
|
3
4
|
|
4
5
|
#
|
5
6
|
# Notes:
|
@@ -85,8 +86,10 @@ module InspecPlugins
|
|
85
86
|
option :keydir, type: :string, default: "./",
|
86
87
|
desc: "Directory to search for keys"
|
87
88
|
def generate_keys
|
88
|
-
|
89
|
-
|
89
|
+
Inspec.with_feature("inspec-cli-sign-generate-keys") {
|
90
|
+
puts "Generating keys"
|
91
|
+
InspecPlugins::Sign::Base.keygen(options)
|
92
|
+
}
|
90
93
|
end
|
91
94
|
|
92
95
|
desc "profile PATH", "sign the profile in PATH and generate .iaf artifact."
|
@@ -95,12 +98,16 @@ module InspecPlugins
|
|
95
98
|
option :profile_content_id, type: :string,
|
96
99
|
desc: "UUID of the profile. This will write the profile_content_id in the metadata file if it does not already exist in the metadata file."
|
97
100
|
def profile(profile_path)
|
98
|
-
|
101
|
+
Inspec.with_feature("inspec-cli-sign-profile") {
|
102
|
+
InspecPlugins::Sign::Base.profile_sign(profile_path, options)
|
103
|
+
}
|
99
104
|
end
|
100
105
|
|
101
106
|
desc "verify PATH", "Verify a signed profile .iaf artifact at given path."
|
102
107
|
def verify(signed_profile_path)
|
103
|
-
|
108
|
+
Inspec.with_feature("inspec-cli-sign-verify") {
|
109
|
+
InspecPlugins::Sign::Base.profile_verify(signed_profile_path)
|
110
|
+
}
|
104
111
|
end
|
105
112
|
end
|
106
113
|
end
|
@@ -91,23 +91,20 @@ module InspecPlugins::StreamingReporterProgressBar
|
|
91
91
|
|
92
92
|
set_status_mapping(control_id, status)
|
93
93
|
collect_notifications(notification, control_id, status)
|
94
|
-
|
95
|
-
if control_ended
|
96
|
-
control_outcome = add_enhanced_outcomes(control_id) if enhanced_outcomes
|
97
|
-
show_progress(control_id, title, full_description, control_outcome)
|
98
|
-
end
|
94
|
+
show_progress(control_id, title, full_description) if control_ended?(notification, control_id)
|
99
95
|
end
|
100
96
|
|
101
|
-
def show_progress(control_id, title, full_description
|
97
|
+
def show_progress(control_id, title, full_description)
|
102
98
|
@bar ||= ProgressBar.new(controls_count, :bar, :counter, :percentage)
|
103
99
|
sleep 0.1
|
104
100
|
@bar.increment!
|
105
|
-
@bar.puts format_it(control_id, title, full_description
|
101
|
+
@bar.puts format_it(control_id, title, full_description)
|
106
102
|
rescue StandardError => e
|
107
103
|
raise "Exception in Progress Bar streaming reporter: #{e}"
|
108
104
|
end
|
109
105
|
|
110
|
-
def format_it(control_id, title, full_description
|
106
|
+
def format_it(control_id, title, full_description)
|
107
|
+
control_outcome = control_outcome(control_id)
|
111
108
|
if control_outcome
|
112
109
|
control_status = control_outcome
|
113
110
|
else
|
@@ -121,11 +118,7 @@ module InspecPlugins::StreamingReporterProgressBar
|
|
121
118
|
end
|
122
119
|
end
|
123
120
|
indicator = INDICATORS[control_status]
|
124
|
-
message_to_format =
|
125
|
-
message_to_format += "#{indicator} "
|
126
|
-
message_to_format += "#{control_id.to_s.strip.dup.force_encoding(Encoding::UTF_8)} "
|
127
|
-
message_to_format += "#{title.gsub(/\n*\s+/, " ").to_s.force_encoding(Encoding::UTF_8)} " if title
|
128
|
-
message_to_format += "#{full_description.gsub(/\n*\s+/, " ").to_s.force_encoding(Encoding::UTF_8)} " unless title
|
121
|
+
message_to_format = format_message(indicator, control_id, title, full_description)
|
129
122
|
format_with_color(control_status, message_to_format)
|
130
123
|
rescue Exception => e
|
131
124
|
raise "Exception in show_progress: #{e}"
|
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
|
+
version: 6.6.0
|
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:
|
11
|
+
date: 2023-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-telemetry
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '0.20'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.
|
62
|
+
version: 1.3.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '0.20'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.
|
72
|
+
version: 1.3.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: method_source
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
version: 1.2.2
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
102
|
+
version: '3.0'
|
103
103
|
type: :runtime
|
104
104
|
prerelease: false
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: 1.2.2
|
110
110
|
- - "<"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: '
|
112
|
+
version: '3.0'
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rspec
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
version: '3.9'
|
120
120
|
- - "<="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: '3.
|
122
|
+
version: '3.12'
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -129,27 +129,21 @@ dependencies:
|
|
129
129
|
version: '3.9'
|
130
130
|
- - "<="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '3.
|
132
|
+
version: '3.12'
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: rspec-its
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - "
|
137
|
+
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '1.2'
|
140
|
-
- - "<"
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
version: '3.0'
|
143
140
|
type: :runtime
|
144
141
|
prerelease: false
|
145
142
|
version_requirements: !ruby/object:Gem::Requirement
|
146
143
|
requirements:
|
147
|
-
- - "
|
144
|
+
- - "~>"
|
148
145
|
- !ruby/object:Gem::Version
|
149
146
|
version: '1.2'
|
150
|
-
- - "<"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '3.0'
|
153
147
|
- !ruby/object:Gem::Dependency
|
154
148
|
name: pry
|
155
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,9 +185,6 @@ dependencies:
|
|
191
185
|
- - "~>"
|
192
186
|
- !ruby/object:Gem::Version
|
193
187
|
version: '3.0'
|
194
|
-
- - "<"
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
version: '3.2'
|
197
188
|
type: :runtime
|
198
189
|
prerelease: false
|
199
190
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -201,9 +192,6 @@ dependencies:
|
|
201
192
|
- - "~>"
|
202
193
|
- !ruby/object:Gem::Version
|
203
194
|
version: '3.0'
|
204
|
-
- - "<"
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
version: '3.2'
|
207
195
|
- !ruby/object:Gem::Dependency
|
208
196
|
name: sslshake
|
209
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -337,7 +325,7 @@ dependencies:
|
|
337
325
|
version: '1.5'
|
338
326
|
- - "<"
|
339
327
|
- !ruby/object:Gem::Version
|
340
|
-
version: '
|
328
|
+
version: '2.0'
|
341
329
|
type: :runtime
|
342
330
|
prerelease: false
|
343
331
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -347,7 +335,7 @@ dependencies:
|
|
347
335
|
version: '1.5'
|
348
336
|
- - "<"
|
349
337
|
- !ruby/object:Gem::Version
|
350
|
-
version: '
|
338
|
+
version: '2.0'
|
351
339
|
- !ruby/object:Gem::Dependency
|
352
340
|
name: semverse
|
353
341
|
requirement: !ruby/object:Gem::Requirement
|
@@ -377,53 +365,53 @@ dependencies:
|
|
377
365
|
- !ruby/object:Gem::Version
|
378
366
|
version: '2.0'
|
379
367
|
- !ruby/object:Gem::Dependency
|
380
|
-
name:
|
368
|
+
name: train-core
|
381
369
|
requirement: !ruby/object:Gem::Requirement
|
382
370
|
requirements:
|
383
371
|
- - ">="
|
384
372
|
- !ruby/object:Gem::Version
|
385
|
-
version:
|
373
|
+
version: 3.11.0
|
386
374
|
type: :runtime
|
387
375
|
prerelease: false
|
388
376
|
version_requirements: !ruby/object:Gem::Requirement
|
389
377
|
requirements:
|
390
378
|
- - ">="
|
391
379
|
- !ruby/object:Gem::Version
|
392
|
-
version:
|
380
|
+
version: 3.11.0
|
393
381
|
- !ruby/object:Gem::Dependency
|
394
|
-
name:
|
382
|
+
name: chef-licensing
|
395
383
|
requirement: !ruby/object:Gem::Requirement
|
396
384
|
requirements:
|
397
|
-
- - "~>"
|
398
|
-
- !ruby/object:Gem::Version
|
399
|
-
version: '3.13'
|
400
385
|
- - ">="
|
401
386
|
- !ruby/object:Gem::Version
|
402
|
-
version:
|
387
|
+
version: 0.7.5
|
403
388
|
type: :runtime
|
404
389
|
prerelease: false
|
405
390
|
version_requirements: !ruby/object:Gem::Requirement
|
406
391
|
requirements:
|
407
|
-
- - "~>"
|
408
|
-
- !ruby/object:Gem::Version
|
409
|
-
version: '3.13'
|
410
392
|
- - ">="
|
411
393
|
- !ruby/object:Gem::Version
|
412
|
-
version:
|
413
|
-
description:
|
414
|
-
You can use it for integration or even compliance testing. Create fully portable
|
415
|
-
test profiles and use them in your workflow to ensure stability and security. Integrate
|
416
|
-
InSpec in your change lifecycle for local testing, CI/CD, and deployment verification.
|
394
|
+
version: 0.7.5
|
395
|
+
description: |+
|
396
|
+
InSpec provides a framework for creating end-to-end infrastructure tests. You can use it for integration or even compliance testing. Create fully portable test profiles and use them in your workflow to ensure stability and security. Integrate InSpec in your change lifecycle for local testing, CI/CD, and deployment verification.
|
417
397
|
This has local support only. See the `inspec` gem for full support.
|
398
|
+
|
399
|
+
Packaged distributions of Progress® Chef® products obtained from RubyGems are made available pursuant to the Progress Chef EULA at https://www.chef.io/end-user-license-agreement, unless there is an executed agreement in effect between you and Progress that covers the Progress Chef products ("Master Agreement"), in which case the Master Agreement shall govern.
|
400
|
+
|
401
|
+
Source code obtained from the Chef GitHub repository is made available under Apache-2.0, a copy of which is included.
|
402
|
+
|
418
403
|
email:
|
419
404
|
- inspec@chef.io
|
420
405
|
executables: []
|
421
406
|
extensions: []
|
422
407
|
extra_rdoc_files: []
|
423
408
|
files:
|
409
|
+
- Chef-EULA
|
424
410
|
- Gemfile
|
425
411
|
- LICENSE
|
426
412
|
- etc/deprecations.json
|
413
|
+
- etc/features.sig
|
414
|
+
- etc/features.yaml
|
427
415
|
- etc/keys/progress-2022-05-04.pem.pub
|
428
416
|
- etc/plugin_filters.json
|
429
417
|
- inspec-core.gemspec
|
@@ -466,6 +454,9 @@ files:
|
|
466
454
|
- lib/inspec/errors.rb
|
467
455
|
- lib/inspec/exceptions.rb
|
468
456
|
- lib/inspec/expect.rb
|
457
|
+
- lib/inspec/feature.rb
|
458
|
+
- lib/inspec/feature/config.rb
|
459
|
+
- lib/inspec/feature/runner.rb
|
469
460
|
- lib/inspec/fetcher.rb
|
470
461
|
- lib/inspec/fetcher/git.rb
|
471
462
|
- lib/inspec/fetcher/local.rb
|
@@ -742,6 +733,7 @@ files:
|
|
742
733
|
- lib/inspec/utils/install_context.rb
|
743
734
|
- lib/inspec/utils/json_log.rb
|
744
735
|
- lib/inspec/utils/json_profile_summary.rb
|
736
|
+
- lib/inspec/utils/licensing_config.rb
|
745
737
|
- lib/inspec/utils/modulator.rb
|
746
738
|
- lib/inspec/utils/nginx_parser.rb
|
747
739
|
- lib/inspec/utils/object_traversal.rb
|
@@ -826,6 +818,22 @@ files:
|
|
826
818
|
- lib/plugins/inspec-init/templates/resources/basic/libraries/inspec-resource-template.erb
|
827
819
|
- lib/plugins/inspec-init/templates/resources/plural/docs/resource-doc.erb
|
828
820
|
- lib/plugins/inspec-init/templates/resources/plural/libraries/inspec-resource-template.erb
|
821
|
+
- lib/plugins/inspec-license/README.md
|
822
|
+
- lib/plugins/inspec-license/inspec-license.gemspec
|
823
|
+
- lib/plugins/inspec-license/lib/inspec-license.rb
|
824
|
+
- lib/plugins/inspec-license/lib/inspec-license/cli.rb
|
825
|
+
- lib/plugins/inspec-parallel/README.md
|
826
|
+
- lib/plugins/inspec-parallel/inspec-parallel.gemspec
|
827
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel.rb
|
828
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/child_status_reporter.rb
|
829
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/cli.rb
|
830
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/command.rb
|
831
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/runner.rb
|
832
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/base.rb
|
833
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/silent.rb
|
834
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/status.rb
|
835
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/super_reporter/text.rb
|
836
|
+
- lib/plugins/inspec-parallel/lib/inspec-parallel/validator.rb
|
829
837
|
- lib/plugins/inspec-plugin-manager-cli/README.md
|
830
838
|
- lib/plugins/inspec-plugin-manager-cli/inspec-plugin-manager-cli.gemspec
|
831
839
|
- lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb
|
@@ -869,7 +877,7 @@ files:
|
|
869
877
|
- lib/source_readers/inspec.rb
|
870
878
|
homepage: https://github.com/inspec/inspec
|
871
879
|
licenses:
|
872
|
-
-
|
880
|
+
- LicenseRef-Chef-EULA
|
873
881
|
metadata: {}
|
874
882
|
post_install_message:
|
875
883
|
rdoc_options: []
|
@@ -879,14 +887,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
879
887
|
requirements:
|
880
888
|
- - ">="
|
881
889
|
- !ruby/object:Gem::Version
|
882
|
-
version:
|
890
|
+
version: '2.7'
|
883
891
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
884
892
|
requirements:
|
885
893
|
- - ">="
|
886
894
|
- !ruby/object:Gem::Version
|
887
895
|
version: '0'
|
888
896
|
requirements: []
|
889
|
-
rubygems_version: 3.
|
897
|
+
rubygems_version: 3.1.4
|
890
898
|
signing_key:
|
891
899
|
specification_version: 4
|
892
900
|
summary: Infrastructure and compliance testing. Core library.
|