23.83. DD 82: Wallet Diagnostics Export#
- Design status:
Accepted
- Implementation status:
Partial
- DD shepherd:
TBD
- Historical contributors:
Florian Dold
- First published:
2026-02-12
- Last substantive change:
2026-02-12
- Implementation evidence:
taler-typescript-core(2026-02-13);taler-ios(2026-02-14; 2026-02-15)- Normative references:
- Upstream follow-up:
Rename the stale
TestingGetDiagnosticsOp/TestingGetDiagnosticsAPI type names to match the publicgetDiagnosticsoperation; keep generated output unchanged here and fix the source generator/types upstream.
23.83.1. Summary#
This design document describes a new wallet feature to make gathering diagnostics information from wallet users safer and more convenient.
23.83.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.
23.83.3. Requirements#
Must be easy to use
Must give us relevant information to enable diagnostics
Must not contain private keys or unredacted personally identifiable information
23.83.4. Proposed Solution#
Wallet-core implements a new getDiagnostics 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
23.83.5. Test Plan#
Since the UI for this is very static, a simple manual test of an export and share/save should be enough.
23.83.6. Definition of Done#
[x]
getDiagnosticsimplemented in wallet-core.[x] Export/share UI implemented on iOS.
[ ] Export/share UI implemented on Android and WebExtension.
[ ] Manual cross-platform export test completed.
[x] The wallet developer manual documents the privacy/redaction invariants, not merely the current response fields.
23.83.7. Future Extensions#
In future versions, we might ask users to exclude/include certain types of information from the export.
23.83.8. 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.
23.83.9. Drawbacks#
One more option that clutters the settings dialogue
23.83.10. Discussion / Q&A#
(This should be filled in with results from discussions on mailing lists / personal communication.)