Add Home

maren 2023-12-03 04:09:28 +00:00
commit d8c18df2b2

82
Home.md Normal file

@ -0,0 +1,82 @@
Welcome to the Wiki.Things to consider
Write the go service
Turns out its actually a client not a server?
Poll-based vs webhook-based behavior configurable with parameter
Get everyone on twilio account
Done!
Write deployment stuff (make, docker, helm, etc.)
Document:
How to deploy
How configuration details
Special:
Document creating compliant sms marketing campaign on twilio
Document other twilio setup (sort of unknown complexity right now)
jack worked for them and may have better insights, but they were mostly on the security team iirc [T]
HIGH PRIORITY: confirm billing policies to ensure there isnt a ~secret~ clause where they can just let us rack up a bill and invoice us later in case of some kind of catastrophic failure or spam influx
Signal groups getting large feature updates early 2024, this may change the process dynamically
Others: i.e. Discord, WhatsApp, Telegram APIs likely relevant
SMS is important for non-smartphone users and less cross-platform stuff
Can Twilio manage the queue for us?
Get request to API url - how to edge trigger instead of purposeful Gets
Rate limits/Verify seems to be the relevant factor here
Possible name change?
Twilio dev console:
Pin these things:
“Phone numbers”
“Messaging”
No Incoming Messages for Early Rave itself (!)
Code Conventions
Written in Go
SQLite database backend - longer term goal for expansion capabilities
JSON Blob payloads to Twillio flows for actual call and SMS process
Go federation backend being devd by bspars company
Binaries for ARM and X86 on windows, linux, mac
Is queue a priority concern up front?
bspar: yes, because it can have heavy impact on compute speed/resource weight
If queue is easy to implement in binary or container, there is unlikely to be any practical reason to avoid
bspar: should be super simple, simple code - maren wants to learn this
GRPC - HTTP2 (bound to HTTP3 for speed)
Outgoing > incoming > outgoing could lead to blocking issues
Go piping exists - is this practical?
Webhooks likely relevant
Dani: Is it possible to completely circumvent HTTP?
bspar: will require higher reliance on Twilio CRM/Flow process
Twillio Conversations - allow for deeper customization/offloading of different request calls/responses
maren: what is the cost overhead on this possibility?
bspar: there is an upcharge, adds up at scale
Inbound is same cost as outbound, bad actors could potentially hike costs
Blocking/mitigation possibilities:
Opt-Out data: See Link 1 in Random Links heading
Verify Fraud Guard: Link 2 in Random Links
Webhooks seem preferred based on the quickstart: https://www.twilio.com/docs/messaging/quickstart/go?code-sample=code-respond-to-an-incoming-text-message&code-language=Go&code-sdk-version=1.x
Possibly do both?
GORM + SQLite for databasing, and queue
maren: I want to avoid pulling in unnecessary/extraneous libs as much as possible to reduce bloat - these seem functionally appropriate
i.e. no fastHTTP for no functional reason
Container/self-host/k8s cluster hosting considerations
Assignments:
Twilio Investigation - SMS Flow process correct, testing to confirm cost and/relevance to use case
maren: Twilio Studio may be redundant/unnecessary, can this be API?
bspar: would have fun putting Woman™ in Go bin (lol, but also serious)
maren: docs indicate basic requirements for compliance under SMS regulations - 10DLC (10 Digit Long Code - full length localized phone #, faster than 800 free number)
calls cost money - cancelled
how to tell Twilio to talk to endpoint without flow
ATP message service - link 3 (and sub) in Random Links
Licensing
(A)GPL(v3)?)
MIT
Apache?
NVPL - no because it generally leads to inflammatory/reactionary responses and the goal is to have this project be used as widely as possible
Further discussion warranted
Random Links:
Store Opt-Out data on Twilio with Functions and Sync
Verify Fraud Guard | Twilio
Programmable Messaging | Twilio the docs for how to make twilio talk to our go service in the most basic/inexpensive way possible
Receive and Reply to Incoming Messages - Python | Twilio - example python send+reply application (in addition to Go example)
Receive and reply to inbound SMS messages with Go and Gin
Fetch message resources - fetch and send messages