Onboarding gets the full command UI link
This is because they really aren't using the bot, but sending the big link to
everyone is not only ugly, but at least in gajim it makes the link not do anything.
Ideally we'd do something with pushed command list or xhtml-im or fallback
bodies, but using whispers makes that not easy at the moment, and we use
whispers because new customers don't have a cheogram route set yet.
Fix btc script use of Transaction
Get method token from transaction as well
Merge branch '3ds-tx'
* 3ds-tx:
Allow fully 3DS'd transaction from the web
Factor out with_antifraud helper
Factor out a transaction object
Factor out a Customer object
Allow fully 3DS'd transaction from the web
Factor out with_antifraud helper
Factor out a transaction object
Factor out a Customer object
Setup Sentry
I thought the gem did this automatically if I wanted the default config,
but apparently not!
So this requires the SENTRY_DSN env-var to be set, and also in practice
requires SSL_CERT_DIR=/etc/ssl/certs if you don't have the certs
installed in guix as well.
Then we set the worker threads to 0 so it sends synchronously, since
otherwise we're about to quit and it'll just get enqueued and never
flushed.
Change Spam header to Authentication Status header
The way I'm running it is before spam assassin runs right now, but after
opendkim, so instead I just use that status as authoritative.
I've left the Spam Assassin code in there but just commented out for
now, because I may turn it back on later, etc.
Merge branch 'interac'
* interac:
Interac Email Processor
Allow Running BlatherNotify in Reactor
Add PubSub Helpers to BlatherNotify
Resync Guix Dependencies with Gemfile
Fixup Correct Duplicate Addrs
Interac Email Processor
This script is expected to be run by piping an email into it and also
giving a dhall config as the first argument. This will contain the JID
and password to connect as, and the pubsub_node to dump the outcome to.
It doesn't write anything directly, it just produces Atom into the
pubsub channel, and the expectation is that some other process will do
something with it; either display the message or the actual handling of
the transaction.
The Email parsing is intentionally very defensive, because the
expectation is that whatever passes this parsing gets turned into credit
in a user's account, so we want to make sure it's all above-board and
bail early if something looks off. It's better to have to manually do
something than to have it do too much on its own.
We've tried to integrate the transaction values into atom as best as we
can, and we've pulled in schema.org for the few things that didn't have
a correlation.
Allow Running BlatherNotify in Reactor
All of the other scripts spin up the reactor in another thread, and then
they do stuff on this thread and use that reactor to have things happen,
so they are happy to have BlatherNotify handle the reactor.
The script I have coming, though, will instead use EM in the course of
it's operation, so it's beneficial that I be able to spin up
BlatherNotify in my reactor which allows me to block until the process
is done there.
Add PubSub Helpers to BlatherNotify
Since we think we may end up struturing a few scripts to push things
into a PubSub node, I wanted to make that as easy as possible.
So the way this works is that at startup we can give it a pubsub node
and server, and then we can call `BlatherNotify.publish` from then on
giving it the thing we want to publish and it'll just push it to the
node we configured.
Easy.
But if we run into a situation where we want to publish to 2 or more
different pubsub nodes in different situations, we can instead call
`BlatherNotify.pubsub(node, server)` and it'll return us a non-global
thing we can call publish on which will publish to that node
specifically.
Resync Guix Dependencies with Gemfile
I tried running this under Guix and it didn't even build.
It turns out a lint rule got added that doesn't allow license to have
that value any longer, and a few changes to the dependencies of the
project have been made without those same changes being reflected in the
guix definition. Also, one of the dependencies that made it upstream
works upstream, but fails in our definition due to a bundler version
issue.
A few of these changes may even be out of date by now, in terms of both
guix upstream or pointing at branches we don't need to point at due to
upstream taking patches, but I wanted to make the minimal set of changes
here to make the Gemfile and the Guix have the same information.
A later commit can change *both* to point at upstream, etc, if they so
choose.
Fixup Correct Duplicate Addrs
This was a linter error, and I wanted to get it to linter clean before
writing new code.
Modernize CI
This was very complicated... I took the build definition from
jmp-register, and I replaced everywhere I saw jmp-register with jmp-pay.
Oh, and made it point at the right repo.
Crafty, huh!?