~singpolyma/sgx-jmp

Thin proxy SGX that represents JMP.chat itself
Make sure we hold the same conn for listen forever
Need to sync inside hold
Clear idle postgres connections periodically

You can also use your local clone with git send-email.

Make sure to use git clone --recursive on this repository to get the submodule.

sudo apt install postgresql-11 postgresql-client
sudo -u postgres psql
CREATE DATABASE jmp;
GRANT ALL ON DATABASE jmp TO unix_user;
\c jmp
CREATE EXTENSION btree_gist;
CREATE EXTENSION citext;
CREATE EXTENSION pgcrypto;
exit
sudo apt install sqitch
cd schemas
sqitch deploy
bundle install --path=.gems
cp config.dhall.sample config.dhall
$EDITOR config.dhall # Set up appropriately for local prosody, braintree, etc
bundle exec ruby sgx_jmp.rb ./config.dhall

#Helpful keys for registration

If you want to register with the backend without going through braintree or electrum, you can set the following two keys in Redis:

SET "jmp_customer_id-<USER>\\40<DOMAIN>@cheogram" 0001
SET "jmp_customer_jid-0001" "jmp_customer_id-<USER>\\40<DOMAIN>@cheogram"

Where cheogram is whatever the component is called, and 0001 is whatever you want the user's customer ID to be.

And then in psql: INSERT INTO plan_log (customer_id, plan_name, date_range) VALUES ('0001', 'plan_name', tsrange('1990-01-01', '2023-01-01'));

These together will ensure that the customer already has an ID, and so braintree doesn't need to be asked to create one, and the plan is activated, so we don't need to attempt to accept payment.

Then when you run "register" from cheogram, it will skip right to the end and allow you to begin routing to this component.