125 Commits

Author SHA1 Message Date
userAdityaa 3ed021214a feat(infra): pass Blossom S3 config to Zooid with schema key prefix (#69)
Docker / build-and-push-image (backend, backend, coracle/caravel-backend) (push) Failing after 4m47s
Docker / build-and-push-image (frontend, frontend, coracle/caravel-frontend) (push) Successful in 2m41s
Reviewed-on: #69
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-13 15:47:08 +00:00
Jon Staab c0aff5f7cf Refactor billing module
Docker / build-and-push-image (backend, backend, coracle/caravel-backend) (push) Failing after 5m48s
Docker / build-and-push-image (frontend, frontend, coracle/caravel-frontend) (push) Successful in 2m53s
2026-05-12 16:32:05 -07:00
Jon Staab c9c1dd2c4c Group subscription items by price
Docker / build-and-push-image (backend, backend, coracle/caravel-backend) (push) Failing after 4m45s
Docker / build-and-push-image (frontend, frontend, coracle/caravel-frontend) (push) Successful in 2m45s
2026-05-12 15:53:17 -07:00
Jon Staab 679a56edc3 Add docker publish workflow 2026-05-12 14:48:50 -07:00
userAdityaa e7efd9d08b fix: stripe portal dead-end with callback return flow (#67)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-11 20:48:55 +00:00
userAdityaa 0151762362 chore: improve billing customer name using Nostr kind 0 with pubkey fallback (#66)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-08 22:52:13 +00:00
userAdityaa a79c43e17e feat: open payment modal immediately on relay plan upgrade (#64)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-07 18:35:24 +00:00
Jon Staab dbe25c372f Conflate id and schema 2026-05-05 17:47:13 -07:00
userAdityaa 80a86452d0 chore: encrypt tenant NWC URL at rest and stop secret exposure in tenant APIs (#58)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-05 20:42:12 +00:00
userAdityaa b1e3747ddb fix: manual Lightning payment reconciliation with Stripe invoice state (#54)
Reviewed-on: #54
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-01 23:38:57 +00:00
userAdityaa 29f657635c fix: relay sync create/update classification to prevent false create mode on updates (#56)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-05-01 14:21:37 +00:00
userAdityaa 9556a34b19 fix: silent relay state drift when activity bus drops events (#53)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-29 18:36:36 +00:00
userAdityaa 3ecd285290 chore: prevent duplicate Lightning charges by adding durable invoice-level NWC payment guard (#51)
Reviewed-on: #51
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-25 13:02:56 +00:00
userAdityaa 9f8fe7261f fix: add idempotency keys to all Stripe mutation calls (#49)
Reviewed-on: #49
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-25 12:34:35 +00:00
userAdityaa 1aeb15971d fix: silent NWC auto-payment failure messaging in invoice.created fallback (#46)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-23 16:09:50 +00:00
userAdityaa 48f20dc1a5 fix: relay sync failures with delayed bounded retries (#45)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-23 15:32:09 +00:00
userAdityaa c261d8a146 fix: enforce relay member capacity limits from plan definitions (#43)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-22 20:56:03 +00:00
userAdityaa 21b36272b8 feat: add missing SQLite indexes for billing and API hot-path queries (#44)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-22 16:40:09 +00:00
userAdityaa a26bc1127d chore: strict Subdomain Validation with Detailed Error Messages (#42)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-21 13:09:37 +00:00
userAdityaa bc79da34cf feat: encourage payment setup for paid relays without making it required (#40)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-21 13:07:27 +00:00
userAdityaa 38e3a64312 feat: add confirmation dialog for relay deactivate/reactivate with explicit warnings (#41)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-20 21:25:23 +00:00
userAdityaa d209353abd docs: document delinquent relay status across spec (#35)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-20 18:14:14 +00:00
userAdityaa 08c9a2920b feat: display relay provisioning errors in UI (#39)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-20 18:08:47 +00:00
hodlbod c47727b909 Merge pull request 'Add tenant create endpoint' (#27) from create-tenant into master 2026-04-20 15:56:03 +00:00
Jon Staab 0705da8b09 Add tenant create endpoint 2026-04-20 15:55:56 +00:00
userAdityaa ca26d41eef fix: relay secret rotation on infra sync updates (#26)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-18 13:24:08 +00:00
userAdityaa 44f9928070 fix: make stripe webhooks explicitly toggleable with mandatory secret validation (#23)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-17 22:57:37 +00:00
Jon Staab 87dcf53d74 Change default backend port 2026-04-17 13:23:26 -07:00
userAdityaa bcbce5c058 chore: replace placeholder letter badges with actual SVG logos (#24)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-17 18:36:35 +00:00
userAdityaa 90e488d87e feat: add Nostrord to recommended apps (#22)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-17 15:23:20 +00:00
userAdityaa 334f05783f chore: harden relay plan validation to prevent billing bypass and plan-state drift (#20)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-16 21:35:43 +00:00
userAdityaa 145b511f9d docs(auth): document intentional session-style NIP-98 model (#16)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-16 15:40:50 +00:00
userAdityaa bac763c925 fix: invoice error mapping so Stripe 4xx responses are not returned as 500 (#17)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-16 15:39:35 +00:00
userAdityaa 85d37f53ce fix: respect activity_type in set_relay_status and include activate_relay (#14)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-15 20:39:06 +00:00
userAdityaa 072031d0c3 feat(frontend): handle bolt11 generation failures in payment dialog (#11)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-14 23:35:13 +00:00
userAdityaa ce595c8bc5 Ensure all tenants have valid Stripe customer IDs (#5)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-14 23:06:48 +00:00
userAdityaa 1d4034340b fix: invoice.paid reactivating manually deactivated relays (#10)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-14 22:10:40 +00:00
userAdityaa 9a8d02b286 fiat invoice to Lightning msat conversion by applying real-time BTC FX quotes (#7)
Co-authored-by: userAdityaa <aditya.chaudhary1558@gmail.com>
Co-committed-by: userAdityaa <aditya.chaudhary1558@gmail.com>
2026-04-13 21:05:21 +00:00
Jon Staab 2bdd4280d5 Add quick start 2026-04-09 14:22:29 -07:00
Jon Staab 0980523a50 Rework billing 2026-04-09 14:11:30 -07:00
Jon Staab 65dfcaeb6c Implement stripe subscription sync 2026-04-07 11:21:40 -07:00
Jon Staab 05e4eac025 Add Stripe subscription sync 2026-04-01 16:42:14 -07:00
Jon Staab 7e0bd14ef3 Tweak relay status 2026-04-01 16:05:15 -07:00
Jon Staab 3e131b6a1b Allow infra to listen to activity actively 2026-04-01 16:01:10 -07:00
Jon Staab 07dfe86210 Separate command and query 2026-04-01 15:47:56 -07:00
Jon Staab baae65b8b2 Clear billing logic, do some cleanup 2026-04-01 15:23:02 -07:00
Jon Staab d1209c635b Fix zooid sync 2026-03-31 14:42:30 -07:00
Jon Staab 8018950ba9 Use invoice items instead of amount 2026-03-31 11:22:20 -07:00
Jon Staab 15394f55d2 Add invoice payment dialog 2026-03-31 08:02:35 -07:00
Jon Staab 95c971af1a Avoid duplicate syncs 2026-03-31 06:51:53 -07:00