18.82. DD 82: Wallet Diagnostics Export#
18.82.1. Summary#
This design document describes a new wallet feature to make gathering diagnostics information from wallet users safer and more convenient.
18.82.2. Motivation#
When users have a problem with their wallet, right now the only reliable way to diagnose it is a database export.
This is a problem, because:
It requires us to deal with sensitive user data, including private keys and PII
It teaches the user that it’s okay to export and send around their wallet database via e-mail etc.
18.82.3. Requirements#
Must be easy to use
Must give us relevant information to enable diagnostics
Must not contain
18.82.4. Proposed Solution#
Wallet-core implements a new testingGetDiagnostics request. This request
returns diagnostics information in a JSON format. The export MUST NOT
contain private keys. IBANs MUST be truncated to six characters and user
names should be scrubbed or truncated.
The following new functionality is implemented in the UIs:
In settings mode, a new option “Save diagnostics information” is added. This option should not be restricted to the developer mode.
Clicking/tapping the option creates a diagnostics export
On mobile platforms, the user should be the option to share or save the export
In the browser, just saving the export should be sufficient
18.82.5. Test Plan#
Since the UI for this is very static, a simple manual test of an export and share/save should be enough.
18.82.6. Future Extensions#
In future versions, we might ask users to exclude/include certain types of information from the export.
18.82.7. Alternatives#
There is no good alternative, we don’t want telemetry, we don’t want full DB exports.
Instead of JSON, we could export it to something more human-readable like YAML, to make it easier for users to review what the diagnostics export contains.
18.82.8. Drawbacks#
One more option that clutters the settings dialogue
18.82.9. Discussion / Q&A#
(This should be filled in with results from discussions on mailing lists / personal communication.)