Description
"Pruning" is what the profile resolution spec describes as the removal of items from catalogs to produce baselines (resolved catalogs), where those items are not wanted or needed. A typical example would be how after selecting only a few controls from the catalog, in resolution a processor should know how to propagate only those resource
objects in the back matter, that are actually referenced as links in the included controls. So the back matter gets trimmed to what is actually used. This can be overridden by including a property keep
with value always
, as described etc. etc.
Except as written, the rules are too greedy, and following them would require including (for example) controls that are specifically excluded.
For example https://pages.nist.gov/OSCAL/concepts/processing/profile-resolution/#d2e1504-head,
If the object appears in a reference anywhere in the final result catalog, except in other objects that also meet all other pruning criteria, it MUST NOT be removed. A reference to a given object exists if
#{distinctiveID}
appears anywhere, where{distinctiveID}
is the distinctive ID of the object ...
If we follow this, then any control that is cross-referenced via link[@rel='related']
must be included, even when explicitly not included.
Similarly problematic are references from the merge
phase.
Let's consider tightening these rules for example to include only references to parameters (which cannot be pruned without doing actual damage to document semantics), not just any reference to something?
Metadata
Metadata
Assignees
Type
Projects
Status