taler-docs

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

commit 94dfcc2f94d2f4ebfc2d86bce3ed479452f6ec72
parent d37e9b43772084ff22ca7ff52c5115a2dde78a8d
Author: Antoine A <>
Date:   Wed,  7 May 2025 13:30:21 +0200

checklists

Diffstat:
Mchecklists/checklist-demo-upgrade.rst | 192++++++++-----------------------------------------------------------------------
Achecklists/checklist-gls.rst | 9+++++++++
Achecklists/checklist-wallet.rst | 171+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtaler-developer-manual.rst | 5+----
4 files changed, 200 insertions(+), 177 deletions(-)

diff --git a/checklists/checklist-demo-upgrade.rst b/checklists/checklist-demo-upgrade.rst @@ -1,5 +1,7 @@ GNU Taler Demo Upgrade Checklist --------------------------------- +================================ + +.. toctree:: .. |democheck| raw:: html @@ -7,14 +9,14 @@ GNU Taler Demo Upgrade Checklist Domains -^^^^^^^ +------- The checklist uses the ``demo.taler.net`` domains. However, the same sandcastle demo can also be hosted at other domains. The same instructions should apply. Post-upgrade checks -^^^^^^^^^^^^^^^^^^^ +------------------- - |democheck| Run the headless wallet to check that services are actually working: @@ -24,7 +26,7 @@ Post-upgrade checks Basics -^^^^^^ +------- - |democheck| Visit https://demo.taler.net/ to see if the landing page is displayed correctly - |democheck| landing language switcher @@ -32,19 +34,10 @@ Basics - |democheck| see if the wallet presence indicator is updated correctly (in browsers). - |democheck| Visit https://exchange.demo.taler.net/terms to check ToS works -Wallets -^^^^^^^ - -We consider the following published wallets to be "production wallets": - -* Browser: Firefox Add-On Store -* Browser: Chrome Web Store -* Android: Google Play / F-Droid / APK -* iOS: Apple Store / Testflight -libeufin - Withdraw & Deposit -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LibEuFIn +-------- To run those test you need one wallet. @@ -54,41 +47,6 @@ To run those test you need one wallet. - |democheck| bank logout - |democheck| bank login -- |democheck| wallet withdrawal payto-URI - - - trigger withdraw from wallet & copy URI - - paste URI in bank & pay more - - wallet redirect to success and receive more - - paste URI in bank & pay -> bounce - -- |democheck| bank withdrawal success - - - bank trigger withdrawal & save QR code - - wallet scan QR code - - bank pay - - wallet redirect to success - - wallet scan QR code -> redirect to success - -- |democheck| bank withdrawal failure - - - bank trigger withdrawal - - wallet scan QR code - - bank cancel - - wallet redirect to failure - - wallet scan QR code -> redirect to failure - -- |democheck| deposit existing account - - - check bank1 account is already registered - - trigger deposit using bank1 - - check deposit in bank1 account - -- |democheck| deposit new account - - - add bank2 account - - trigger deposit using bank2 - - check deposit in bank2 account - - |democheck| account management - add bank2 again -> create duplicate (TODO redirection a warning https://bugs.gnunet.org/view.php?id=9698) @@ -105,123 +63,11 @@ To run those test you need one wallet. - |democheck| (MB-only) manually import transactions from bank account - |democheck| (MB-only) manually export transactions to bank account -P2P payments -^^^^^^^^^^^^ - -To run those test you need three wallets, you should ideally use three different platforms. - -TODO: some pay* interactions should become unnecessary in a future update: https://bugs.gnunet.org/view.php?id=9670 -TODO: check different kind of failure (aborted, expired, already complete by another wallet) are correctly shown - -Concurrent flow -"""""""""""""""" - -Test what happens when two wallets compete on the same payment. - -- initiate payment in wallet1 and save URI -- scan QR code in wallet2 & wallet3 -- pay with wallet2 -> redirect to success -- check wallet1 redirect to success -- pay* with wallet3 -> redirect to failure -- paste URI in wallet2 -> pay* -> redirect to success -- paste URI in wallet3 -> pay* -> redirect to failure - - -Abort flow -"""""""""" - -Test what happens when a payment is aborted. - -- initiate payment in wallet1 and save URI -- scan QR code in wallet2 -- abort in wallet1 -> redirect to failure -- pay* with wallet2 -> redirect to failure -- paste URI in wallet3 -> pay* -> redirect to failure - -Expire flow -""""""""""" - -Test what happens when a payment is expired. - -- initiate payment in wallet1 with short expiration and save URI -- scan QR code in wallet2 -- wait for expiration -- check wallet1 redirect to failure -- pay* with wallet2 -> redirect to failure -- paste URI in wallet3 -> pay* -> redirect to failure - -Network flow -"""""""""""" - -Test what happens when the wallet does not have internet access. - -- disable network in wallet1 -- initiate payment in wallet1 -- check that a loading state with warning is shown -- enable network in wallet1 -- check that wallet1 recover and display QR code and URI -- disable network in wallet2 -- scan QR code -> network failure screen -- enable network in wallet2 -- pay with wallet2 -> redirect to success - -Checklist -""""""""" - -- |democheck| pull payment (receive) concurrent flow -- |democheck| pull payment (receive) abort flow -- |democheck| pull payment (receive) expire flow -- |democheck| pull payment (receive) network flow - -- |democheck| push payment (send) concurrent flow -- |democheck| push payment (send) abort flow -- |democheck| push payment (send) expire flow -- |democheck| push payment (send) network flow - -- |democheck| check pull payment insufficient fund error on completion -- |democheck| check push payment insufficient fund error on initiation - -- |democheck| sending money back from wallet to bank account -- |democheck| wallet transaction history rendering -- |democheck| delete history entry - - -Exchange management -""""""""""""""""""" - -- |democheck| Try to explicitly reload exchange keys (still needed?) -- |democheck| Have wallet show ToS of an exchange -- |democheck| Have wallet show PP of an exchange -- |democheck| Remove exchange with remaining balance -- |democheck| Check remaining balance is deposited into origin account - - -Android Cashier App -^^^^^^^^^^^^^^^^^^^ - -To run those test you need one wallet and a bank account. - -- |democheck| Configure cashier app with libeufin account -- |democheck| Lock and reconnect -- |democheck| Reconfigure -- |democheck| Check insufficient balance error -- |democheck| Check zero error - -- |democheck| Withdraw cash from cashier - - - Initiate withdraw in cashier - - Scan QR code in wallet & accept - - Pay in cashier - -- |democheck| Withdraw cash from cashier & bank - - Initiate withdraw in cashier - - Scan QR code in wallet & accept - - Pay from bank account website (TODO do we want this to be proposed ?) - - Check cashier redirect +.. include:: checklist-wallet.rst Blog demo -^^^^^^^^^ +--------- - |democheck| Visit https://shop.demo.taler.net/ - |democheck| blog page article list renders @@ -252,7 +98,7 @@ Blog demo Donation demo -^^^^^^^^^^^^^ +------------- - |democheck| Reset wallet - |democheck| Withdraw age-restricted coins (< 14) @@ -265,7 +111,7 @@ Donation demo Merchant SPA -^^^^^^^^^^^^ +------------ - |democheck| test SPA loads - |democheck| check SPA language switcher @@ -318,7 +164,7 @@ Merchant SPA Android Merchant PoS -^^^^^^^^^^^^^^^^^^^^ +-------------------- * |democheck| Configure using instance with configured inventory * |democheck| Check categories and products show (with images!) @@ -331,7 +177,7 @@ Android Merchant PoS * |democheck| Create another order, delete/abort it without paying Auditor -^^^^^^^ +------- - |democheck| Check auditor SPA is access controlled - |democheck| Check /config endpoint (and implied POST /deposit-confirmation are public) @@ -342,7 +188,7 @@ Auditor Exchange KYC Triggers -^^^^^^^^^^^^^^^^^^^^^ +--------------------- Each of these checks should be done with a fresh account, merchant instance or wallet (if they previously ran into a KYC check already). Specific amounts @@ -358,7 +204,7 @@ depend on the configured trigger thresholds. Exchange KYC SPA -^^^^^^^^^^^^^^^^ +---------------- Consult the specific deployment's KYC configuration to see which KYC processes are used. @@ -377,7 +223,7 @@ are used. Exchange AML SPA -^^^^^^^^^^^^^^^^ +---------------- - |democheck| check SPA language switcher - |democheck| load, enable account using taler-exchange-offline @@ -402,7 +248,7 @@ Exchange AML SPA Sanction lists -^^^^^^^^^^^^^^ +-------------- - |democheck| ensure account with KYC data exists in the system - |democheck| manually write santion list with user that clearly does not match @@ -420,7 +266,7 @@ Sanction lists Shutdown -^^^^^^^^ +-------- - |democheck| create two full wallets, fill one only via (a large) P2P transfer - |democheck| revoke highest-value denomination diff --git a/checklists/checklist-gls.rst b/checklists/checklist-gls.rst @@ -0,0 +1,8 @@ +GLS GNU Taler Integration Checklist +=================================== + +.. toctree:: + +TODO + +.. include:: checklist-wallet.rst +\ No newline at end of file diff --git a/checklists/checklist-wallet.rst b/checklists/checklist-wallet.rst @@ -0,0 +1,171 @@ + +.. |democheck| raw:: html + + <input type="checkbox"> + +Wallets +------- + +We consider the following published wallets to be "production wallets": + +* Browser: Firefox Add-On Store +* Browser: Chrome Web Store +* Android: Google Play / F-Droid / APK +* iOS: Apple Store / Testflight + +To run those tests you need one to three wallets (you should ideally use three different platforms) and one to two opened bank accounts into a bank with Taler Integration. + +Withdraw & Deposit +^^^^^^^^^^^^^^^^^^ + +To run those tests you need one wallet and two bank accounts. + +- |democheck| wallet withdrawal payto-URI + + - trigger withdraw from wallet & copy URI + - paste URI in bank & pay more + - wallet redirect to success and receive more + - paste URI in bank & pay -> bounce + +- |democheck| bank withdrawal success + + - bank trigger withdrawal & save QR code + - wallet scan QR code + - bank pay + - wallet redirect to success + - wallet scan QR code -> redirect to success + +- |democheck| bank withdrawal failure + + - bank trigger withdrawal + - wallet scan QR code + - bank cancel + - wallet redirect to failure + - wallet scan QR code -> redirect to failure + +- |democheck| deposit existing account + + - check bank1 account is already registered + - trigger deposit using bank1 + - check deposit in bank1 account + +- |democheck| deposit new account + + - add bank2 account + - trigger deposit using bank2 + - check deposit in bank2 account + +P2P payments +^^^^^^^^^^^^ + +TODO: some pay* interactions should become unnecessary in a future update: https://bugs.gnunet.org/view.php?id=9670 +TODO: check different kind of failure (aborted, expired, already complete by another wallet) are correctly shown + +To run those test you need three wallets. + +Concurrent flow +"""""""""""""""" + +Test what happens when two wallets compete on the same payment. + +- initiate payment in wallet1 and save URI +- scan QR code in wallet2 & wallet3 +- pay with wallet2 -> redirect to success +- check wallet1 redirect to success +- pay* with wallet3 -> redirect to failure +- paste URI in wallet2 -> pay* -> redirect to success +- paste URI in wallet3 -> pay* -> redirect to failure + + +Abort flow +"""""""""" + +Test what happens when a payment is aborted. + +- initiate payment in wallet1 and save URI +- scan QR code in wallet2 +- abort in wallet1 -> redirect to failure +- pay* with wallet2 -> redirect to failure +- paste URI in wallet3 -> pay* -> redirect to failure + +Expire flow +""""""""""" + +Test what happens when a payment is expired. + +- initiate payment in wallet1 with short expiration and save URI +- scan QR code in wallet2 +- wait for expiration +- check wallet1 redirect to failure +- pay* with wallet2 -> redirect to failure +- paste URI in wallet3 -> pay* -> redirect to failure + +Network flow +"""""""""""" + +Test what happens when the wallet does not have internet access. + +- disable network in wallet1 +- initiate payment in wallet1 +- check that a loading state with warning is shown +- enable network in wallet1 +- check that wallet1 recover and display QR code and URI +- disable network in wallet2 +- scan QR code -> network failure screen +- enable network in wallet2 +- pay with wallet2 -> redirect to success + +Checklist +""""""""" + +- |democheck| pull payment (receive) concurrent flow +- |democheck| pull payment (receive) abort flow +- |democheck| pull payment (receive) expire flow +- |democheck| pull payment (receive) network flow + +- |democheck| push payment (send) concurrent flow +- |democheck| push payment (send) abort flow +- |democheck| push payment (send) expire flow +- |democheck| push payment (send) network flow + +- |democheck| check pull payment insufficient fund error on completion +- |democheck| check push payment insufficient fund error on initiation + +- |democheck| sending money back from wallet to bank account +- |democheck| wallet transaction history rendering +- |democheck| delete history entry + + +Exchange management +""""""""""""""""""" + +- |democheck| Try to explicitly reload exchange keys (still needed?) +- |democheck| Have wallet show ToS of an exchange +- |democheck| Have wallet show PP of an exchange +- |democheck| Remove exchange with remaining balance +- |democheck| Check remaining balance is deposited into origin account + + +Android Cashier App +^^^^^^^^^^^^^^^^^^^ + +To run those test you need one wallet and a bank account. + +- |democheck| Configure cashier app with libeufin account +- |democheck| Lock and reconnect +- |democheck| Reconfigure +- |democheck| Check insufficient balance error +- |democheck| Check zero error + +- |democheck| Withdraw cash from cashier + + - Initiate withdraw in cashier + - Scan QR code in wallet & accept + - Pay in cashier + +- |democheck| Withdraw cash from cashier & bank + + - Initiate withdraw in cashier + - Scan QR code in wallet & accept + - Pay from bank account website (TODO do we want this to be proposed ?) + - Check cashier redirect diff --git a/taler-developer-manual.rst b/taler-developer-manual.rst @@ -1,7 +1,7 @@ .. This file is part of GNU TALER. - Copyright (C) 2014-2023 Taler Systems SA + Copyright (C) 2014-2025 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software @@ -488,9 +488,6 @@ All Taler components must be tagged with git before they are deployed on the DD = day SS = serial -.. include:: checklists/checklist-demo-upgrade.rst - - Environments and Builders on taler.net ======================================