Validator tooling for InsightConnect integrations
Project description
InsightConnect Integrations Validators
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.28 -
version_pin_validatorupdated to better handle non-requirements - 2.47.27 -
SpecPropertiesValidator- Update to allowaction_typefield incomponents - 2.47.26 - Update validators list for connector plugins | Update
HelpInputOutputValidatorto escape values | UpdateVersionPinValidatorto address inline comments - 2.47.25 -
RunTimeValidator- Update check for setup includes |HelpValidatorUpdate 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
requestsin requirements.txt and bumpingldapin theversion_pin_validatorrequirements.txt - 2.47.19 -
VersionBumpValidator- Fixed issue where validator failed if plugin contained no actions or triggers - 2.47.18 -
HelpInputOutputValidator|SpecPropertiesValidator- Update to enableplaceholderandtooltipvalidation |RuntimeValidator- Added SDK version validation - 2.47.17 -
SpecPropertiesValidator- Added new excludeProduct field validator - 2.47.16 -
HelpInputOutputValidator- Update error message fromicon-plugintoinsight-plugin|DockerValidator- Print full error message and change instances oficon-plugintoinsight-plugin - 2.47.15 -
TitleValidator- Change validator to print all issues rather than break on the first - 2.47.14 -
OutputValidator- Fix issue whereschema.pyfiles 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| UpdatedGitPythonto 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--platformflag |VersionBumpValidator- add validation for connection versions. - 2.47.8 -
DockerfileParentValidator|RuntimeValidator- update supported SDK images | UpdatedGitPythonto version 3.1.37 - 2.47.7 -
ConfidentialValidator- Changed email violation to a warning - 2.47.6 - Updated
GitPythonto version 3.1.32 - 2.47.5 - Updated
requeststo version 2.31.0 | UpdatedGitPythonto version 3.1.30 - 2.47.4 - New help validator to handle
Custom Typestitle - 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
.iconfile - 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
examplefield are 0, False or None | Update WorkflowHelpPluginUtilizationValidator to not fail when plugin not inhelp.mdand in.iconfile - 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
descriptionin 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
descriptionin workflow .icon file | Update Workflow Description Validator to validate that the workflowdescriptionin workflow .icon file matches the description in workflow.spec.yaml | Updatetitle_validation_list| Change error message intitle_validatorfor 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
exampleinput 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
rulespackage insideicon_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,
printusage 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file insightconnect_integrations_validators-2.47.28.tar.gz.
File metadata
- Download URL: insightconnect_integrations_validators-2.47.28.tar.gz
- Upload date:
- Size: 76.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2eb56398c6d993f9876f16b75bb884f853878a308d6f48defc25df7b1c0746a
|
|
| MD5 |
38168dd0fc6309d35158c227dbcfa49b
|
|
| BLAKE2b-256 |
798bb7fa0ffd6712c96e1f3c0ce352dcbfb32110a1e253de6f3c0ab9e9f8735b
|
File details
Details for the file insightconnect_integrations_validators-2.47.28-py3-none-any.whl.
File metadata
- Download URL: insightconnect_integrations_validators-2.47.28-py3-none-any.whl
- Upload date:
- Size: 104.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
939a3826beb8095563151e6bfefd3704bea78ea41294d9550a099505da4ca81f
|
|
| MD5 |
ecc816907455bade1edd095e7eaf5fc5
|
|
| BLAKE2b-256 |
f1e0180a6fb7c233906dd9bda050309ff7a4bafe0c0edf4966b021c239a60a34
|