commit 57ef073147d26ed9d5fb74e978e5ddbc06b975d7
parent 10f13f6f9fbcf6aead7ed1858b05b25c2ed530c9
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 26 Jul 2024 15:27:39 +0200
update AML/KYC specs
Diffstat:
3 files changed, 71 insertions(+), 14 deletions(-)
diff --git a/manpages/taler.conf.5.rst b/manpages/taler.conf.5.rst
@@ -155,13 +155,6 @@ MASTER_PUBLIC_KEY
is also used by the **auditor** to determine the public key of the
exchange which it is auditing.
-AML_THRESHOLD
- Largest amount in this currency that can be transferred per month without
- an AML staff member doing a (manual) AML check. For example: "USD:1000000".
-
-KYC_AML_TRIGGER
- Program to run on KYC attribute data to decide whether we should immediately flag an account for AML review. Program must return 0 if a manual AML review is not needed, and non-zero to trigger an AML review. The KYC attribute data of the new user will be passed on standard-input.
-
STEFAN_ABS
Absolute amount to add as an offset in the STEFAN fee approximation
curve (see DD47). Defaults to CURRENCY:0 if not specified.
diff --git a/system-administration/grafana-backup.rst b/system-administration/grafana-backup.rst
@@ -16,7 +16,7 @@
@author Javier Sepulveda
Grafana backup
-###############
+##############
.. contents:: Table of Contents
:depth: 1
@@ -42,7 +42,7 @@ folder is include in our backup script.
#cp /var/lib/grafana/plugins grafana-backup/plugins
Backup the database
-==================
+===================
- For grafana.taler.net, we are currently using SQL Lite.
@@ -52,10 +52,9 @@ Backup the database
Backup all files with Borgbackup
-===============================
+================================
For undertaking our backups we use Borkbackup.
-All the above instructions are included into our databases backup script with Borg.
+All the above instructions are included into our databases backup script with Borg.
* `More information <https://grafana.com/docs/grafana/latest/administration/back-up-grafana/>`_
-
diff --git a/taler-exchange-manual.rst b/taler-exchange-manual.rst
@@ -1784,14 +1784,79 @@ AML programs are helper programs that can:
// JSON array with the results of historic
// AML desisions about the account.
- aml_history: AmlDecisionDetail[];
+ aml_history: AmlHistoryEntry[];
// JSON array with the results of historic
// KYC data about the account.
- kyc_history: KycDetail[];
+ kyc_history: KycHistoryEntry[];
}
+.. ts:def:: AmlHistoryEntry
+
+ interface AmlHistoryEntry {
+ // When was the AML decision taken.
+ decision_time : Timestamp;
+
+ // What was the justification given for the decision.
+ justification : string;
+
+ // Public key of the AML officer taking the decision.
+ decider_pub : AmlOfficerPublicKeyP;
+
+ // Properties associated with the account by the decision.
+ properties : Object;
+
+ // New set of legitimization rules that was put in place.
+ new_rules : LegitimizationRuleSet;
+
+ // True if the account was flagged for (further)
+ // investigation.
+ to_investigate : boolean;
+
+ // True if this is the currently active decision.
+ is_active : boolean;
+ }
+
+.. ts:def:: KycHistoryEntry
+
+ interface KycHistoryEntry {
+ // Name of the provider
+ // which was used to collect the attributes. NULL if they were
+ // just uploaded via a form by the account owner.
+ provider_name?: string;
+
+ // True if the KYC process completed.
+ bool finished,
+
+ // Numeric `error code <error-codes>`, if the
+ // KYC process did not succeed; 0 on success.
+ code: number;
+
+ // Human-readable description of ``code``. Optional.
+ hint?: string;
+
+ // Optional detail given when the KYC process failed.
+ error_message?: string;
+
+ // Identifier of the user at the KYC provider. Optional.
+ provider_user_id?: string;
+
+ // Identifier of the KYC process at the KYC provider. Optional.
+ provider_legitimization_id? :string;
+
+ // The collected KYC data.
+ // NULL if the attribute data could not
+ // be decrypted or was not yet collected.
+ attributes?: Object;
+
+ // Time when the KYC data was collected
+ collection_time: Timestamp;
+
+ // Time when the KYC data will expire.
+ expiration_time: Timestamp;
+ }
+
.. ts:def:: AmlOutcome
interface AmlOutcome {