oncall-engine/engine/apps
Vadim Stepanov 6b87ad74e9
Enforce cloud connection to send push notifications on OSS (#1132)
This PR modifies how OSS instances send mobile app push notifications.
It also adds frontend warnings when user is trying to use the mobile app
without connecting to cloud.

- [x] Add public API authentication to `FCMRelayView` and throttle the
view to 300 push notifications per instance per minute. This is similar
to how SMS and phone call notifications work on OSS instances.
- [x] Add frontend warnings based on cloud connectivity
- [x] Fix/add frontend tests
- [x] Add tests for FCMRelayView and mobile app backend

## Screenshots

When a user tries to connect the mobile app in his settings and cloud is
not connected (clicking "Connect Cloud OnCall" redirects to the "Cloud"
tab):

<img width="1088" alt="Screenshot 2023-01-12 at 18 48 58"
src="https://user-images.githubusercontent.com/20116910/212156591-86906020-eddf-43f1-9402-7ebb7547c7e6.png">

When a user tries to use mobile push notifications as a personal
notification step and cloud is not connected:

<img width="764" alt="Screenshot 2023-01-12 at 19 01 10"
src="https://user-images.githubusercontent.com/20116910/212157580-9abb0758-79ad-4316-b8cd-15b4fff01502.png">

Now on the "Cloud" tab there's some info about the mobile app (the last
section at the bottom of the page):

<img width="1245" alt="Screenshot 2023-01-12 at 18 49 10"
src="https://user-images.githubusercontent.com/20116910/212156997-c8b70dd5-bf15-4bc7-8eb8-9decdb8ecc80.png">

After connecting to the cloud instance, everything goes back to active
and it's now possible to connect the mobile app:

<img width="1091" alt="Screenshot 2023-01-12 at 19 08 27"
src="https://user-images.githubusercontent.com/20116910/212158811-60d49888-4714-4c0e-850f-3ff6a11a117a.png">

After connecting the app the warning is gone:

<img width="764" alt="Screenshot 2023-01-12 at 19 07 00"
src="https://user-images.githubusercontent.com/20116910/212158614-677ab889-127f-4d64-bacc-0c26887f3097.png">
2023-01-19 11:15:56 +00:00
..
alerts Add escalation chain option when creating a direct page alert group (#1143) 2023-01-18 12:58:26 -03:00
api Allow messaging backends to be enabled/disabled per organization (#1151) 2023-01-18 15:52:25 +00:00
api_for_grafana_incident World, meet OnCall! 2022-06-03 08:09:47 -06:00
auth_token Org soft-delete (#1073) 2023-01-05 12:42:55 +08:00
base Allow messaging backends to be enabled/disabled per organization (#1151) 2023-01-18 15:52:25 +00:00
email Allow no-auth SMTP connection for email notifications (#759) 2022-11-03 16:18:37 +00:00
grafana_plugin Integration with grafana incident (#1081) 2023-01-17 13:04:50 +01:00
heartbeat Insight logs (#348) 2022-08-24 12:04:44 +05:00
integrations Add escalation chain option when creating a direct page alert group (#1143) 2023-01-18 12:58:26 -03:00
mobile_app Enforce cloud connection to send push notifications on OSS (#1132) 2023-01-19 11:15:56 +00:00
oss_installation Add RBAC Support (#777) 2022-11-29 09:41:56 +01:00
public_api Add alert groups state filter (#1133) 2023-01-17 10:28:29 +00:00
schedules Schedule score backend (#338) 2023-01-04 16:49:58 +00:00
slack Send a Slack DM when user is not in channel (#1144) 2023-01-18 16:08:15 +00:00
social_auth Support of oncall-gw (#741) 2022-11-08 14:43:22 +08:00
telegram remove send_link_to_channel_message_or_fallback_to_full_incident 2023-01-06 11:34:11 +00:00
twilioapp Add simple check if using API key instead of AUTH token 2022-11-09 21:52:42 -07:00
user_management Integration with grafana incident (#1081) 2023-01-17 13:04:50 +01:00
__init__.py World, meet OnCall! 2022-06-03 08:09:47 -06:00