A built-in browser notifier: Web Push, with in-tab notifications as the fallback #209
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#209
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A notifier that ships inside Postulo and reaches the person in their browser, so notifications work with no mail setup and no third-party plugin.
Today the only built-in notifier is Email, which needs working mail. Apprise (
postulo-apprise) covers everything else, but it has to be installed and set up. A browser notification needs neither: the person allows it once in the browser they use Postulo in.Two ways of delivering, both in one plugin
aes128gcm) and signed with a VAPID key (RFC 8292).Shape
postulo.plugins.browser:notifier, namebrowser; its own package and its ownlocale/, like every other built-in (#126, #129);send()pushes when it can and otherwise leaves the notice for an open tab;POSTULO_FIELD_KEY/SECRET_KEY, the same material that encrypts connection secrets. Rotating it invalidates the subscriptions and their encryption together, which is already what happens to every other connection secret. There is no separate key to back up or lose.httpsonly, private addresses refused unless the operator allows them)./sw.jsat the site root, served with the scope the service worker needs;app.js, since the CSP allows no other script source.form_attributes()hands values (the VAPID public key, the worker's address) to the connection page asdata-attributes. No template checks the plugin's name.Accessibility and honesty
Done when
test_plugin_manifestscounts seventeen, andREACHING_PASTrecords why it reachespostulo.notifications.