video-calls: Add Zoom Serverto Server OAuth integration.

Adds a second Zoom integration that uses the Zoom Server to Server
OAuth app process. Only one of the two Zoom integrations can be
configured on a Zulip server.

Adds a cache for the access token from the Zoom server so that it
can be used by the server to create meetings for the approximate
duration of the access token

In the web-app compose box, if the user's delivery email does not
match a user on the configured Zoom account for the server to server
integration, then a compose box error banner will be shown when the
error response is received after clicking/selecting the video or
audio call button.

Also updates the production documentation for the both types of Zoom
integration apps (Server to Server and General). The General app
process for Zoom now requires unlisted apps to go through their
review process, which we now have documented.

Fixes #33117.
This commit is contained in:
Lauryn Menard
2025-01-10 19:59:53 +01:00
committed by Tim Abbott
parent e22c786d4b
commit 8561800676
18 changed files with 435 additions and 39 deletions

View File

@@ -5259,11 +5259,20 @@ paths:
- 0 = None
- 1 = Jitsi Meet
- 3 = Zoom
- 3 = Zoom (User OAuth integration)
- 4 = BigBlueButton
- 5 = Zoom (Server to Server OAuth integration)
**Changes**: None added as an option in Zulip 3.0 (feature level 1)
Note that only one of the [Zoom integrations][zoom-video-calls] can
be configured on a Zulip server.
**Changes**: In Zulip 10.0 (feature level 353), added the Zoom Server
to Server OAuth option.
In Zulip 3.0 (feature level 1), added the None option
to disable video call UI.
[zoom-video-calls]: https://zulip.readthedocs.io/en/latest/production/video-calls.html#zoom
waiting_period_threshold:
type: integer
description: |
@@ -17368,18 +17377,25 @@ paths:
realm_video_chat_provider:
type: integer
description: |
Present if `realm` is present in `fetch_event_types`.
The configured [video call provider](/help/start-a-call) for the
organization.
- 0 = None
- 1 = Jitsi Meet
- 3 = Zoom
- 3 = Zoom (User OAuth integration)
- 4 = BigBlueButton
- 5 = Zoom (Server to Server OAuth integration)
**Changes**: None added as an option in Zulip 3.0 (feature level 1)
Note that only one of the [Zoom integrations][zoom-video-calls] can
be configured on a Zulip server.
**Changes**: In Zulip 10.0 (feature level 353), added the Zoom Server
to Server OAuth option.
In Zulip 3.0 (feature level 1), added the None option
to disable video call UI.
[zoom-video-calls]: https://zulip.readthedocs.io/en/latest/production/video-calls.html#zoom
realm_jitsi_server_url:
type: string
nullable: true