Info |
---|
This is quite a technical article, which covers lots of detail about different possible set-ups for PathCheck GPS Test Environments, how to choose between them and how to set them up. |
Table of Contents |
---|
Key Concepts
Safe Places & PathCheck GPS Mobile App
Safe Places is a Web Application deployed at Health Departments for use by Contact Tracers to analyze, redact and publish location data shared by community members.
The PathCheck GPS Mobile App (referred to later as “Mobile App”) is the Mobile App (Android and iOS) that community members use to privately store their location history, share that history with Health Department Contact Tracers, and monitor published “points of concern” for Exposure Notifications.
For historical reasons, in some contexts the PathCheck GPS Mobile App may be referred to as “Safe Paths” - though we are trying to phase out this name.
End-to-End Testing
By this, we mean testing the Mobile App, together with an instance of the Safe Places software. It is possible (and sometimes desirable) to test the Mobile App in isolation, or Safe Places in isolation - See this article for some notes on what other options are available: Testability of Safe Places - PathCheck GPS Mobile App interactions
...
Alpha, Beta and Production builds all point to the Production YAML file
Developer & Develop builds point to the Staging YAML file.
Note that while these builds can easily be distributed on Android as APKs, there are technical difficulties distributing these builds on iOS.
Custom builds can be created to point to bespoke YAML files.
It is also possible, using a Feature Flag, to manually conigure any YAML file in the app. When this is configured, this YAML file is used in addition to to the data in the hardcoded YAML file.
Data
You can enable Feature Flags in the “About” screen by tapping 10x on “PathCheck GPS” to then add data points into the app, see Getting 14d of data onto a phone (or into Safe Places)
Examples:
10 data points: https://diarmidmackenzie.pythonanywhere.com/location-data?latitude=42&longitude=13&points=10
4032 data points: https://diarmidmackenzie.pythonanywhere.com/location-data?longitude=42&latitude=13&points=4032
Privacy and Safe Places
At the time of writing (July 8 2020) Safe Places is implemented in such a way that any user who has access to the system, has access to all the location data that has been uploaded to the system.
...
Access details for these can be found on Slack in a pinned post in the “scrum_team_safe_places” channel, and also the “safe_places_testing” channel.
At time of writing, details are as follows, but if these don’t work, please check the Slack channels for latest info:
...
com/
master
demo
Username : safeplaces@extremesolution.com
Password : Wx$sRj3E
On slack you can also find details of the API endpoints, but you shouldn’t need to worry about those details, because they should all be kept up-to-date in the Staging YAML.
...
Example 5 - Testing with a personal Safe Places instance
To be completed…. Some testers may wish to run a personal Safe Places instance, for their own sole use. This may be for privacy reasons, or becuase they want to test out some bespoke code changes, some new infrastructure arrangements etc.
Setting up a personal Safe Places instance is pretty complicated.
Anybody who can do that can probably figure out what needs to be done in terms of a YAML file, based on what’s already written above…. is not trivial, and it’s beyond the scope of this article to explain how to do that - there is some guidance in the Safe Places repos:
https://github.com/Path-Check/safeplaces-backend
https://github.com/Path-Check/safeplaces-frontend
For end-to-end testiness with a personal Safe Places instance, answers to the setup questions will typically be:
Use a personalSafe Places instance
Create a bespoke YAML file for this instance or add this instance to the staging YAML file.
EIther use a Development / Develop app build that natively uses the staging YAML, or configure the relevant YAML file using the available Feature Flag.
Testing End-to-End - How to Test
Sharing Location Data
For details & screenshots see here: GPS Mobile App - Overview of Function
In summary:
If Health Department is already available in the App for Location Sharing:
In Safe Places [https://safeplaces.extremesolution.com/trace], click “Add New Record”, and note the code provided. See example below:
...
Note that at this point you could also “Create Record Manually” by selecting location points on the map. The following instructions relate to “Check Data Upload”
In the Mobile App, click “Share Location History” icon, allow Location Sharing (if you haven’t done so already), select the appropriate Health Department, then enter the code that was generated by Safe Places
Agree to all the various consents, until you get to “Done”
Back in Safe Places, click on “Check Data Upload” - if all is well, you should now see the data points on a map.
If Health Department is not yet available in the App:
Enable Feature Flags in the “About” screen by tapping 10x on “PathCheck GPS”
Under More / Feature Flags, enable “Custom Yaml URL”
Under Health Departments, choose “Manually Add Via URL”
Enter the URL of the YAML file that contains details of the Health Department (see “Key Concepts” and “Example Setups” above if you aren’t clear what this means!)
Once this is entered, your Health Department should now be available in the App for Location Sharing, so you can now perform the process above.
Publishing Location Data
To be completed - with screenshots…add details (Safe Places not working right now to confirm exact flows and grab screenshots.
(note you can also manually add data points).
Once the data is loaded, click “Stage All Data For Publishing”, then “Yes, I received consent” as below
...
Select “Publish Data” from the top menu
Click “Load Data For Publishing”
A popup will appear, select the correct data record and click “Open Selected Data”
Select “Submit All Data For Publishing” and the following popup screen will appear..
...
Select “Submit All Data For Publishing”
You are now all done!
Note: You can change the API endpoint in the Configuration screen here: https://safeplaces.extremesolution.com/settings/configuration
Generating Exposure Notifications
In the Health Departments screen in the Mobile App, click on the relevant Health Department so that a green check appears.
The App should now download this published location data.
If you published location data that came from this device, then it should generate Exposure Notifications for all the times that it had recorded locations (except for any data you may have redacted in Safe Places).
If you published location data that came from a different device, or was created manually, then results will vary depending on the level of overlap with location points stored on this device.
Note that Exposure Notifications only trigger if > 66% of points within a 30 minute period match (i.e. 4 or more points in a 30 minute period). These parameters can be changed in the data published by Safe Places, but there is not yet any Safe Places function to configure these.