taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

055-wallet-problem-report.rst (3078B)


      1 DD 55: Wallet Problem Reports
      2 #############################
      3 
      4 :Design status: Rejected
      5 :Implementation status: Not started
      6 :DD shepherd: TBD
      7 :Historical contributors: Florian Dold, Christian Grothoff
      8 :First published: 2024-02-21
      9 :Last substantive change: 2024-03-05
     10 
     11 .. warning::
     12 
     13    This rejected proposal is retained for historical context and is
     14    non-normative.  We concluded that the problem reports feature was not
     15    needed because the relevant cases were covered by other mechanisms.
     16 
     17 Summary
     18 =======
     19 
     20 This design document specifies global error reports generated/managed by wallet-core
     21 and rendered by the wallet UIs.
     22 
     23 Motivation
     24 ==========
     25 
     26 Sometimes the wallet encounters issues that go beyond the scope of single transaction.
     27 
     28 Requirements
     29 ============
     30 
     31 * problem reports must have a clear lifecycle
     32 * problem reports must have some type of identification that allows to
     33   easily find out if a new problem report needs to be created when an
     34   error happens or whether an existing one has been created
     35 
     36 Proposed Solution
     37 =================
     38 
     39 Report identification
     40 ---------------------
     41 
     42 The report identifier serves multiple purposes:
     43 
     44 1. Usage as a reference in wallet-core APIs
     45 2. De-duplication. The report ID should allow easy identification of an already existing report for a particular problem.
     46 
     47 New wallet-core requests
     48 ------------------------
     49 
     50 * ``listProblemReports``
     51 * ``acknowledgeProblemReport``: Mark a problem report as read.
     52 * ``deleteProblemReport``: Delete the problem report.
     53 
     54 New wallet-core notification type
     55 ---------------------------------
     56 
     57 * ``problem-report`` to notify clients about status changes or an error report
     58   (including creation!)
     59 
     60 
     61 Types of reports
     62 ----------------
     63 
     64 (Currently we don't have any good examples where this is actually needed.)
     65 
     66 Examples of what should NOT be a report
     67 ---------------------------------------
     68 
     69 * money lost due to the exchange stopping to offer a denomination
     70 
     71   * => Should be a transactions item
     72 
     73 * money locked behind a (long) pending refresh
     74 
     75   * => Should be a pending transaction
     76 
     77 * money lost due to a permanently failing refresh
     78 
     79   * => pending or final transaction item
     80 
     81 * money lost due to expired denominations (auto-refresh wasn't done fast enough)
     82 
     83   * => transaction item
     84 
     85 * a denomination changed its info (expiration, fees)
     86 
     87   * => exchange entry state
     88 
     89 * Important information about the exchange changed (master pub, accounts, keys)
     90 
     91   => exchange entry state
     92 
     93 
     94 Definition of Done
     95 ==================
     96 
     97 * [ ] No implementation is planned because the proposal was rejected.
     98 
     99 Alternatives
    100 ============
    101 
    102 * Report problems with an API specific to each resource (exchange entry, transaction, ...)
    103 * Have an *alerts* API that returns alerts to the client that the client can show to the user,
    104   but that a user can't interact with.
    105 
    106 Drawbacks
    107 =========
    108 
    109 TBD.
    110 
    111 Discussion / Q&A
    112 ================
    113 
    114 * When is a report amended vs a new report created?
    115 
    116  * example: Exchange stops offering denomination D1. Later, it stops offering D2.
    117    Are two reports generated or is the first report changed?