summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorMS <ms@taler.net>2023-10-09 13:46:50 +0200
committerMS <ms@taler.net>2023-10-09 13:46:50 +0200
commit95a8d4ae24c36676048098397702e229d289f0e3 (patch)
treeb2366974d7778fa41ca2c48657ad8d0e3ca5868b /design-documents
parentb58779266ce7467a2fcaafe7e03337d9c0d262e9 (diff)
downloaddocs-95a8d4ae24c36676048098397702e229d289f0e3.tar.gz
docs-95a8d4ae24c36676048098397702e229d289f0e3.tar.bz2
docs-95a8d4ae24c36676048098397702e229d289f0e3.zip
Addressing some FIXMEs as discussion result.
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/050-libeufin-nexus.rst33
1 files changed, 16 insertions, 17 deletions
diff --git a/design-documents/050-libeufin-nexus.rst b/design-documents/050-libeufin-nexus.rst
index fc09888f..f570dff7 100644
--- a/design-documents/050-libeufin-nexus.rst
+++ b/design-documents/050-libeufin-nexus.rst
@@ -60,11 +60,11 @@ Configuration file
USER_ID = myuser
PARTNER_ID = myorg
SYSTEM_ID = banksys
- ACCOUNT_NUMBER = DE1234567890 # could be an IBAN, does not have to be (FIXME: what? Maybe the alphanumeric name given by the bank?)
+ ACCOUNT_NUMBER = DE1234567890 # This value must identify with how the bank calls the bank account
BANK_PUBLIC_KEYS_FILE = enc-auth-keys.json
CLIENT_PRIVATE_KEY_FILE = my-private-key.json
ACCOUNT_META_DATA_FILE = ebics-meta.json
- EBICS_DIALECT = postfinance # (FIXME: should this be removed and only do postfinance, at least for the very first version? Also 'EBICS dialect' was always misleading because the variations happen at EBICS but also at the ISO20022 layer.)
+ EBICS_DIALECT = postfinance # FIXME: banks differs also in ISO20022, not only EBICS.
[nexus-postgres]
CONFIG = postgres:///libeufin-nexus
@@ -124,7 +124,6 @@ JSON with:
Database schema
---------------
-
.. code-block:: shell-session
CREATE TABLE incoming_transactions
@@ -152,13 +151,16 @@ Database schema
,wire_transfer_subject TEXT
,execution_time INT8 NOT NULL
,credit_payto_uri TEXT NOT NULL
- ,out_transaction_id INT8 REFERENCES outgoing_transactions (out_transaction_id) -- NULL if not initiated, set by EBICS server -- NOTE/FIXME: this is NULL also if it is initiated; it gets non-NULL only after it has been fetched from the bank.
- ,initiated BOOL DEFAULT FALSE -- FIXME: would 'submitted' here be a better name? initiated==false where the table name starts with 'initiated_..' sounds contradictory.
- ,hidden BOOL DEFAULT FALSE -- NOTE/FIXME: please, exaplain this.
+ ,out_transaction_id INT8 REFERENCES outgoing_transactions (out_transaction_id)
+ ,submitted BOOL DEFAULT FALSE
+ ,hidden BOOL DEFAULT FALSE -- FIXME: exaplain this.
,client_request_uuid TEXT NOT NULL UNIQUE
,failure_message TEXT -- NOTE: that may mix soon failures (those found at initiation time), or late failures (those found out along a fetch operation)
);
+ COMMENT ON COLUMN initiated_outgoing_transactions.out_transaction_id
+ IS 'Points to the bank transaction that was found via nexus-fetch. If "submitted" is false or nexus-fetch could not download this initiation, this column is expected to be NULL.'
+
nexus-ebics-setup
-----------------
@@ -219,6 +221,8 @@ nexus-ebics-fetch
final statement of the previous day, thus ensuring we get a statement
every day plus intra-day reports.
+ * Bounces transactions with mal-formed wire transfer subjects.
+
* Optionally logs EBICS messages to disk, one per file, based on
configuration. Filenames must include the timestamp of the download. The
date must be in the path and the time of day at the beginning of the
@@ -259,16 +263,6 @@ nexus-httpd
* Offers REST APIs as per configuration.
- * Runs facade-specific logic, such as bouncing transactions with mal-formed
- wire transfer subjects.
-
-..
- FIXME (the above point): moving the bouncing to nexus-fetch would save one DB notification,
- as nexus-fetch is the first component that's aware of incoming payments.
- Another advantage is to still provide bouncing in case nexus-httpd is down.
- That is still in line with the new policy of making Nexus Taler-specific,
- as opposed to be a generic EBICS client.
-
* Listens to notifications from nexus-ebics-fetch to run facade-logic and
wake-up long pollers.
@@ -303,5 +297,10 @@ Drawbacks
Discussion / Q&A
================
-
(This should be filled in with results from discussions on mailing lists / personal communication.)
+
+From private discussion: bouncing goes inside nexus-fetch as
+it saves one database event, makes the HTTPd simpler, and lets
+the bouncing happen even when no HTTPd runs.
+--
+