smart_app_launch_test_kit 0.6.1 → 0.6.2
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/SMART_RunClientAgainstServer.json.erb +58 -10
- data/config/presets/SMART_RunServerAgainstClient_ConfidentialAsymmetric.json.erb +183 -0
- data/config/presets/SMART_RunServerAgainstClient_ConfidentialSymmetric.json.erb +157 -0
- data/config/presets/SMART_RunServerAgainstClient_Public.json.erb +155 -0
- data/lib/smart_app_launch/backend_services_invalid_client_assertion_test.rb +1 -1
- data/lib/smart_app_launch/backend_services_invalid_jwt_test.rb +1 -1
- data/lib/smart_app_launch/client_stu2_2_suite.rb +60 -19
- data/lib/smart_app_launch/client_suite/access_alca_interaction_test.rb +75 -0
- data/lib/smart_app_launch/client_suite/access_alcs_interaction_test.rb +75 -0
- data/lib/smart_app_launch/client_suite/access_alp_interaction_test.rb +75 -0
- data/lib/smart_app_launch/client_suite/access_bsca_interaction_test.rb +46 -0
- data/lib/smart_app_launch/client_suite/access_group.rb +85 -0
- data/lib/smart_app_launch/client_suite/authentication_verification.rb +86 -0
- data/lib/smart_app_launch/client_suite/authorization_request_verification_test.rb +108 -0
- data/lib/smart_app_launch/client_suite/client_descriptions.rb +114 -0
- data/lib/smart_app_launch/client_suite/client_options.rb +35 -0
- data/lib/smart_app_launch/client_suite/oidc_jwks.json +32 -0
- data/lib/smart_app_launch/client_suite/oidc_jwks.rb +27 -0
- data/lib/smart_app_launch/client_suite/registration_alca_group.rb +15 -0
- data/lib/smart_app_launch/client_suite/registration_alca_verification_test.rb +57 -0
- data/lib/smart_app_launch/client_suite/registration_alcs_group.rb +15 -0
- data/lib/smart_app_launch/client_suite/registration_alcs_verification_test.rb +56 -0
- data/lib/smart_app_launch/client_suite/registration_alp_group.rb +16 -0
- data/lib/smart_app_launch/client_suite/registration_alp_verification_test.rb +50 -0
- data/lib/smart_app_launch/client_suite/registration_bsca_group.rb +15 -0
- data/lib/smart_app_launch/client_suite/registration_bsca_verification_test.rb +40 -0
- data/lib/smart_app_launch/client_suite/registration_verification.rb +58 -0
- data/lib/smart_app_launch/client_suite/token_request_alca_verification_test.rb +53 -0
- data/lib/smart_app_launch/client_suite/token_request_alcs_verification_test.rb +53 -0
- data/lib/smart_app_launch/client_suite/token_request_alp_verification_test.rb +48 -0
- data/lib/smart_app_launch/client_suite/token_request_bsca_verification_test.rb +53 -0
- data/lib/smart_app_launch/client_suite/token_request_verification.rb +116 -0
- data/lib/smart_app_launch/client_suite/{client_token_use_verification_test.rb → token_use_verification_test.rb} +1 -8
- data/lib/smart_app_launch/docs/smart_stu2_2_client_suite_description.md +128 -41
- data/lib/smart_app_launch/endpoints/echoing_fhir_responder_endpoint.rb +96 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server/authorization_endpoint.rb +27 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server/introspection_endpoint.rb +33 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server/smart_authorization_response_creation.rb +30 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server/smart_introspection_response_creation.rb +46 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server/smart_token_response_creation.rb +250 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server/token_endpoint.rb +58 -0
- data/lib/smart_app_launch/endpoints/mock_smart_server.rb +128 -67
- data/lib/smart_app_launch/metadata.rb +19 -14
- data/lib/smart_app_launch/tags.rb +9 -1
- data/lib/smart_app_launch/token_payload_validation.rb +2 -2
- data/lib/smart_app_launch/urls.rb +12 -0
- data/lib/smart_app_launch/version.rb +2 -2
- metadata +38 -11
- data/config/presets/SMART_RunServerAgainstClient.json.erb +0 -42
- data/lib/smart_app_launch/client_suite/client_access_group.rb +0 -26
- data/lib/smart_app_launch/client_suite/client_access_interaction_test.rb +0 -64
- data/lib/smart_app_launch/client_suite/client_registration_group.rb +0 -15
- data/lib/smart_app_launch/client_suite/client_registration_verification_test.rb +0 -52
- data/lib/smart_app_launch/client_suite/client_token_request_verification_test.rb +0 -146
- data/lib/smart_app_launch/endpoints/echoing_fhir_responder.rb +0 -52
- data/lib/smart_app_launch/endpoints/mock_smart_server/token.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c85e63b5e23ff0a1021d234660b3878bb14887b5ba3b5fce05ee40f3071bcd28
|
4
|
+
data.tar.gz: 962ce6ee409f408ad79093bf424654c0532d741c03666c7902dfb6e5dea93eb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0491bd7e512cf0c81953e6f3a536bb6f2a0b9a955e7c451b8d3efe85a3d90b1326b54d5846ef3eaa0db5115c89b47326183a56081b4087c739c9ecb10bc4e291'
|
7
|
+
data.tar.gz: 10c44261afccf1796a06e3add398dbfa3fcca441364bb7f193afebbe60f120eb6c2c44b3dcd146fe4d0c0ba28a2d5c00a822f2999fb25abd4c8eb2844a08e34a
|
@@ -3,29 +3,77 @@
|
|
3
3
|
"id": "smart_run_client_against_server_v2_2",
|
4
4
|
"test_suite_id": "smart_client_stu2_2",
|
5
5
|
"inputs": [
|
6
|
+
{
|
7
|
+
"name": "client_id",
|
8
|
+
"description": "If a particular client id is desired, put it here. Otherwise a default of the Inferno session id will be used.",
|
9
|
+
"optional": true,
|
10
|
+
"title": "Client Id",
|
11
|
+
"type": "text",
|
12
|
+
"value": "smart_client_test_demo"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"name": "smart_launch_urls",
|
16
|
+
"description": "A comma-separated list of zero or more URLs that Inferno can use to launch the app. Not needed if the app does not support EHR launch.",
|
17
|
+
"optional": true,
|
18
|
+
"title": "SMART App Launch URL(s)",
|
19
|
+
"type": "textarea",
|
20
|
+
"value": "http://localhost:4567/custom/smart_stu2_2/launch"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"name": "smart_redirect_uris",
|
24
|
+
"description": "A comma-separated list of one or more URIs that the app will sepcify as the target of the redirect for Inferno to use when providing the authorization code. These tests can be run without this input, but will not pass without it.",
|
25
|
+
"optional": true,
|
26
|
+
"title": "SMART App Launch Redirect URI(s)",
|
27
|
+
"type": "textarea",
|
28
|
+
"value": "http://localhost:4567/custom/smart_stu2_2/redirect"
|
29
|
+
},
|
6
30
|
{
|
7
31
|
"name": "smart_jwk_set",
|
8
|
-
"description": "
|
32
|
+
"description": "For confidential asymmetric clients, provide the JSON Web Key Set that will be used to sign tokens including the key(s) Inferno will need to verify signatures on token requests made by the client. May be provided as either a publicly accessible url containing the JWKS, or the raw JWKS JSON. Leave blank for public and confidential symmetric clients.",
|
9
33
|
"optional": true,
|
10
|
-
"title": "SMART JSON Web Key Set (JWKS)",
|
34
|
+
"title": "SMART Confidential Asymmetric JSON Web Key Set (JWKS)",
|
11
35
|
"type": "textarea",
|
12
|
-
"value": "
|
36
|
+
"value": "http://localhost:4567/custom/smart_stu2_2/.well-known/jwks.json"
|
13
37
|
},
|
14
38
|
{
|
15
|
-
"name": "
|
16
|
-
"description": "
|
39
|
+
"name": "smart_client_secret",
|
40
|
+
"description": "For confidential symmetric clients, provide the client secret that will be provided during token requests to authenticate the client to Inferno. Leave blank for public and confidential asymmetric clients.",
|
17
41
|
"optional": true,
|
18
|
-
"title": "Client
|
42
|
+
"title": "SMART Confidential Symmetric Client Secret",
|
19
43
|
"type": "text",
|
20
|
-
"value": "
|
44
|
+
"value": "SAMPLE_SECRET"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"name": "launch_context",
|
48
|
+
"description": "Launch context details to be included in access token responses, specified as a JSON array. These contents will be merged into Inferno's token responses.",
|
49
|
+
"optional": true,
|
50
|
+
"title": "Launch Context",
|
51
|
+
"type": "textarea",
|
52
|
+
"value": "{ \"patient\": \"example\" }"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"name": "fhir_user_relative_reference",
|
56
|
+
"description": "A FHIR relative reference (<resource type>/<id>) for the FHIR user record to return when the openid and fhirUser scopes are requested. Include this resource in the **Available Resources** input so that it can be accessed.",
|
57
|
+
"optional": true,
|
58
|
+
"title": "FHIR User Relative Reference",
|
59
|
+
"type": "text",
|
60
|
+
"value": "Patient/example"
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"name": "fhir_read_resources_bundle",
|
64
|
+
"description": "Resources to make available in Inferno's simulated FHIR server provided as a FHIR bundle. Each entry must contain a resource with the id element populated. Each instance present will be available for retrieval from Inferno at the endpoint: <fhir-base>/<resource type>/<instance id>. These are only available through the read interaction.",
|
65
|
+
"optional": true,
|
66
|
+
"title": "Available Resources",
|
67
|
+
"type": "textarea",
|
68
|
+
"value": "{\n \"resourceType\": \"Bundle\",\n \"entry\": [\n {\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"example\",\n \"name\": [\n {\n \"family\": \"Chalmers\",\n \"given\": [\n \"Peter\",\n \"James\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1974-12-25\",\n \"address\": [\n {\n \"line\": [\n \"534 Erewhon St\"\n ],\n \"city\": \"Ann Arbor\",\n \"state\": \"MI\",\n \"postalCode\": \"48108\"\n }\n ]\n }\n }\n ]\n}"
|
21
69
|
},
|
22
70
|
{
|
23
71
|
"name": "echoed_fhir_response",
|
24
|
-
"description": "JSON representation of a FHIR resource for Inferno to echo when a request is made to the simulated FHIR server.
|
72
|
+
"description": "JSON representation of a default FHIR resource for Inferno to echo when a request is made to the simulated FHIR server. Reads targetting resources in the **Available Resources** input will return that resource instead of this. Otherwise, the content here will be echoed back exactly and no check will be made that it is appropriate for the request made. If nothing is provided, an OperationOutcome will be returned.",
|
25
73
|
"optional": true,
|
26
|
-
"title": "FHIR Response
|
74
|
+
"title": "Default FHIR Response",
|
27
75
|
"type": "textarea",
|
28
|
-
"value": "
|
76
|
+
"value": ""
|
29
77
|
}
|
30
78
|
]
|
31
79
|
}
|
@@ -0,0 +1,183 @@
|
|
1
|
+
{
|
2
|
+
"title": "Demo: Run Against the SMART Client Suite (Confidential Asymmetric)",
|
3
|
+
"id": "smart_run_server_against_ca_client_v2_2",
|
4
|
+
"test_suite_id": "smart_stu2_2",
|
5
|
+
"inputs": [
|
6
|
+
{
|
7
|
+
"name": "url",
|
8
|
+
"description": "URL of the FHIR endpoint used by SMART applications",
|
9
|
+
"title": "FHIR Endpoint",
|
10
|
+
"type": "text",
|
11
|
+
"value": "<%= Inferno::Application['base_url'] %>/custom/smart_client_stu2_2/fhir"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"name": "standalone_smart_auth_info",
|
15
|
+
"options": {
|
16
|
+
"mode": "auth",
|
17
|
+
"components": [
|
18
|
+
{
|
19
|
+
"name": "requested_scopes",
|
20
|
+
"default": "launch/patient openid fhirUser offline_access patient/*.rs"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"name": "pkce_support",
|
24
|
+
"default": "enabled",
|
25
|
+
"locked": true
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"name": "pkce_code_challenge_method",
|
29
|
+
"default": "S256",
|
30
|
+
"locked": true
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"name": "auth_type",
|
34
|
+
"options": {
|
35
|
+
"list_options": [
|
36
|
+
{
|
37
|
+
"label": "Public",
|
38
|
+
"value": "public"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"label": "Confidential Symmetric",
|
42
|
+
"value": "symmetric"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"label": "Confidential Asymmetric",
|
46
|
+
"value": "asymmetric"
|
47
|
+
}
|
48
|
+
]
|
49
|
+
}
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"name": "use_discovery",
|
53
|
+
"locked": true
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"name": "auth_request_method",
|
57
|
+
"default": "GET",
|
58
|
+
"locked": true
|
59
|
+
}
|
60
|
+
]
|
61
|
+
},
|
62
|
+
"title": "Standalone Launch Credentials",
|
63
|
+
"type": "auth_info",
|
64
|
+
"value": {
|
65
|
+
"pkce_support": "enabled",
|
66
|
+
"pkce_code_challenge_method": "S256",
|
67
|
+
"auth_request_method": "GET",
|
68
|
+
"auth_type": "asymmetric",
|
69
|
+
"use_discovery": "true",
|
70
|
+
"requested_scopes": "launch/patient openid fhirUser offline_access patient/*.rs",
|
71
|
+
"client_id": "smart_client_test_demo",
|
72
|
+
"encryption_algorithm": "ES384"
|
73
|
+
},
|
74
|
+
"default": {}
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"name": "ehr_smart_auth_info",
|
78
|
+
"options": {
|
79
|
+
"mode": "auth",
|
80
|
+
"components": [
|
81
|
+
{
|
82
|
+
"name": "requested_scopes",
|
83
|
+
"default": "launch openid fhirUser offline_access patient/*.rs"
|
84
|
+
},
|
85
|
+
{
|
86
|
+
"name": "pkce_support",
|
87
|
+
"default": "enabled",
|
88
|
+
"locked": true
|
89
|
+
},
|
90
|
+
{
|
91
|
+
"name": "pkce_code_challenge_method",
|
92
|
+
"default": "S256",
|
93
|
+
"locked": true
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"name": "auth_type",
|
97
|
+
"options": {
|
98
|
+
"list_options": [
|
99
|
+
{
|
100
|
+
"label": "Public",
|
101
|
+
"value": "public"
|
102
|
+
},
|
103
|
+
{
|
104
|
+
"label": "Confidential Symmetric",
|
105
|
+
"value": "symmetric"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"label": "Confidential Asymmetric",
|
109
|
+
"value": "asymmetric"
|
110
|
+
}
|
111
|
+
]
|
112
|
+
}
|
113
|
+
},
|
114
|
+
{
|
115
|
+
"name": "use_discovery",
|
116
|
+
"locked": true
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"name": "auth_request_method",
|
120
|
+
"default": "GET",
|
121
|
+
"locked": true
|
122
|
+
}
|
123
|
+
]
|
124
|
+
},
|
125
|
+
"title": "EHR Launch Credentials",
|
126
|
+
"type": "auth_info",
|
127
|
+
"value": {
|
128
|
+
"pkce_support": "enabled",
|
129
|
+
"pkce_code_challenge_method": "S256",
|
130
|
+
"auth_request_method": "GET",
|
131
|
+
"encryption_algorithm": "ES384",
|
132
|
+
"auth_type": "asymmetric",
|
133
|
+
"use_discovery": "true",
|
134
|
+
"requested_scopes": "launch openid fhirUser offline_access patient/*.rs",
|
135
|
+
"client_id": "smart_client_test_demo"
|
136
|
+
},
|
137
|
+
"default": {}
|
138
|
+
},
|
139
|
+
{
|
140
|
+
"name": "backend_services_smart_auth_info",
|
141
|
+
"options": {
|
142
|
+
"mode": "auth",
|
143
|
+
"components": [
|
144
|
+
{
|
145
|
+
"name": "auth_type",
|
146
|
+
"default": "backend_services",
|
147
|
+
"locked": "true"
|
148
|
+
},
|
149
|
+
{
|
150
|
+
"name": "use_discovery",
|
151
|
+
"locked": true
|
152
|
+
}
|
153
|
+
]
|
154
|
+
},
|
155
|
+
"title": "Backend Services Credentials",
|
156
|
+
"type": "auth_info",
|
157
|
+
"value": {
|
158
|
+
"encryption_algorithm": "ES384",
|
159
|
+
"auth_type": "backend_services",
|
160
|
+
"use_discovery": "true",
|
161
|
+
"requested_scopes": "system/*.rs",
|
162
|
+
"client_id": "smart_client_test_demo"
|
163
|
+
},
|
164
|
+
"default": {}
|
165
|
+
},
|
166
|
+
{
|
167
|
+
"name": "custom_authorization_header",
|
168
|
+
"description": "Add custom headers for the introspection request by adding each header's name and value with a new line between each header. Ex: <Header 1 Name>: <Value 1>",
|
169
|
+
"optional": true,
|
170
|
+
"title": "Custom HTTP Headers for Introspection Request",
|
171
|
+
"type": "textarea",
|
172
|
+
"value": ""
|
173
|
+
},
|
174
|
+
{
|
175
|
+
"name": "optional_introspection_request_params",
|
176
|
+
"description": "Any additional parameters to append to the request body, separated by &. Example: 'param1=abc¶m2=def'",
|
177
|
+
"optional": true,
|
178
|
+
"title": "Additional Introspection Request Parameters",
|
179
|
+
"type": "textarea",
|
180
|
+
"value": ""
|
181
|
+
}
|
182
|
+
]
|
183
|
+
}
|
@@ -0,0 +1,157 @@
|
|
1
|
+
{
|
2
|
+
"title": "Demo: Run Against the SMART Client Suite (Confidential Symmetric)",
|
3
|
+
"id": "smart_run_server_against_cs_client_v2_2",
|
4
|
+
"test_suite_id": "smart_stu2_2",
|
5
|
+
"inputs": [
|
6
|
+
{
|
7
|
+
"name": "url",
|
8
|
+
"description": "URL of the FHIR endpoint used by SMART applications",
|
9
|
+
"title": "FHIR Endpoint",
|
10
|
+
"type": "text",
|
11
|
+
"value": "<%= Inferno::Application['base_url'] %>/custom/smart_client_stu2_2/fhir"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"name": "standalone_smart_auth_info",
|
15
|
+
"options": {
|
16
|
+
"mode": "auth",
|
17
|
+
"components": [
|
18
|
+
{
|
19
|
+
"name": "requested_scopes",
|
20
|
+
"default": "launch/patient openid fhirUser offline_access patient/*.rs"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"name": "pkce_support",
|
24
|
+
"default": "enabled",
|
25
|
+
"locked": true
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"name": "pkce_code_challenge_method",
|
29
|
+
"default": "S256",
|
30
|
+
"locked": true
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"name": "auth_type",
|
34
|
+
"options": {
|
35
|
+
"list_options": [
|
36
|
+
{
|
37
|
+
"label": "Public",
|
38
|
+
"value": "public"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"label": "Confidential Symmetric",
|
42
|
+
"value": "symmetric"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"label": "Confidential Asymmetric",
|
46
|
+
"value": "asymmetric"
|
47
|
+
}
|
48
|
+
]
|
49
|
+
}
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"name": "use_discovery",
|
53
|
+
"locked": true
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"name": "auth_request_method",
|
57
|
+
"default": "GET",
|
58
|
+
"locked": true
|
59
|
+
}
|
60
|
+
]
|
61
|
+
},
|
62
|
+
"title": "Standalone Launch Credentials",
|
63
|
+
"type": "auth_info",
|
64
|
+
"value": {
|
65
|
+
"pkce_support": "enabled",
|
66
|
+
"pkce_code_challenge_method": "S256",
|
67
|
+
"auth_request_method": "GET",
|
68
|
+
"auth_type": "symmetric",
|
69
|
+
"use_discovery": "true",
|
70
|
+
"requested_scopes": "launch/patient openid fhirUser offline_access patient/*.rs",
|
71
|
+
"client_id": "smart_client_test_demo",
|
72
|
+
"client_secret": "SAMPLE_SECRET"
|
73
|
+
},
|
74
|
+
"default": {}
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"name": "ehr_smart_auth_info",
|
78
|
+
"options": {
|
79
|
+
"mode": "auth",
|
80
|
+
"components": [
|
81
|
+
{
|
82
|
+
"name": "requested_scopes",
|
83
|
+
"default": "launch openid fhirUser offline_access patient/*.rs"
|
84
|
+
},
|
85
|
+
{
|
86
|
+
"name": "pkce_support",
|
87
|
+
"default": "enabled",
|
88
|
+
"locked": true
|
89
|
+
},
|
90
|
+
{
|
91
|
+
"name": "pkce_code_challenge_method",
|
92
|
+
"default": "S256",
|
93
|
+
"locked": true
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"name": "auth_type",
|
97
|
+
"options": {
|
98
|
+
"list_options": [
|
99
|
+
{
|
100
|
+
"label": "Public",
|
101
|
+
"value": "public"
|
102
|
+
},
|
103
|
+
{
|
104
|
+
"label": "Confidential Symmetric",
|
105
|
+
"value": "symmetric"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"label": "Confidential Asymmetric",
|
109
|
+
"value": "asymmetric"
|
110
|
+
}
|
111
|
+
]
|
112
|
+
}
|
113
|
+
},
|
114
|
+
{
|
115
|
+
"name": "use_discovery",
|
116
|
+
"locked": true
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"name": "auth_request_method",
|
120
|
+
"default": "GET",
|
121
|
+
"locked": true
|
122
|
+
}
|
123
|
+
]
|
124
|
+
},
|
125
|
+
"title": "EHR Launch Credentials",
|
126
|
+
"type": "auth_info",
|
127
|
+
"value": {
|
128
|
+
"pkce_support": "enabled",
|
129
|
+
"pkce_code_challenge_method": "S256",
|
130
|
+
"auth_request_method": "GET",
|
131
|
+
"encryption_algorithm": "ES384",
|
132
|
+
"auth_type": "symmetric",
|
133
|
+
"use_discovery": "true",
|
134
|
+
"requested_scopes": "launch openid fhirUser offline_access patient/*.rs",
|
135
|
+
"client_id": "smart_client_test_demo",
|
136
|
+
"client_secret": "SAMPLE_SECRET"
|
137
|
+
},
|
138
|
+
"default": {}
|
139
|
+
},
|
140
|
+
{
|
141
|
+
"name": "custom_authorization_header",
|
142
|
+
"description": "Add custom headers for the introspection request by adding each header's name and value with a new line between each header. Ex: <Header 1 Name>: <Value 1>",
|
143
|
+
"optional": true,
|
144
|
+
"title": "Custom HTTP Headers for Introspection Request",
|
145
|
+
"type": "textarea",
|
146
|
+
"value": ""
|
147
|
+
},
|
148
|
+
{
|
149
|
+
"name": "optional_introspection_request_params",
|
150
|
+
"description": "Any additional parameters to append to the request body, separated by &. Example: 'param1=abc¶m2=def'",
|
151
|
+
"optional": true,
|
152
|
+
"title": "Additional Introspection Request Parameters",
|
153
|
+
"type": "textarea",
|
154
|
+
"value": ""
|
155
|
+
}
|
156
|
+
]
|
157
|
+
}
|
@@ -0,0 +1,155 @@
|
|
1
|
+
{
|
2
|
+
"title": "Demo: Run Against the SMART Client Suite (Public)",
|
3
|
+
"id": "smart_run_server_against_p_client_v2_2",
|
4
|
+
"test_suite_id": "smart_stu2_2",
|
5
|
+
"inputs": [
|
6
|
+
{
|
7
|
+
"name": "url",
|
8
|
+
"description": "URL of the FHIR endpoint used by SMART applications",
|
9
|
+
"title": "FHIR Endpoint",
|
10
|
+
"type": "text",
|
11
|
+
"value": "<%= Inferno::Application['base_url'] %>/custom/smart_client_stu2_2/fhir"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"name": "standalone_smart_auth_info",
|
15
|
+
"options": {
|
16
|
+
"mode": "auth",
|
17
|
+
"components": [
|
18
|
+
{
|
19
|
+
"name": "requested_scopes",
|
20
|
+
"default": "launch/patient openid fhirUser offline_access patient/*.rs"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"name": "pkce_support",
|
24
|
+
"default": "enabled",
|
25
|
+
"locked": true
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"name": "pkce_code_challenge_method",
|
29
|
+
"default": "S256",
|
30
|
+
"locked": true
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"name": "auth_type",
|
34
|
+
"options": {
|
35
|
+
"list_options": [
|
36
|
+
{
|
37
|
+
"label": "Public",
|
38
|
+
"value": "public"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"label": "Confidential Symmetric",
|
42
|
+
"value": "symmetric"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"label": "Confidential Asymmetric",
|
46
|
+
"value": "asymmetric"
|
47
|
+
}
|
48
|
+
]
|
49
|
+
}
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"name": "use_discovery",
|
53
|
+
"locked": true
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"name": "auth_request_method",
|
57
|
+
"default": "GET",
|
58
|
+
"locked": true
|
59
|
+
}
|
60
|
+
]
|
61
|
+
},
|
62
|
+
"title": "Standalone Launch Credentials",
|
63
|
+
"type": "auth_info",
|
64
|
+
"value": {
|
65
|
+
"pkce_support": "enabled",
|
66
|
+
"pkce_code_challenge_method": "S256",
|
67
|
+
"auth_request_method": "GET",
|
68
|
+
"auth_type": "public",
|
69
|
+
"use_discovery": "true",
|
70
|
+
"requested_scopes": "launch/patient openid fhirUser offline_access patient/*.rs",
|
71
|
+
"client_id": "smart_client_test_demo"
|
72
|
+
},
|
73
|
+
"default": {}
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"name": "ehr_smart_auth_info",
|
77
|
+
"options": {
|
78
|
+
"mode": "auth",
|
79
|
+
"components": [
|
80
|
+
{
|
81
|
+
"name": "requested_scopes",
|
82
|
+
"default": "launch openid fhirUser offline_access patient/*.rs"
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"name": "pkce_support",
|
86
|
+
"default": "enabled",
|
87
|
+
"locked": true
|
88
|
+
},
|
89
|
+
{
|
90
|
+
"name": "pkce_code_challenge_method",
|
91
|
+
"default": "S256",
|
92
|
+
"locked": true
|
93
|
+
},
|
94
|
+
{
|
95
|
+
"name": "auth_type",
|
96
|
+
"options": {
|
97
|
+
"list_options": [
|
98
|
+
{
|
99
|
+
"label": "Public",
|
100
|
+
"value": "public"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"label": "Confidential Symmetric",
|
104
|
+
"value": "symmetric"
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"label": "Confidential Asymmetric",
|
108
|
+
"value": "asymmetric"
|
109
|
+
}
|
110
|
+
]
|
111
|
+
}
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"name": "use_discovery",
|
115
|
+
"locked": true
|
116
|
+
},
|
117
|
+
{
|
118
|
+
"name": "auth_request_method",
|
119
|
+
"default": "GET",
|
120
|
+
"locked": true
|
121
|
+
}
|
122
|
+
]
|
123
|
+
},
|
124
|
+
"title": "EHR Launch Credentials",
|
125
|
+
"type": "auth_info",
|
126
|
+
"value": {
|
127
|
+
"pkce_support": "enabled",
|
128
|
+
"pkce_code_challenge_method": "S256",
|
129
|
+
"auth_request_method": "GET",
|
130
|
+
"encryption_algorithm": "ES384",
|
131
|
+
"auth_type": "public",
|
132
|
+
"use_discovery": "true",
|
133
|
+
"requested_scopes": "launch openid fhirUser offline_access patient/*.rs",
|
134
|
+
"client_id": "smart_client_test_demo"
|
135
|
+
},
|
136
|
+
"default": {}
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"name": "custom_authorization_header",
|
140
|
+
"description": "Add custom headers for the introspection request by adding each header's name and value with a new line between each header. Ex: <Header 1 Name>: <Value 1>",
|
141
|
+
"optional": true,
|
142
|
+
"title": "Custom HTTP Headers for Introspection Request",
|
143
|
+
"type": "textarea",
|
144
|
+
"value": ""
|
145
|
+
},
|
146
|
+
{
|
147
|
+
"name": "optional_introspection_request_params",
|
148
|
+
"description": "Any additional parameters to append to the request body, separated by &. Example: 'param1=abc¶m2=def'",
|
149
|
+
"optional": true,
|
150
|
+
"title": "Additional Introspection Request Parameters",
|
151
|
+
"type": "textarea",
|
152
|
+
"value": ""
|
153
|
+
}
|
154
|
+
]
|
155
|
+
}
|