Skip to content

Commit 5910df3

Browse files
Chris Comptonaj-stein-nist
andcommitted
POAM related finding support, fixes #1120 (#1478)
* Add related finding assembly. #1120 * Add finding assembly to support related-findings, also moved finding to assessment common from assessment result metaschema. * Accept suggestion to revise description. Co-authored-by: Alexander Stein <[email protected]>
1 parent a27f066 commit 5910df3

File tree

3 files changed

+80
-65
lines changed

3 files changed

+80
-65
lines changed

src/metaschema/oscal_assessment-common_metaschema.xml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,72 @@
786786
</model>
787787
</define-assembly>
788788

789+
<define-assembly name="finding">
790+
<formal-name>Finding</formal-name>
791+
<description>Describes an individual finding.</description>
792+
<define-flag name="uuid" required="yes" as-type="uuid">
793+
<formal-name>Finding Universally Unique Identifier</formal-name>
794+
<!-- Identifier Declaration -->
795+
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this finding in <a href="/concepts/identifier-use/#ar-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>finding</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</description>
796+
</define-flag>
797+
<model>
798+
<define-field name="title" min-occurs="1" as-type="markup-line">
799+
<formal-name>Finding Title</formal-name>
800+
<description>The title for this finding.</description>
801+
</define-field>
802+
<!-- CHANGE: Added WITH_WRAPPER to description -->
803+
<define-field name="description" min-occurs="1" in-xml="WITH_WRAPPER" as-type="markup-multiline">
804+
<formal-name>Finding Description</formal-name>
805+
<description>A human-readable description of this finding.</description>
806+
</define-field>
807+
808+
<assembly ref="property" max-occurs="unbounded">
809+
<group-as name="props" in-json="ARRAY"/>
810+
</assembly>
811+
<assembly ref="link" max-occurs="unbounded">
812+
<group-as name="links" in-json="ARRAY"/>
813+
</assembly>
814+
815+
<assembly ref="origin" max-occurs="unbounded">
816+
<group-as name="origins" in-json="ARRAY"/>
817+
<remarks>
818+
<p>Used to identify the individual and/or tool generated this finding.</p>
819+
</remarks>
820+
</assembly>
821+
<assembly ref="finding-target" min-occurs="1">
822+
<use-name>target</use-name>
823+
</assembly>
824+
<define-field name="implementation-statement-uuid" as-type="uuid" min-occurs="0" max-occurs="1">
825+
<formal-name>Implementation Statement UUID</formal-name>
826+
<!-- Identifier Reference -->
827+
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to the implementation statement in the SSP to which this finding is related.</description>
828+
</define-field>
829+
<!-- CHANGED: replaced embedded observation with references -->
830+
<define-assembly name="related-observation" max-occurs="unbounded">
831+
<formal-name>Related Observation</formal-name>
832+
<description>Relates the finding to a set of referenced observations that were used to determine the finding.</description>
833+
<group-as name="related-observations" in-json="ARRAY"/>
834+
<define-flag name="observation-uuid" as-type="uuid" required="yes">
835+
<formal-name>Observation Universally Unique Identifier Reference</formal-name>
836+
<!-- Identifier Reference -->
837+
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to an observation defined in the list of observations.</description>
838+
</define-flag>
839+
</define-assembly>
840+
<!-- CHANGED: replaced "risk" with new "assciated-risk" -->
841+
<define-assembly name="associated-risk" max-occurs="unbounded">
842+
<formal-name>Associated Risk</formal-name>
843+
<description>Relates the finding to a set of referenced risks that were used to determine the finding.</description>
844+
<group-as name="related-risks" in-json="ARRAY"/>
845+
<define-flag name="risk-uuid" as-type="uuid" required="yes">
846+
<formal-name>Risk Universally Unique Identifier Reference</formal-name>
847+
<!-- Identifier Reference -->
848+
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to a risk defined in the list of risks.</description>
849+
</define-flag>
850+
</define-assembly>
851+
<field ref="remarks" in-xml="WITH_WRAPPER" min-occurs="0" max-occurs="1"/>
852+
</model>
853+
</define-assembly>
854+
789855
<define-assembly name="observation">
790856
<formal-name>Observation</formal-name>
791857
<description>Describes an individual observation.</description>

src/metaschema/oscal_assessment-results_metaschema.xml

Lines changed: 1 addition & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -248,71 +248,7 @@
248248
</model>
249249
</define-assembly>
250250

251-
<define-assembly name="finding">
252-
<formal-name>Finding</formal-name>
253-
<description>Describes an individual finding.</description>
254-
<define-flag name="uuid" required="yes" as-type="uuid">
255-
<formal-name>Finding Universally Unique Identifier</formal-name>
256-
<!-- Identifier Declaration -->
257-
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this finding in <a href="/concepts/identifier-use/#ar-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>finding</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</description>
258-
</define-flag>
259-
<model>
260-
<define-field name="title" min-occurs="1" as-type="markup-line">
261-
<formal-name>Finding Title</formal-name>
262-
<description>The title for this finding.</description>
263-
</define-field>
264-
<!-- CHANGE: Added WITH_WRAPPER to description -->
265-
<define-field name="description" min-occurs="1" in-xml="WITH_WRAPPER" as-type="markup-multiline">
266-
<formal-name>Finding Description</formal-name>
267-
<description>A human-readable description of this finding.</description>
268-
</define-field>
269-
270-
<assembly ref="property" max-occurs="unbounded">
271-
<group-as name="props" in-json="ARRAY"/>
272-
</assembly>
273-
<assembly ref="link" max-occurs="unbounded">
274-
<group-as name="links" in-json="ARRAY"/>
275-
</assembly>
276-
277-
<assembly ref="origin" max-occurs="unbounded">
278-
<group-as name="origins" in-json="ARRAY"/>
279-
<remarks>
280-
<p>Used to identify the individual and/or tool generated this finding.</p>
281-
</remarks>
282-
</assembly>
283-
<assembly ref="finding-target" min-occurs="1">
284-
<use-name>target</use-name>
285-
</assembly>
286-
<define-field name="implementation-statement-uuid" as-type="uuid" min-occurs="0" max-occurs="1">
287-
<formal-name>Implementation Statement UUID</formal-name>
288-
<!-- Identifier Reference -->
289-
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to the implementation statement in the SSP to which this finding is related.</description>
290-
</define-field>
291-
<!-- CHANGED: replaced embedded observation with references -->
292-
<define-assembly name="related-observation" max-occurs="unbounded">
293-
<formal-name>Related Observation</formal-name>
294-
<description>Relates the finding to a set of referenced observations that were used to determine the finding.</description>
295-
<group-as name="related-observations" in-json="ARRAY"/>
296-
<define-flag name="observation-uuid" as-type="uuid" required="yes">
297-
<formal-name>Observation Universally Unique Identifier Reference</formal-name>
298-
<!-- Identifier Reference -->
299-
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to an observation defined in the list of observations.</description>
300-
</define-flag>
301-
</define-assembly>
302-
<!-- CHANGED: replaced "risk" with new "assciated-risk" -->
303-
<define-assembly name="associated-risk" max-occurs="unbounded">
304-
<formal-name>Associated Risk</formal-name>
305-
<description>Relates the finding to a set of referenced risks that were used to determine the finding.</description>
306-
<group-as name="related-risks" in-json="ARRAY"/>
307-
<define-flag name="risk-uuid" as-type="uuid" required="yes">
308-
<formal-name>Risk Universally Unique Identifier Reference</formal-name>
309-
<!-- Identifier Reference -->
310-
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to a risk defined in the list of risks.</description>
311-
</define-flag>
312-
</define-assembly>
313-
<field ref="remarks" in-xml="WITH_WRAPPER" min-occurs="0" max-occurs="1"/>
314-
</model>
315-
</define-assembly>
251+
<!-- Moved Finding Assembly to Assessment Common -->
316252

317253
<!-- Assessment Plan Import -->
318254
<define-assembly name="import-ap">

src/metaschema/oscal_poam_metaschema.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
<assembly ref="risk" min-occurs="0" max-occurs="unbounded">
4545
<group-as name="risks" in-json="ARRAY"/>
4646
</assembly>
47+
<assembly ref="finding" min-occurs="0" max-occurs="unbounded">
48+
<group-as name="findings" in-json="ARRAY"/>
49+
</assembly>
4750
<assembly ref="poam-item" min-occurs="1" max-occurs="unbounded">
4851
<!-- CHANGED: removed the top-level "poam-items" -->
4952
<!-- CHANGED: "poam-item-group" to "poam-items" -->
@@ -129,6 +132,16 @@
129132
</remarks>
130133
</define-assembly>
131134

135+
<define-assembly name="related-finding" min-occurs="0" max-occurs="unbounded">
136+
<formal-name>Related Finding</formal-name>
137+
<description>Relates the poam-item to referenced finding(s).</description>
138+
<group-as name="related-findings" in-json="ARRAY"/>
139+
<define-flag name="finding-uuid" as-type="uuid" required="yes">
140+
<formal-name>Finding Universally Unique Identifier Reference</formal-name>
141+
<description>A <a href="/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to a finding defined in the list of findings.</description>
142+
</define-flag>
143+
</define-assembly>
144+
132145
<!-- TODO: add link; check in the other assessment models -->
133146
<!-- CHANGED: removed "collected" and "expires" (moved to observation) by brianrufgsa -->
134147
<!-- CHANGED: removed "objective-status" per brianrufgsa -->

0 commit comments

Comments
 (0)