minvws / nl-covid19-notification-app-android

Android sources for the Dutch Covid19 Notification App
European Union Public License 1.2
163 stars 25 forks source link

Is it possible to view the exposure notification configuration? #43

Closed DavyLandman closed 3 years ago

DavyLandman commented 3 years ago

Describe the bug, issue or concern

I would like to understand how the exposure notification api is configured, especially with regards to the parameters for duration, I've observed in my friends and family as some online communties, that there is quite some confusion about this. For example, if you only sit next to an infected person for 14minutes, is that not reported as a high risk scenario?

What have I tried?

I love that it's an open source application, so I tried to figure out how it's working. But in the end the configuration for the ExposureNotification is not hard coded in the app (which I can understand) but is retrieved from the api server (v2/riskCalculationParameters/{id}).

https://github.com/minvws/nl-covid19-notification-app-android/blob/master/app/src/main/java/nl/rijksoverheid/en/ExposureNotificationsRepository.kt#L347

Is there are way to publish these configuration parameters? Combining that with the documentation gives me (and hopefully others) a better insight in how the application is functioning.

What would I like?

If you could expose these settings in the UI in a compact way, that would be really nice, just behind an advanced window or something. Otherwise, just a place to send a GET to and inspect the values.

Governance

hvisser commented 3 years ago

To get to the resource bundle id you need to fetch it from the manifest response: https://productie.coronamelder-dist.nl/v2/manifest then you can fetch the configuration from the risk calculation parameters endpoint. The full API is documented in the api spec.

Both responses are zip files, the actual response is in the content.bin files contained in the zip.

DavyLandman commented 3 years ago

@hvisser thanks for the API address and the hint about the manifest. I wrongly assumed it would be the manifest in the jar of the android app.

For anyone that is interested, this is the current configuration:

{
    "attenuationScores": [1, 2, 3, 4, 5, 6, 7, 8],
    "daysSinceLastExposureScores": [1, 1, 1, 1, 1, 1, 1, 1],
    "durationAtAttenuationThresholds": [63, 73],
    "durationScores": [0, 0, 0, 1, 2, 2, 2, 2],
    "minimumRiskScore": 6,
    "transmissionRiskScores": [0, 2, 2, 2, 0, 0, 0, 0]
}

It would be nice to have this information availabe somewhere, just like the security codes that a e2e chat often have to verify the keys exchanged.

hvisser commented 3 years ago

Sorry, we currently have no plans to surface this and other configuration from the API in the app. Access through the API will obviously always be possible.

lpappalettera commented 3 years ago

I will close this issue. If you need any additional info, feel free to reopen it.