Server setup for Push Notifications
NOTE: this feature is from a big development. See PWA discussion at GitHub.
Is your feature request related to a problem? Please describe.
As a Decidim implementer and sysadmin, I want to know how to configure my server so the app can send push notifications.
Describe the solution you’d like
I want instructions on how to set this up.
At a minimum I’ll need:
- A rake task for generating the VAPID keys (rails decidim:generate)
- Some ENV vars for setting the VAPID_PRIVATE_KEY and VAPID_PUBLIC_KEY
- A doc in Services -> Push notifications explaining how to set this up and these keys in Configure -> Env vars
Describe alternatives you’ve considered
To not have these VAPID keys setup but AFAIK this is necessary for sending push notifications.
See Step 1: Client Side in Google’s guide:
Before subscribing to a user you’ll need to generate a set of “application server keys”, which we’ll cover later on.
The application server keys, also known as VAPID keys, are unique to your server. They allow a push service to know which application server subscribed to a user and ensure that it’s the same server triggering the push messages to that user.
Does this issue could impact on users private data?
It could have some personal data in some notifications (for instance, in the case of Messaging)
- As a Decidim implementer, I have documentation on how to configure push notifications in the server-side
- Given that I’m a Decidim implementer,
When I run rails decidim:generate
Then I have the following output:
VAPID keys correctly generated.
VAPID private key is XXXXXXXXXXXXXX
VAPID public key is XXXXXXXXXXXXXX
Given that I’m a Decidim implementer,
When I configure the VAPID_PRIVATE_KEY and VAPID_PUBLIC_KEY env vars
Then the push notifications service is set up
This proposal has been accepted because:
- Reviewed by @product and accepted in the main project
- It is funded by Barcelona City Council
- Developed by Populate
- Available in release 0.27 via #8738
Report inappropriate content
Is this content inappropriate?