onc_certification_g10_test_kit 7.0.3 → 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.
- checksums.yaml +4 -4
- data/config/presets/g10_reference_server_preset.json +1467 -0
- data/lib/inferno/ext/bloomer.rb +1 -1
- data/lib/inferno/terminology/tasks/process_umls.rb +1 -1
- data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +73 -67
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu1.rb +1 -2
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_cancel_stu2.rb +7 -1
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_parameters.rb +1 -1
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_stu1.rb +10 -2
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +6 -2
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +7 -3
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +5 -13
- data/lib/onc_certification_g10_test_kit/encounter_context_test.rb +3 -3
- data/lib/onc_certification_g10_test_kit/export_kick_off_performer.rb +7 -3
- data/lib/onc_certification_g10_test_kit/feature.rb +5 -4
- data/lib/onc_certification_g10_test_kit/igs/01-us-core-v400.tgz +0 -0
- data/lib/onc_certification_g10_test_kit/igs/03-us-core-v311.tgz +0 -0
- data/lib/onc_certification_g10_test_kit/igs/04-us-core-610.tgz +0 -0
- data/lib/onc_certification_g10_test_kit/metadata.rb +103 -0
- data/lib/onc_certification_g10_test_kit/multi_patient_api_stu1.rb +0 -4
- data/lib/onc_certification_g10_test_kit/multi_patient_api_stu2.rb +8 -4
- data/lib/onc_certification_g10_test_kit/patient_context_test.rb +3 -3
- data/lib/onc_certification_g10_test_kit/patient_scope_test.rb +1 -1
- data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +3 -10
- data/lib/onc_certification_g10_test_kit/scope_constants.rb +52 -0
- data/lib/onc_certification_g10_test_kit/short_id_map.yml +11 -20
- data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +18 -17
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +18 -17
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_5_api_group.rb +18 -17
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +20 -19
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +20 -19
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +108 -65
- data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +42 -89
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group.rb +33 -43
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2.rb +32 -54
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2_2.rb +34 -55
- data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +103 -146
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group.rb +17 -55
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group_stu2_2.rb +17 -55
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group.rb +17 -55
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group_stu2_2.rb +17 -55
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +33 -68
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_test.rb +4 -3
- data/lib/onc_certification_g10_test_kit/smart_invalid_pkce_group.rb +45 -89
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +45 -89
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +53 -91
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_refresh_test.rb +9 -6
- data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +86 -278
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +32 -59
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2.rb +36 -75
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2_2.rb +36 -75
- data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +6 -1
- data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +90 -118
- data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +62 -116
- data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +3 -12
- data/lib/onc_certification_g10_test_kit/token_introspection_group.rb +12 -25
- data/lib/onc_certification_g10_test_kit/token_introspection_group_stu2_2.rb +12 -14
- data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +44 -33
- data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +3 -3
- data/lib/onc_certification_g10_test_kit/urls.rb +4 -0
- data/lib/onc_certification_g10_test_kit/version.rb +2 -1
- data/lib/onc_certification_g10_test_kit.rb +119 -65
- metadata +20 -68
@@ -63,19 +63,21 @@ module ONCCertificationG10TestKit
|
|
63
63
|
:well_known_introspection_url,
|
64
64
|
:custom_authorization_header,
|
65
65
|
:optional_introspection_request_params,
|
66
|
-
:
|
67
|
-
:standalone_client_secret,
|
68
|
-
:authorization_method,
|
69
|
-
:use_pkce,
|
70
|
-
:pkce_code_challenge_method,
|
71
|
-
:standalone_requested_scopes,
|
72
|
-
:token_introspection_auth_type,
|
73
|
-
:client_auth_encryption_method
|
66
|
+
:standalone_smart_auth_info
|
74
67
|
|
75
68
|
config(
|
76
69
|
inputs: {
|
77
|
-
|
78
|
-
name: :
|
70
|
+
smart_auth_info: {
|
71
|
+
name: :standalone_smart_auth_info,
|
72
|
+
title: 'Standalone Launch Credentials',
|
73
|
+
options: {
|
74
|
+
components: [
|
75
|
+
{
|
76
|
+
name: :jwks,
|
77
|
+
locked: true
|
78
|
+
}
|
79
|
+
]
|
80
|
+
}
|
79
81
|
}
|
80
82
|
}
|
81
83
|
)
|
@@ -91,20 +93,5 @@ module ONCCertificationG10TestKit
|
|
91
93
|
the correct HTTP response is returned but does not validate the contents
|
92
94
|
of the token introspection response.
|
93
95
|
DESCRIPTION
|
94
|
-
|
95
|
-
# The token introspection tests are SMART v2 only, so they use v2 discovery
|
96
|
-
# and launch groups. g10 needs them for SMART v1 and v2, so this sets the
|
97
|
-
# original discovery and launch groups to only appear when using SMART v2,
|
98
|
-
# and adds the v1 groups when using v1.
|
99
|
-
|
100
|
-
groups.first.groups.each do |group|
|
101
|
-
group.required_suite_options(G10Options::SMART_2_REQUIREMENT)
|
102
|
-
end
|
103
|
-
|
104
|
-
groups.first.group from: :smart_discovery,
|
105
|
-
required_suite_options: G10Options::SMART_1_REQUIREMENT
|
106
|
-
|
107
|
-
groups.first.group from: :smart_standalone_launch,
|
108
|
-
required_suite_options: G10Options::SMART_1_REQUIREMENT
|
109
96
|
end
|
110
97
|
end
|
@@ -61,19 +61,21 @@ module ONCCertificationG10TestKit
|
|
61
61
|
:well_known_introspection_url,
|
62
62
|
:custom_authorization_header,
|
63
63
|
:optional_introspection_request_params,
|
64
|
-
:
|
65
|
-
:standalone_client_secret,
|
66
|
-
:authorization_method,
|
67
|
-
:use_pkce,
|
68
|
-
:pkce_code_challenge_method,
|
69
|
-
:standalone_requested_scopes,
|
70
|
-
:token_introspection_auth_type,
|
71
|
-
:client_auth_encryption_method
|
64
|
+
:standalone_smart_auth_info
|
72
65
|
|
73
66
|
config(
|
74
67
|
inputs: {
|
75
|
-
|
76
|
-
name: :
|
68
|
+
smart_auth_info: {
|
69
|
+
name: :standalone_smart_auth_info,
|
70
|
+
title: 'Standalone Launch Credentials',
|
71
|
+
options: {
|
72
|
+
components: [
|
73
|
+
{
|
74
|
+
name: :jwks,
|
75
|
+
locked: true
|
76
|
+
}
|
77
|
+
]
|
78
|
+
}
|
77
79
|
}
|
78
80
|
}
|
79
81
|
)
|
@@ -89,9 +91,5 @@ module ONCCertificationG10TestKit
|
|
89
91
|
the correct HTTP response is returned but does not validate the contents
|
90
92
|
of the token introspection response.
|
91
93
|
DESCRIPTION
|
92
|
-
|
93
|
-
groups.first.groups.each do |group|
|
94
|
-
group.required_suite_options(G10Options::SMART_2_2_REQUIREMENT)
|
95
|
-
end
|
96
94
|
end
|
97
95
|
end
|
@@ -11,13 +11,43 @@ module ONCCertificationG10TestKit
|
|
11
11
|
|
12
12
|
input_order :token_revocation_attestation,
|
13
13
|
:token_revocation_notes,
|
14
|
-
:standalone_access_token,
|
15
|
-
:standalone_refresh_token,
|
16
14
|
:standalone_patient_id,
|
17
|
-
:url
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
:url
|
16
|
+
|
17
|
+
config(
|
18
|
+
inputs: {
|
19
|
+
smart_auth_info: {
|
20
|
+
title: 'Revoked Bearer Token',
|
21
|
+
description: 'Prior to the test, please revoke this bearer token from patient standalone launch.',
|
22
|
+
options: {
|
23
|
+
mode: 'access',
|
24
|
+
components: [
|
25
|
+
Inferno::DSL::AuthInfo.default_auth_type_component_without_backend_services,
|
26
|
+
{
|
27
|
+
name: :client_id,
|
28
|
+
locked: true
|
29
|
+
},
|
30
|
+
{
|
31
|
+
name: :client_secret,
|
32
|
+
locked: true
|
33
|
+
},
|
34
|
+
{
|
35
|
+
name: :refresh_token,
|
36
|
+
optional: false
|
37
|
+
},
|
38
|
+
{
|
39
|
+
name: :token_url,
|
40
|
+
optional: false
|
41
|
+
},
|
42
|
+
{
|
43
|
+
name: :jwks,
|
44
|
+
locked: true
|
45
|
+
}
|
46
|
+
]
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
)
|
21
51
|
|
22
52
|
test do
|
23
53
|
title 'Health IT developer demonstrated the ability of the Health IT Module to revoke tokens within one hour of a patient\'s request.' # rubocop:disable Layout/LineLength
|
@@ -68,21 +98,18 @@ module ONCCertificationG10TestKit
|
|
68
98
|
name: :standalone_patient_id,
|
69
99
|
title: 'Patient ID',
|
70
100
|
description: 'Patient ID associated with revoked tokens provided as context in the patient standalone launch. This will be used to verify access is no longer granted using the revoked token.' # rubocop:disable Layout/LineLength
|
71
|
-
input :
|
72
|
-
name: :standalone_access_token,
|
73
|
-
title: 'Revoked Bearer Token',
|
74
|
-
description: 'Prior to the test, please revoke this bearer token from patient standalone launch.'
|
101
|
+
input :smart_auth_info, type: :auth_info
|
75
102
|
|
76
103
|
fhir_client :revoked_token do
|
77
104
|
url :url
|
78
|
-
|
105
|
+
auth_info :smart_auth_info
|
79
106
|
end
|
80
107
|
|
81
108
|
run do
|
82
109
|
skip_if patient_id.blank?,
|
83
110
|
'Patient ID not provided to test. The patient ID is typically provided ' \
|
84
111
|
'during a SMART launch context.'
|
85
|
-
skip_if access_token.blank?,
|
112
|
+
skip_if smart_auth_info.access_token.blank?,
|
86
113
|
'Bearer token not provided. This test verifies that the bearer token can ' \
|
87
114
|
'no longer be used to access a Patient resource.'
|
88
115
|
|
@@ -98,38 +125,22 @@ module ONCCertificationG10TestKit
|
|
98
125
|
This test checks that refreshing token fails after token revocation.
|
99
126
|
)
|
100
127
|
|
101
|
-
input :
|
102
|
-
title: 'OAuth 2.0 Token Endpoint',
|
103
|
-
description: 'OAuth token endpoint provided during the patient standalone launch'
|
104
|
-
input :refresh_token,
|
105
|
-
name: :standalone_refresh_token,
|
106
|
-
title: 'Revoked Refresh Token',
|
107
|
-
description: 'Prior to the test, please revoke this refresh token from patient standalone launch.'
|
108
|
-
input :client_id,
|
109
|
-
name: :standalone_client_id,
|
110
|
-
title: 'Standalone Client ID',
|
111
|
-
description: 'Client ID provided during registration of Inferno as a standalone application',
|
112
|
-
locked: true
|
113
|
-
input :client_secret,
|
114
|
-
name: :standalone_client_secret,
|
115
|
-
title: 'Standalone Client Secret',
|
116
|
-
description: 'Client Secret provided during registration of Inferno as a standalone application',
|
117
|
-
locked: true
|
128
|
+
input :smart_auth_info, type: :auth_info
|
118
129
|
|
119
130
|
run do
|
120
|
-
skip_if refresh_token.blank?,
|
131
|
+
skip_if smart_auth_info.refresh_token.blank?,
|
121
132
|
'Refresh token not provided to test.'
|
122
133
|
oauth2_params = {
|
123
134
|
'grant_type' => 'refresh_token',
|
124
|
-
'refresh_token' => refresh_token
|
135
|
+
'refresh_token' => smart_auth_info.refresh_token
|
125
136
|
}
|
126
|
-
client_credentials = "#{client_id}:#{client_secret}"
|
137
|
+
client_credentials = "#{smart_auth_info.client_id}:#{smart_auth_info.client_secret}"
|
127
138
|
oauth2_headers = {
|
128
139
|
'Content-Type' => 'application/x-www-form-urlencoded',
|
129
140
|
'Authorization' => "Basic #{Base64.strict_encode64(client_credentials)}"
|
130
141
|
}
|
131
142
|
|
132
|
-
post(
|
143
|
+
post(smart_auth_info.token_url, body: oauth2_params, headers: oauth2_headers)
|
133
144
|
|
134
145
|
assert_response_status([400, 401])
|
135
146
|
end
|
@@ -86,12 +86,12 @@ module ONCCertificationG10TestKit
|
|
86
86
|
)
|
87
87
|
id :g10_unrestricted_resource_type_access
|
88
88
|
|
89
|
-
input :url, :
|
90
|
-
input :
|
89
|
+
input :url, :patient_id, :received_scopes
|
90
|
+
input :smart_auth_info, type: 'auth_info'
|
91
91
|
|
92
92
|
fhir_client do
|
93
93
|
url :url
|
94
|
-
oauth_credentials :
|
94
|
+
oauth_credentials :smart_auth_info
|
95
95
|
end
|
96
96
|
|
97
97
|
V5_EXCLUDED_RESOURCES = ['RelatedPerson'].freeze
|
@@ -3,8 +3,9 @@ require 'smart_app_launch/smart_stu2_suite'
|
|
3
3
|
require 'smart_app_launch/smart_stu2_2_suite'
|
4
4
|
require 'us_core_test_kit'
|
5
5
|
|
6
|
+
require_relative 'onc_certification_g10_test_kit/metadata'
|
6
7
|
require_relative 'onc_certification_g10_test_kit/configuration_checker'
|
7
|
-
require_relative 'onc_certification_g10_test_kit/
|
8
|
+
require_relative 'onc_certification_g10_test_kit/urls'
|
8
9
|
|
9
10
|
require_relative 'onc_certification_g10_test_kit/feature'
|
10
11
|
require_relative 'onc_certification_g10_test_kit/g10_options'
|
@@ -50,7 +51,6 @@ module ONCCertificationG10TestKit
|
|
50
51
|
class G10CertificationSuite < Inferno::TestSuite
|
51
52
|
title 'ONC Certification (g)(10) Standardized API'
|
52
53
|
short_title '(g)(10) Standardized API'
|
53
|
-
version VERSION
|
54
54
|
id :g10_certification
|
55
55
|
links [
|
56
56
|
{
|
@@ -89,26 +89,16 @@ module ONCCertificationG10TestKit
|
|
89
89
|
].freeze
|
90
90
|
|
91
91
|
def self.setup_validator(us_core_version_requirement) # rubocop:disable Metrics/CyclomaticComplexity
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
validator_method.call :default, required_suite_options: us_core_version_requirement do
|
99
|
-
if Feature.use_hl7_resource_validator?
|
100
|
-
cli_context do
|
101
|
-
txServer nil
|
102
|
-
displayWarnings true
|
103
|
-
disableDefaultResourceFetcher true
|
104
|
-
end
|
92
|
+
fhir_resource_validator :default, required_suite_options: us_core_version_requirement do
|
93
|
+
cli_context do
|
94
|
+
txServer nil
|
95
|
+
displayWarnings true
|
96
|
+
disableDefaultResourceFetcher true
|
97
|
+
end
|
105
98
|
|
106
|
-
|
99
|
+
us_core_version_num = G10Options::US_CORE_VERSION_NUMBERS[us_core_version_requirement[:us_core_version]]
|
107
100
|
|
108
|
-
|
109
|
-
else
|
110
|
-
url ENV.fetch('G10_VALIDATOR_URL', 'http://validator_service:4567')
|
111
|
-
end
|
101
|
+
igs("hl7.fhir.us.core##{us_core_version_num}")
|
112
102
|
|
113
103
|
us_core_message_filters =
|
114
104
|
case (us_core_version_requirement[:us_core_version])
|
@@ -263,12 +253,6 @@ module ONCCertificationG10TestKit
|
|
263
253
|
]
|
264
254
|
|
265
255
|
config(
|
266
|
-
inputs: {
|
267
|
-
client_auth_encryption_method: {
|
268
|
-
title: 'Client Authentication Encryption Method',
|
269
|
-
locked: true
|
270
|
-
}
|
271
|
-
},
|
272
256
|
options: {
|
273
257
|
post_authorization_uri: "#{Inferno::Application['base_url']}/custom/smart_stu2/post_auth",
|
274
258
|
incorrectly_permitted_tls_version_message_type: 'warning'
|
@@ -308,8 +292,8 @@ module ONCCertificationG10TestKit
|
|
308
292
|
To get started with the first group of scenarios, please first register the
|
309
293
|
Inferno client as a SMART App with the following information:
|
310
294
|
|
311
|
-
* SMART Launch URI: `#{
|
312
|
-
* OAuth Redirect URI: `#{
|
295
|
+
* SMART Launch URI: `#{LAUNCH_URI}`
|
296
|
+
* OAuth Redirect URI: `#{REDIRECT_URI}`
|
313
297
|
|
314
298
|
For the multi-patient API, register Inferno with the following JWK Set
|
315
299
|
Url:
|
@@ -336,8 +320,8 @@ module ONCCertificationG10TestKit
|
|
336
320
|
input_instructions %(
|
337
321
|
Register Inferno as a SMART app using the following information:
|
338
322
|
|
339
|
-
* Launch URI: `#{
|
340
|
-
* Redirect URI: `#{
|
323
|
+
* Launch URI: `#{LAUNCH_URI}`
|
324
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
341
325
|
|
342
326
|
For the multi-patient API, register Inferno with the following JWK Set
|
343
327
|
Url:
|
@@ -347,7 +331,24 @@ module ONCCertificationG10TestKit
|
|
347
331
|
|
348
332
|
group from: 'g10_smart_standalone_patient_app'
|
349
333
|
|
350
|
-
group from: 'g10_smart_limited_app'
|
334
|
+
group from: 'g10_smart_limited_app' do
|
335
|
+
# This has to be configured here, otherwise the `smart_auth_info` config
|
336
|
+
# will get clobbered and will use `standalone_smart_auth_info` instead of
|
337
|
+
# `limited_smart_auth_info`
|
338
|
+
groups
|
339
|
+
.select { |group| group.id.include? 'smart_standalone_launch' }
|
340
|
+
.flat_map(&:tests)
|
341
|
+
.select { |test| test.id.include? 'g10_patient_context' }
|
342
|
+
.each do |test|
|
343
|
+
test
|
344
|
+
.config(
|
345
|
+
inputs: {
|
346
|
+
patient_id: { name: :limited_patient_id },
|
347
|
+
smart_auth_info: { name: :limited_smart_auth_info }
|
348
|
+
}
|
349
|
+
)
|
350
|
+
end
|
351
|
+
end
|
351
352
|
|
352
353
|
group from: 'g10_smart_ehr_practitioner_app'
|
353
354
|
|
@@ -393,18 +394,10 @@ module ONCCertificationG10TestKit
|
|
393
394
|
[Follow this link to authorize with the SMART server](#{auth_url}).
|
394
395
|
|
395
396
|
Tests will resume once Inferno receives a request at
|
396
|
-
`#{
|
397
|
+
`#{REDIRECT_URI}` with a state of `#{state}`.
|
397
398
|
)
|
398
399
|
end
|
399
400
|
|
400
|
-
config(
|
401
|
-
inputs: {
|
402
|
-
client_auth_encryption_method: {
|
403
|
-
locked: false
|
404
|
-
}
|
405
|
-
}
|
406
|
-
)
|
407
|
-
|
408
401
|
group from: :g10_public_standalone_launch,
|
409
402
|
required_suite_options: G10Options::SMART_1_REQUIREMENT,
|
410
403
|
config: { options: { redirect_message_proc: default_redirect_message_proc } }
|
@@ -416,6 +409,7 @@ module ONCCertificationG10TestKit
|
|
416
409
|
config: { options: { redirect_message_proc: default_redirect_message_proc } }
|
417
410
|
|
418
411
|
group from: :g10_token_revocation
|
412
|
+
|
419
413
|
group from: :g10_smart_invalid_aud,
|
420
414
|
config: { options: { redirect_message_proc: default_redirect_message_proc } }
|
421
415
|
|
@@ -455,34 +449,94 @@ module ONCCertificationG10TestKit
|
|
455
449
|
required_suite_options: G10Options::SMART_2_2_REQUIREMENT
|
456
450
|
|
457
451
|
group from: :g10_smart_v1_scopes,
|
458
|
-
required_suite_options: G10Options::SMART_2_REQUIREMENT
|
459
|
-
config: {
|
460
|
-
inputs: {
|
461
|
-
client_auth_encryption_method: { locked: true }
|
462
|
-
}
|
463
|
-
}
|
452
|
+
required_suite_options: G10Options::SMART_2_REQUIREMENT
|
464
453
|
group from: :g10_smart_v1_scopes,
|
465
454
|
id: :g10_smart_v1_scopes_stu2_2, # rubocop:disable Naming/VariableNumber
|
466
|
-
required_suite_options: G10Options::SMART_2_2_REQUIREMENT
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
455
|
+
required_suite_options: G10Options::SMART_2_2_REQUIREMENT
|
456
|
+
|
457
|
+
group from: :g10_smart_fine_grained_scopes, exclude_optional: true do
|
458
|
+
required_suite_options G10Options::SMART_2_REQUIREMENT.merge(G10Options::US_CORE_6_REQUIREMENT)
|
459
|
+
groups.first.config(
|
460
|
+
inputs: {
|
461
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
462
|
+
},
|
463
|
+
outputs: {
|
464
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
465
|
+
}
|
466
|
+
)
|
467
|
+
|
468
|
+
groups.last.config(
|
469
|
+
inputs: {
|
470
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
471
|
+
},
|
472
|
+
outputs: {
|
473
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
474
|
+
}
|
475
|
+
)
|
476
|
+
end
|
477
|
+
|
478
|
+
group from: :g10_smart_fine_grained_scopes_stu2_2, exclude_optional: true do # rubocop:disable Naming/VariableNumber
|
479
|
+
required_suite_options G10Options::SMART_2_2_REQUIREMENT.merge(G10Options::US_CORE_6_REQUIREMENT)
|
480
|
+
groups.first.config(
|
481
|
+
inputs: {
|
482
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
483
|
+
},
|
484
|
+
outputs: {
|
485
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
486
|
+
}
|
487
|
+
)
|
488
|
+
|
489
|
+
groups.last.config(
|
490
|
+
inputs: {
|
491
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
492
|
+
},
|
493
|
+
outputs: {
|
494
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
495
|
+
}
|
496
|
+
)
|
497
|
+
end
|
498
|
+
|
499
|
+
group from: :g10_us_core_7_smart_fine_grained_scopes, exclude_optional: true do
|
500
|
+
required_suite_options G10Options::SMART_2_REQUIREMENT.merge(G10Options::US_CORE_7_REQUIREMENT)
|
501
|
+
groups.first.config(
|
502
|
+
inputs: {
|
503
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
504
|
+
},
|
505
|
+
outputs: {
|
506
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
507
|
+
}
|
508
|
+
)
|
509
|
+
|
510
|
+
groups.last.config(
|
511
|
+
inputs: {
|
512
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
513
|
+
},
|
514
|
+
outputs: {
|
515
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
516
|
+
}
|
517
|
+
)
|
518
|
+
end
|
472
519
|
|
473
|
-
group from: :
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
520
|
+
group from: :g10_us_core_7_smart_fine_grained_scopes_stu2_2, exclude_optional: true do # rubocop:disable Naming/VariableNumber
|
521
|
+
required_suite_options G10Options::SMART_2_2_REQUIREMENT.merge(G10Options::US_CORE_7_REQUIREMENT)
|
522
|
+
groups.first.config(
|
523
|
+
inputs: {
|
524
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
525
|
+
},
|
526
|
+
outputs: {
|
527
|
+
smart_auth_info: { name: :granular_scopes_1_auth_info }
|
528
|
+
}
|
529
|
+
)
|
530
|
+
|
531
|
+
groups.last.config(
|
532
|
+
inputs: {
|
533
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
534
|
+
},
|
535
|
+
outputs: {
|
536
|
+
smart_auth_info: { name: :granular_scopes_2_auth_info }
|
537
|
+
}
|
538
|
+
)
|
539
|
+
end
|
486
540
|
|
487
541
|
group from: :g10_smart_granular_scope_selection,
|
488
542
|
required_suite_options: G10Options::SMART_2_REQUIREMENT.merge(G10Options::US_CORE_6_REQUIREMENT)
|