onc_certification_g10_test_kit 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/g10_reference_server_preset.json +708 -532
  3. data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +73 -67
  4. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu1.rb +1 -2
  5. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu2.rb +7 -1
  6. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_parameters.rb +1 -1
  7. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_stu1.rb +10 -2
  8. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +6 -2
  9. data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +4 -0
  10. data/lib/onc_certification_g10_test_kit/configuration_checker.rb +1 -1
  11. data/lib/onc_certification_g10_test_kit/encounter_context_test.rb +3 -3
  12. data/lib/onc_certification_g10_test_kit/export_kick_off_performer.rb +7 -3
  13. data/lib/onc_certification_g10_test_kit/multi_patient_api_stu1.rb +0 -4
  14. data/lib/onc_certification_g10_test_kit/multi_patient_api_stu2.rb +8 -4
  15. data/lib/onc_certification_g10_test_kit/patient_context_test.rb +3 -3
  16. data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +3 -10
  17. data/lib/onc_certification_g10_test_kit/scope_constants.rb +52 -0
  18. data/lib/onc_certification_g10_test_kit/short_id_map.yml +11 -20
  19. data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +4 -4
  20. data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +4 -4
  21. data/lib/onc_certification_g10_test_kit/single_patient_us_core_5_api_group.rb +4 -4
  22. data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +4 -4
  23. data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +4 -4
  24. data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +107 -64
  25. data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +41 -88
  26. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group.rb +31 -41
  27. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2.rb +30 -52
  28. data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2_2.rb +32 -53
  29. data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +99 -142
  30. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group.rb +16 -54
  31. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group_stu2_2.rb +16 -54
  32. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group.rb +16 -54
  33. data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group_stu2_2.rb +16 -54
  34. data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +29 -64
  35. data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_test.rb +4 -3
  36. data/lib/onc_certification_g10_test_kit/smart_invalid_pkce_group.rb +39 -83
  37. data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +42 -86
  38. data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +50 -88
  39. data/lib/onc_certification_g10_test_kit/smart_invalid_token_refresh_test.rb +9 -6
  40. data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +86 -278
  41. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +30 -57
  42. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2.rb +34 -73
  43. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2_2.rb +34 -73
  44. data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +6 -1
  45. data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +88 -116
  46. data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +60 -114
  47. data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +2 -11
  48. data/lib/onc_certification_g10_test_kit/token_introspection_group.rb +12 -25
  49. data/lib/onc_certification_g10_test_kit/token_introspection_group_stu2_2.rb +12 -14
  50. data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +44 -33
  51. data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +3 -3
  52. data/lib/onc_certification_g10_test_kit/version.rb +2 -2
  53. data/lib/onc_certification_g10_test_kit.rb +104 -40
  54. metadata +9 -8
@@ -33,17 +33,28 @@ module ONCCertificationG10TestKit
33
33
 
34
34
  config(
35
35
  inputs: {
36
- client_id: {
37
- name: :ehr_patient_client_id
38
- },
39
- client_secret: {
40
- name: :ehr_patient_client_secret,
41
- optional: false
42
- },
43
- requested_scopes: {
44
- name: :ehr_patient_requested_scopes,
45
- default: 'launch openid fhirUser offline_access patient/Patient.rs',
46
- locked: true
36
+ smart_auth_info: {
37
+ name: :ehr_patient_smart_auth_info,
38
+ title: 'EHR Launch with Patient Scopes Credentials',
39
+ options: {
40
+ mode: 'auth',
41
+ components: [
42
+ {
43
+ name: :auth_type,
44
+ default: 'symmetric',
45
+ locked: true
46
+ },
47
+ {
48
+ name: :requested_scopes,
49
+ default: 'launch openid fhirUser offline_access patient/Patient.rs',
50
+ locked: true
51
+ },
52
+ {
53
+ name: :use_discovery,
54
+ locked: true
55
+ }
56
+ ]
57
+ }
47
58
  },
48
59
  code: {
49
60
  name: :ehr_patient_code
@@ -57,37 +68,20 @@ module ONCCertificationG10TestKit
57
68
  received_scopes: {
58
69
  name: :ehr_patient_received_scopes
59
70
  },
60
- smart_credentials: {
61
- name: :ehr_patient_smart_credentials
62
- },
63
- smart_authorization_url: {
64
- title: 'OAuth 2.0 Authorize Endpoint',
65
- description: 'OAuth 2.0 Authorize Endpoint provided during the EHR launch'
66
- },
67
- smart_token_url: {
68
- title: 'OAuth 2.0 Token Endpoint',
69
- description: 'OAuth 2.0 Token Endpoint provided during the EHR launch'
70
- },
71
- client_auth_type: {
72
- locked: true,
73
- default: 'confidential_symmetric'
71
+ patient_id: {
72
+ name: :ehr_patient_patient_id
74
73
  }
75
74
  },
76
75
  outputs: {
77
76
  launch: { name: :ehr_patient_launch },
78
77
  code: { name: :ehr_patient_code },
79
- token_retrieval_time: { name: :ehr_patient_token_retrieval_time },
80
78
  state: { name: :ehr_patient_state },
81
79
  id_token: { name: :ehr_patient_id_token },
82
- refresh_token: { name: :ehr_patient_refresh_token },
83
- access_token: { name: :ehr_patient_access_token },
84
- expires_in: { name: :ehr_patient_expires_in },
85
80
  patient_id: { name: :ehr_patient_patient_id },
86
81
  encounter_id: { name: :ehr_patient_encounter_id },
87
82
  received_scopes: { name: :ehr_patient_received_scopes },
88
- requested_scopes: { name: :ehr_patient_requested_scopes },
89
83
  intent: { name: :ehr_patient_intent },
90
- smart_credentials: { name: :ehr_patient_smart_credentials }
84
+ smart_auth_info: { name: :ehr_patient_smart_auth_info }
91
85
  },
92
86
  requests: {
93
87
  redirect: { name: :ehr_patient_redirect },
@@ -95,24 +89,7 @@ module ONCCertificationG10TestKit
95
89
  }
96
90
  )
97
91
 
98
- input_order :url,
99
- :ehr_patient_client_id,
100
- :ehr_patient_client_secret,
101
- :smart_authorization_url,
102
- :smart_token_url,
103
- :ehr_patient_requested_scopes,
104
- :authorization_method,
105
- :use_pkce,
106
- :pkce_code_challenge_method,
107
- :client_auth_type
108
-
109
- test from: :g10_patient_context,
110
- config: {
111
- inputs: {
112
- patient_id: { name: :ehr_patient_patient_id },
113
- smart_credentials: { name: :ehr_patient_smart_credentials }
114
- }
115
- }
92
+ test from: :g10_patient_context
116
93
 
117
94
  test from: :g10_patient_scope,
118
95
  config: {
@@ -121,8 +98,9 @@ module ONCCertificationG10TestKit
121
98
  }
122
99
  }
123
100
 
124
- children.each do |child|
125
- child.inputs.delete(:client_auth_encryption_method)
126
- end
101
+ test from: :well_known_endpoint
102
+
103
+ # Move the well-known endpoint test to the beginning
104
+ children.prepend(children.pop)
127
105
  end
128
106
  end
@@ -33,17 +33,28 @@ module ONCCertificationG10TestKit
33
33
 
34
34
  config(
35
35
  inputs: {
36
- client_id: {
37
- name: :ehr_patient_client_id
38
- },
39
- client_secret: {
40
- name: :ehr_patient_client_secret,
41
- optional: false
42
- },
43
- requested_scopes: {
44
- name: :ehr_patient_requested_scopes,
45
- default: 'launch openid fhirUser offline_access patient/Patient.rs',
46
- locked: true
36
+ smart_auth_info: {
37
+ name: :ehr_patient_smart_auth_info,
38
+ title: 'EHR Launch with Patient Scopes Credentials',
39
+ options: {
40
+ mode: 'auth',
41
+ components: [
42
+ {
43
+ name: :auth_type,
44
+ default: 'symmetric',
45
+ locked: true
46
+ },
47
+ {
48
+ name: :requested_scopes,
49
+ default: 'launch openid fhirUser offline_access patient/Patient.rs',
50
+ locked: true
51
+ },
52
+ {
53
+ name: :use_discovery,
54
+ locked: true
55
+ }
56
+ ]
57
+ }
47
58
  },
48
59
  code: {
49
60
  name: :ehr_patient_code
@@ -57,62 +68,29 @@ module ONCCertificationG10TestKit
57
68
  received_scopes: {
58
69
  name: :ehr_patient_received_scopes
59
70
  },
60
- smart_credentials: {
61
- name: :ehr_patient_smart_credentials
62
- },
63
- smart_authorization_url: {
64
- title: 'OAuth 2.0 Authorize Endpoint',
65
- description: 'OAuth 2.0 Authorize Endpoint provided during the EHR launch'
66
- },
67
- smart_token_url: {
68
- title: 'OAuth 2.0 Token Endpoint',
69
- description: 'OAuth 2.0 Token Endpoint provided during the EHR launch'
70
- },
71
- client_auth_type: {
72
- locked: true,
73
- default: 'confidential_symmetric'
71
+ patient_id: {
72
+ name: :ehr_patient_patient_id
74
73
  }
75
74
  },
76
75
  outputs: {
77
76
  launch: { name: :ehr_patient_launch },
78
77
  code: { name: :ehr_patient_code },
79
- token_retrieval_time: { name: :ehr_patient_token_retrieval_time },
80
78
  state: { name: :ehr_patient_state },
81
79
  id_token: { name: :ehr_patient_id_token },
82
- refresh_token: { name: :ehr_patient_refresh_token },
83
- access_token: { name: :ehr_patient_access_token },
84
- expires_in: { name: :ehr_patient_expires_in },
85
80
  patient_id: { name: :ehr_patient_patient_id },
86
81
  encounter_id: { name: :ehr_patient_encounter_id },
87
82
  received_scopes: { name: :ehr_patient_received_scopes },
88
- requested_scopes: { name: :ehr_patient_requested_scopes },
89
83
  intent: { name: :ehr_patient_intent },
90
- smart_credentials: { name: :ehr_patient_smart_credentials }
84
+ smart_auth_info: { name: :ehr_patient_smart_auth_info }
91
85
  },
92
86
  requests: {
93
87
  redirect: { name: :ehr_patient_redirect },
94
- token: { name: :ehr_patient_token }
88
+ token: { name: :ehr_patient_token },
89
+ cors_token_request: { name: :ehr_patient_token }
95
90
  }
96
91
  )
97
92
 
98
- input_order :url,
99
- :ehr_patient_client_id,
100
- :ehr_patient_client_secret,
101
- :smart_authorization_url,
102
- :smart_token_url,
103
- :ehr_patient_requested_scopes,
104
- :authorization_method,
105
- :use_pkce,
106
- :pkce_code_challenge_method,
107
- :client_auth_type
108
-
109
- test from: :g10_patient_context,
110
- config: {
111
- inputs: {
112
- patient_id: { name: :ehr_patient_patient_id },
113
- smart_credentials: { name: :ehr_patient_smart_credentials }
114
- }
115
- }
93
+ test from: :g10_patient_context
116
94
 
117
95
  test from: :g10_patient_scope,
118
96
  config: {
@@ -121,8 +99,9 @@ module ONCCertificationG10TestKit
121
99
  }
122
100
  }
123
101
 
124
- children.each do |child|
125
- child.inputs.delete(:client_auth_encryption_method)
126
- end
102
+ test from: :well_known_endpoint
103
+
104
+ # Move the well-known endpoint test to the beginning
105
+ children.prepend(children.pop)
127
106
  end
128
107
  end