xactmon: Deploy xactmon

`xactmon` is a new tool I developed to parse transaction notifications
from banks and automatically import them into my personal finance
tracker.  It is designed in a modular fashion, composed of three main
components:

* Receiver
* Processor
* Importer

Components communicate with one another using an AMQP exchange.
Hypothetically, there could be multipel implementations of the receiver
and importer components.  Right now, there is only a JMAP receiver,
which fetches email messages (from Fastmail), and a Firefly III
importer.  The processor is a singleton, handling notifications from the
receiver, parsing them into a normalized format, and passing them on to
the importer.  It uses a set of rules to decide how to parse the
messages, and supports using either a regular expression with named
capture groups or an Awk script to extract the relevant information.
This commit is contained in:
2024-07-22 08:11:31 -05:00
parent ccc46288c2
commit a04a2b5334
8 changed files with 405 additions and 0 deletions

16
xactmon/config.toml Normal file
View File

@@ -0,0 +1,16 @@
processor_rules = "/etc/xactmon/rules.toml"
[jmap]
url = "https://api.fastmail.com"
token_file = "/run/secrets/xactmon/fastmail.token"
[amqp]
url = "amqps://xactmon@rabbitmq.pyrocufflink.blue?auth_mechanism=external"
clientcert = "/run/secrets/rabbitmq/cert/keystore.p12"
clientcert_password = "/run/secrets/rabbitmq/password"
cacert = "/run/dch-ca/dch-root-ca.crt"
[firefly]
url = "https://firefly.pyrocufflink.blue"
token_file = "/run/secrets/xactmon/firefly.token"
error_if_duplicate_hash = false