-
Notifications
You must be signed in to change notification settings - Fork 93
Compliant Policies Arguments Validation #5168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Changelog(s) in markdown:
|
|
Changelog(s) in markdown:
|
demisto_sdk/commands/validate/validators/BA_validators/BA129_missing_compliant_policies.py
Outdated
Show resolved
Hide resolved
| if not valid_policy_options: | ||
| continue | ||
| # Check if the declared policies cover the requirements for this arg | ||
| if valid_policy_options.isdisjoint(declared_policies): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can only report the actually missing policies to give more precise feedback.
Something like:
missing_for_arg = valid_policy_options - declared_policies
if missing_for_arg:
problematic_arguments.add(arg)
missing_policy_options.update(missing_for_arg)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can’t do this because, for example, for "user" it is sufficient that at least one policy is available "Hard User Remediation" or "Soft User Remediation".
So i check whether there is any overlap between the required and declared policies. If an overlap exists, we continue. If not, we add the relevant missing optional policies.
It will report only actually missing required policies because its per argument.
Related Issues
fixes: Ticket
Description
Adds a new ignorable validation (BA129) that ensures commands/scripts declare the appropriate compliantpolicies when using arguments associated with specific compliance standards (defined in compliant_policies.json).
Key Logic:
Checks if command arguments match any known policy arguments.
Verifies that the compliantpolicies field contains the required policy name.
Multi-Policy Support: If an argument is associated with multiple policies (e.g., "Soft" and "Hard" remediation), the validation passes if at least one of them is present.