Commit log

b4391f1 Fix copy-paste error

Click to expand commit body
These lines won't work because not processing an iq or anything with a node
here.  Set up sentry in a sensible way for messages.

Stephen Paul Weber created

4cc98aa This is not really an error, it just means you're all done

Stephen Paul Weber created

8cb2f01 Save legacy session for Bitcoin flow

Click to expand commit body
This is not a permanent solution, but for now it will allow Bitcoin flow users
to get the same message from the cronjob that legacy web flow users get, and
thus complete their signup using the legacy web flow.

Eventually we'll want to reverse this and direct every Bitcoin activation via a
new end flow.

Stephen Paul Weber created

0693d5a No tel picker yet, so just go to the webpage

Click to expand commit body
Direct users to the homepage if they haven't selected a tel yet.  Not what we
want eventually, but better than crashing.

Stephen Paul Weber created

e97ecf1 Merge branch 'create-reset-sip-account'

Click to expand commit body
* create-reset-sip-account:
  Create or reset SIP account
  Factor out Catapult connection

Stephen Paul Weber created

3a27852 Create or reset SIP account

Click to expand commit body
New command to create or reset SIP account.  Always try create first because
it's faster and more common, fall back to search the list for our account if
that fails due to conflict.  Password is always randomly generated from the
mnemonicode word list.

Stephen Paul Weber created

4178a87 Factor out Catapult connection

Click to expand commit body
So that every object which needs to talk to Catapult does not need to know
everthing about it.

Stephen Paul Weber created

a9ebca9 Usage command

Click to expand commit body
Customer has a CustomerUsage which can fetch data to build a UsageReport
which returns a jabber:x:data form "table" as per spec for per-day in
the last month.

Minutes come from cdr table in postgresql.
Messages come from redis.

Stephen Paul Weber created

51897c8 Catch more exception in web-register command and send user to sentry

Stephen Paul Weber created

c9a8aa5 Add Sentry

Click to expand commit body
Capture in #panic and a few other places, add customer and route context
as well as some initial breadcrumbs in the register command.

Stephen Paul Weber created

7794a8e Add missing require

Click to expand commit body
To allow these modules to be used in isolation (especially when
testing).

Stephen Paul Weber created

4ffa367 Refactor BuyAccountCreditForm

Click to expand commit body
add_to_form no longer needs a promise or a network call, instead we use
a factory to get that data up front and inject the dependency.

New BuyAccountCreditForm#parse to get the relevant data back out of an
XMPP form.

Some changes to Transaction and sgx_jmp.rb to use the new method
semantics.

Stephen Paul Weber created

b6ad9e2 Merge branch 'count-outbound-messages'

Click to expand commit body
* count-outbound-messages:
  Store customer outbound messages/day for 1 year in redis

Stephen Paul Weber created

bc13638 Store customer outbound messages/day for 1 year in redis

Click to expand commit body
Storage is a sorted set, with dates as the values and message counts as the
scores.  Use zincrby to increment the message count by 1 on each new message.
Use zremrangebylex to remove all items older than 1 year so the set does not
grow unboundedly.

Dates with known message counts can be found using zrangebylex. Scores can be
had one at a time with zscore.  In redis 6.2+ zrange bylex withscores or zmscore
may also be used, but that is only in Debian experimental at time of writing.

Stephen Paul Weber created

51121d1 Merge branch 'wording'

Click to expand commit body
* wording:
  Update instructions to be closer to what is in current web signup

Stephen Paul Weber created

d40dfe0 Disco info with XEP-0157

Click to expand commit body
Allows us to advertise support address, for eventual inclusion in Cheogram adhoc
bot help output.

Stephen Paul Weber created

6100ac7 Update instructions to be closer to what is in current web signup

Stephen Paul Weber created

c85df3f Reply to old bot address

Click to expand commit body
Keep this deprecation message in so that users with this still in roster know
where bot has moved.

Stephen Paul Weber created

35c6016 Merge branch 'pass-messages'

Click to expand commit body
* pass-messages:
  Pass messages to and from the SGX

Stephen Paul Weber created

9fcf88e Merge branch 'web-register-start'

Click to expand commit body
* web-register-start:
  Hidden command to allow jmp-register to start a web registration

Stephen Paul Weber created

a35d429 Hidden command to allow jmp-register to start a web registration

Click to expand commit body
This is the command jmp-register will use to tell use a certain claimed JID
wants a certain tel.  We relay that to cheogram and save in web_register_manager
the tel associated with the JID cheogram assigns to the target.

Stephen Paul Weber created

5208fbd fix ci

Stephen Paul Weber created

48ce76d Pass messages to and from the SGX

Click to expand commit body
Rewriting the from/to as appropriate.

Stephen Paul Weber created

a0bb2b9 Set execting status properly

Stephen Paul Weber created

3c79805 ergonomics for testing credit card

Stephen Paul Weber created

94bb851 Merge branch 'create_customer_id'

Click to expand commit body
* create_customer_id:
  Create customer_id if it does not exist before we start registration
  Break out CustomerPlan
  Inject BackendSgx per customer

Stephen Paul Weber created

a3f4e27 Create customer_id if it does not exist before we start registration

Stephen Paul Weber created

dabca13 Break out CustomerPlan

Click to expand commit body
We had Plan and Customer but the relationship between the two lived
entirely in Customer, which was growing quite large. Break that
relationship out into its own concept and give it a name.

Stephen Paul Weber created

e5b1edb Inject BackendSgx per customer

Click to expand commit body
Instead of being a singleton that represents the entire relationship
with the backend, the object is now per-customer (since any meaningful
method requires a customer anyway for the from JID at least) and can be
delegated to directly from Customer.

Stephen Paul Weber created

829a57b Merge branch 'invites'

Click to expand commit body
* invites:
  Block repeated invite code tries by customer id
  Allow user to activate using invite code

Stephen Paul Weber created

e2b5bdf Block repeated invite code tries by customer id

Click to expand commit body
So it's not as trivial to brute-force the space and find an open one. Limit is
10 tries per hour.

Stephen Paul Weber created

9a30233 Allow user to activate using invite code

Click to expand commit body
Checks if the code is available and marks it used, then activates. Tracks who
invited and who used in the table for later reward or punishment.

Stephen Paul Weber created

8b93d5a Fix for credit card flow

Stephen Paul Weber created

3b4e787 Merge branch 'set-forwarding-on-finish'

Click to expand commit body
* set-forwarding-on-finish:
  Configure number for inbound calls

Stephen Paul Weber created

3b07712 Fixed code to expect 201 but forgot to update tests

Stephen Paul Weber created

f7efec3 Merge branch 'import-to-catapult'

Click to expand commit body
* import-to-catapult:
  Import newly-purchased numbers to Catapult

Stephen Paul Weber created

6fb4b01 Merge branch 'show-ratecenter-during-signup'

Click to expand commit body
* show-ratecenter-during-signup:
  Show rate center during signup

Stephen Paul Weber created

9401086 Merge branch 'activated-users-to-finish'

Click to expand commit body
* activated-users-to-finish:
  Test that registered users get the Registered step
  Already activated user goes straight to finish

Stephen Paul Weber created

56403f9 Show rate center during signup

Click to expand commit body
Fetch from bandwidth so we can show it to the user, in case they happen to care.

Stephen Paul Weber created

f4ece3c Test that registered users get the Registered step

Stephen Paul Weber created

56ce853 Already activated user goes straight to finish

Click to expand commit body
If not registered, but activated, they must have paid but failed to get their
number setup. Maybe the number was already taken. Maybe they paid manually. In
any case we can skip all intervening steps and go straight to buying and
configuring their number for them.

Stephen Paul Weber created

0dfe909 Import newly-purchased numbers to Catapult

Click to expand commit body
Since we still use Catapult ("v1") for voice application, we need to import all
numbers there and set their applicationId to match.

Stephen Paul Weber created

eecf454 Configure number for inbound calls

Click to expand commit body
Adds the settings to redis that jmp-fwdcalls will use to route inbound calls.
Not done by the sgx registration even though fwdcalls is currently a plug-over,
and of course won't be once fwdcalls dies so do it here.

Stephen Paul Weber created

c69a621 Merge branch 'new-signup-credit-card-decline'

Click to expand commit body
* new-signup-credit-card-decline:
  Block repeated declines for 24 hours
  Handle credit card decline

Stephen Paul Weber created

4f0083d Block repeated declines for 24 hours

Stephen Paul Weber created

b0094db Handle credit card decline

Click to expand commit body
Show user error on decline and give the chance to pick another card.

Stephen Paul Weber created

221f4dc Merge branch 'new-signup-add-credit-card'

Click to expand commit body
* new-signup-add-credit-card:
  Happy path for credit card signup
  Panic should work on any value for error
  Allow getting default payment method, not just index
  Object representing the backend SGX to use
  Stop polluting Object namespace with Blather DSL
  Work in the presence of em-synchrony
  Helper to allow ordering phone number from Bandwidth v2
  Helper to get a promise that resolves after N seconds
  Every payment kind will need the plan, so put it at the top
  Use registration pattern for Payment kinds
  Method to bill the plan of a Customer
  Use Forwardable for simple delegations
  Helper to allow using sync-style code in a Promise context
  New signup: go to web to choose credit card
  OOB helper
  Reject promise on stanza error
  Fix typo

Stephen Paul Weber created

8e4c1cc Happy path for credit card signup

Click to expand commit body
Assuming credit card payment works, you can now activate a new account by paying
with one.

Stephen Paul Weber created

7f1efc3 Panic should work on any value for error

Stephen Paul Weber created

35f09f1 Allow getting default payment method, not just index

Stephen Paul Weber created