commit 95cada5b5158584db26f9c9e01ed1c48b164bb22
parent 098d6198877e26405b65fe5df912eff389ce61bf
Author: Sebastian <sebasjm@gmail.com>
Date: Wed, 23 Apr 2025 16:37:36 -0300
fix #9678
Diffstat:
13 files changed, 207 insertions(+), 53 deletions(-)
diff --git a/gnu-taler-account-properties/.gitignore b/gnu-taler-account-properties/.gitignore
@@ -0,0 +1,8 @@
+*.c
+*.kt
+*.h
+*.tmp
+*.ts
+*.json
+*.go
+*.rs
diff --git a/gnu-taler-account-properties/Makefile b/gnu-taler-account-properties/Makefile
@@ -0,0 +1,39 @@
+FILES=taler_form_attributes.ts \
+ taler_form_attributes.rst
+
+all: check $(FILES)
+
+check: registry.rec
+ recfix --check registry.rec
+
+distclean:
+ rm -f *.tmp
+
+clean:
+ rm -f $(FILES) *.tmp
+
+taler_form_attributes.ts.tmp: registry.rec ts.template ts.form-header ts.form-footer
+ /usr/bin/truncate --size 0 $@
+ ../format.sh ts.template < registry.rec >> $@
+
+
+taler_form_attributes.ts: ts.header taler_form_attributes.ts.tmp ts.footer
+ cat $^ > $@
+
+
+taler_form_attributes.json.tmp: registry.rec json.template json.form-header json.form-footer
+ /usr/bin/truncate --size 0 $@
+ ../format.sh json.template < registry.rec >> $@
+
+
+taler_form_attributes.json: json.header taler_form_attributes.json.tmp json.footer
+ cat $^ > $@
+
+
+taler_form_attributes.rst.tmp: registry.rec rst.template
+ ../format.sh rst.template < registry.rec > $@
+
+taler_form_attributes.rst: rst.header taler_form_attributes.rst.tmp rst.footer
+ cat $^ > $@
+
+.PHONY: check clean distclean
diff --git a/gnu-taler-account-properties/registry.rec b/gnu-taler-account-properties/registry.rec
@@ -0,0 +1,98 @@
+# -*- mode: rec -*-
+#
+# Registry for GNU Taler account properties
+#
+%rec: TalerProperties
+%unique: Identifier
+%key: Identifier
+%type: Identifier Identifier_t
+%typedef: Identifier_t regexp /^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789:\.]*$/
+# Define the property's field ID
+%mandatory: Identifier
+# Use to specify the property's type. Arrays and generics are allowed in typescript form.
+# Literal values are enclosed by single quote `'` and enumerated type union by vertical bar `|`
+%mandatory: Type
+%type: Type Type_t
+%typedef: Type_t regexp !^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_'][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 \[\]|:\.,'-/]*$!
+# Define for which deployment this property belongs or "Generic" if doesn't apply to any particular deployment.
+%mandatory: Deployment
+# Description of the usage of the field
+%allowed: Description
+%type: Description Description_t
+%typedef: Description_t regexp |^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 :\.,'-/?]*$|
+%sort: Identifier Description Type Form
+
+Identifier: FILE_NOTE
+Type: String
+Description: Current note on the GWG file.
+Deployment: TOPS
+
+Identifier: CUSTOMER_LABEL
+Type: String
+Description: Customer name or internal alias.
+Deployment: TOPS
+
+Identifier: AML_ACCOUNT_OPEN
+Type: Boolean
+Description: Boolean flag indicating whether the account has been opened. The definition of opening an account is deployment-specific.
+Deployment: TOPS
+
+Identifier: AML_DOMESTIC_PEP
+Type: Boolean
+Description: True if the customer is a domestic PEP.
+Deployment: TOPS
+
+Identifier: AML_FOREIGN_PEP
+Type: Boolean
+Description: True if the customer is a foreign PEP.
+Deployment: TOPS
+
+Identifier: AML_INTERNATIONAL_ORG_PEP
+Type: Boolean
+Description: True if the customer is a international organization PEP.
+Deployment: TOPS
+
+Identifier: AML_HIGH_RISK_CUSTOMER
+Type: Boolean
+Description: True if the customer is a high-risk business.
+Deployment: TOPS
+
+Identifier: AML_HIGH_RISK_COUNTRY
+Type: Boolean
+Description: True if the customer is associated with a high-risk country.
+Deployment: TOPS
+
+Identifier: AML_ACCOUNT_IDLE
+Type: Boolean
+Description: The account has been marked as idle.
+Deployment: TOPS
+
+Identifier: AML_INVESTIGATION_STATE
+Type: 'NONE' | 'INVESTIGATION_PENDING' | 'INVESTIGATION_COMPLETED_WITHOUT_SUSPICION' | 'REPORTED_SUSPICION_SIMPLE' | 'REPORTED_SUSPICION_SUBSTANTIATED'
+Description: The MROS reporting state for the account.
+Deployment: TOPS
+
+Identifier: AML_INVESTIGATION_TRIGGER
+Type: String
+Description: Informal reason why the AML investigation was triggered. Examples include suspicious transaction or (automated) sanction list match
+Deployment: TOPS
+
+Identifier: SANCTION_LIST_BEST_MATCH
+Type: String
+Description: Identifies the sanction list entry that the account matched against (best match, does not mean it was a good match)
+Deployment: TOPS
+
+Identifier: SANCTION_LIST_RATING
+Type: Integer
+Description: Score for how good the sanction list match was (0: none, 10**9: perfect match)
+Deployment: TOPS
+
+Identifier: SANCTION_LIST_CONFIDENCE
+Type: Integer
+Description: Score for how much supporting data we had for the sanction list match (0: none, 10**9: all fields available)
+Deployment: TOPS
+
+Identifier: SANCTION_LIST_SUPPRESS
+Type: Boolean
+Description: Suppress flagging this account when it creates a hit on a sanctions list, this is a false-positive.
+Deployment: TOPS
diff --git a/gnu-taler-account-properties/rst.footer b/gnu-taler-account-properties/rst.footer
diff --git a/gnu-taler-account-properties/rst.header b/gnu-taler-account-properties/rst.header
@@ -0,0 +1,14 @@
+GNU Taler AML Properties
+---------------------
+
+Entries
+^^^^^^^
+
+.. list-table:: GNU Taler AML Properties
+ :widths: auto
+ :header-rows: 1
+
+ * - Name
+ - Value
+ - HTTP Status
+ - Description
diff --git a/gnu-taler-account-properties/rst.template b/gnu-taler-account-properties/rst.template
@@ -0,0 +1,4 @@
+ * - {{Identifier}}
+ - {{Deployment}}
+ - {{Description}}
+ - {{Type}}
diff --git a/gnu-taler-account-properties/ts.footer b/gnu-taler-account-properties/ts.footer
@@ -0,0 +1,3 @@
+
+
+}
diff --git a/gnu-taler-account-properties/ts.form-footer b/gnu-taler-account-properties/ts.form-footer
@@ -0,0 +1 @@
+ } as const;
diff --git a/gnu-taler-account-properties/ts.form-header b/gnu-taler-account-properties/ts.form-header
@@ -0,0 +1 @@
+ export const {{Name}} = {
diff --git a/gnu-taler-account-properties/ts.header b/gnu-taler-account-properties/ts.header
@@ -0,0 +1,28 @@
+/*
+ This file is part of GNU Taler
+ Copyright (C) 2012-2025 Taler Systems SA
+
+ GNU Taler is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: LGPL3.0-or-later
+
+ Note: the LGPL does not apply to all components of GNU Taler,
+ but it does apply to this file.
+ */
+
+/**
+ * Imports.
+ */
+
+export const TalerAmlProperties = {
diff --git a/gnu-taler-account-properties/ts.template b/gnu-taler-account-properties/ts.template
@@ -0,0 +1,7 @@
+ /**
+ * Description: {{Description}}
+ *
+ * GANA Type: {{Type}}
+ * Deployment: {{Deployment}}
+ */
+ {{Identifier}}: "{{Identifier}}" as const,
diff --git a/gnu-taler-form-attributes/registry.rec b/gnu-taler-form-attributes/registry.rec
@@ -10,7 +10,7 @@
# Define the form's field ID
%mandatory: Identifier
# Use to specify the form's field type. Arrays and generics are allowed in typescript form.
-# Literal values are enclosed by double quote `"` and enumerated type union by vertical bar `|`
+# Literal values are enclosed by single quote `'` and enumerated type union by vertical bar `|`
%mandatory: Type
%type: Type Type_t
%typedef: Type_t regexp !^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_'][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 \[\]|:\.,'-/]*$!
@@ -641,56 +641,7 @@ Type: Boolean
Description: True if the customer read or downloaded the terms of service. It should be set automatically.
##########################
-## AML Properties
-##########################
-
-Identifier: FILE_NOTE
-Form: AccountProperties
-Type: String
-Description: Current note on the GWG file.
-
-Identifier: CUSTOMER_LABEL
-Form: AccountProperties
-Type: String
-Description: Customer name or internal alias.
-
-Identifier: AML_ACCOUNT_OPEN
-Form: AccountProperties
-Type: Boolean
-Description: Boolean flag indicating whether the account has been opened. The definition of opening an account is deployment-specific.
-
-Identifier: AML_DOMESTIC_PEP
-Form: AccountProperties
-Type: Boolean
-Description: True if the customer is a domestic PEP.
-
-Identifier: AML_FOREIGN_PEP
-Form: AccountProperties
-Type: Boolean
-Description: True if the customer is a foreign PEP.
-
-Identifier: AML_INTERNATIONAL_ORG_PEP
-Form: AccountProperties
-Type: Boolean
-Description: True if the customer is a international organization PEP.
-
-Identifier: AML_HIGH_RISK_BUSINESS
-Form: AccountProperties
-Type: Boolean
-Description: True if the customer is a high-risk business.
-
-Identifier: AML_HIGH_RISK_COUNTRY
-Form: AccountProperties
-Type: Boolean
-Description: True if the customer is associated with a high-risk country.
-
-Identifier: AML_MROS_STATE
-Form: AccountProperties
-Type: String
-Description: The MROS reporting state for the account.
-
-##########################
-## AML Forms metadata
+## KYC Forms metadata
##########################
Identifier: FORM_ID
diff --git a/gnu-taler-form-attributes/rst.header b/gnu-taler-form-attributes/rst.header
@@ -1,10 +1,10 @@
-GNU Taler Aml Attributes
+GNU Taler KYC Attributes
---------------------
Entries
^^^^^^^
-.. list-table:: GNU Taler AML Attributes
+.. list-table:: GNU Taler KYC Attributes
:widths: auto
:header-rows: 1