diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature
index b4168d329..74cd9f12e 100644
--- a/features/fedramp_extensions.feature
+++ b/features/fedramp_extensions.feature
@@ -43,6 +43,9 @@ Examples:
| component-has-non-provider-responsible-role |
| component-has-provider-responsible-role |
| component-has-used-by-link |
+ | component-has-valid-validation-details-link |
+ | component-has-validation-details-link |
+ | component-has-validation-reference |
| component-type |
| connection-security |
| control-implementation-status |
@@ -183,6 +186,7 @@ Examples:
| user-privilege-level |
| user-sensitivity-level |
| user-type |
+ | validation-reference-has-correct-format |
#END_DYNAMIC_CONSTRAINT_IDS
@constraints
@@ -234,6 +238,12 @@ Examples:
| component-has-non-provider-responsible-role-PASS.yaml |
| component-has-used-by-link-FAIL.yaml |
| component-has-used-by-link-PASS.yaml |
+ | component-has-valid-validation-details-link-FAIL.yaml |
+ | component-has-valid-validation-details-link-PASS.yaml |
+ | component-has-validation-details-link-FAIL.yaml |
+ | component-has-validation-details-link-PASS.yaml |
+ | component-has-validation-reference-FAIL.yaml |
+ | component-has-validation-reference-PASS.yaml |
| component-responsible-role-references-party-FAIL.yaml |
| component-responsible-role-references-party-PASS.yaml |
| component-type-FAIL.yaml |
@@ -516,6 +526,8 @@ Examples:
| user-sensitivity-level-PASS.yaml |
| user-type-FAIL.yaml |
| user-type-PASS.yaml |
+ | validation-reference-has-correct-format-FAIL.yaml |
+ | validation-reference-has-correct-format-PASS.yaml |
#END_DYNAMIC_TEST_CASES
@style-guide
diff --git a/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml b/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
index 366139e44..699cf3960 100644
--- a/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+++ b/src/content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
@@ -1712,8 +1712,8 @@ compliance (e.g., Module in Process).
-
-
+
+
@@ -1731,8 +1731,8 @@ compliance (e.g., Module in Process).
-
-
+
+
diff --git a/src/validations/constraints/content/ssp-component-has-valid-validation-details-link-INVALID.xml b/src/validations/constraints/content/ssp-component-has-valid-validation-details-link-INVALID.xml
new file mode 100644
index 000000000..dd0164901
--- /dev/null
+++ b/src/validations/constraints/content/ssp-component-has-valid-validation-details-link-INVALID.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/content/ssp-component-has-validation-details-link-INVALID.xml b/src/validations/constraints/content/ssp-component-has-validation-details-link-INVALID.xml
new file mode 100644
index 000000000..85508274b
--- /dev/null
+++ b/src/validations/constraints/content/ssp-component-has-validation-details-link-INVALID.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/content/ssp-component-has-validation-reference-INVALID.xml b/src/validations/constraints/content/ssp-component-has-validation-reference-INVALID.xml
new file mode 100644
index 000000000..c9f79c94b
--- /dev/null
+++ b/src/validations/constraints/content/ssp-component-has-validation-reference-INVALID.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/content/ssp-validation-reference-has-correct-format-INVALID.xml b/src/validations/constraints/content/ssp-validation-reference-has-correct-format-INVALID.xml
new file mode 100644
index 000000000..7200ae3af
--- /dev/null
+++ b/src/validations/constraints/content/ssp-validation-reference-has-correct-format-INVALID.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index c4f534b5e..ab860ae48 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -5,6 +5,32 @@
+
+
+
+
+ Component Has Valid Proof of Compliance Link
+
+ In a FedRAMP SSP, a validation component MUST include a valid validation details link.
+
+
+ Component Has Proof of Compliance Link
+
+ In a FedRAMP SSP, a validation component MUST include a validation details link.
+
+
+ Component Has Validation Reference
+
+ In a FedRAMP SSP, a validation component MUST include a validation reference.
+
+
+ Validation Reference Has Correct Format
+
+ In a FedRAMP SSP, a validation component MUST include a validation reference with the correct 4-digit format.
+
+
+
+
diff --git a/src/validations/constraints/unit-tests/component-has-valid-validation-details-link-FAIL.yaml b/src/validations/constraints/unit-tests/component-has-valid-validation-details-link-FAIL.yaml
new file mode 100644
index 000000000..b64e61034
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-valid-validation-details-link-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for component-has-valid-validation-details-link
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-valid-validation-details-link
+ content: ../content/ssp-component-has-valid-validation-details-link-INVALID.xml
+ expectations:
+ - constraint-id: component-has-valid-validation-details-link
+ result: fail
diff --git a/src/validations/constraints/unit-tests/component-has-valid-validation-details-link-PASS.yaml b/src/validations/constraints/unit-tests/component-has-valid-validation-details-link-PASS.yaml
new file mode 100644
index 000000000..506404854
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-valid-validation-details-link-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for component-has-valid-validation-details-link
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-valid-validation-details-link
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: component-has-valid-validation-details-link
+ result: pass
diff --git a/src/validations/constraints/unit-tests/component-has-validation-details-link-FAIL.yaml b/src/validations/constraints/unit-tests/component-has-validation-details-link-FAIL.yaml
new file mode 100644
index 000000000..bfa7032df
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-validation-details-link-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for component-has-validation-details-link
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-validation-details-link
+ content: ../content/ssp-component-has-validation-details-link-INVALID.xml
+ expectations:
+ - constraint-id: component-has-validation-details-link
+ result: fail
diff --git a/src/validations/constraints/unit-tests/component-has-validation-details-link-PASS.yaml b/src/validations/constraints/unit-tests/component-has-validation-details-link-PASS.yaml
new file mode 100644
index 000000000..a6faf52c0
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-validation-details-link-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for component-has-validation-details
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-validation-details
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: component-has-validation-details
+ result: pass
diff --git a/src/validations/constraints/unit-tests/component-has-validation-reference-FAIL.yaml b/src/validations/constraints/unit-tests/component-has-validation-reference-FAIL.yaml
new file mode 100644
index 000000000..6cfebf2da
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-validation-reference-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for component-has-validation-reference
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-validation-reference
+ content: ../content/ssp-component-has-validation-reference-INVALID.xml
+ expectations:
+ - constraint-id: component-has-validation-reference
+ result: fail
diff --git a/src/validations/constraints/unit-tests/component-has-validation-reference-PASS.yaml b/src/validations/constraints/unit-tests/component-has-validation-reference-PASS.yaml
new file mode 100644
index 000000000..16176ce65
--- /dev/null
+++ b/src/validations/constraints/unit-tests/component-has-validation-reference-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for component-has-validation-reference
+ description: >-
+ This test case validates the behavior of constraint
+ component-has-validation-reference
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: component-has-validation-reference
+ result: pass
diff --git a/src/validations/constraints/unit-tests/validation-reference-has-correct-format-FAIL.yaml b/src/validations/constraints/unit-tests/validation-reference-has-correct-format-FAIL.yaml
new file mode 100644
index 000000000..10c685575
--- /dev/null
+++ b/src/validations/constraints/unit-tests/validation-reference-has-correct-format-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for validation-reference-has-correct-format
+ description: >-
+ This test case validates the behavior of constraint
+ validation-reference-has-correct-format
+ content: ../content/ssp-validation-reference-has-correct-format-INVALID.xml
+ expectations:
+ - constraint-id: validation-reference-has-correct-format
+ result: fail
diff --git a/src/validations/constraints/unit-tests/validation-reference-has-correct-format-PASS.yaml b/src/validations/constraints/unit-tests/validation-reference-has-correct-format-PASS.yaml
new file mode 100644
index 000000000..102bebecd
--- /dev/null
+++ b/src/validations/constraints/unit-tests/validation-reference-has-correct-format-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for validation-reference-has-correct-format
+ description: >-
+ This test case validates the behavior of constraint
+ validation-reference-has-correct-format
+ content: ../../../content/rev5/examples/ssp/xml/fedramp-ssp-example.oscal.xml
+ expectations:
+ - constraint-id: validation-reference-has-correct-format
+ result: pass