smart_app_launch_test_kit 1.0.1 → 1.0.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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/execution_scripts/README.md +16 -0
  3. data/execution_scripts/client_vs_server/access_data_and_continue_client.rb +37 -0
  4. data/execution_scripts/client_vs_server/smart_v22_backend_services_with_commands.yaml +69 -0
  5. data/execution_scripts/client_vs_server/smart_v22_backend_services_with_commands_client_expected.json +1 -0
  6. data/execution_scripts/client_vs_server/smart_v22_backend_services_with_commands_server_expected.json +478 -0
  7. data/execution_scripts/client_vs_server/smart_v22_backend_services_with_commands_server_no_tls_expected.json +479 -0
  8. data/execution_scripts/client_vs_server/smart_v22_confidential_symmetric_with_commands.yaml +122 -0
  9. data/execution_scripts/client_vs_server/smart_v22_confidential_symmetric_with_commands_client_expected.json +1 -0
  10. data/execution_scripts/client_vs_server/smart_v22_confidential_symmetric_with_commands_client_no_tls_expected.json +1 -0
  11. data/execution_scripts/client_vs_server/smart_v22_confidential_symmetric_with_commands_server_expected.json +1 -0
  12. data/execution_scripts/client_vs_server/smart_v22_confidential_symmetric_with_commands_server_no_tls_expected.json +1 -0
  13. data/execution_scripts/client_vs_server/smart_v22_public_with_commands.yaml +123 -0
  14. data/execution_scripts/client_vs_server/smart_v22_public_with_commands_client_expected.json +1 -0
  15. data/execution_scripts/client_vs_server/smart_v22_public_with_commands_client_no_tls_expected.json +1 -0
  16. data/execution_scripts/client_vs_server/smart_v22_public_with_commands_server_expected.json +1 -0
  17. data/execution_scripts/client_vs_server/smart_v22_public_with_commands_server_no_tls_expected.json +1 -0
  18. data/execution_scripts/client_vs_server/visit_and_wait_to_return_to_inferno.rb +17 -0
  19. data/execution_scripts/reference_server/base_ref_server_authorize.rb +24 -0
  20. data/execution_scripts/reference_server/base_ref_server_ehr_launch.rb +24 -0
  21. data/execution_scripts/reference_server/ref_server_authorize_85_all_scopes.rb +3 -0
  22. data/execution_scripts/reference_server/ref_server_authorize_launched_all_scopes.rb +3 -0
  23. data/execution_scripts/reference_server/ref_server_ehr_launch_85.rb +3 -0
  24. data/execution_scripts/reference_server/smart_v1_vs_reference_server_with_commands.yaml +60 -0
  25. data/execution_scripts/reference_server/smart_v1_vs_reference_server_with_commands_expected.json +1 -0
  26. data/execution_scripts/reference_server/smart_v22_vs_reference_server_with_commands.yaml +93 -0
  27. data/execution_scripts/reference_server/smart_v22_vs_reference_server_with_commands_expected.json +1 -0
  28. data/execution_scripts/reference_server/smart_v22_vs_reference_server_with_commands_same_host_expected.json +4166 -0
  29. data/execution_scripts/reference_server/smart_v2_vs_reference_server_with_commands.yaml +81 -0
  30. data/execution_scripts/reference_server/smart_v2_vs_reference_server_with_commands_expected.json +1 -0
  31. data/lib/smart_app_launch/app_launch_test.rb +4 -0
  32. data/lib/smart_app_launch/app_redirect_test.rb +2 -1
  33. data/lib/smart_app_launch/client_suite/access_alca_interaction_test.rb +5 -1
  34. data/lib/smart_app_launch/client_suite/access_alcs_interaction_test.rb +5 -1
  35. data/lib/smart_app_launch/client_suite/access_alp_interaction_test.rb +6 -2
  36. data/lib/smart_app_launch/client_suite/access_bsca_interaction_test.rb +4 -1
  37. data/lib/smart_app_launch/client_suite/authentication_verification.rb +1 -1
  38. data/lib/smart_app_launch/client_suite/client_descriptions.rb +4 -3
  39. data/lib/smart_app_launch/cors_metadata_request_test.rb +11 -4
  40. data/lib/smart_app_launch/cors_openid_fhir_user_claim_test.rb +8 -4
  41. data/lib/smart_app_launch/cors_token_exchange_test.rb +8 -4
  42. data/lib/smart_app_launch/cors_well_known_endpoint_test.rb +8 -4
  43. data/lib/smart_app_launch/version.rb +2 -2
  44. metadata +34 -6
@@ -0,0 +1,123 @@
1
+ sessions:
2
+ - suite: smart_client_stu2_2
3
+ name: client
4
+ preset: smart_run_client_against_server_v2_2
5
+ suite_options:
6
+ SMART Client Type: 'SMART App Launch Public Client'
7
+ - suite: smart_stu2_2
8
+ name: server
9
+ preset: smart_run_server_against_p_client_v2_2
10
+
11
+ comparison_config:
12
+ normalized_strings:
13
+ - replacement: <INFERNO_HOST>
14
+ patterns:
15
+ - http://localhost:4567/inferno # local inferno core ruby
16
+ - http://localhost:4567 # local ruby
17
+ - http://localhost # local docker
18
+ - https://inferno.healthit.gov/suites # prod
19
+ - https://inferno-qa.healthit.gov/suites # qa
20
+ - replacement: <REFERENCE_SERVER_URL>
21
+ patterns:
22
+ - https://inferno.healthit.gov/reference-server # prod reference server
23
+ - https://inferno-qa.healthit.gov/reference-server # qa reference server
24
+ - replacement: code_challenge=<CODE_CHALLENGE>
25
+ pattern: /code_challenge=[A-Za-z0-9+\/=_-]{43}/
26
+ - replacement: launch=<LAUNCH_KEY>
27
+ pattern: /launch=[a-f0-9]{64}/
28
+ - replacement: <UUID>
29
+ pattern: /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i
30
+ sessions:
31
+ server:
32
+ alternate_expected_files:
33
+ - file: smart_v22_public_with_commands_server_no_tls_expected.json
34
+ when:
35
+ - field: inputs.url
36
+ matches: ^http://
37
+ client:
38
+ alternate_expected_files:
39
+ - file: smart_v22_public_with_commands_client_no_tls_expected.json
40
+ when:
41
+ - field: inputs.smart_launch_urls
42
+ matches: ^http://
43
+
44
+ steps:
45
+ - state_description: Session Created
46
+ session: client
47
+ status: created
48
+ start_run:
49
+ session: client
50
+ runnable: suite
51
+ action_description: Run the client suite
52
+
53
+ - state_description: Wait at Client test 5.03 Access a secured FHIR endpoint using SMART App Launch
54
+ session: client
55
+ status: waiting
56
+ last_completed: 5.03
57
+ start_run:
58
+ session: server
59
+ runnable: 1
60
+ next_poll_session: server
61
+ action_description: Run server group 1 Standalone Launch
62
+
63
+ - state_description: Wait at Server test 1.2.02 OAuth server redirects client browser to app redirect URI
64
+ session: server
65
+ status: waiting
66
+ last_completed: 1.2.02
67
+ command: bundle exec ruby execution_scripts/client_vs_server/visit_and_wait_to_return_to_inferno.rb '{server.wait_outputs.authorization_url}'
68
+ action_description: Click the authorization link
69
+
70
+ - state_description: Finished Server group 1 Standalone Launch
71
+ session: server
72
+ status: done
73
+ last_completed: 1
74
+ start_run:
75
+ session: server
76
+ runnable: 2
77
+ action_description: Run server group 2 EHR Launch
78
+
79
+ - state_description: Wait at Server test 2.2.01 EHR server redirects client browser to Inferno app launch URI
80
+ session: server
81
+ status: waiting
82
+ last_completed: 2.2.01
83
+ command: bundle exec ruby execution_scripts/client_vs_server/visit_and_wait_to_return_to_inferno.rb '{client.wait_outputs.launch_urls}'
84
+ action_description: Perform an EHR launch using the simulated launch url
85
+
86
+ - state_description: Wait at Server test 2.2.04 OAuth server redirects client browser to app redirect URI
87
+ session: server
88
+ status: waiting
89
+ last_completed: 2.2.04
90
+ command: bundle exec ruby execution_scripts/client_vs_server/visit_and_wait_to_return_to_inferno.rb '{server.wait_outputs.authorization_url}'
91
+ action_description: Click the authorization link
92
+
93
+ - state_description: Finished Server group 2 EHR Launch
94
+ session: server
95
+ status: done
96
+ last_completed: 2
97
+ start_run:
98
+ session: server
99
+ runnable: 4
100
+ action_description: Run server group 4 Token Introspection
101
+
102
+ - state_description: Wait at Server test 4.1.2.02 OAuth server redirects client browser to app redirect URI
103
+ session: server
104
+ status: waiting
105
+ last_completed: 4.1.2.02
106
+ command: bundle exec ruby execution_scripts/client_vs_server/visit_and_wait_to_return_to_inferno.rb '{server.wait_outputs.authorization_url}'
107
+ action_description: Click the authorization link
108
+
109
+ - state_description: Finished Server group 4 Token Introspection
110
+ session: server
111
+ status: done
112
+ last_completed: 4
113
+ command: bundle exec ruby execution_scripts/client_vs_server/visit_and_wait_to_return_to_inferno.rb '{client.wait_outputs.continuation_url}'
114
+ next_poll_session: client
115
+ action_description: Continue the Client tests
116
+
117
+ - state_description: Finished Client Suite
118
+ session: client
119
+ status: done
120
+ last_completed: suite
121
+ action: END_SCRIPT
122
+ action_description: Finished Script
123
+
@@ -0,0 +1 @@
1
+ [{"id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","created_at":"2026-04-17T01:39:28.237+00:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch","type":"textarea"},{"name":"launch_context","value":"{ \"patient\": \"example\" }","type":"textarea"},{"name":"fhir_user_relative_reference","value":"Patient/example","type":"text"},{"name":"fhir_read_resources_bundle","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}","type":"textarea"},{"name":"echoed_fhir_response","value":null,"type":"textarea"}],"optional":false,"outputs":[{"name":"continuation_url","type":"text","value":"https://inferno-qa.healthit.gov/suites/custom/smart_client_stu2_2/resume_pass?token=smart_client_test_demo"},{"name":"launch_key","type":"text","value":"35ee9d8e121ee586b478c57b64ad342d06e186bd86ce890f76a2a3573cdb98ce"},{"name":"launch_urls","type":"text","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch?iss=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026launch=35ee9d8e121ee586b478c57b64ad342d06e186bd86ce890f76a2a3573cdb98ce"}],"requests":[],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_access_alp_interaction","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:56.445+00:00"},{"id":"b8396e59-1cc3-4ca2-beb7-fe4cfffb108c","created_at":"2026-04-17T01:39:28.218+00:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch","type":"textarea"},{"name":"smart_redirect_uris","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/redirect","type":"textarea"}],"optional":false,"outputs":[{"name":"smart_launch_urls","type":"text","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch"},{"name":"smart_redirect_uris","type":"text","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/redirect"}],"requests":[],"result":"pass","test_id":"smart_client_stu2_2-smart_client_registration_alp-smart_client_registration_alp_verification","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:28.218+00:00"},{"id":"d9a13106-4931-4a4b-86cd-2da4979e4f1d","created_at":"2026-04-17T01:39:57.053+00:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"}],"optional":false,"outputs":[{"name":"smart_tokens","type":"text","value":"eyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU3Mywibm9uY2UiOiI1OTYyYWM2OGQxMGE5NDBkIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU4NSwibm9uY2UiOiIwMmJmOTNhZGZiOGQ0YmU3In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU5NCwibm9uY2UiOiI5MjQ2NzA5NTQyMWI1NTI3In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU3NCwibm9uY2UiOiIwMTVmNWYwMDZhYzVlNjJmIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU3NCwibm9uY2UiOiJkOTg5N2UzMmZiOGEzYzhlIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU4NSwibm9uY2UiOiIwYjE1NzExNWFkYzFjZDU4In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU4NSwibm9uY2UiOiJkMjUyYWY1NDIwMTkzMzk0In0"}],"requests":[{"id":"9e6c8ed5-6138-48f8-9b06-810f1e9e7bff","direction":"incoming","index":1081897,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:33.806+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"c232f36f-2956-4787-a63c-7881e6c2ee28","direction":"incoming","index":1081905,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:34.359+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"aa503f82-d4cf-4cc9-9f87-0d386024a74f","direction":"incoming","index":1081907,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:34.552+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"7546042f-f75e-467e-a05b-dc4100cdffed","direction":"incoming","index":1081915,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:45.195+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"6667b824-5bb1-44fd-bd80-9b880840fb70","direction":"incoming","index":1081923,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:45.729+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"589c4904-0981-4a99-97d4-2353753d2156","direction":"incoming","index":1081925,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:45.905+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"616f9656-9105-416e-bc69-25bc41011ae6","direction":"incoming","index":1081932,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:54.557+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/token","verb":"POST"}],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_token_request_alp_verification","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:57.053+00:00"},{"id":"c0949703-b5d6-4c92-8e6d-bb4f3b674123","created_at":"2026-04-17T01:39:56.559+00:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"},{"name":"smart_redirect_uris","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/redirect","type":"textarea"},{"name":"launch_key","value":"35ee9d8e121ee586b478c57b64ad342d06e186bd86ce890f76a2a3573cdb98ce","type":"text"}],"optional":false,"outputs":[],"requests":[{"id":"e717f38e-d368-4210-8ac9-07b59b85b1f3","direction":"incoming","index":1081895,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":302,"timestamp":"2026-04-17T01:39:33.495+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/authorization?response_type=code\u0026client_id=smart_client_test_demo\u0026redirect_uri=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_stu2_2%2Fredirect\u0026scope=launch%2Fpatient+openid+fhirUser+offline_access+patient%2F*.rs\u0026state=e9bf0a36-3480-4c17-8f46-9fa46a8a65ea\u0026aud=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026code_challenge=rXYAvkPDD3uSF2LhWUC3797CKGw4EQo64GWfZMmiajM\u0026code_challenge_method=S256","verb":"GET"},{"id":"f79b04c8-01b9-4238-a18c-2b611b700167","direction":"incoming","index":1081913,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":302,"timestamp":"2026-04-17T01:39:44.878+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/authorization?response_type=code\u0026client_id=smart_client_test_demo\u0026redirect_uri=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_stu2_2%2Fredirect\u0026scope=launch+openid+fhirUser+offline_access+patient%2F*.rs\u0026state=30c80763-cf3f-4e9e-b601-e5253f056d2e\u0026aud=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026launch=35ee9d8e121ee586b478c57b64ad342d06e186bd86ce890f76a2a3573cdb98ce\u0026code_challenge=Pqgqk8_ShQZhVBTMA_Ciz4SHXbQYxaGmHQycI6Bbnog\u0026code_challenge_method=S256","verb":"GET"},{"id":"f5f4300f-ef2b-4d6c-a17d-16f09cf17007","direction":"incoming","index":1081930,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":302,"timestamp":"2026-04-17T01:39:54.161+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/auth/authorization?response_type=code\u0026client_id=smart_client_test_demo\u0026redirect_uri=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_stu2_2%2Fredirect\u0026scope=launch%2Fpatient+openid+fhirUser+offline_access+patient%2F*.rs\u0026state=917ddc57-d3eb-48fb-9c6b-f2432656f2e9\u0026aud=https%3A%2F%2Finferno-qa.healthit.gov%2Fsuites%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026code_challenge=n0Y70GF-f4dlkbjWZeXNUn0R8qV3Eh6zAthvaxbYqgg\u0026code_challenge_method=S256","verb":"GET"}],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_authorization_request_alp_verification","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:56.559+00:00"},{"id":"64ffe8e0-961a-4df7-9379-52ad9375d137","created_at":"2026-04-17T01:39:57.132+00:00","inputs":[{"name":"client_id","label":"Client Id","description":"The registered Client Id for use in obtaining access tokens. Create a new session and re-run the Client Registration group if you need to change this value.","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","label":"SMART App Launch URL(s)","description":"Registered Launch URLs in the form of a comma-separated list of zero or more URLs. If present, Inferno will provide an option to use each to launch the app. Create a new session and re-run the Client Registration group if you need to change this value.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch","type":"textarea"},{"name":"launch_context","label":"Launch Context","description":"Launch context details to be included in access token responses, specified as a JSON array. If provided, the contents will be merged into Inferno's token responses.","value":"{ \"patient\": \"example\" }","type":"textarea"},{"name":"fhir_user_relative_reference","label":"FHIR User Relative Reference","description":"A FHIR relative reference (\u003cresource type\u003e/\u003cid\u003e) 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 via FHIR read.","value":"Patient/example","type":"text"},{"name":"fhir_read_resources_bundle","label":"Available Resources","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: \u003cfhir-base\u003e/\u003cresource type\u003e/\u003cinstance id\u003e. These will only be available through the read interaction.","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}","type":"textarea"},{"name":"echoed_fhir_response","label":"Default FHIR Response","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 indicating nothing to echo will be returned.","value":null,"type":"textarea"},{"name":"smart_redirect_uris","label":"SMART App Launch Redirect URI(s)","description":"Registered Redirect URIs in the form of a comma-separated list of one or more URIs. Redirect URIs specified in authorization requests must come from this list. Create a new session and re-run the Client Registration group if you need to change this value.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/redirect","type":"textarea"},{"name":"smart_jwk_set","label":"JSON Web Key Set (JWKS)","description":"The SMART client's JSON Web Key Set in the form of either a publicly accessible url containing the JWKS, or the raw JWKS JSON. Must include the key(s) Inferno will need to verify signatures on token requests made by the client. Create a new session and re-run the Client Registration group if you need to change this value.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/.well-known/jwks.json","type":"textarea"},{"name":"smart_client_secret","label":"SMART Confidential Symmetric Client Secret","description":"The registered client secret that will be provided during token requests to authenticate the client to Inferno. Create a new session and re-run the Client Registration group if you need to change this value.","value":"SAMPLE_SECRET","type":"text"}],"optional":false,"outputs":[],"requests":[],"result":"pass","test_group_id":"smart_client_stu2_2-smart_client_access","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:57.132+00:00"},{"id":"5fa55458-01c8-4de9-832b-f10d758227e7","created_at":"2026-04-17T01:39:56.489+00:00","inputs":[{"name":"client_id","label":"Client Id","description":"Testers may provide a specific value for Inferno to assign as the client id. If no value is provided, the Inferno session id will be used.","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","label":"SMART App Launch URL(s)","description":"If the client app supports EHR launch, a comma-delimited list of one or more URLs that Inferno can use to launch the app.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch","type":"textarea"},{"name":"smart_redirect_uris","label":"SMART App Launch Redirect URI(s)","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.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/redirect","type":"textarea"}],"optional":false,"outputs":[],"requests":[],"result":"pass","test_group_id":"smart_client_stu2_2-smart_client_registration_alp","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:56.489+00:00"},{"id":"1509aa2d-3b90-44eb-ac2b-609b357584ff","created_at":"2026-04-17T01:39:57.141+00:00","inputs":[{"name":"client_id","label":"Client Id","description":"Testers may provide a specific value for Inferno to assign as the client id. If no value is provided, the Inferno session id will be used.","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","label":"SMART App Launch URL(s)","description":"If the client app supports EHR launch, a comma-delimited list of one or more URLs that Inferno can use to launch the app.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/launch","type":"textarea"},{"name":"smart_redirect_uris","label":"SMART App Launch Redirect URI(s)","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.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/redirect","type":"textarea"},{"name":"smart_jwk_set","label":"SMART Confidential Asymmetric JSON Web Key Set (JWKS)","description":"The SMART client's JSON Web Key Set 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.","value":"https://inferno-qa.healthit.gov/suites/custom/smart_stu2_2/.well-known/jwks.json","type":"textarea"},{"name":"smart_client_secret","label":"SMART Confidential Symmetric Client Secret","description":"Provide the client secret that the confidential symmetric client will send with token requests to authenticate the client to Inferno.","value":"SAMPLE_SECRET","type":"text"},{"name":"launch_context","label":"Launch Context","description":"Launch context details to be included in access token responses, specified as a JSON array. If provided, the contents will be merged into Inferno's token responses.","value":"{ \"patient\": \"example\" }","type":"textarea"},{"name":"fhir_user_relative_reference","label":"FHIR User Relative Reference","description":"A FHIR relative reference (\u003cresource type\u003e/\u003cid\u003e) 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 via FHIR read.","value":"Patient/example","type":"text"},{"name":"fhir_read_resources_bundle","label":"Available Resources","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: \u003cfhir-base\u003e/\u003cresource type\u003e/\u003cinstance id\u003e. These will only be available through the read interaction.","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}","type":"textarea"},{"name":"echoed_fhir_response","label":"Default FHIR Response","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 indicating nothing to echo will be returned.","value":null,"type":"textarea"}],"optional":false,"outputs":[],"requests":[],"result":"pass","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","test_suite_id":"smart_client_stu2_2","updated_at":"2026-04-17T01:39:57.141+00:00"},{"id":"c24c47e2-7b84-4b0f-90a5-463adb39749c","created_at":"2026-04-17T01:39:57.123+00:00","inputs":[{"name":"smart_tokens","value":"eyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU3Mywibm9uY2UiOiI1OTYyYWM2OGQxMGE5NDBkIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU4NSwibm9uY2UiOiIwMmJmOTNhZGZiOGQ0YmU3In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU5NCwibm9uY2UiOiI5MjQ2NzA5NTQyMWI1NTI3In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU3NCwibm9uY2UiOiIwMTVmNWYwMDZhYzVlNjJmIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU3NCwibm9uY2UiOiJkOTg5N2UzMmZiOGEzYzhlIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU4NSwibm9uY2UiOiIwYjE1NzExNWFkYzFjZDU4In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NjM5MzU4NSwibm9uY2UiOiJkMjUyYWY1NDIwMTkzMzk0In0","type":"text"}],"optional":false,"outputs":[],"requests":[{"id":"f44d6b56-3b8d-4354-84e6-50572175d626","direction":"incoming","index":1081901,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:34.142+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"},{"id":"74b0c719-72cc-45f6-aba0-eda5b7534a5a","direction":"incoming","index":1081903,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:34.212+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"},{"id":"28994bd6-88e6-421b-9c2f-4b6b58d3d0b6","direction":"incoming","index":1081919,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:45.479+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"},{"id":"1884f9fb-4ec0-44e1-bb13-dce758cdf0c6","direction":"incoming","index":1081921,"result_id":"ecf36f39-7f0c-4165-81b5-e2bb1967f7f2","status":200,"timestamp":"2026-04-17T01:39:45.547+00:00","url":"https://inferno-qa.healthit.gov:443/suites/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"}],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_token_use_verification","test_run_id":"51c65960-295c-46f4-b1c6-c69b98379483","test_session_id":"6jvSNJ7jNyO","updated_at":"2026-04-17T01:39:57.123+00:00"}]
@@ -0,0 +1 @@
1
+ [{"id":"d88654a6-189c-4dd3-82ae-50aa3495c0ac","created_at":"2026-04-03T13:50:25.597-04:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","value":"http://localhost:4567/custom/smart_stu2_2/launch","type":"textarea"},{"name":"smart_redirect_uris","value":"http://localhost:4567/custom/smart_stu2_2/redirect","type":"textarea"}],"messages":[{"message":"Registered launch URL 'http://localhost:4567/custom/smart_stu2_2/launch' is not a valid https URI.","type":"error"},{"message":"Registered redirect URI 'http://localhost:4567/custom/smart_stu2_2/redirect' is not a valid https URI.","type":"error"}],"optional":false,"outputs":[{"name":"smart_launch_urls","type":"text","value":"http://localhost:4567/custom/smart_stu2_2/launch"},{"name":"smart_redirect_uris","type":"text","value":"http://localhost:4567/custom/smart_stu2_2/redirect"}],"requests":[],"result":"fail","result_message":"Invalid registration details provided. See messages for details","test_id":"smart_client_stu2_2-smart_client_registration_alp-smart_client_registration_alp_verification","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:25.597-04:00"},{"id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","created_at":"2026-04-03T13:50:25.606-04:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","value":"http://localhost:4567/custom/smart_stu2_2/launch","type":"textarea"},{"name":"launch_context","value":"{ \"patient\": \"example\" }","type":"textarea"},{"name":"fhir_user_relative_reference","value":"Patient/example","type":"text"},{"name":"fhir_read_resources_bundle","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}","type":"textarea"},{"name":"echoed_fhir_response","value":null,"type":"textarea"}],"optional":false,"outputs":[{"name":"continuation_url","type":"text","value":"http://localhost:4567/custom/smart_client_stu2_2/resume_pass?token=smart_client_test_demo"},{"name":"launch_key","type":"text","value":"9194875783ef5f9aaf7f015d87251da3cad1b465145ba335878723a6e5c1e5ab"},{"name":"launch_urls","type":"text","value":"http://localhost:4567/custom/smart_stu2_2/launch?iss=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026launch=9194875783ef5f9aaf7f015d87251da3cad1b465145ba335878723a6e5c1e5ab"}],"requests":[],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_access_alp_interaction","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:48.894-04:00"},{"id":"a169f1da-a228-4fa4-91d2-6b50a0242e79","created_at":"2026-04-03T13:50:48.913-04:00","inputs":[{"name":"client_id","label":"Client Id","description":"Testers may provide a specific value for Inferno to assign as the client id. If no value is provided, the Inferno session id will be used.","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","label":"SMART App Launch URL(s)","description":"If the client app supports EHR launch, a comma-delimited list of one or more URLs that Inferno can use to launch the app.","value":"http://localhost:4567/custom/smart_stu2_2/launch","type":"textarea"},{"name":"smart_redirect_uris","label":"SMART App Launch Redirect URI(s)","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.","value":"http://localhost:4567/custom/smart_stu2_2/redirect","type":"textarea"}],"optional":false,"outputs":[],"requests":[],"result":"fail","test_group_id":"smart_client_stu2_2-smart_client_registration_alp","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:48.913-04:00"},{"id":"a560b416-40e4-4ac8-8f44-6d81b3ab9f12","created_at":"2026-04-03T13:50:48.920-04:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"},{"name":"smart_redirect_uris","value":"http://localhost:4567/custom/smart_stu2_2/redirect","type":"textarea"},{"name":"launch_key","value":"9194875783ef5f9aaf7f015d87251da3cad1b465145ba335878723a6e5c1e5ab","type":"text"}],"optional":false,"outputs":[],"requests":[{"id":"add50c3e-adab-4c2d-9bdf-73a19661867d","direction":"incoming","index":1149,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":302,"timestamp":"2026-04-03T13:50:33.291-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/authorization?response_type=code\u0026client_id=smart_client_test_demo\u0026redirect_uri=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_stu2_2%2Fredirect\u0026scope=launch%2Fpatient+openid+fhirUser+offline_access+patient%2F*.rs\u0026state=0b097d4d-9b4f-4e8f-9fea-7b250698bed9\u0026aud=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026code_challenge=KhFee1b6z3QKKcbCDPB28oQlhhOGkBJj-1XoYe6iMog\u0026code_challenge_method=S256","verb":"GET"},{"id":"1f887ed4-97ea-49dd-b410-e8277221a8da","direction":"incoming","index":1167,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":302,"timestamp":"2026-04-03T13:50:39.699-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/authorization?response_type=code\u0026client_id=smart_client_test_demo\u0026redirect_uri=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_stu2_2%2Fredirect\u0026scope=launch+openid+fhirUser+offline_access+patient%2F*.rs\u0026state=f4639db8-9c64-4f78-bc09-04be52a71937\u0026aud=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026launch=9194875783ef5f9aaf7f015d87251da3cad1b465145ba335878723a6e5c1e5ab\u0026code_challenge=7TQ8M5bZjRv-uqQkasbaiZQUPbvhfqSQdlZFS7wSlUs\u0026code_challenge_method=S256","verb":"GET"},{"id":"ef24efe2-b914-4e2b-b7f6-97ffc44343e3","direction":"incoming","index":1184,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":302,"timestamp":"2026-04-03T13:50:47.333-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/authorization?response_type=code\u0026client_id=smart_client_test_demo\u0026redirect_uri=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_stu2_2%2Fredirect\u0026scope=launch%2Fpatient+openid+fhirUser+offline_access+patient%2F*.rs\u0026state=a04b47ab-1aff-4c30-8afa-b4f519ea2b9f\u0026aud=http%3A%2F%2Flocalhost%3A4567%2Fcustom%2Fsmart_client_stu2_2%2Ffhir\u0026code_challenge=Gu8rf_mnaHj_9JSch406jWFajO8AmespRWliTj3ZyME\u0026code_challenge_method=S256","verb":"GET"}],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_authorization_request_alp_verification","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:48.920-04:00"},{"id":"9b7511d5-f16c-4a61-a80d-98ac2fccdf94","created_at":"2026-04-03T13:50:48.940-04:00","inputs":[{"name":"client_id","value":"smart_client_test_demo","type":"text"}],"optional":false,"outputs":[{"name":"smart_tokens","type":"text","value":"eyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzMywibm9uY2UiOiI2NWNkZTBhMzRhYTY5Yjk2In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzOSwibm9uY2UiOiJjNzg1MjE1MzE5N2YxOGZmIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjI0Nywibm9uY2UiOiIyNjY2Y2EyMTBhZTBlYjNmIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzMywibm9uY2UiOiJjNzVmNjI3MjU3YjdhYzMzIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzMywibm9uY2UiOiI4ODEyYTM0MGUzNzBiYTg0In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzOSwibm9uY2UiOiJmMzg5YmRkNmY2NGYxNDA3In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzOSwibm9uY2UiOiI5OWM2M2M0M2E4YmIzMWI0In0"}],"requests":[{"id":"889e99f9-564d-48ad-8596-c6ae8ccff1d9","direction":"incoming","index":1151,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:33.353-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"220d8d77-3500-4063-903d-a4617421b660","direction":"incoming","index":1159,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:33.521-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"3df9fc40-ebbf-45d4-b570-86fe05cf671c","direction":"incoming","index":1161,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:33.559-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"869df61f-486d-4b73-a5ec-2da0bbb04296","direction":"incoming","index":1169,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:39.766-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"ddca953f-9634-4608-b61a-e271ccb1d5fc","direction":"incoming","index":1177,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:39.953-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"3880abf0-71d1-4edc-bf25-72bcf6db6f39","direction":"incoming","index":1179,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:39.994-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"},{"id":"60a45397-dcce-4de5-9d1e-f079824027f3","direction":"incoming","index":1186,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:47.392-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/auth/token","verb":"POST"}],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_token_request_alp_verification","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:48.940-04:00"},{"id":"b2e10bb4-f3ed-4c0a-9d31-88d9c93521ca","created_at":"2026-04-03T13:50:48.947-04:00","inputs":[{"name":"smart_tokens","value":"eyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzMywibm9uY2UiOiI2NWNkZTBhMzRhYTY5Yjk2In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzOSwibm9uY2UiOiJjNzg1MjE1MzE5N2YxOGZmIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjI0Nywibm9uY2UiOiIyNjY2Y2EyMTBhZTBlYjNmIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzMywibm9uY2UiOiJjNzVmNjI3MjU3YjdhYzMzIn0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzMywibm9uY2UiOiI4ODEyYTM0MGUzNzBiYTg0In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzOSwibm9uY2UiOiJmMzg5YmRkNmY2NGYxNDA3In0\neyJjbGllbnRfaWQiOiJzbWFydF9jbGllbnRfdGVzdF9kZW1vIiwiZXhwaXJhdGlvbiI6MTc3NTI0MjIzOSwibm9uY2UiOiI5OWM2M2M0M2E4YmIzMWI0In0","type":"text"}],"optional":false,"outputs":[],"requests":[{"id":"7ee36bd4-b7e0-457d-99e7-9562e69d2bc5","direction":"incoming","index":1155,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:33.426-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"},{"id":"c4b51b7d-b043-4199-9a3f-fc36106c2515","direction":"incoming","index":1157,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:33.457-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"},{"id":"a4951d63-1364-4e05-bd00-170b7db71b89","direction":"incoming","index":1173,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:39.896-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"},{"id":"f478a583-9e56-4d66-b7b9-8a7cb67c7dfc","direction":"incoming","index":1175,"result_id":"9280defd-0f0d-4933-8a2d-1f98d4f9745d","status":200,"timestamp":"2026-04-03T13:50:39.916-04:00","url":"http://localhost:4567/custom/smart_client_stu2_2/fhir/Patient/example","verb":"GET"}],"result":"pass","test_id":"smart_client_stu2_2-smart_client_access-smart_client_token_use_verification","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:48.947-04:00"},{"id":"267cabaa-4595-421d-ad98-b5ea0636ba4b","created_at":"2026-04-03T13:50:48.951-04:00","inputs":[{"name":"client_id","label":"Client Id","description":"The registered Client Id for use in obtaining access tokens. Create a new session and re-run the Client Registration group if you need to change this value.","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","label":"SMART App Launch URL(s)","description":"Registered Launch URLs in the form of a comma-separated list of zero or more URLs. If present, Inferno will provide an option to use each to launch the app. Create a new session and re-run the Client Registration group if you need to change this value.","value":"http://localhost:4567/custom/smart_stu2_2/launch","type":"textarea"},{"name":"launch_context","label":"Launch Context","description":"Launch context details to be included in access token responses, specified as a JSON array. If provided, the contents will be merged into Inferno's token responses.","value":"{ \"patient\": \"example\" }","type":"textarea"},{"name":"fhir_user_relative_reference","label":"FHIR User Relative Reference","description":"A FHIR relative reference (\u003cresource type\u003e/\u003cid\u003e) 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 via FHIR read.","value":"Patient/example","type":"text"},{"name":"fhir_read_resources_bundle","label":"Available Resources","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: \u003cfhir-base\u003e/\u003cresource type\u003e/\u003cinstance id\u003e. These will only be available through the read interaction.","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}","type":"textarea"},{"name":"echoed_fhir_response","label":"Default FHIR Response","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 indicating nothing to echo will be returned.","value":null,"type":"textarea"},{"name":"smart_redirect_uris","label":"SMART App Launch Redirect URI(s)","description":"Registered Redirect URIs in the form of a comma-separated list of one or more URIs. Redirect URIs specified in authorization requests must come from this list. Create a new session and re-run the Client Registration group if you need to change this value.","value":"http://localhost:4567/custom/smart_stu2_2/redirect","type":"textarea"},{"name":"smart_jwk_set","label":"JSON Web Key Set (JWKS)","description":"The SMART client's JSON Web Key Set in the form of either a publicly accessible url containing the JWKS, or the raw JWKS JSON. Must include the key(s) Inferno will need to verify signatures on token requests made by the client. Create a new session and re-run the Client Registration group if you need to change this value.","value":"http://localhost:4567/custom/smart_stu2_2/.well-known/jwks.json","type":"textarea"},{"name":"smart_client_secret","label":"SMART Confidential Symmetric Client Secret","description":"The registered client secret that will be provided during token requests to authenticate the client to Inferno. Create a new session and re-run the Client Registration group if you need to change this value.","value":"SAMPLE_SECRET","type":"text"}],"optional":false,"outputs":[],"requests":[],"result":"pass","test_group_id":"smart_client_stu2_2-smart_client_access","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","updated_at":"2026-04-03T13:50:48.951-04:00"},{"id":"11c91293-30ec-4905-987d-2055bc1d4edb","created_at":"2026-04-03T13:50:48.954-04:00","inputs":[{"name":"client_id","label":"Client Id","description":"Testers may provide a specific value for Inferno to assign as the client id. If no value is provided, the Inferno session id will be used.","value":"smart_client_test_demo","type":"text"},{"name":"smart_launch_urls","label":"SMART App Launch URL(s)","description":"If the client app supports EHR launch, a comma-delimited list of one or more URLs that Inferno can use to launch the app.","value":"http://localhost:4567/custom/smart_stu2_2/launch","type":"textarea"},{"name":"smart_redirect_uris","label":"SMART App Launch Redirect URI(s)","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.","value":"http://localhost:4567/custom/smart_stu2_2/redirect","type":"textarea"},{"name":"smart_jwk_set","label":"SMART Confidential Asymmetric JSON Web Key Set (JWKS)","description":"The SMART client's JSON Web Key Set 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.","value":"http://localhost:4567/custom/smart_stu2_2/.well-known/jwks.json","type":"textarea"},{"name":"smart_client_secret","label":"SMART Confidential Symmetric Client Secret","description":"Provide the client secret that the confidential symmetric client will send with token requests to authenticate the client to Inferno.","value":"SAMPLE_SECRET","type":"text"},{"name":"launch_context","label":"Launch Context","description":"Launch context details to be included in access token responses, specified as a JSON array. If provided, the contents will be merged into Inferno's token responses.","value":"{ \"patient\": \"example\" }","type":"textarea"},{"name":"fhir_user_relative_reference","label":"FHIR User Relative Reference","description":"A FHIR relative reference (\u003cresource type\u003e/\u003cid\u003e) 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 via FHIR read.","value":"Patient/example","type":"text"},{"name":"fhir_read_resources_bundle","label":"Available Resources","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: \u003cfhir-base\u003e/\u003cresource type\u003e/\u003cinstance id\u003e. These will only be available through the read interaction.","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}","type":"textarea"},{"name":"echoed_fhir_response","label":"Default FHIR Response","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 indicating nothing to echo will be returned.","value":null,"type":"textarea"}],"optional":false,"outputs":[],"requests":[],"result":"fail","test_run_id":"38600dfd-6cbd-42e1-9303-6353f35714d6","test_session_id":"gTBhvHtDD7H","test_suite_id":"smart_client_stu2_2","updated_at":"2026-04-03T13:50:48.954-04:00"}]