diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature index 8769bd13e..cae0d0fc8 100644 --- a/features/fedramp_extensions.feature +++ b/features/fedramp_extensions.feature @@ -27,6 +27,16 @@ Examples: | component-type-PASS.yaml | | control-implementation-status-FAIL.yaml | | control-implementation-status-PASS.yaml | + | data-center-alternate-FAIL.yaml | + | data-center-alternate-PASS.yaml | + | data-center-count-FAIL.yaml | + | data-center-count-PASS.yaml | + | data-center-country-code-FAIL.yaml | + | data-center-country-code-PASS.yaml | + | data-center-primary-FAIL.yaml | + | data-center-primary-PASS.yaml | + | data-center-us-FAIL.yaml | + | data-center-us-PASS.yaml | | deployment-mode-FAIL.yaml | | deployment-mode-PASS.yaml | | information-type-system-FAIL.yaml | @@ -68,6 +78,11 @@ Examples: | cloud-service-model | | component-type | | control-implementation-status | + | data-center-US | + | data-center-alternate | + | data-center-count | + | data-center-country-code | + | data-center-primary | | deployment-model | | information-type-system | | interconnection-direction | diff --git a/src/validations/constraints/content/ssp-all-INVALID.xml b/src/validations/constraints/content/ssp-all-INVALID.xml index 43d68388b..6904ae83c 100644 --- a/src/validations/constraints/content/ssp-all-INVALID.xml +++ b/src/validations/constraints/content/ssp-all-INVALID.xml @@ -23,7 +23,12 @@ Asset Owner - + +
+ WRONG +
+ +
Example Organization ExOrg diff --git a/src/validations/constraints/content/ssp-all-VALID.xml b/src/validations/constraints/content/ssp-all-VALID.xml index e0e99e30c..feee85913 100644 --- a/src/validations/constraints/content/ssp-all-VALID.xml +++ b/src/validations/constraints/content/ssp-all-VALID.xml @@ -23,7 +23,18 @@ Asset Owner - + +
+ US +
+ +
+ +
+ US +
+ +
Example Organization ExOrg @@ -34,14 +45,13 @@ jane.doe@example.com
- + 11111111-0000-4000-9000-000000000001 22222222-0000-4000-9000-000000000002 -

This SSP is an example for demonstration purposes.

diff --git a/src/validations/constraints/content/ssp-location-INVALID.xml b/src/validations/constraints/content/ssp-location-INVALID.xml new file mode 100644 index 000000000..e0b33fc12 --- /dev/null +++ b/src/validations/constraints/content/ssp-location-INVALID.xml @@ -0,0 +1,207 @@ + + + + Enhanced Example System Security Plan + 2024-08-01T14:30:00Z + 2024-08-01T14:30:00Z + 1.1 + 1.0.0 + SSP-2024-002 + + + Document Creator + + + Content Approver + + + System Administrator + + + Asset Owner + + +
+
+ +
+ + Example Organization + ExOrg + +
+ + + Jane Doe + jane.doe@example.com +
+ + + + 11111111-0000-4000-9000-000000000001 + + + 22222222-0000-4000-9000-000000000002 + + + +

This SSP is an example for demonstration purposes.

+
+ + + + + + F00000001 + Enhanced Example System + +

This is an enhanced example system for demonstration purposes, incorporating more FedRAMP-specific elements.

+
+ + + + moderate + + + Financial Information + +

Contains sensitive financial data related to organizational operations.

+
+ + C.2.8.12 + + + high + + + moderate + + + low + +
+
+ + + moderate + moderate + moderate + + + + + + +

The authorization boundary includes all components within the main data center and the disaster recovery site.

+
+
+
+ + + + System Administrator + + + system-admin + + + + Primary Application Server + +

Main application server hosting the core system functionality.

+
+ main line + + + 11111111-0000-4000-9000-000000000001 + + +

This is the primary application server for the system.

+
+
+ + + External API Connection + +

Secure connection to an external API for data enrichment.

+
+ + + + + 11111111-0000-4000-9000-000000000001 + + +

This connection is used for secure data exchange with external systems.

+
+
+ + + +

Primary database server

+
+ + + + + + + + 11111111-0000-4000-9000-000000000001 + + + + +
+
+ + + +

Implementation of controls for the Enhanced Example System

+
+ + + + + + + +

Access Control Policy and Procedures (AC-1) is fully implemented in our system.

+
+ + + 11111111-0000-4000-9000-000000000001 + +
+
+ + + + + + + +

Information System Component Inventory (CM-8) is partially implemented.

+
+ + + 11111111-0000-4000-9000-000000000001 + +
+
+
+ + + + Access Control Policy + +

Detailed access control policy document

+
+ + +
+
+ diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml index 8907d8ac4..34b7faa2b 100644 --- a/src/validations/constraints/fedramp-external-constraints.xml +++ b/src/validations/constraints/fedramp-external-constraints.xml @@ -19,10 +19,20 @@ + + + + + Each data center address must contain a country code. + + + Each data center must have an address that is within the United States. + + + - Every supporting artifact found in a citation should have a title. @@ -31,6 +41,20 @@ Every supporting artifact found in a citation must have at least one base64 or rlink element. - - \ No newline at end of file + + + + + There must be at least two (2) data centers listed. + + + + There must be a single primary data center. + + + There must be one or more alternate data center(s). + + + + diff --git a/src/validations/constraints/unit-tests/data-center-alternate-FAIL.yaml b/src/validations/constraints/unit-tests/data-center-alternate-FAIL.yaml new file mode 100644 index 000000000..611ab7c3c --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-alternate-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for data-center-alternate + description: This test case validates the behavior of constraint data-center-alternate + content: ../content/ssp-all-INVALID.xml + expectations: + - constraint-id: data-center-alternate + result: fail diff --git a/src/validations/constraints/unit-tests/data-center-alternate-PASS.yaml b/src/validations/constraints/unit-tests/data-center-alternate-PASS.yaml new file mode 100644 index 000000000..1f2cb46ab --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-alternate-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for data-center-alternate + description: This test case validates the behavior of constraint data-center-alternate + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: data-center-alternate + result: pass diff --git a/src/validations/constraints/unit-tests/data-center-count-FAIL.yaml b/src/validations/constraints/unit-tests/data-center-count-FAIL.yaml new file mode 100644 index 000000000..088ad863f --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-count-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for data-center-count + description: This test case validates the behavior of constraint data-center-count + content: ../content/ssp-all-INVALID.xml + expectations: + - constraint-id: data-center-count + result: fail diff --git a/src/validations/constraints/unit-tests/data-center-count-PASS.yaml b/src/validations/constraints/unit-tests/data-center-count-PASS.yaml new file mode 100644 index 000000000..1ecbcdcfe --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-count-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for data-center-count + description: This test case validates the behavior of constraint data-center-count + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: data-center-count + result: pass diff --git a/src/validations/constraints/unit-tests/data-center-country-code-FAIL.yaml b/src/validations/constraints/unit-tests/data-center-country-code-FAIL.yaml new file mode 100644 index 000000000..5005973e0 --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-country-code-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for data-center-country-code + description: This test case validates the behavior of constraint data-center-country-code + content: ../content/ssp-location-INVALID.xml + expectations: + - constraint-id: data-center-country-code + result: fail diff --git a/src/validations/constraints/unit-tests/data-center-country-code-PASS.yaml b/src/validations/constraints/unit-tests/data-center-country-code-PASS.yaml new file mode 100644 index 000000000..446d65872 --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-country-code-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for data-center-country-code + description: This test case validates the behavior of constraint data-center-country-code + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: data-center-country-code + result: pass diff --git a/src/validations/constraints/unit-tests/data-center-primary-FAIL.yaml b/src/validations/constraints/unit-tests/data-center-primary-FAIL.yaml new file mode 100644 index 000000000..f0af5a9f1 --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-primary-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for data-center-primary + description: This test case validates the behavior of constraint data-center-primary + content: ../content/ssp-all-INVALID.xml + expectations: + - constraint-id: data-center-primary + result: fail diff --git a/src/validations/constraints/unit-tests/data-center-primary-PASS.yaml b/src/validations/constraints/unit-tests/data-center-primary-PASS.yaml new file mode 100644 index 000000000..2225fb9e7 --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-primary-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for data-center-primary + description: This test case validates the behavior of constraint data-center-primary + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: data-center-primary + result: pass diff --git a/src/validations/constraints/unit-tests/data-center-us-FAIL.yaml b/src/validations/constraints/unit-tests/data-center-us-FAIL.yaml new file mode 100644 index 000000000..8ad44874d --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-us-FAIL.yaml @@ -0,0 +1,7 @@ +test-case: + name: Negative Test for data-center-US + description: This test case validates the behavior of constraint data-center-US + content: ../content/ssp-all-INVALID.xml + expectations: + - constraint-id: data-center-US + result: fail diff --git a/src/validations/constraints/unit-tests/data-center-us-PASS.yaml b/src/validations/constraints/unit-tests/data-center-us-PASS.yaml new file mode 100644 index 000000000..571133b63 --- /dev/null +++ b/src/validations/constraints/unit-tests/data-center-us-PASS.yaml @@ -0,0 +1,7 @@ +test-case: + name: Positive Test for data-center-US + description: This test case validates the behavior of constraint data-center-US + content: ../content/ssp-all-VALID.xml + expectations: + - constraint-id: data-center-US + result: pass