diff --git a/monitoring/prober/infrastructure.py b/monitoring/prober/infrastructure.py index cb4045a0fc..d29533be0a 100644 --- a/monitoring/prober/infrastructure.py +++ b/monitoring/prober/infrastructure.py @@ -99,8 +99,7 @@ def wrapper_default_scope(*args, **kwargs): ResourceType = int resource_type_code_descriptions: Dict[ResourceType, str] = {} - -# Next code: 385 +# Next code: 388 def register_resource_type(code: int, description: str) -> ResourceType: """Register that the specified code refers to the described resource. diff --git a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml index 067e7f1c76..3c57a40eb5 100644 --- a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml +++ b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml @@ -27,6 +27,7 @@ v1: second_utm_auth: second_utm_auth planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity # This block defines all the resources available in the resource pool. # Presumably all resources defined below would be used either diff --git a/monitoring/uss_qualifier/configurations/dev/message_signing.yaml b/monitoring/uss_qualifier/configurations/dev/message_signing.yaml index f59feedc10..ba1fc322eb 100644 --- a/monitoring/uss_qualifier/configurations/dev/message_signing.yaml +++ b/monitoring/uss_qualifier/configurations/dev/message_signing.yaml @@ -61,6 +61,7 @@ v1: id_generator: id_generator utm_client_identity: utm_client_identity second_utm_auth: second_utm_auth + utm_client_identity: utm_client_identity planning_area: che_planning_area problematically_big_area: che_problematically_big_area execution: diff --git a/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py b/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py index 6b6afdd8ec..f54f8669d5 100644 --- a/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py +++ b/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py @@ -303,8 +303,15 @@ def put_op_intent( result = query.parse_json_result(ChangeOperationalIntentReferenceResponse) return result.operational_intent_reference, result.subscribers, query else: + err_msg = query.error_message if query.error_message is not None else "" + if ( + query.status_code == 409 + and "missing_operational_intents" in query.response.json + ): + err_msg += f" (missing_operational_intents: {query.response.json['missing_operational_intents']})" + raise QueryError( - f"Received code {query.status_code} when attempting to {'create' if create else 'update'} operational intent with ID {oi_uuid}{f'; error message: `{query.error_message}`' if query.error_message is not None else ''}", + f"Received code {query.status_code} when attempting to {'create' if create else 'update'} operational intent with ID {oi_uuid}; error message: `{err_msg}`", query, ) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py b/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py index 6a588d14b3..bf63c0f2a7 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py @@ -5,3 +5,4 @@ from .dss_interoperability import DSSInteroperability from .report import Report from .op_intent_ref_key_validation import OIRKeyValidation +from .subscription_interactions import SubscriptionInteractions diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_correct.md similarity index 61% rename from monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create.md rename to monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_correct.md index f0ae40f967..53d2b92d69 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_correct.md @@ -1,11 +1,13 @@ # Create operational intent reference test step fragment -This test step fragment validates that operational intent references can be created +This test step fragment validates that: + - a query to create an operational intent reference with valid parameters succeeds + - the response to the query conforms to the OpenAPI specification + - the content of the response reflects the created operational intent reference -## 🛑 Create operational intent reference query succeeds check +## [Query Success](./create_query.md) -As per **[astm.f3548.v21.DSS0005,1](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create an operational intent reference with either one or both of the -start and end time missing, provided all the required parameters are valid. +Check query succeeds ## [Response Format](./create_format.md) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md new file mode 100644 index 0000000000..4db2c3944f --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md @@ -0,0 +1,8 @@ +# Create operational intent reference test step fragment + +This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds + +## 🛑 Create operational intent reference query succeeds check + +As per **[astm.f3548.v21.DSS0005,1](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create an operational intent reference with either one or both of the +start and end time missing, provided all the required parameters are valid. diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_correct.md similarity index 74% rename from monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create.md rename to monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_correct.md index de0bc5cfab..1991d4038e 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_correct.md @@ -2,10 +2,9 @@ This test step fragment validates that subscriptions can be created. -## 🛑 Create subscription query succeeds check +## [Query Success](./create_query.md) -As per **[astm.f3548.v21.DSS0005,5](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create a subscription with either one or both of the -start and end time missing, provided all the required parameters are valid. +Check query succeeds ## 🛑 Create subscription response format conforms to spec check diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md new file mode 100644 index 0000000000..ed438e1a7d --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md @@ -0,0 +1,8 @@ +# Create subscription test step fragment + +This test step fragment validates that a query to create a subscription with valid parameters succeeds. + +## 🛑 Create subscription query succeeds check + +As per **[astm.f3548.v21.DSS0005,5](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create a subscription with either one or both of the +start and end time missing, provided all the required parameters are valid. diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md new file mode 100644 index 0000000000..31aeb3947b --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md @@ -0,0 +1,80 @@ +# ASTM SCD DSS: Subscription and entity interaction test scenario + +## Overview + +Create and mutate subscriptions as well as entities, and verify that the DSS handles notifications and expiry correctly. + +## Resources + +### dss + +[`DSSInstanceResource`](../../../../resources/astm/f3548/v21/dss.py) to be tested in this scenario. + +### other_instances + +[`DSSInstancesResource`](../../../../resources/astm/f3548/v21/dss.py) pointing to the DSS instances used to confirm that entities are properly propagated. + +### id_generator + +[`IDGeneratorResource`](../../../../resources/interuss/id_generator.py) providing the Subscription IDs for this scenario. + +### planning_area + +[`PlanningAreaResource`](../../../../resources/astm/f3548/v21/planning_area.py) describes the 3D volume in which subscriptions will be created. + +### utm_client_identity + +[`ClientIdentityResource`](../../../../resources/communications/client_identity.py) provides the identity that will be used to interact with the DSS. + +## Setup test case + +### [Ensure clean workspace test step](clean_workspace.md) + +This step ensures that no subscriptions and OIRs with the known test IDs exists in the DSS deployment. + +## OIR creation triggers relevant notifications test case + +This test case verifies that newly created OIRs will receive the relevant subscriptions to notify from the DSS instance, +regardless of which instance was used to create the entity. + +### [Create background subscriptions test step](./fragments/sub/crud/create_query.md) + +Sets up two subscriptions that cover the planning area at different times, and which will be used as part of the interaction tests. + +### Create an OIR at every DSS in sequence test step + +This test step will create an operational intent reference and assorted subscription at every DSS, in sequence, each time verifying that the DSS +requires notifications for any previously established subscription that intersects with the newly created OIR. + +Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS) + +#### [Create OIR](./fragments/oir/crud/create_query.md) + +Check that the OIR creation query succeeds + +#### 🛑 DSS response contains the expected background subscription check + +The response from a DSS to a valid OIR creation request is expected to contain any relevant subscription for the OIR's extents. +This includes one of the subscriptions created earlier, as it is designed to intersect with the OIRs being created. + +If the DSS omits the intersecting subscription, it fails to implement **[astm.f3548.v21.DSS0210,A2-7-2,4b](../../../../requirements/astm/f3548/v21.md)**. + +#### 🛑 DSS does not return non-intersecting background subscription check + +The response from a DSS to a valid OIR creation request is expected to contain any relevant subscription for the OIR's extents. +This should exclude one of subscriptions created earlier, as it is designed to not intersect with the OIRs being created. + +If the DSS includes the non-intersecting subscription, it fails to implement **[astm.f3548.v21.DSS0210,A2-7-2,4b](../../../../requirements/astm/f3548/v21.md)**. + +#### 🛑 DSS returns the implicit subscriptions from intersecting OIRs check + +The response from a DSS to a valid OIR creation request is expected to contain any relevant subscription for the OIR's extents. +This includes any implicit subscription previously created on the DSS as part of a previously created OIR. + +If the DSS omits any of the implicit subscriptions belonging to an OIR previously created on another DSS (which are designed to all intersect), +any of the DSSes at which an earlier OIR was created, or the DSS at which the current OIR has been created, +are in violation of **[astm.f3548.v21.DSS0210,A2-7-2,4b](../../../../requirements/astm/f3548/v21.md)**. + +More specifically, they are breaking the above requirement by failing one or both of the following requirements: + +## [Cleanup](./clean_workspace.md) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py new file mode 100644 index 0000000000..908e51068d --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py @@ -0,0 +1,321 @@ +from datetime import datetime, timedelta +from typing import Dict, List, Tuple, Set + +from uas_standards.astm.f3548.v21.api import ( + Subscription, + SubscriptionID, + EntityID, + OperationalIntentReference, + OperationalIntentState, + PutOperationalIntentReferenceParameters, + SubscriberToNotify, +) +from uas_standards.astm.f3548.v21.constants import Scope + +from monitoring.monitorlib.delay import sleep +from monitoring.monitorlib.fetch import QueryError, Query +from monitoring.monitorlib.geotemporal import Volume4D +from monitoring.monitorlib.mutate.scd import MutatedSubscription +from monitoring.prober.infrastructure import register_resource_type +from monitoring.uss_qualifier.resources.astm.f3548.v21 import PlanningAreaResource +from monitoring.uss_qualifier.resources.astm.f3548.v21.dss import ( + DSSInstanceResource, + DSSInstancesResource, + DSSInstance, +) +from monitoring.uss_qualifier.resources.astm.f3548.v21.subscription_params import ( + SubscriptionParams, +) +from monitoring.uss_qualifier.resources.communications import ClientIdentityResource +from monitoring.uss_qualifier.resources.interuss.id_generator import IDGeneratorResource +from monitoring.uss_qualifier.scenarios.astm.utm.dss import test_step_fragments +from monitoring.uss_qualifier.scenarios.scenario import ( + TestScenario, + PendingCheck, +) +from monitoring.uss_qualifier.suites.suite import ExecutionContext + +SUBSCRIPTION_EXPIRY_DELAY_SEC = 5 +WAIT_FOR_EXPIRY_SEC = 7 + + +class SubscriptionInteractions(TestScenario): + """ + A scenario that tests interactions between subscriptions and entities across a DSS cluster. + """ + + SUB_TYPES = [ + register_resource_type(385, "Subscription"), + register_resource_type(386, "Subscription"), + ] + OIR_TYPE = register_resource_type(387, "Operational Intent References") + + _sub_ids: List[SubscriptionID] + _oir_ids: List[EntityID] + + _current_subs: Dict[SubscriptionID, Subscription] + _current_oirs: Dict[EntityID, OperationalIntentReference] + + # Times for the background subscriptions + _sub_1_start: datetime + _sub_1_end: datetime + _sub_2_start: datetime + _sub_2_end: datetime + + _manager: str + + def __init__( + self, + dss: DSSInstanceResource, + other_instances: DSSInstancesResource, + id_generator: IDGeneratorResource, + planning_area: PlanningAreaResource, + utm_client_identity: ClientIdentityResource, + ): + """ + Args: + dss: primary dss to test + other_instances: other dss instances to test + id_generator: will let us generate specific identifiers + planning_area: An Area to use for the tests. It should be an area for which the DSS is responsible, + but has no other requirements. + """ + super().__init__() + scopes = { + Scope.StrategicCoordination: "create and delete subscriptions and entities" + } + self._dss = dss.get_instance(scopes) + self._pid = [self._dss.participant_id] + self._planning_area = planning_area.specification + + self._secondary_instances = [ + dss.get_instance(scopes) for dss in other_instances.dss_instances + ] + + # Prepare the two subscription ids: + self._sub_ids = [ + id_generator.id_factory.make_id(sub_type) for sub_type in self.SUB_TYPES + ] + + # Prepare one OIR id for each DSS we will interact with (one for the main and one for each secondary) + base_oir_id = id_generator.id_factory.make_id(self.OIR_TYPE) + self._oir_ids = [ + f"{base_oir_id[:-3]}{i:03d}" + for i in range(len(self._secondary_instances) + 1) + ] + + # First subscription from now to 20 minutes in the future + self._sub_1_start = datetime.utcnow() + self._sub_1_end = self._sub_1_start + timedelta(minutes=20) + + # Second subscription starts 20 minutes after the first ends and lasts for 1 hour + self._sub_2_start = self._sub_1_end + timedelta(minutes=20) + self._sub_2_end = self._sub_2_start + timedelta(hours=1) + + self._manager = utm_client_identity.subject() + + def run(self, context: ExecutionContext): + self.begin_test_scenario(context) + self._setup_case() + + self.begin_test_case("OIR creation triggers relevant notifications") + self.begin_test_step("Create background subscriptions") + self._step_create_background_subs() + self.end_test_step() + + self._steps_create_oirs_at_each_dss() + self.end_test_case() + + self.end_test_scenario() + + def _step_create_background_subs(self): + """Creates two subscription through the primary DSS: one that is valid from now into a short future, + and one that starts one hour after the first ends""" + + # Create the first subscription + sub_now_params = self._planning_area.get_new_subscription_params( + subscription_id=self._sub_ids[0], + start_time=self._sub_1_start, + duration=self._sub_1_end - self._sub_1_start, + # This is a planning area without constraint processing + notify_for_op_intents=True, + notify_for_constraints=False, + ) + + sub_now = self._create_sub_with_params(sub_now_params) + self._current_subs[sub_now_params.sub_id] = sub_now + + # Create the second subscription, that starts later + sub_later_params = self._planning_area.get_new_subscription_params( + subscription_id=self._sub_ids[1], + start_time=self._sub_2_start, + duration=self._sub_2_end - self._sub_2_start, + # This is a planning area without constraint processing + notify_for_op_intents=True, + notify_for_constraints=False, + ) + + sub_later = self._create_sub_with_params(sub_later_params) + self._current_subs[sub_later_params.sub_id] = sub_later + + def _steps_create_oirs_at_each_dss(self): + """Creates an OIR at each DSS instance""" + + common_params = self._planning_area.get_new_operational_intent_ref_params( + key=[], # Proper key added in each step below + state=OperationalIntentState.Accepted, + uss_base_url="https://example.interuss.org/oir_base_url", + time_start=datetime.utcnow(), + # Cover the first subscription's time, but not the second one + time_end=self._sub_1_end + timedelta(minutes=10), + subscription_id=None, + implicit_sub_base_url="https://example.interuss.org/sub_base_url", + ) + + existing_oir = None + possible_culprits = [] + for i, dss in enumerate([self._dss] + self._secondary_instances): + + self.begin_test_step("Create an OIR at every DSS in sequence") + + oir_id = self._oir_ids[i] + + if existing_oir: + common_params.key.append(existing_oir.ovn) + oir, subs, q = self._put_op_intent(dss, oir_id, common_params) + notification_ids = _to_sub_ids(subs) + possible_culprits.append(dss.participant_id) + + with self.check( + "DSS response contains the expected background subscription", + dss.participant_id, + ) as check: + if self._sub_ids[0] not in notification_ids: + check.record_failed( + summary="DSS did not return the intersecting background subscription", + details=f"Expected subscription {self._sub_ids[0]} (first background subscription) in the" + f" list of subscriptions to notify, but got {notification_ids}", + query_timestamps=[q.request.timestamp], + ) + + with self.check( + "DSS does not return non-intersecting background subscription", + dss.participant_id, + ) as check: + if self._sub_ids[1] in notification_ids: + check.record_failed( + summary="DSS returned the non-intersecting background subscription", + details=f"Expected subscription {self._sub_ids[1]} (second background subscription) to not be in the" + f" list of subscriptions to notify, but got {notification_ids}", + query_timestamps=[q.request.timestamp], + ) + + with self.check( + "DSS returns the implicit subscriptions from intersecting OIRs", + possible_culprits, + ) as check: + # Previously created OIRs have subscriptions that should be triggered: + for existing_oir_id, existing_oir in self._current_oirs.items(): + if existing_oir.subscription_id not in notification_ids: + check.record_failed( + summary="Missing subscription to notify", + details=f"Expected subscription {existing_oir.subscription_id} to be notified for " + f"freshly created OIR {existing_oir_id}", + query_timestamps=[q.request.timestamp], + ) + + existing_oir = oir + self._current_oirs[oir_id] = oir + self.end_test_step() + + def _put_op_intent( + self, + dss: DSSInstance, + oir_id: EntityID, + params: PutOperationalIntentReferenceParameters, + ) -> Tuple[OperationalIntentReference, List[SubscriberToNotify], Query]: + + with self.check( + "Create operational intent reference query succeeds", [dss.participant_id] + ) as check: + try: + oir, subs, q = dss.put_op_intent( + extents=params.extents, + key=params.key, + state=params.state, + base_url=params.uss_base_url, + oi_id=oir_id, + ovn=None, + ) + self.record_query(q) + except QueryError as qe: + self.record_queries(qe.queries) + check.record_failed( + summary="Failed to create operational intent reference", + details=f"Failed to create operational intent reference: {qe}", + query_timestamps=qe.query_timestamps, + ) + + return oir, subs, q + + def _create_sub_with_params(self, params: SubscriptionParams) -> Subscription: + """Create a subscription with the given parameters via the primary DSS instance""" + with self.check("Create subscription query succeeds") as check: + r = self._dss.upsert_subscription(**params) + if not r.success: + check.record_failed( + summary="Create subscription query failed", + details=f"Failed to create a subscription on primary DSS with code {r.status_code}: {r.error_message}", + query_timestamps=[r.request.timestamp], + ) + return r.subscription + + def _setup_case(self): + self.begin_test_case("Setup") + + # Multiple runs of the scenario seem to rely on the same instance: + # thus we need to reset the state of the scenario before running it. + self._current_subs = {} + self._current_oirs = {} + + self._ensure_clean_workspace_step() + + self.end_test_case() + + def _ensure_clean_workspace_step(self): + self.begin_test_step("Ensure clean workspace") + self._clean_workspace() + self.end_test_step() + + def _clean_workspace(self): + extents = Volume4D(volume=self._planning_area.volume) + test_step_fragments.cleanup_active_oirs( + self, + self._dss, + extents, + self._manager, + ) + for oir_id in self._oir_ids: + test_step_fragments.cleanup_op_intent(self, self._dss, oir_id) + test_step_fragments.cleanup_active_subs( + self, + self._dss, + extents, + ) + for sub_id in self._sub_ids: + test_step_fragments.cleanup_sub(self, self._dss, sub_id) + + def cleanup(self): + self.begin_cleanup() + self._clean_workspace() + self.end_cleanup() + + +def _to_sub_ids(subscribers: List[SubscriberToNotify]) -> Set[SubscriptionID]: + """Flatten the passed list of subscribers to notify to a set of subscription IDs""" + sub_ids = set() + for subscriber in subscribers: + for subscription in subscriber.subscriptions: + sub_ids.add(subscription.subscription_id) + + return sub_ids diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md index c1ff08d905..ed52cfd8b1 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md @@ -70,7 +70,7 @@ This test step creates multiple subscriptions with different combinations of the All subscriptions are left on the DSS when this step ends, as they are expected to be present for the subsequent step. -#### [Create subscription](../fragments/sub/crud/create.md) +#### [Create subscription](../fragments/sub/crud/create_correct.md) Verify that a subscription can be created on the primary DSS. @@ -206,7 +206,7 @@ Verify that when we are reading the subscription without mutating it, the versio If the second set of credentials is provided, this test step will create a subscription using these credentials, in order to prepare the next step that checks manager synchronization. -#### [Create subscription](../fragments/sub/crud/create.md) +#### [Create subscription](../fragments/sub/crud/create_query.md) Verify that a subscription can be created on the primary DSS using the separate set of credentials. diff --git a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md index 125ada8d33..5d060448a5 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md @@ -4,15 +4,16 @@ ## [Actions](../../README.md#actions) -1. Scenario: [ASTM SCD DSS: Operational Intent Reference Key Validation](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.md) ([`scenarios.astm.utm.dss.OIRKeyValidation`](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.py)) -2. Scenario: [ASTM SCD DSS: Interfaces authentication](../../../scenarios/astm/utm/dss/authentication/authentication_validation.md) ([`scenarios.astm.utm.dss.authentication.AuthenticationValidation`](../../../scenarios/astm/utm/dss/authentication/authentication_validation.py)) -3. Scenario: [ASTM SCD DSS: Subscription Simple](../../../scenarios/astm/utm/dss/subscription_simple.md) ([`scenarios.astm.utm.dss.SubscriptionSimple`](../../../scenarios/astm/utm/dss/subscription_simple.py)) -4. Scenario: [ASTM SCD DSS: Subscription Validation](../../../scenarios/astm/utm/dss/subscription_validation.md) ([`scenarios.astm.utm.dss.SubscriptionValidation`](../../../scenarios/astm/utm/dss/subscription_validation.py)) -5. Scenario: [ASTM F3548-21 UTM DSS Operational Intent Reference Access Control](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.md) ([`scenarios.astm.utm.dss.OpIntentReferenceAccessControl`](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.py)) -6. Scenario: [ASTM F3548-21 UTM DSS interoperability](../../../scenarios/astm/utm/dss/dss_interoperability.md) ([`scenarios.astm.utm.dss.DSSInteroperability`](../../../scenarios/astm/utm/dss/dss_interoperability.py)) -7. Scenario: [ASTM SCD DSS: Subscription Synchronization](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.SubscriptionSynchronization`](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.py)) -8. Scenario: [ASTM UTM DSS: Direct CRDB access](../../../scenarios/astm/utm/dss/crdb_access.md) ([`scenarios.astm.utm.dss.CRDBAccess`](../../../scenarios/astm/utm/dss/crdb_access.py)) -9. Scenario: [ASTM SCD DSS: Report](../../../scenarios/astm/utm/dss/report.md) ([`scenarios.astm.utm.dss.Report`](../../../scenarios/astm/utm/dss/report.py)) +1. Scenario: [ASTM SCD DSS: Subscription and entity interaction](../../../scenarios/astm/utm/dss/subscription_interactions.md) ([`scenarios.astm.utm.dss.SubscriptionInteractions`](../../../scenarios/astm/utm/dss/subscription_interactions.py)) +2. Scenario: [ASTM SCD DSS: Operational Intent Reference Key Validation](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.md) ([`scenarios.astm.utm.dss.OIRKeyValidation`](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.py)) +3. Scenario: [ASTM SCD DSS: Interfaces authentication](../../../scenarios/astm/utm/dss/authentication/authentication_validation.md) ([`scenarios.astm.utm.dss.authentication.AuthenticationValidation`](../../../scenarios/astm/utm/dss/authentication/authentication_validation.py)) +4. Scenario: [ASTM SCD DSS: Subscription Simple](../../../scenarios/astm/utm/dss/subscription_simple.md) ([`scenarios.astm.utm.dss.SubscriptionSimple`](../../../scenarios/astm/utm/dss/subscription_simple.py)) +5. Scenario: [ASTM SCD DSS: Subscription Validation](../../../scenarios/astm/utm/dss/subscription_validation.md) ([`scenarios.astm.utm.dss.SubscriptionValidation`](../../../scenarios/astm/utm/dss/subscription_validation.py)) +6. Scenario: [ASTM F3548-21 UTM DSS Operational Intent Reference Access Control](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.md) ([`scenarios.astm.utm.dss.OpIntentReferenceAccessControl`](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.py)) +7. Scenario: [ASTM F3548-21 UTM DSS interoperability](../../../scenarios/astm/utm/dss/dss_interoperability.md) ([`scenarios.astm.utm.dss.DSSInteroperability`](../../../scenarios/astm/utm/dss/dss_interoperability.py)) +8. Scenario: [ASTM SCD DSS: Subscription Synchronization](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.SubscriptionSynchronization`](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.py)) +9. Scenario: [ASTM UTM DSS: Direct CRDB access](../../../scenarios/astm/utm/dss/crdb_access.md) ([`scenarios.astm.utm.dss.CRDBAccess`](../../../scenarios/astm/utm/dss/crdb_access.py)) +10. Scenario: [ASTM SCD DSS: Report](../../../scenarios/astm/utm/dss/report.md) ([`scenarios.astm.utm.dss.Report`](../../../scenarios/astm/utm/dss/report.py)) ## [Checked requirements](../../README.md#checked-requirements) @@ -24,20 +25,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,2 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -119,6 +120,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml index d83e9121d0..8b5245e22a 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml @@ -10,6 +10,14 @@ resources: planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource actions: + - test_scenario: + scenario_type: scenarios.astm.utm.dss.SubscriptionInteractions + resources: + dss: dss + other_instances: all_dss_instances + id_generator: id_generator + planning_area: planning_area + utm_client_identity: utm_client_identity - test_scenario: scenario_type: scenarios.astm.utm.dss.OIRKeyValidation resources: diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md index fa3df5ca5f..43ea482144 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md @@ -35,20 +35,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -135,6 +135,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml index e4590f5af5..cc669c62d3 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml @@ -19,6 +19,7 @@ resources: planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource system_identity: resources.versioning.SystemIdentityResource? + utm_client_identity: resources.communications.ClientIdentityResource local_resources: system_identity: resource_type: resources.versioning.SystemIdentityResource @@ -53,6 +54,7 @@ actions: utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity specification: action_to_repeat: test_suite: @@ -67,6 +69,7 @@ actions: utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity on_failure: Continue dss_instances_source: dss_instances dss_instance_id: dss diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md index 1fe40b7e9d..3b64b5dd03 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md @@ -18,20 +18,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -118,6 +118,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml b/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml index 6483275157..baaf2e0874 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml @@ -13,6 +13,7 @@ resources: id_generator: resources.interuss.IDGeneratorResource utm_client_identity: resources.communications.ClientIdentityResource second_utm_auth: resources.communications.AuthAdapterResource? + utm_client_identity: resources.communications.ClientIdentityResource planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource actions: @@ -38,6 +39,7 @@ actions: id_generator: id_generator utm_client_identity: utm_client_identity second_utm_auth: second_utm_auth + utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area on_failure: Continue diff --git a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md index 2a79192400..c26a957463 100644 --- a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md +++ b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md @@ -408,20 +408,20 @@ ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: ISA Subscription Interactions
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Submitted ISA Validations
ASTM NetRID DSS: Subscription Simple
ASTM NetRID DSS: Subscription Validation
ASTM NetRID DSS: Token Validation - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,2 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -503,6 +503,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.yaml b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.yaml index 49ab5333cb..78ee6c083e 100644 --- a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.yaml +++ b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.yaml @@ -21,6 +21,7 @@ actions: dss_instances: f3548v21_dss_instances dss_crdb_cluster: dss_crdb_cluster? second_utm_auth: second_utm_auth? + utm_client_identity: utm_client_identity flight_intents: flight_intents id_generator: id_generator utm_client_identity: utm_client_identity diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.md b/monitoring/uss_qualifier/suites/uspace/flight_auth.md index e9e412e5f2..e34c0e4e54 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.md +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.md @@ -19,20 +19,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -119,6 +119,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml index 9b432fa81b..3d2dad305d 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml @@ -18,6 +18,7 @@ resources: planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource system_identity: resources.versioning.SystemIdentityResource? + utm_client_identity: resources.communications.ClientIdentityResource actions: - test_suite: suite_type: suites.astm.utm.f3548_21 @@ -36,6 +37,7 @@ actions: id_generator: id_generator utm_client_identity: utm_client_identity second_utm_auth: second_utm_auth + utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area system_identity: system_identity? diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index ec100324ed..90ac288aa6 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.md +++ b/monitoring/uss_qualifier/suites/uspace/required_services.md @@ -454,20 +454,20 @@ ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: ISA Subscription Interactions
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Submitted ISA Validations
ASTM NetRID DSS: Subscription Simple
ASTM NetRID DSS: Subscription Validation
ASTM NetRID DSS: Token Validation - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -554,6 +554,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented