gotosocial/internal/processing/account
Vyr Cossont 5b765d734e
[feature] Push notifications (#3587)
* Update push subscription API model to be Mastodon 4.0 compatible

* Add webpush-go dependency

# Conflicts:
#	go.sum

* Single-row table for storing instance's VAPID key pair

* Generate VAPID key pair during startup

* Add VAPID public key to instance info API

* Return VAPID public key when registering an app

* Store Web Push subscriptions in DB

* Add Web Push sender (similar to email sender)

* Add no-op push senders to most processor tests

* Test Web Push notifications from workers

* Delete Web Push subscriptions when account is deleted

* Implement push subscription API

* Linter fixes

* Update Swagger

* Fix enum to int migration

* Fix GetVAPIDKeyPair

* Create web push subscriptions table with indexes

* Log Web Push server error messages

* Send instance URL as Web Push JWT subject

* Accept any 2xx code as a success

* Fix malformed VAPID sub claim

* Use packed notification flags

* Remove unused date columns

* Add notification type for update notifications

Not used yet

* Make GetVAPIDKeyPair idempotent

and remove PutVAPIDKeyPair

* Post-rebase fixes

* go mod tidy

* Special-case 400 errors other than 408/429

Most client errors should remove the subscription.

* Improve titles, trim body to reasonable length

* Disallow cleartext HTTP for Web Push servers

* Fix lint

* Remove redundant index on unique column

Also removes redundant unique and notnull tags on ID column since these are implied by pk

* Make realsender.go more readable

* Use Tobi's style for wrapping errors

* Restore treating all 5xx codes as temporary problems

* Always load target account settings

* Stub `policy` and `standard`

* webpush.Sender: take type converter as ctor param

* Move webpush.MockSender and noopSender into testrig
2025-01-23 16:47:30 -08:00
..
account.go [chore] Add interaction filter to complement existing visibility filter (#3111) 2024-07-24 12:27:42 +01:00
account_test.go [feature] Fetch + create domain permissions from subscriptions nightly (#3635) 2025-01-08 11:29:40 +01:00
alias.go [performance] minimise log field allocations (#3529) 2024-11-11 15:45:19 +00:00
alias_test.go [bugfix] Prevent URL + URI for same account being used as alias target (#2545) 2024-01-20 12:45:43 +01:00
block.go [performance] update remaining worker pools to use queues (#2865) 2024-04-26 13:50:46 +01:00
bookmarks.go [chore] Add interaction filter to complement existing visibility filter (#3111) 2024-07-24 12:27:42 +01:00
delete.go [feature] Push notifications (#3587) 2025-01-23 16:47:30 -08:00
delete_test.go [feature] New user sign-up via web page (#2796) 2024-04-11 11:45:53 +02:00
export.go [performance] cache more database calls, reduce required database calls overall (#3290) 2024-09-16 16:46:09 +00:00
follow.go [chore] media pipeline improvements (#3110) 2024-07-17 15:26:33 +00:00
follow_request.go [performance] update remaining worker pools to use queues (#2865) 2024-04-26 13:50:46 +01:00
follow_test.go [performance] update remaining worker pools to use queues (#2865) 2024-04-26 13:50:46 +01:00
get.go [feature/frontend] Respect prefers-reduced-motion for avatars, headers, and emojis (#3118) 2024-07-21 14:22:08 +02:00
import.go [bugfix] Be more lenient when parsing mastodown following.csv (#3311) 2024-09-16 20:39:15 +02:00
interactionpolicies.go [feature] Allow users to set default interaction policies per status visibility (#3108) 2024-07-17 16:46:52 +02:00
lists.go [performance] cache more database calls, reduce required database calls overall (#3290) 2024-09-16 16:46:09 +00:00
move.go [bugfix] boost and account recursion (#2982) 2024-06-10 19:42:41 +01:00
move_test.go [bugfix] boost and account recursion (#2982) 2024-06-10 19:42:41 +01:00
mute.go [feature] User muting (#2960) 2024-06-06 16:38:02 +00:00
note.go [feature] Support setting private notes on accounts (#1982) 2023-07-27 10:30:39 +02:00
relationships.go [feature] Option to hide followers/following (#2788) 2024-04-02 10:42:24 +01:00
rss.go [feature/frontend] Add options to include Unlisted posts or hide all posts (#3272) 2024-09-09 18:07:25 +02:00
rss_test.go [feature] add support for receiving federated status edits (#3597) 2024-12-05 13:35:07 +00:00
statuses.go [feature/frontend] Add options to include Unlisted posts or hide all posts (#3272) 2024-09-09 18:07:25 +02:00
themes.go [feature] User-selectable preset CSS themes for accounts (#2777) 2024-03-25 17:32:24 +00:00
themes_test.go [feature] User-selectable preset CSS themes for accounts (#2777) 2024-03-25 17:32:24 +00:00
update.go [chore] Upgrade golangci-lint, ignore existing int overflow warnings (#3420) 2024-10-16 14:13:58 +02:00
update_test.go [feature] Self-serve email change for users (#2957) 2024-06-06 14:43:25 +01:00