...
Each Compliance rule can be augmented with additional rule metadata through the use of annotations, the most significant of which is the Tag annotation which is described here.
...
Identifying the ‘severity’ of each rule. The MettleCI tools that use Compliance results (the Workbench user interface and the mettleci compliance test CLI command) need to know how to respond to Compliance Rule breaches. How a rule’s breach should be indicated in Workbench or whether its use in a CI pipeline should produce a warning message or abort the pipeline entirely can be defined using Tags.
Grouping Compliance Rules into ‘bundles’ of functionally related rules. This could enable users to report or test by functional area. Functional groups into which Compliance Rules could be bundled might be Performance, Security, Maintainability, etc. Tagging also permits a single rule to be associated with multiple functional areas, if required.
Enabling the fine-grained sharing of rules across teams within organisations (i.e. tags could be used to identify which DataStage teams they apply to)
Defining rules’ behaviour in different environments (e.g. Workbench vs. CI/CD plans)
...
Tags are case insensitive.
We strongly recommend that the values your use for Tags employ only alphanumeric characters (0-9, a-Z, A-Z) as Data Migrators can’t guarantee the support for non-alphanumeric tags across all potential possible CI platforms and use cases.
The default behaviour of not specifying tagging is that everything is included:
Omitting an Include
tag option
results in everything
being included.
The default behaviour of not specifying any Exclude tags option is that nothing is excluded.
Omitting an Exclude tag option results in nothing being excluded (i.e. everything is included).
Omitting Include and Exclude tag options results in everything being included.
When at least one tag is specified (either Include or Exclude), Compliance Rules are scanned recursively.
When no Include and Exclude tags are specified Compliance Rules are not scanned recursively (existing behaviour). When at least one tag is specified (either Include or Exclude), rules are scanned recursively.
You can use the asterisk (
*
) character to match all tags so you can use*
, which can be a useful technique to trigger recursive scanning when you need it:Specify an Include tag using
*
(to include everything) and leave Exclude tags blank
to trigger recursive scanning of rules
. This is different to omitting both specifications (or leaving them blank) which would results in shallow, non-recursive
scanning.
Multiple tags are expressed as a comma separated list with no spaces. (e.g.
-include-tags MyTag,AnotherTag,YetAnotherTag
)
Workbench Configuration
The MettleCI Workbench permits you to specify which include and exclude tags will be used when testing your Job’s Compliance interactively from within the Workbench interface.
...