Commit Graph

648 Commits (8e1e0b37404492aaa7744d06e56c90b5111e1836)

Author SHA1 Message Date
Karmanyaah Malhotra b9badee6db remove TTL, will make a seperate PR 2023-02-15 03:38:24 -06:00
Karmanyaah Malhotra c6b64df662 remove ttl 2023-02-15 03:31:59 -06:00
binwiederhier 0df3e3e4f5 Merge branch 'main' into user-account 2023-02-14 21:22:46 -05:00
binwiederhier 8d7ff4d7db SMTP server tests 2023-02-14 20:56:02 -05:00
Karmanyaah Malhotra 7c5b9c0e62 only log expiry if applicable 2023-02-14 14:21:33 -06:00
Karmanyaah Malhotra 6bfe4a9779 Bill to visitor and set TTL in response 2023-02-14 14:07:02 -06:00
Karmanyaah Malhotra fb2fa4c478 Fix m.Expires and prune stale topics based on lastVisitorExpires 2023-02-14 14:00:43 -06:00
Karmanyaah Malhotra 28b654ae27 Keep track of lastVisitor to a topic 2023-02-14 13:58:13 -06:00
binwiederhier 80292f1f4d Tiny changes 2023-02-14 14:26:30 -05:00
Karmanyaah Malhotra d686e1ee77 Use visitor instead of UserID in topicSubscription 2023-02-14 13:07:32 -06:00
binwiederhier 66cf54e458 Fix delayed messages expiry, thanks to @karmanyaahm 2023-02-14 14:05:41 -05:00
binwiederhier 610adb062b More docs 2023-02-14 13:58:49 -05:00
binwiederhier 70aa384bc3 Docs for access tokens 2023-02-13 21:35:58 -05:00
binwiederhier 355424c0da Fix trace logging 2023-02-13 13:20:05 -05:00
binwiederhier bed60b71ff Tester feedback 2023-02-12 21:05:24 -05:00
binwiederhier cc309e87e9 Remove awkward subscription id 2023-02-12 14:09:44 -05:00
binwiederhier 9131d3d521 Token tests 2023-02-12 12:19:46 -05:00
binwiederhier 6b4971786f Fix intermittent test failure; add test for expiring messages after reservation removal 2023-02-12 12:08:56 -05:00
binwiederhier 1f010acb30 Tests for manager.go 2023-02-12 08:29:44 -05:00
binwiederhier 8bf64d8723 A few manager tests 2023-02-11 22:14:09 -05:00
binwiederhier 73b0161ff7 Remove self-review todo 2023-02-11 20:45:04 -05:00
binwiederhier 669d269fd9 Popup click should not open page 2023-02-11 10:52:19 -05:00
binwiederhier b026e45189 Self-review (cont'd) 2023-02-11 10:49:37 -05:00
binwiederhier 7e38419cdb Fix slow test 2023-02-10 21:48:23 -05:00
binwiederhier cfcc3793c5 Fix 404 race when uploading attachments 2023-02-10 21:44:12 -05:00
binwiederhier 5724bdf436 Fix UI bugs 2023-02-10 21:19:44 -05:00
binwiederhier 79f9e78c37 More review stuff 2023-02-09 21:51:12 -05:00
binwiederhier d8dd4c92bf More RWLock. Jeff wins again 2023-02-09 20:49:45 -05:00
binwiederhier dc77efc31a Fix linting 2023-02-09 17:21:12 -05:00
binwiederhier e6bb5f484c Self-review, round 2 2023-02-09 15:24:12 -05:00
binwiederhier bcb22d8d4c Added disallowed-topics 2023-02-09 08:32:51 -05:00
binwiederhier b37cf02a6e Code review (round 1) 2023-02-08 22:57:10 -05:00
binwiederhier 7706bd9845 Fix racing test 2023-02-08 20:00:10 -05:00
binwiederhier b17a7cfa95 Remove unused var 2023-02-08 15:26:42 -05:00
binwiederhier e1a4a74905 Auth rate limiter 2023-02-08 15:20:44 -05:00
binwiederhier bf96d21d67 Add more logs 2023-02-07 22:45:55 -05:00
binwiederhier 2f0fdf1252 Make logging more efficient 2023-02-07 22:10:51 -05:00
binwiederhier d44a11325d More visitor log fields 2023-02-07 16:20:49 -05:00
binwiederhier a32e8abc12 "ntfy tier" CLI command 2023-02-07 12:02:25 -05:00
binwiederhier e3b39f670f WIP tier CLI 2023-02-06 22:38:22 -05:00
binwiederhier 9b54f63eb1 Error logging 2023-02-06 16:01:32 -05:00
binwiederhier 7cc8c81bd8 Continued logging work 2023-02-05 23:34:27 -05:00
binwiederhier 27bd79febf log.go 2023-02-04 21:26:40 -05:00
binwiederhier 5d6051c490 Logging WIP 2023-02-04 21:26:01 -05:00
binwiederhier a6641980c2 WIP: Logging 2023-02-03 22:21:50 -05:00
binwiederhier af4175a5bc Fix test, fix #598 2023-02-02 19:07:16 -05:00
binwiederhier 0885951a67 JS error handling 2023-02-02 15:19:37 -05:00
binwiederhier 180a7df1e7 No ripple in dialogs 2023-01-31 22:12:16 -05:00
binwiederhier 07cdf2bc7a Reserve dialogs 2023-01-31 21:39:30 -05:00
binwiederhier 259293f9b3 JS constants 2023-01-30 13:10:45 -05:00
binwiederhier ef8f7c9884 todo 2023-01-30 12:45:53 -05:00
binwiederhier b10b0f8a6a Enable automatic tax 2023-01-30 09:30:51 -05:00
binwiederhier d717bf39ac "ntfy token" CLI 2023-01-29 21:42:40 -05:00
binwiederhier c12ecb9f21 More tests 2023-01-29 20:11:58 -05:00
binwiederhier 00af52411c More billing unit tests 2023-01-29 16:15:08 -05:00
binwiederhier f4c54a1643 Associate file downloads with uploader 2023-01-29 15:11:26 -05:00
binwiederhier 0e36ac84d8 Test anonymous user is same as non-tier user 2023-01-28 21:27:05 -05:00
binwiederhier 92d563371c No more v.user races 2023-01-28 20:43:06 -05:00
binwiederhier e596834096 Add "last access" to access tokens 2023-01-28 20:29:06 -05:00
binwiederhier 000bf27c87 Speed up tests, hopefully fix races 2023-01-28 09:03:14 -05:00
binwiederhier 16c14bf709 Add Access Tokens UI 2023-01-27 23:10:59 -05:00
binwiederhier 62140ec001 Rate limiting refactor, race fixes, more tests 2023-01-27 11:33:51 -05:00
binwiederhier ccc2dd1128 Get rid of v.messages counter 2023-01-27 10:06:48 -05:00
binwiederhier 9e9caee639 (Hopefully) remove statsQueue races 2023-01-27 09:59:16 -05:00
binwiederhier 22c66203a0 Reset message limiter, test 2023-01-27 09:42:54 -05:00
binwiederhier 810a29ea72 Fix go vet 2023-01-26 23:10:58 -05:00
binwiederhier c874a641df Rate limits make sense now! 2023-01-26 22:57:18 -05:00
binwiederhier 03312559a7 Limiter 2023-01-26 11:24:37 -05:00
binwiederhier 593e0748a8 Payment checkout test, rate limit resetting on tier change; failing 2023-01-25 22:26:04 -05:00
binwiederhier 236254d907 Add bandwidth limit to tier; fix display name sync issues 2023-01-25 10:05:54 -05:00
binwiederhier 1771cb3fdb No flickering for sync topic 2023-01-24 15:31:39 -05:00
binwiederhier eecd689ad5 Fix sync display name and delete after issue 2023-01-24 15:05:19 -05:00
binwiederhier a278297f28 Fix websocket issue 2023-01-24 14:44:14 -05:00
binwiederhier 0d537c8a24 Reserve icons 2023-01-23 20:04:04 -05:00
binwiederhier bce71cb196 Kill existing subscribers when topic is reserved 2023-01-23 14:05:41 -05:00
binwiederhier e82a2e518c Add password confirmation to account delete dialog, v1/tiers test 2023-01-23 10:58:39 -05:00
binwiederhier 954d919361 Delayed deletion 2023-01-22 22:21:30 -05:00
binwiederhier 9c082a8331 Introduce text IDs for everything (esp user), to avoid security and accounting issues 2023-01-21 23:15:22 -05:00
binwiederhier 88abd8872d Changing password should confirm the old password 2023-01-21 20:52:16 -05:00
binwiederhier c66a9851cc Re-add password confirmation 2023-01-21 20:07:39 -05:00
binwiederhier 14f3571e67 More TODOs 2023-01-21 16:19:48 -05:00
binwiederhier 5a7cedce95 More TODOs, hurray 2023-01-21 16:02:56 -05:00
binwiederhier 5b14c76e54 Revert home page to existing page 2023-01-21 08:55:31 -05:00
binwiederhier 31a3bb7cd6 Payments webhook test, delete attachments/messages when reservations are removed, 2023-01-20 22:47:37 -05:00
binwiederhier 45b97c7054 Deleting account deletes subscription 2023-01-19 14:03:39 -05:00
binwiederhier 4e51a715c1 Allow mocking the Stripe API 2023-01-18 23:01:26 -05:00
binwiederhier 3bd6518309 Fix a bunch of FIXMEs 2023-01-18 15:50:06 -05:00
binwiederhier f945fb4cdd A little polishing, make upgrade banner work when not logged in 2023-01-18 13:46:40 -05:00
binwiederhier cead305a9a Make prettier 2023-01-17 20:21:19 -05:00
binwiederhier 4092f7fd51 Upgrade dialog looks nice now 2023-01-17 19:40:03 -05:00
binwiederhier 695c1349e8 Upgrade dialog 2023-01-17 10:09:37 -05:00
binwiederhier 83de879894 publishSyncEvent, Stripe endpoint changes 2023-01-16 16:35:37 -05:00
binwiederhier 7faed3ee1e Add "Canceled" banner 2023-01-16 10:35:12 -05:00
binwiederhier c06bfb989e Payment stuff, cont'd 2023-01-15 23:29:46 -05:00
binwiederhier 01fd4754f9 WIP: Stripe integration 2023-01-14 06:43:44 -05:00
binwiederhier 7007c0a0bd Docs 2023-01-12 12:04:18 -05:00
binwiederhier 24529bd0ad Rename /access to /reservation 2023-01-12 10:50:09 -05:00
binwiederhier fdee54f921 Account sync in action 2023-01-11 21:38:10 -05:00
binwiederhier 3dd8dd4288 Stats resetter at midnight UTC 2023-01-10 22:51:51 -05:00
binwiederhier 2908c429a5 Set sync_topic in migration 2023-01-10 15:41:08 -05:00
binwiederhier 7e528d9c10 Sync topic (begin), rename user fields 2023-01-09 21:53:21 -05:00
binwiederhier b27c608508 useContext work in JS 2023-01-09 20:37:13 -05:00
binwiederhier a4529617cc Make upgrade banner bigger 2023-01-09 17:56:51 -05:00
binwiederhier a6564fb43c Add "expires" stuff to message cache migration 2023-01-09 16:21:00 -05:00
binwiederhier 3aba7404fc Tiers make sense for admins now 2023-01-09 15:40:46 -05:00
binwiederhier d8032e1c9e Tier based tests 2023-01-08 20:46:46 -05:00
binwiederhier 1f54adad71 Rename plan->tier, topics->reservations, more tests, more todos 2023-01-07 21:04:13 -05:00
binwiederhier df512d0ba2 Add todo 2023-01-07 13:23:45 -05:00
binwiederhier a54a11db88 Plan-based message and attachment expiry 2023-01-07 09:34:02 -05:00
binwiederhier ac4042ca04 Tests for /access endpoints 2023-01-06 10:45:38 -05:00
binwiederhier a51d95743a Reject reservation limits in endpoint 2023-01-05 21:15:10 -05:00
binwiederhier 1e7dd8fc80 TODOs 2023-01-05 20:43:36 -05:00
binwiederhier 7fa63c8e19 Prune excess tokens per user 2023-01-05 20:22:34 -05:00
binwiederhier 60f1882bec Startup queries, foreign keys 2023-01-05 15:20:44 -05:00
binwiederhier 3280c2c440 Upgrade banner 2023-01-04 22:47:12 -05:00
binwiederhier a91da7cf2c Reserved topic stuff 2023-01-04 20:34:22 -05:00
binwiederhier 36c0be1097 Upgrade smtp library, but not tests 2023-01-04 09:31:32 -05:00
binwiederhier 4b9d40464c Replace read/write flags with Permission 2023-01-02 21:12:42 -05:00
binwiederhier 1733323132 Introduce Reservation 2023-01-02 20:08:37 -05:00
binwiederhier e650f813c5 TopicsLimit 2023-01-01 20:42:33 -05:00
binwiederhier 2267d27c9b User-owned ACL entries 2023-01-01 15:21:43 -05:00
binwiederhier 598d0bdda3 Some tests 2022-12-31 16:08:49 -05:00
binwiederhier 0bb3c84b9e More tests 2022-12-31 10:16:14 -05:00
binwiederhier 3d921f4570 Not really an improvemenNot really an improvementt 2022-12-31 09:31:46 -05:00
binwiederhier bd86e3d951 Basic user access endpoint 2022-12-30 14:20:48 -05:00
binwiederhier b131d676c4 Gradient header 2022-12-30 10:31:52 -05:00
binwiederhier 036f08a729 Make homepage slightly nicer looking 2022-12-29 21:53:41 -05:00
binwiederhier f4ffcebb14 User database migration 2022-12-29 13:08:47 -05:00
binwiederhier bd2ec7b2af More manager tests 2022-12-29 11:09:45 -05:00
binwiederhier 57814cf855 Tests 2022-12-29 09:57:42 -05:00
binwiederhier 66cb35b5fc Translations 2022-12-29 08:20:53 -05:00
binwiederhier 9be8be49ef Translations 2022-12-29 02:32:05 -05:00
binwiederhier 3512db1fe7 Test account api (WIP) 2022-12-28 22:16:11 -05:00
binwiederhier 367d024a2d Simplify API endpoints; add endpoint tests 2022-12-28 19:55:11 -05:00
binwiederhier 7ca9afad57 Account API endpoint fixes 2022-12-28 15:51:09 -05:00
binwiederhier f79348817f More tests 2022-12-28 13:46:18 -05:00
binwiederhier a2e474c375 Fix all the tests 2022-12-28 13:28:28 -05:00
binwiederhier d9722a9825 Fix almost all tests 2022-12-27 22:14:14 -05:00
binwiederhier 95a8e64fbb Figure out user manager for account user 2022-12-26 21:27:07 -05:00
binwiederhier dbd8efbf16 Todo 2022-12-25 22:30:58 -05:00
binwiederhier 2fb4bd4975 Display name sync 2022-12-25 22:29:55 -05:00
binwiederhier 7ae8049438 Extend session token from web app 2022-12-25 13:42:44 -05:00
binwiederhier d4c7ad4beb Rename auth package to user; add extendToken feature 2022-12-25 11:41:38 -05:00
binwiederhier 3aac1b2715 Redirect UI if unauthorized API response 2022-12-24 15:51:22 -05:00
binwiederhier 1b39ba70cb Merge branch 'main' into user-account 2022-12-24 12:26:56 -05:00
binwiederhier dd282963c3 Health API endpoint 2022-12-24 12:22:54 -05:00
binwiederhier fb470eec79 Sign up rate limit 2022-12-24 12:10:51 -05:00
binwiederhier 7bd1c6e115 Check username taken 2022-12-24 08:15:39 -05:00
binwiederhier 7a507505aa Merge branch 'main' into user-account 2022-12-23 09:37:47 -05:00
binwiederhier 92d7e5c58a Bump version 2022-12-23 08:38:45 -05:00
binwiederhier b5e2c83fba stuff 2022-12-21 21:55:39 -05:00
binwiederhier d982ce13f5 UI work, config.js stuff 2022-12-21 13:19:07 -05:00
binwiederhier cc55bec521 Write stats to user table asynchronously 2022-12-20 21:18:33 -05:00
binwiederhier 2f567af80b more TODOs, IP basis section 2022-12-19 22:19:44 -05:00
binwiederhier 2b78a8cb51 Associate messages with a user 2022-12-19 21:42:36 -05:00
binwiederhier 84785b7a60 Restructure limits 2022-12-19 16:22:13 -05:00
binwiederhier 6598ce2fe4 Limits 2022-12-19 09:59:32 -05:00
binwiederhier 42e46a7c22 Limit work 2022-12-18 14:35:05 -05:00
binwiederhier 56ab34a57f v1/account API response, rate limiting bla 2022-12-17 23:54:19 -05:00
binwiederhier ac56fa36ba Plan stuff WIPWIPWIP 2022-12-17 15:17:52 -05:00
binwiederhier 8752680233 Account delete, mock user stats UI 2022-12-17 13:49:32 -05:00
binwiederhier 81a8efcca3 Change password, delete account, etc. 2022-12-15 22:07:04 -05:00
binwiederhier c2f16f740b Stuff 2022-12-14 23:11:22 -05:00
binwiederhier 4bf2fb85e3 Bla 2022-12-13 15:19:40 -05:00
binwiederhier 4e4d410803 TODOs 2022-12-12 14:52:37 -05:00
binwiederhier cf68414c40 Merge branch 'main' into user-account 2022-12-12 11:12:05 -05:00
binwiederhier 67221b015d Changelog 2022-12-12 09:55:17 -05:00
Nick Farrell 1235ea5bb5
Use prepared statement for bulk writes
When executing the same statement multiple times, avoid
the overhead of re-parsing the statement for each insert.
2022-12-12 14:13:40 +11:00
Philipp Heckel 92bf7ebc52 blerp 2022-12-08 20:50:48 -05:00
Philipp Heckel c5b6971447 OMG all the things are horrible 2022-12-07 21:26:18 -05:00
Philipp Heckel 8dcb4be8a8 Token login 2022-12-07 20:44:20 -05:00
Philipp Heckel d499d20a9c Token stuff 2022-12-03 15:20:59 -05:00
Philipp Heckel 2772a38dae WIPWIPWIP 2022-12-02 15:37:48 -05:00
Philipp Heckel 679b075ecc Fix #503, bump version for release 2022-11-17 20:47:27 -05:00
Philipp Heckel 497f871447 Docs 2022-11-16 10:33:12 -05:00
Philipp Heckel ad860afb8b Polish async batching 2022-11-16 10:28:20 -05:00
Philipp Heckel b4933a5645 WIP: Batch message INSERTs 2022-11-15 14:24:56 -05:00
Philipp Heckel a43a4aea5e Docs 2022-11-12 14:41:28 -05:00
Philipp Heckel 54eae00774 Intermittent test failure 2022-10-09 08:53:40 -04:00
Philipp Heckel 16ad94441b Personal preference 2022-10-08 17:58:05 -04:00
Karmanyaah Malhotra 3b29294679 minor modification to tests involving ips 2022-10-07 20:27:22 -05:00
Karmanyaah Malhotra de2ca33700 recommended fixes [1 of 2] 2022-10-07 16:17:04 -05:00
Karmanyaah Malhotra c2382d29a1 refactor visitor IPs and allow exempting IP Ranges
Use netip.Addr instead of storing addresses as strings. This requires
conversions at the database level and in tests, but is more memory
efficient otherwise, and facilitates the following.

Parse rate limit exemptions as netip.Prefix. This allows storing IP
ranges in the exemption list. Regular IP addresses (entered explicitly
or resolved from hostnames) are IPV4/32, denoting a range of one
address.
2022-10-05 16:04:42 -05:00
Philipp Heckel 5014bba0b3 Replace interface{} 2022-10-01 16:31:48 -04:00
Philipp Heckel bddde5c637 Bump Go version, Generics whoooo 2022-10-01 15:50:48 -04:00
Philipp Heckel 419bfecd6f Reformatting, make update 2022-09-27 12:37:02 -04:00
Philipp Heckel 6476978a2e Move things 2022-09-11 16:31:39 -04:00
Philipp Heckel ae1fb74ac6 Merge branch 'main' of github.com:binwiederhier/ntfy into icons 2022-09-10 23:22:48 -04:00
Philipp Heckel b0d58a618e Fix test 2022-08-21 21:32:53 -04:00
Christophe Henry ec64b412a8 Document Matrix pushkey error + set log level to warnings for Matrix errors 2022-08-21 17:03:56 +02:00
Hunter Kehoe 3c5a10de17 combine attachment and icon url regex 2022-07-17 15:47:21 -06:00
Hunter Kehoe 99886d7f66 change icon from object to string 2022-07-17 15:40:24 -06:00
Hunter Kehoe d519fd999b notification icons 2022-07-16 14:13:46 -06:00
Philipp Heckel 88a77cb132 Fix race 2022-07-08 10:16:23 -04:00
Philipp Heckel 10a9aca2a1 Delete expired attachments based on mod time instead of DB entry to avoid races 2022-07-08 10:00:04 -04:00
Philipp Heckel e874f3516e Docs 2022-07-03 19:36:58 -04:00
Philipp Heckel bf8077626e Permissions of unix socket 2022-07-03 19:33:01 -04:00
Koro ed1673beed Set socket mode after creation. 2022-07-03 17:39:08 -04:00
Koro 9f358d4793 Add socket mode to configuration struct. 2022-07-03 15:39:19 -04:00
Philipp Heckel 95bd876be2 Fix HTTP Spec priority header parsing 2022-07-01 09:28:42 -04:00