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.
Expectations of this issue:
- Selection of authentication protocol for Zoom in GitLab
- Design and implementation/build of the authentication flow
- Merged by Sept 15th
Intended users
Sasha the Software Developer
Devon the DevOps Engineer
Sidney the Systems Administrator
Further details
This work contributes to the Incident Management Vision
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