inspec/inspec-core.gemspec
Clinton Wolfe 29242deb7c
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 19:26:24 +05:30

67 lines
4 KiB
Ruby

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"
spec.add_dependency "train-core", ">= 3.11.0"
# Minimum major version 1 is required for Chef licensing telemetry
spec.add_dependency "chef-licensing", ">= 1.0.0"
end