First Steps for Enhanced Zoom API Integration - Authentication

Problem to solve

Synchronous collaboration is a critical part of any fire-fight. We are streamlining the number of steps it takes to spin up a conference bridge and engage all required parties by embedding this functionality, using Zoom, directly in an issue. As the first step to this integration, it's necessary to give users the ability to authenticate their Zoom account with their GitLab account so that we can leverage the Zoom API to provide more context about the Zoom call for a given issue. This support future work such as:

Surfacing details of the Zoom meeting on the issue - duration, number pf participants, status

Appending transcriptions or recordings of the call to the issue

Quick actions to add/remove a zoom call on an issue.

This is the first step to allow us to build functionality listed above.

Intended users

Further details

Proposal

We need to decide what authentication protocol to use for Zoom <> GitLab. We are evaluating JWT (project-level auth) and OAuth (user level auth).

If we choose to go with JWT, here is the plan:
We will add to authenticate access to the Zoom API for a GitLab account at the Project level by creating an App using Zoom's JWT authentication. We will store Zoom App's API key and secret per project - not per user.

Design (TBC)

Here is an rough flow of what the UX will be for authentication at the project level. it will follow similiar patterns used to integrate other services.

Zoom will be added to Settings > Integrations page, in the Project services section

Users can navigate to the zoom integration page, where they can add in their app and secret keys:

Permissions and Security

Documentation

Testing

What does success look like, and how can we measure that?

IF WE USE JWT: % of active projects where the Zoom service is enabled

IF WE USE OAUTH: % of users who have authenticated Zoom for organizations who use this as their conferencing platform