Skip to main content

Validator tooling for InsightConnect integrations

Project description

InsightConnect Integrations Validators

pre-commit Code style: black Markdown Lint Unit testing

Tooling with a bundled suite of validator rules for ensuring quality across Rapid7 InsightConnect integrations.

Installation

pip install insightconnect-integrations-validators

Use

Simple!

Command

icon-validate my_plugin_directory/

or

icon-validate my_plugin_directory/ --all

to run entire set of validators used in our CI. Omitting --all is often helpful when developing.

Python

from icon_validator.validate import validate


validate("/path/to/plugin/directory")

or

validate("/path/to/plugin/directory", run_all=True)

to simulate the --all flag.

Contributions

Contributions are welcome! This project utilizes black and pre-commit for handling code style. Simply follow the instructions for installing pre-commit and run pre-commit install in the repository after cloning and you will be on your way to contributing!

Changelog

  • 2.47.30 - HelpInputOutputValidator - Handle multiline default/example values in plugin specs
  • 2.47.29 - Updated GitPython and requests dependencies to the latest versions
  • 2.47.28 - version_pin_validator updated to better handle non-requirements
  • 2.47.27 - SpecPropertiesValidator - Update to allow action_type field in components
  • 2.47.26 - Update validators list for connector plugins | Update HelpInputOutputValidator to escape values | Update VersionPinValidator to address inline comments
  • 2.47.25 - RunTimeValidator - Update check for setup includes | HelpValidator Update to warn instead of raise validator issue for invalid name casing
  • 2.47.24 - RunTimeValidator - Updated SDK version validator for new Dockerfile structure
  • 2.47.23 - RegenerationValidator - Show file names of mismatched checksums
  • 2.47.22 - VersionBumpValidator - Skipping remote validation for newly created local plugins
  • 2.47.21 - RuntimeValidator - Fixed issue where validator failed if plugin contained a cache files
  • 2.47.20 - Bumping requests in requirements.txt and bumping ldap in the version_pin_validator requirements.txt
  • 2.47.19 - VersionBumpValidator - Fixed issue where validator failed if plugin contained no actions or triggers
  • 2.47.18 - HelpInputOutputValidator | SpecPropertiesValidator - Update to enable placeholder and tooltip validation | RuntimeValidator - Added SDK version validation
  • 2.47.17 - SpecPropertiesValidator - Added new excludeProduct field validator
  • 2.47.16 - HelpInputOutputValidator - Update error message from icon-plugin to insight-plugin | DockerValidator - Print full error message and change instances of icon-plugin to insight-plugin
  • 2.47.15 - TitleValidator - Change validator to print all issues rather than break on the first
  • 2.47.14 - OutputValidator - Fix issue where schema.py files from the venv folder were being validated
  • 2.47.13 - HelpInputOutputValidator - Fix validator to change single quotes to double quotes when an input field uses list values so that it does not break
  • 2.47.12 - VersionBumpValidator - update validation for connection versions| Updated GitPython to version 3.1.41.
  • 2.47.11 - Update PyYaml version to fix unrelated tooling installation bug.
  • 2.47.10 - HelpInputOutputValidator - Improved error messaging around invalid action/trigger/task headings
  • 2.47.9 - DockerfileParentValidator | CloudReadyValidator - update to support cloud plugins and SDK image with specified --platform flag | VersionBumpValidator - add validation for connection versions.
  • 2.47.8 - DockerfileParentValidator | RuntimeValidator - update supported SDK images | Updated GitPython to version 3.1.37
  • 2.47.7 - ConfidentialValidator - Changed email violation to a warning
  • 2.47.6 - Updated GitPython to version 3.1.32
  • 2.47.5 - Updated requests to version 2.31.0 | Updated GitPython to version 3.1.30
  • 2.47.4 - New help validator to handle Custom Types title
  • 2.47.3 - Fix HelpInputOutputValidator when output in plugin.spec.yaml not contain an example field | Fix validation when example contains list in object in HelpExampleValidator
  • 2.47.2 - Allow hyphens in WorkflowTitleValidator
  • 2.47.1 - Fix plugin spec properties validator for tasks
  • 2.47.0 - Add name validator to ensure plugin name conforms to standards
  • 2.46.4 - Fix InputOutputValidator so that it does not break on datetime input examples
  • 2.46.3 - Update version validator to check v2 api call
  • 2.46.2 - Fixed VersionValidator regex failing to validate x0.x.x semantic version strings
  • 2.46.1 - Add null variable check to example input validator
  • 2.46.0 - Add new help.md validator to ensure there are key features, links, and examples
  • 2.45.0 - Separated UseCaseValidator for workflows as plugins and workflows now have different usecase tags
  • 2.44.2 - Fixed (and tested) VersionBumpValidator on new plugin
  • 2.44.1 - Fixed VersionBumpValidator bug on new plugins
  • 2.44.0 - Update WorkflowTitleValidator to validate titles in .icon file
  • 2.43.2 - Fixed breaking change that caused VersionBumpValidator to not get remote changes, made code safer
  • 2.43.1 - Add GitPython dependency for using VersionBumpValidator
  • 2.43.0 - Add VersionBumpValidator to check if a major or minor version increment is needed
  • 2.42.0 - Add in WorkflowScreenshotValidator to check parenthesis in screenshot title
  • 2.41.1 - Exit with proper return codes when ran independently via CLI
  • 2.41.0 - Add SupportedVersionValidator
  • 2.40.0 - Add PythonScriptUseValidator for workflows
  • 2.39.0 - Add HelpExampleValidator | Improve EncodingValidator by printing all forbidden characters at one time
  • 2.38.0 - Remove LoggingValidator | Update dependency versions
  • 2.37.0 - Add UnapprovedKeywordsValidator | Add unit tests for AcronymValidator
  • 2.36.0 - Add CloudReadyValidator
  • 2.35.0 - Update DescriptionValidator to print list of missing description field | Update VersionPinValidator to not fail when git+ is in requirements.txt
  • 2.34.0 - Fix issue where WorkflowParametersKeywordValidator was not being called
  • 2.33.0 - Update HelpValidator to identify duplicate headings | Update ConfidentialValidator to allow more e-mail examples
  • 2.32.0 - Fix problem when ExampleInputValidator fail if in example field are 0, False or None | Update WorkflowHelpPluginUtilizationValidator to not fail when plugin not in help.md and in .icon file
  • 2.31.0 - Update UseCaseValidator to print valid use cases | Update UseCaseValidator to identify duplicate use cases in keywords
  • 2.30.0 - Add WorkflowParametersKeywordValidator
  • 2.29.0 - Remove Workflow Description Validator to validate that the workflow description in workflow .icon file matches the description in workflow.spec.yaml
  • 2.28.0 - Add Encoding Validators to look for problematic characters | Update Workflow Description Validator to validate existence of description in workflow .icon file | Update Workflow Description Validator to validate that the workflow description in workflow .icon file matches the description in workflow.spec.yaml | Update title_validation_list | Change error message in title_validator for capitalized word when it should not
  • 2.27.0 - Add CloudReadyConnectionCredentialToken Validator
  • 2.26.0 - Add Example Input Validator to validate if example field exist in plugin.spec | Remove Mitre from AcronymValidator
  • 2.25.0 - Add Version Pin Validator to validate if dependency versions are pinned in requirements.txt
  • 2.24.0 - Update validators to support validation of plugin tasks.
  • 2.23.0 - Add Plugin Validator to identify missing version bump
  • 2.22.2 - Fix incorrect detection of 'array' in help.md
  • 2.22.1 - Revise Workflow Screenshots Validator
  • 2.22.0 - Add workflow directory name and workflow file match validator | Fix incorrect detection of 'lowercase' numbers in filenames | Add additional words to title list
  • 2.21.2 - Fix issue where numeric words in a title would break the title validator
  • 2.21.1 - Update HelpInputOutputValidator to validate on new Example inputs
  • 2.21.0 - Add new runtime validator to align with 4.0.0 release of InsightConnect Python Plugin Runtime
  • 2.20.0 - Add plugin utilization workflow validator | Fix issue where numbers in screenshot titles would cause validation to fail
  • 2.19.0 - Add new example input to whitelist in SpecPropertiesValidator
  • 2.18.0 - Add .icon file validator
  • 2.17.2 - Fix to remove some common words from the profanity validator
  • 2.17.1 - Fix broken package import
  • 2.17.0 - Add workflow name validator, Bug fix for title filters
  • 2.16.2 - Fix title validator where it would fail on titles with numbers in it.
  • 2.16.1 - Fix profanity filters and title filters to pull from once place
  • 2.16.0 - Add workflow description validator
  • 2.15.0 - Fix issue in title validator, Add title validator for workflows, clean up requirements
  • 2.14.0 - Fix issue where InputOutput validator would fail when missing required key
  • 2.13.0 - Add screenshot validator
  • 2.12.0 - Add validator to check that .icon filenames do not contain spaces
  • 2.11.0 - Add PNG Hash validator
  • 2.10.0 - Refactor of validate.py. Updates the validate method to use ValidationException and rework print statements to clean up unit testing
  • 2.9.0 - Add unit testing support. Add support, workflow files, workflow vendor, workflow version, workflow changelog and workflow extension validators
  • 2.8.1 - Bug fix for URLValidator when opening files
  • 2.8.0 - Update ChangelogValidator to validate plugin's version history with latest version number | Update HelpInputOutputValidator error messaging
  • 2.7.0 - Add URL Validator
  • 2.6.9 - Update HelpInputOutputValidator to fix error messaging | Fix issue with HelpInputOutputValidator when help.md has action and trigger with same name
  • 2.6.8 - Docker Validator to run with -a command line argument | Helpful message on failure
  • 2.6.7 - Fix issue where OutputValidator was throwing error for plugins without any action
  • 2.6.6 - Fix issue where HelpInputOutputValidator was not extracting complete output section of an action or trigger
  • 2.6.5 - Update IconValidator to check for extension.png
  • 2.6.4 - Remove invalid "JQ" entry from the Acronym Validator
  • 2.6.3 - Update AcronymValidator and HelpValidator to skip validating example outputs of help.md
  • 2.6.2 - Syntax error bug fix in validator order
  • 2.6.1 - Fix issue where SSDEEP was listed as an acronym | Run the DockerValidator last
  • 2.6.0 - Update to support workflow's help.md validation
  • 2.5.0 - Add help input output validator
  • 2.4.0 - Update to turn off ConfidentialValidator in code | Revised use case list for UseCase Validator
  • 2.3.0 - Add changelog validator
  • 2.2.0 - Using argparse module to handle arguments and provide -h option
  • 2.1.6 - Fix issue where ID was an acronym
  • 2.1.5 - Fix issue where confidential validator was not checking against provided whitelist
  • 2.1.4 - Fix issue where confidential validator was triggering on remediated findings and updated formatting
  • 2.1.3 - Update Exception Validator to throw warning
  • 2.1.2 - Fix issue where resources validator would always raise an exception
  • 2.1.1 - Update RequiredKeysValidator to validate the correct products key and empty resources keys
  • 2.1.0 - Update Golang RegenerationValidator
  • 2.0.2 - Update HelpValidator to fix error messaging
  • 2.0.1 - Update UseCaseValidator valid use case list
  • 2.0.0 - Update Help Validator to use new help format | Update RequiredKeys Validator for new spec fields | Add validator rule: use case validation
  • 1.3.0 - Add --all flag to run entire set of validators, add Confidential Validator, Regeneration Validator clean up
  • 1.2.0 - Add regeneration validator jenkins support
  • 1.1.8 - Add regeneration validator
  • 1.1.7 - Remove false positive "SPAM" entry from the Acronym Validator
  • 1.1.6 - Improved Output validator
  • 1.1.5 - Remove Makefile validator rule, fix rules import
  • 1.1.4 - Move rules package inside icon_validator
  • 1.1.3 - Ignore unit test directories (/unit_test & /unit_tests) in Exception Validator
  • 1.1.2 - Fix for Acronym and Output validators
  • 1.1.1 - Removed breaking changes to Makefile validator
  • 1.1.0 - Add validator rules: check for help.md, profanity check, acronym capitalization check, print usage check, JSON tests, exceptions, credentials, passwords | Updated rules: Makefiles, logging
  • 1.0.0 - Initial release

PyPi.org link: https://pypi.org/project/insightconnect-integrations-validators/

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file insightconnect_integrations_validators-2.47.30.tar.gz.

File metadata

File hashes

Hashes for insightconnect_integrations_validators-2.47.30.tar.gz
Algorithm Hash digest
SHA256 1bc464763cdb4f3281b9c28791e6ac2b4c611dcba0617f67ae5210c501a0f656
MD5 4cc03ee51023296ee769d8d69c7927bf
BLAKE2b-256 3945e4bd76cf3cff69e723aaaab43e04629adb714b89541a92453debdab63272

See more details on using hashes here.

File details

Details for the file insightconnect_integrations_validators-2.47.30-py3-none-any.whl.

File metadata

File hashes

Hashes for insightconnect_integrations_validators-2.47.30-py3-none-any.whl
Algorithm Hash digest
SHA256 0b5649d15667fe507b611b7730ac99f46986b8f49831dd05007735084d33dc6c
MD5 5a6cfc1b4be68cb1a56843ae62b8a323
BLAKE2b-256 e342f413c979ef81ce82d3c660ed140e0dec280a3bca7ad19f3f45929941f706

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page