082-wallet-diagnostics.rst (2175B)
1 DD 82: Wallet Diagnostics Export 2 ################################ 3 4 Summary 5 ======= 6 7 This design document describes a new wallet feature to make gathering 8 diagnostics information from wallet users safer and more convenient. 9 10 Motivation 11 ========== 12 13 When users have a problem with their wallet, right now the only 14 reliable way to diagnose it is a database export. 15 16 This is a problem, because: 17 18 * It requires us to deal with sensitive user data, including private keys and 19 PII 20 * It teaches the user that it's okay to export and send around their wallet 21 database via e-mail etc. 22 23 Requirements 24 ============ 25 26 * Must be easy to use 27 * Must give us relevant information to enable diagnostics 28 * Must not contain 29 30 Proposed Solution 31 ================= 32 33 Wallet-core implements a new ``testingGetDiagnostics`` request. This request 34 returns diagnostics information in a JSON format. The export **MUST NOT** 35 contain private keys. IBANs **MUST** be truncated to six characters and user 36 names should be scrubbed or truncated. 37 38 The following new functionality is implemented in the UIs: 39 40 * In settings mode, a new option "Save diagnostics information" 41 is added. This option should *not* be restricted to the developer 42 mode. 43 * Clicking/tapping the option creates a diagnostics export 44 45 * On mobile platforms, the user should be the option to 46 share or save the export 47 * In the browser, just saving the export should be sufficient 48 49 Test Plan 50 ========= 51 52 Since the UI for this is very static, a simple manual test 53 of an export and share/save should be enough. 54 55 Future Extensions 56 ================= 57 58 In future versions, we might ask users to exclude/include certain types of 59 information from the export. 60 61 Alternatives 62 ============ 63 64 There is no good alternative, we don't want telemetry, we don't want full DB 65 exports. 66 67 Instead of JSON, we could export it to something more human-readable like 68 YAML, to make it easier for users to review what the diagnostics export contains. 69 70 Drawbacks 71 ========= 72 73 * One more option that clutters the settings dialogue 74 75 Discussion / Q&A 76 ================ 77 78 (This should be filled in with results from discussions on mailing lists / personal communication.)