inspec/inspec-core.gemspec

68 lines
4 KiB
Ruby
Raw Normal View History

lib = File.expand_path("lib", __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "inspec/version"
Gem::Specification.new do |spec|
spec.name = "inspec-core"
spec.version = Inspec::VERSION
spec.authors = ["Chef InSpec Team"]
spec.email = ["inspec@chef.io"]
spec.summary = "Infrastructure and compliance testing. Core library."
spec.description = <<-EOT
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.
This has local support only. See the `inspec` gem for full support.
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.
Source code obtained from the Chef GitHub repository is made available under Apache-2.0, a copy of which is included.
EOT
spec.homepage = "https://github.com/inspec/inspec"
spec.license = "LicenseRef-Chef-EULA"
spec.require_paths = ["lib"]
spec.required_ruby_version = ">= 3.1.0"
# the gemfile and gemspec are necessary for appbundler so don't remove it
spec.files =
Dir.glob("{{lib,etc}/**/*,LICENSE,Chef-EULA,Gemfile,inspec-core.gemspec}")
.grep_v(%r{(?<!inspec-init/templates/profiles/)(aws|azure|gcp|alicloud)})
.grep_v(%r{lib/plugins/.*/test/})
.reject { |f| File.directory?(f) }
# Implementation dependencies
spec.add_dependency "chef-telemetry", "~> 1.0", ">= 1.0.8" # 1.0.8+ removes the http dep
spec.add_dependency "license-acceptance", ">= 0.2.13", "< 3.0"
# TODO: We should remove the thor pinning in next upcoming releases currently it's breaking our unit test in cli_args_test for aliases due to
# recent changes made in thor library REF: https://github.com/rails/thor/releases/tag/v1.3.0 & https://github.com/rails/thor/pull/800
spec.add_dependency "thor", ">= 0.20", "< 1.3.0"
spec.add_dependency "method_source", ">= 0.8", "< 2.0"
spec.add_dependency "rubyzip", ">= 1.2.2", "< 3.0"
spec.add_dependency "rspec", ">= 3.9", "<= 3.14"
spec.add_dependency "rspec-its", "~> 1.2"
spec.add_dependency "pry", "~> 0.13"
spec.add_dependency "hashie", ">= 3.4", "< 6.0"
spec.add_dependency "mixlib-log", "~> 3.0"
spec.add_dependency "sslshake", "~> 1.2"
spec.add_dependency "parallel", "~> 1.9"
spec.add_dependency "faraday", ">= 1", "< 3"
spec.add_dependency "faraday-follow_redirects", "~> 0.3"
spec.add_dependency "tty-table", "~> 0.10"
spec.add_dependency "tty-prompt", "~> 0.17"
spec.add_dependency "tomlrb", ">= 1.2", "< 2.1"
spec.add_dependency "addressable", "~> 2.4"
spec.add_dependency "parslet", ">= 1.5", "< 2.0" # Pinned < 2.0, see #5389
spec.add_dependency "semverse", "~> 3.0"
spec.add_dependency "multipart-post", "~> 2.0"
# cookstyle support for inspec check
# This was initially included in 'inspec.gemspec' to keep 'chef-client' lightweight.
# However, it has been moved to 'inspec-core.gemspec' due to a dependency on the 'ast' gem,
# which was causing a LoadError ('cannot load such file -- ast') for users/applications using 'inspec-core'.
spec.add_dependency "cookstyle"
CHEF-6440: Integrates audit logging feature (#6809) * Adds cli options to enable audit log and configure the audit log Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Updated code to validate the audit log options. Audit log options are only valid for inspec exec and inspec shell command as those commands use the backend to execute commands and for file operations Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Updates cli options documentation for audit log options Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Disable audit log in test environment unless and until explicitly --enable-audit-log option is provided in test Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Rename enable-audit-log cli option to disable-audit-log Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * CHEF-8210 Enables feature preview flag for audit logging Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Revert "Disable audit log in test environment unless and until explicitly --enable-audit-log option is provided in test" This reverts commit 50a42f0b44cf2fde6d927a00e444370cdd288a5d. * Adds functional test for audit logging feature Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Updates cli doc for audit loggin feature flag Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Debug why audit log functional test fails in ci environment Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Revert "Rename enable-audit-log cli option to disable-audit-log" This reverts commit d5169ec70539342ad476c409500a9fc0a5a5b404. * Revert "Debug why audit log functional test fails in ci environment" This reverts commit 6f43898ad06b317954260d0f643dcd00312f2bc3. * Removes the --enable-audit-log option from cli as feature flag will handle the enabling and disabling of audit log feature. And introduces few code changes after reverting renaming of --enable-audit-log option Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Updates the functional test for audit log Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * REVERT THIS ONCE THE TEST IS GREEN: This is just to test implementation of audit log against the train changes made for audit log Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Removes the right one Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Documentation for inspec audit logging feature Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Renames inspec audit log file Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Edits to audit log docs Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Remove --audit-log-rotation and --audit-log-size option to set from CLI Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Make sure we delete audit log file before running each test Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Appends timestamp and process id to generate audit log file per invocation/execution Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Updates functional test for audit logging feature Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Fix typo in audit logging docs Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Appends the timestamp and process id to user provided audit log file so that unique audit log file created per invocation Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Updates the audit log functional test Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Minor code improvements Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Adds exception class for invalid audit log options Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Revert "REVERT THIS ONCE THE TEST IS GREEN: This is just to test implementation of audit log against the train changes made for audit log" This reverts commit a66137e70b08134a54c51beb4ed7895a944ff17e. * Upgrade train-core version pinning Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> * Docs review Signed-off-by: Ian Maddaus <ian.maddaus@progress.com> * Fix titles Signed-off-by: Ian Maddaus <ian.maddaus@progress.com> * Update the signature for features.yaml file Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> --------- Signed-off-by: Vasu1105 <vasundhara.jagdale@progress.com> Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> Signed-off-by: Ian Maddaus <ian.maddaus@progress.com> Co-authored-by: Clinton Wolfe <clintoncwolfe@gmail.com> Co-authored-by: Ian Maddaus <ian.maddaus@progress.com>
2023-11-09 15:28:12 +00:00
spec.add_dependency "train-core", ">= 3.11.0"
Usage Telemetry v3 (#6012) * Remove unused telemetry v1 code Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Sketch out basics of telemetry, with start/stop of invocation telemetry Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Data structure for run telemetry - job capture Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * Add per-control and per-run feature detection Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> * CHEF-4017 Telemetry job api updations (#6965) * Added initial changes to jobs api Signed-off-by: Nik08 <nikita.mathur@progress.com> * Feature flag changes for telemetry Signed-off-by: Nik08 <nikita.mathur@progress.com> * move base, debug and null to its own file structure Signed-off-by: Sathish <sbabu@progress.com> * make HTTP client post requests Signed-off-by: Sathish <sbabu@progress.com> * remove old logic Signed-off-by: Sathish <sbabu@progress.com> * make backend class as `HTTP` Signed-off-by: Sathish <sbabu@progress.com> * CHEF-7258 Fetch and use licensing information for telemetry (#6964) * Added method to fetch license ids for inspec Signed-off-by: Nik08 <nikita.mathur@progress.com> * Added free license check for performing telemetry api call Signed-off-by: Nik08 <nikita.mathur@progress.com> * move base, debug and null to its own file structure Signed-off-by: Sathish <sbabu@progress.com> * make HTTP client post requests Signed-off-by: Sathish <sbabu@progress.com> * remove old logic Signed-off-by: Sathish <sbabu@progress.com> * make backend class as `HTTP` Signed-off-by: Sathish <sbabu@progress.com> --------- Signed-off-by: Nik08 <nikita.mathur@progress.com> Signed-off-by: Sathish <sbabu@progress.com> Co-authored-by: Sathish <sbabu@progress.com> * Updated control tags and desc value to be used in jobs api Signed-off-by: Nik08 <nikita.mathur@progress.com> * Added checks for automate run context and free license check Signed-off-by: Nik08 <nikita.mathur@progress.com> * capture target mode and id Signed-off-by: Sathish <sbabu@progress.com> * profile doesn't need ID Signed-off-by: Sathish <sbabu@progress.com> * use run context to set environment data Signed-off-by: Sathish <sbabu@progress.com> * refactor `create_wrapper` to be localized Signed-off-by: Sathish <sbabu@progress.com> * change all timestamps to be UTC Signed-off-by: Sathish <sbabu@progress.com> * Null checks for response and corrected job api endpoint Signed-off-by: Nik08 <nikita.mathur@progress.com> * Fixed tag values to be sent as string in api call Signed-off-by: Nik08 <nikita.mathur@progress.com> * make version as float Signed-off-by: Sathish <sbabu@progress.com> * add platform name Signed-off-by: Sathish <sbabu@progress.com> * Added control result data in jobs api payload Signed-off-by: Nik08 <nikita.mathur@progress.com> * Debug logs added for telemetry call Signed-off-by: Nik08 <nikita.mathur@progress.com> * Removed unwanted telemetry debug class Signed-off-by: Nik08 <nikita.mathur@progress.com> * Payload fix to pass features data only on per control basis Signed-off-by: Nik08 <nikita.mathur@progress.com> * Added class function to list all invoked features by feature sub system Signed-off-by: Nik08 <nikita.mathur@progress.com> * Using feature system to get all invoked features list to be used in jobs api Signed-off-by: Nik08 <nikita.mathur@progress.com> * Unit tests cases updated and fixed Signed-off-by: Nik08 <nikita.mathur@progress.com> * License type check downcased Signed-off-by: Nik08 <nikita.mathur@progress.com> * Lint fix Signed-off-by: Nik08 <nikita.mathur@progress.com> * CHEF-7265 Telemetry opt-in for CINC users (#6966) * Enabled telemtry opt-in Signed-off-by: Nik08 <nikita.mathur@progress.com> * Removed old comments Signed-off-by: Nik08 <nikita.mathur@progress.com> * Unit test case added to validate the disabling telemetry behaviour for inspec user Signed-off-by: Nik08 <nikita.mathur@progress.com> --------- Signed-off-by: Nik08 <nikita.mathur@progress.com> --------- Signed-off-by: Nik08 <nikita.mathur@progress.com> Signed-off-by: Sathish <sbabu@progress.com> Co-authored-by: Sathish <sbabu@progress.com> * Product team review changes - only disable telemetry for commercial license users Signed-off-by: Nik08 <nikita.mathur@progress.com> * Connection failure handling for telemetry http call Signed-off-by: Nik08 <nikita.mathur@progress.com> * Testing fix - Remove usage of deleted library Signed-off-by: Nik08 <nikita.mathur@progress.com> * Telemetry test case fix - Issue caused because unit test are run without feature flag env set Signed-off-by: Nik08 <nikita.mathur@progress.com> * Fixed and replaced tightly coupled semver versioning regex matching test for telemetry data Signed-off-by: Nik08 <nikita.mathur@progress.com> * Telemery test fix to use license key from env or a dummy value if not set in env Signed-off-by: Nik08 <nikita.mathur@progress.com> * Added error logs in case the http call is not successful for telemetry Signed-off-by: Nik08 <nikita.mathur@progress.com> * Error handling for telemetry start and run calls Signed-off-by: Nik08 <nikita.mathur@progress.com> * Telemetry opt-in changes (#7055) * Removed usage of feature system to enable telemetry - making it opt-in by default Signed-off-by: Nik08 <nikita.mathur@progress.com> * Telemetry disable check fix when no option is passed in args Signed-off-by: Nik08 <nikita.mathur@progress.com> * Fix in test to use license specs defined for testing Signed-off-by: Nik08 <nikita.mathur@progress.com> --------- Signed-off-by: Nik08 <nikita.mathur@progress.com> * (Restoring) CHEF-10392 load default telemetry url conditionally (#7059) * load default telemetry url conditionally Signed-off-by: Sathish <sbabu@progress.com> * remove version base path version base path is defined in jobs path already Signed-off-by: Sathish <sbabu@progress.com> * use `CHEF_` prefix for the ENV Signed-off-by: Sathish <sbabu@progress.com> --------- Signed-off-by: Sathish <sbabu@progress.com> Co-authored-by: Sathish <sbabu@progress.com> * Typo fix in features list Signed-off-by: Nik08 <nikita.mathur@progress.com> * Stub added for CI license key Signed-off-by: Nik08 <nikita.mathur@progress.com> * License usage telemetry correction - not track control results (#7060) Signed-off-by: Nik08 <nikita.mathur@progress.com> * Changes to disable telemetry for other InSpec distros (#7065) Signed-off-by: Nik08 <nikita.mathur@progress.com> * Lint issue fix Signed-off-by: Nik08 <nikita.mathur@progress.com> * Removing disable telemetry test - breaks on CI because of commercial license usage Signed-off-by: Nik08 <nikita.mathur@progress.com> * CHEF-13228 Chef licensing telemetry documentation (#7056) * WIP chef telemetry env variable usage updated Signed-off-by: Nik08 <nikita.mathur@progress.com> * WIP intro added for chef telemetry - requires edit Signed-off-by: Nik08 <nikita.mathur@progress.com> * Correction in opt in behaviour of telemetry Signed-off-by: Nik08 <nikita.mathur@progress.com> * Doc update after default opt in changes Signed-off-by: Nik08 <nikita.mathur@progress.com> * Doc edit from product Signed-off-by: Nik08 <nikita.mathur@progress.com> * Doc edit Signed-off-by: Nik08 <nikita.mathur@progress.com> * Edits Signed-off-by: Ian Maddaus <ian.maddaus@progress.com> --------- Signed-off-by: Nik08 <nikita.mathur@progress.com> Signed-off-by: Ian Maddaus <ian.maddaus@progress.com> Co-authored-by: Ian Maddaus <ian.maddaus@progress.com> * Updated version pinning of chef licensing to version 1 for chef telemetry Signed-off-by: Nik08 <nikita.mathur@progress.com> --------- Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com> Signed-off-by: Nik08 <nikita.mathur@progress.com> Signed-off-by: Sathish <sbabu@progress.com> Signed-off-by: Ian Maddaus <ian.maddaus@progress.com> Co-authored-by: Nikita Mathur <Nik08@users.noreply.github.com> Co-authored-by: Sathish <sbabu@progress.com> Co-authored-by: Nik08 <nikita.mathur@progress.com> Co-authored-by: Ian Maddaus <ian.maddaus@progress.com>
2024-07-22 13:56:24 +00:00
# Minimum major version 1 is required for Chef licensing telemetry
spec.add_dependency "chef-licensing", ">= 1.0.2"
end