commit 9b11405b401b06ed89f3ecf386398dc0bb29fd84
parent d86185fdc440ffd58260eb3371907ec6c45a7960
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue, 10 Jun 2025 10:11:46 +0200
update docs for sanctionscheck/robocop
Diffstat:
4 files changed, 82 insertions(+), 7 deletions(-)
diff --git a/conf.py b/conf.py
@@ -579,6 +579,13 @@ man_pages = [
1,
),
(
+ "manpages/robocop.1",
+ "robocop",
+ "compare KYC records against a sanctions list and find best match",
+ "GNU Taler contributors",
+ 1,
+ ),
+ (
"manpages/taler-exchange-wirewatch.1",
"taler-exchange-wirewatch",
"watch for incoming wire transfers",
diff --git a/manpages/robocop.1.rst b/manpages/robocop.1.rst
@@ -0,0 +1,60 @@
+robocop(1)
+##########
+
+.. only:: html
+
+ Name
+ ====
+
+ **robocop** - find best matching sanction list entry
+
+
+Synopsis
+========
+
+**robocop**
+[**-h**_|_**--help**]
+[**-v**_|_**--version**]
+-- SANCTIONSLIST
+
+Description
+===========
+
+**robocop** matches KYC and KYB data against a sanctionslist.
+The sanctionslist must be given as the only argument. It must
+be a JSON file with an array of objects where each object
+must have an "ssid" entry that identifies the sanction list
+record. Furthermore, each object may have any number of
+keys matching the Taler attribute registry which must be
+mapped to an array of strings representing values to match
+against.
+
+Robocop will then read JSON objects line-by-line from standard
+input. Each line must contain exactly one JSON object. Each
+JSON object must again consist of a set of attribute registry
+entries and their string values. For each JSON object read,
+Robocop will find the best matching sanction list entry and
+output the matching and confidence scores (on a scale of 0-1)
+and the "ssid" (one one line per input).
+
+The main use of Robocop is as a RATER tool for
+taler-exchange-sanctionscheck.
+
+Its options are as follows:
+
+**-h**
+ Print short help on options.
+
+**-v**
+ Print version number.
+
+See Also
+========
+
+taler-exchange-sanctionscheck(1)
+
+Bugs
+====
+
+Report bugs by using https://bugs.taler.net or by sending electronic
+mail to <taler@gnu.org>.
diff --git a/manpages/taler-exchange-sanctionscheck.1.rst b/manpages/taler-exchange-sanctionscheck.1.rst
@@ -18,9 +18,8 @@ Synopsis
[**-l** *FILENAME* | **--logfile=**\ \ *FILENAME*]
[**-n** | **--norun**]
[**-r** | **--reset**]
-[**-t** | **--testmode**]
-[**-v** | **--version**] --
-SANCTIONCHECKER [SANCTIONCHECKER_ARGUMENTS]
+[**-t** | **--test**]
+[**-v** | **--version**]
Description
===========
@@ -30,6 +29,10 @@ existing accounts (and their KYC attributes) against a sanctions list,
freezing matches and flagging partial matches for investigation by AML
staff.
+The actual matching is done by an external tool configured via the
+"RATER" option in "[exchange-sanctionscheck]". The default implementation
+of that tool is provided by robocop.
+
Its options are as follows:
**-c** *FILENAME* \| **--config=**\ \ *FILENAME*
@@ -59,14 +62,11 @@ Its options are as follows:
**-v** \| **--version**
Print version information.
-These options must be followed by the name of the sanctions list checking
-helper tool (taler-exchange-helper-sanctions-AUTHORITY) and its command-line
-arguments.
See Also
========
-taler-exchange-httpd(1), taler-exchange.conf(5).
+taler-exchange-httpd(1), taler-exchange.conf(5), robocop(1).
Bugs
====
diff --git a/manpages/taler-exchange.conf.5.rst b/manpages/taler-exchange.conf.5.rst
@@ -679,6 +679,14 @@ both sets (confidence).
The following options must be in the section "[exchange-sanctionscheck]".
+RATER
+ Program (and command-line arguments) for the helper program to
+ execute to compare sanction list records. Usually set to
+ something like "robocop $SANCTIONLIST.json", but can be any
+ program that reads KYC attributes in JSON line-by-line and
+ outputs a rating (0-1), confidence (0-1) and free-form sanction list
+ identifier for each JSON input received.
+
MIN_ROW_FILENAME
Name of the file where taler-exchange-sanctionscheck will store the
last row process during sanction list evaluation. Not in the database