Standard Compliance
This section tracks ros2_medkit’s compliance with diagnostic industry standards.
Note
These are not project requirements in the traditional V-Model sense.
The items listed here represent standard API endpoints that ros2_medkit implements for interoperability with diagnostic tools and systems. The project may also include extensions beyond the standard (e.g., exposing ROS 2 Topics as diagnostic entities) which are documented separately.
Traceability & Reports
Specifications
All Requirements
The following table shows all requirements across all categories:
ID |
Title |
Status |
Tags |
|---|---|---|---|
GET /version-info |
verified |
Discovery |
|
GET /{any}/docs |
open |
Discovery |
|
GET /{entity-collection} |
verified |
Discovery |
|
GET /areas/{id}/subareas |
verified |
Discovery |
|
GET /components/{id}/subcomponents |
verified |
Discovery |
|
GET /areas/{id}/contains |
verified |
Discovery |
|
GET /components/{id}/hosts |
verified |
Discovery |
|
GET /components/{id}/depends-on |
implemented |
Discovery |
|
GET /apps/{id}/depends-on |
verified |
Discovery |
|
GET / |
verified |
Discovery |
|
tags=... (query) |
verified |
Discovery |
|
GET /{entity}/faults |
verified |
Faults |
|
GET /{entity}/faults/{code} |
verified |
Faults; SOVD |
|
DELETE /{entity}/faults |
verified |
Faults |
|
DELETE /{entity}/faults/{code} |
verified |
Faults |
|
GET /{entity}/data-categories |
open |
Data |
|
GET /{entity}/data-groups |
open |
Data |
|
GET /{entity}/data |
verified |
Data |
|
GET /{entity}/data/{data-id} |
verified |
Data |
|
PUT /{entity}/data/{data-id} |
verified |
Data |
|
GET /{entity}/data-lists |
verified |
DataSets |
|
POST /{entity}/data-lists |
verified |
DataSets |
|
GET /{entity}/data-lists/{id} |
verified |
DataSets |
|
DELETE /{entity}/data-lists/{id} |
verified |
DataSets |
|
GET /{entity}/cyclic-subscriptions |
open |
Subscriptions |
|
GET /{entity}/cyclic-subscriptions/{id} |
open |
Subscriptions |
|
PUT /{entity}/cyclic-subscriptions/{id} |
open |
Subscriptions |
|
DELETE /{entity}/cyclic-subscriptions/{id} |
open |
Subscriptions |
|
POST /{entity}/triggers |
open |
Subscriptions |
|
GET /{entity}/triggers |
open |
Subscriptions |
|
PUT /{entity}/triggers/{id} |
open |
Subscriptions |
|
DELETE /{entity}/triggers/{id} |
open |
Subscriptions |
|
GET /{entity}/operations |
verified |
Operations |
|
GET /{entity}/operations/{op-id} |
verified |
Operations |
|
POST /{entity}/operations/{op-id}/executions |
verified |
Operations |
|
GET /{entity}/operations/{op-id}/executions |
verified |
Operations |
|
GET /{entity}/operations/{op-id}/executions/{exec-id} |
verified |
Operations |
|
PUT /{entity}/operations/{op-id}/executions/{exec-id} |
verified |
Operations |
|
DELETE /{entity}/operations/{op-id}/executions/{exec-id} |
verified |
Operations |
|
POST /{entity}/scripts |
open |
Scripts |
|
GET /{entity}/scripts |
open |
Scripts |
|
GET /{entity}/scripts/{id} |
open |
Scripts |
|
DELETE /{entity}/scripts/{id} |
open |
Scripts |
|
POST /{entity}/scripts/{id}/executions |
open |
Scripts |
|
GET /{entity}/scripts/{id}/executions |
open |
Scripts |
|
GET /{entity}/scripts/{id}/executions/{exec-id} |
open |
Scripts |
|
PUT /{entity}/scripts/{id}/executions/{exec-id} |
open |
Scripts |
|
GET /{entity}/configurations |
verified |
Configuration |
|
GET /{entity}/configurations/{id} |
verified |
Configuration |
|
PUT /{entity}/configurations/{id} |
verified |
Configuration |
|
DELETE /{entity}/configurations |
verified |
Configuration |
|
DELETE /{entity}/configurations/{id} |
verified |
Configuration |
|
GET /{entity}/modes |
open |
Modes |
|
GET /{entity}/modes/{mode-id} |
open |
Modes |
|
PUT /{entity}/modes/{mode-id} |
open |
Modes |
|
GET /{entity}/clear-data |
open |
ClearData |
|
PUT /{entity}/clear-data/cached-data |
open |
ClearData |
|
PUT /{entity}/clear-data/learned-data |
open |
ClearData |
|
PUT /{entity}/clear-data/client-defined-resources |
open |
ClearData |
|
GET /{entity}/clear-data/status |
open |
ClearData |
|
GET /{entity}/logs |
open |
Logs |
|
GET /{entity}/logs/entries |
open |
Logs |
|
GET /{entity}/logs/config |
open |
Logs |
|
PUT /{entity}/logs/config |
open |
Logs |
|
DELETE /{entity}/logs/config |
open |
Logs |
|
GET /{entity}/communication-logs |
open |
CommLogs |
|
POST /{entity}/communication-logs |
open |
CommLogs |
|
GET /{entity}/communication-logs/{id} |
open |
CommLogs |
|
PUT /{entity}/communication-logs/{id} |
open |
CommLogs |
|
DELETE /{entity}/communication-logs/{id} |
open |
CommLogs |
|
GET /{entity}/bulk-data |
verified |
BulkData; SOVD |
|
GET /{entity}/bulk-data/{category} |
verified |
BulkData; SOVD |
|
GET /{entity}/bulk-data/{category}/{bulk-data-id} |
verified |
BulkData; SOVD |
|
POST /{entity}/bulk-data/{category} |
open |
BulkData |
|
DELETE /{entity}/bulk-data/{category}/{bulk-data-id} |
open |
BulkData |
|
GET /{entity}/status |
open |
Lifecycle |
|
PUT /{entity}/status/start |
open |
Lifecycle |
|
PUT /{entity}/status/restart |
open |
Lifecycle |
|
PUT /{entity}/status/force-restart |
open |
Lifecycle |
|
PUT /{entity}/status/shutdown |
open |
Lifecycle |
|
PUT /{entity}/status/force-shutdown |
open |
Lifecycle |
|
GET /updates |
open |
Updates |
|
POST /updates |
open |
Updates |
|
DELETE /updates/{id} |
open |
Updates |
|
GET /updates/{id} |
open |
Updates |
|
POST /authorize |
verified |
Auth |
|
POST /token |
verified |
Auth |
|
Fault Snapshot and Rosbag Capture |
verified |
Faults; BulkData |
|
test_01_root_endpoint |
verified |
||
test_01b_version_info_endpoint |
verified |
||
test_01c_endpoint_smoke_test |
verified |
||
test_02_list_areas |
verified |
||
test_03_authenticate_valid_credentials |
verified |
||
test_03_list_components |
verified |
||
test_04_automotive_areas_discovery |
verified |
||
test_05_area_components_success |
verified |
||
test_06_area_components_nonexistent_error |
verified |
||
test_06_authenticate_form_urlencoded |
verified |
||
test_07_app_data_powertrain_engine |
verified |
||
test_07_refresh_token |
verified |
||
test_08_app_data_chassis_brakes |
verified |
||
test_09_app_data_body_door |
verified |
||
test_100_get_execution_status |
verified |
||
test_101_update_execution |
verified |
||
test_102_list_configurations |
verified |
||
test_103_get_configuration |
verified |
||
test_104_set_configuration |
verified |
||
test_105_reset_all_configurations |
verified |
||
test_106_reset_single_configuration |
verified |
||
test_109_list_area_data |
verified |
||
test_10_app_data_structure |
verified |
||
test_110_list_area_data_nonexistent |
verified |
||
test_111_list_area_data_root |
verified |
||
test_112_list_area_data_empty |
verified |
||
test_113_list_function_data |
verified |
||
test_114_list_function_data_nonexistent |
verified |
||
test_115_list_function_data_invalid_id |
verified |
||
test_116_component_route_rejects_app_id |
verified |
||
test_117_component_route_rejects_app_id_operations |
verified |
||
test_118_component_route_rejects_app_id_configurations |
verified |
||
test_119_component_route_rejects_app_id_faults |
verified |
||
test_11_app_nonexistent_error |
verified |
||
test_120_app_routes_work_with_app_id |
verified |
||
test_121_bulk_data_list_categories_success |
verified |
||
test_122_bulk_data_list_categories_all_entity_types |
verified |
||
test_123_bulk_data_list_categories_entity_not_found |
verified |
||
test_124_bulk_data_list_descriptors_structure |
verified |
||
test_125_bulk_data_list_descriptors_empty_result |
verified |
||
test_126_bulk_data_unknown_category_returns_404 |
verified |
||
test_127_bulk_data_download_success |
verified |
||
test_128_bulk_data_download_not_found |
verified |
||
test_129_bulk_data_download_wrong_entity_returns_404 |
verified |
||
test_12_app_no_topics |
verified |
||
test_130_bulk_data_nested_entity_path |
verified |
||
test_131_fault_response_structure |
verified |
||
test_132_fault_status_object_structure |
verified |
||
test_133_fault_environment_data_structure |
verified |
||
test_134_fault_snapshot_freeze_frame_structure |
verified |
||
test_135_fault_snapshot_rosbag_has_bulk_data_uri |
verified |
||
test_136_fault_x_medkit_extensions |
verified |
||
test_137_bulk_data_download_verifies_complete_rosbag |
verified |
||
test_13_invalid_app_id_special_chars |
verified |
||
test_14_invalid_area_id_special_chars |
verified |
||
test_15_valid_ids_with_underscores |
verified |
||
test_16_invalid_ids_with_special_chars |
verified |
||
test_16_snapshot_capture_on_fault_confirmation |
verified |
||
test_17_component_topic_temperature |
verified |
||
test_17_get_snapshots_nonexistent_fault |
verified |
||
test_18_component_topic_rpm |
verified |
||
test_18_get_snapshots_empty_fault_code |
verified |
||
test_19_component_topic_pressure |
verified |
||
test_19_snapshot_with_topic_filter |
verified |
||
test_20_component_topic_data_structure |
verified |
||
test_20_snapshot_config_loads_patterns |
verified |
||
test_21_component_nonexistent_topic_metadata_only |
verified |
||
test_22_component_topic_nonexistent_component_error |
verified |
||
test_23_component_topic_with_slashes |
verified |
||
test_24_component_topic_valid_names |
verified |
||
test_25_publish_brake_command |
verified |
||
test_26_publish_validation_missing_type |
verified |
||
test_27_publish_validation_missing_data |
verified |
||
test_28_publish_validation_invalid_type_format |
verified |
||
test_29_publish_nonexistent_component |
verified |
||
test_30_publish_invalid_json_body |
verified |
||
test_31_operation_call_calibrate_service |
verified |
||
test_32_operation_call_nonexistent_operation |
verified |
||
test_33_operation_call_nonexistent_entity |
verified |
||
test_34_operation_call_invalid_entity_id |
verified |
||
test_35_operation_call_invalid_operation_name |
verified |
||
test_36_operation_call_with_invalid_json |
verified |
||
test_37_operations_listed_in_app_discovery |
verified |
||
test_38_root_endpoint_includes_operations |
verified |
||
test_39_action_send_goal_and_get_id |
verified |
||
test_40_action_status_endpoint |
verified |
||
test_41_action_status_after_completion |
verified |
||
test_42_action_cancel_endpoint |
verified |
||
test_43_action_listed_in_app_discovery |
verified |
||
test_44_list_executions_endpoint |
verified |
||
test_45_list_configurations |
verified |
||
test_46_get_configuration |
verified |
||
test_47_set_configuration |
verified |
||
test_48_delete_configuration_resets_to_default |
verified |
||
test_49_configurations_nonexistent_app |
verified |
||
test_50_configuration_nonexistent_parameter |
verified |
||
test_51_set_configuration_missing_value |
verified |
||
test_52_root_endpoint_includes_configurations |
verified |
||
test_55_root_endpoint_includes_faults |
verified |
||
test_56_list_faults_response_structure |
verified |
||
test_57_faults_nonexistent_component |
verified |
||
test_58_get_nonexistent_fault |
verified |
||
test_65_root_endpoint_includes_snapshots |
verified |
||
test_70_components_list_has_href |
verified |
||
test_71_apps_list_has_href |
verified |
||
test_72_areas_list_has_href |
verified |
||
test_73_component_detail_has_capability_uris |
verified |
||
test_74_app_detail_has_capability_uris |
verified |
||
test_75_subareas_list_has_href |
verified |
||
test_76_subcomponents_list_has_href |
verified |
||
test_77b_contains_list_has_href |
verified |
||
test_77c_hosts_list_has_href |
verified |
||
test_78_depends_on_components_has_href |
verified |
||
test_79_depends_on_apps_has_href |
verified |
||
test_80_depends_on_apps_nonexistent |
verified |
||
test_81_functions_list_has_href |
verified |
||
test_82_root_endpoint_has_apps_endpoints |
verified |
||
test_83_x_medkit_extension_in_list_responses |
verified |
||
test_84_get_operation_details_for_service |
verified |
||
test_85_get_operation_details_for_action |
verified |
||
test_86_get_operation_not_found |
verified |
||
test_87_list_executions_returns_items_array |
verified |
||
test_88_create_execution_for_service |
verified |
||
test_89_cancel_nonexistent_execution |
verified |
||
test_90_delete_all_faults_for_component |
verified |
||
test_91_delete_all_faults_for_app |
verified |
||
test_92_delete_all_faults_nonexistent_entity |
verified |
||
test_93_get_operation_details_for_apps |
verified |
||
test_95_delete_single_fault |
verified |
||
test_98_write_data_to_topic |
verified |
||
test_99_list_operations |
verified |
||
test_app_configurations_endpoint |
verified |
||
test_app_data_item_endpoint |
verified |
||
test_app_depends_on_relationship |
verified |
||
test_app_online_with_runtime_node |
verified |
||
test_apps_from_manifest |
verified |
||
test_area_components |
verified |
||
test_area_contains_nonexistent |
verified |
||
test_area_subareas |
verified |
||
test_area_subareas_hierarchy |
verified |
||
test_area_with_description |
verified |
||
test_areas_from_manifest |
verified |
||
test_component_area_relationship |
verified |
||
test_component_capabilities_includes_depends_on_link |
verified |
||
test_component_depends_on_empty |
verified |
||
test_component_depends_on_not_found |
verified |
||
test_component_depends_on_returns_items |
verified |
||
test_component_hosts_nonexistent |
verified |
||
test_component_subcomponents |
verified |
||
test_component_subcomponents_not_found |
verified |
||
test_component_type_preserved |
verified |
||
test_components_from_manifest |
verified |
||
test_function_hosts |
verified |
||
test_function_hosts_relationship |
verified |
||
test_function_with_tags |
verified |
||
test_functions_from_manifest |
verified |
||
test_get_app_details |
verified |
||
test_get_area_details |
verified |
||
test_get_component_details |
verified |
||
test_get_function_details |
verified |
||
test_hybrid_component_subcomponents |
verified |
||
test_hybrid_component_subcomponents_not_found |
verified |
||
test_list_apps |
verified |
||
test_list_areas |
verified |
||
test_list_areas_endpoint |
verified |
||
test_list_components |
verified |
||
test_list_components_endpoint |
verified |
||
test_list_functions |
verified |
||
test_nested_subareas |
verified |
||
test_root_endpoint |
verified |
||
test_version_info_endpoint |
verified |