Design: Zoom API authentication workflow
Problem Statement
We need to define the workflow for how a user will enable the Zoom integration within a project. This will allow users within a project to:
- Quickly authorize a Zoom account
- Spin up a new Zoom meeting within an issue
- Associate an existing Zoom meeting to an issue
- View the current status of the associated Zoom meeting
- Display any relevant metadata about a meeting (attendees, duration, host, etc....)
Ideal Workflow
Ideally, a single user will be able to enable the Zoom integration for all users within a project. This would require a single user to authorize access to Zoom, not every user within a project. Access to the Zoom meeting should be managed within Zoom, not GitLab.
Possible solutions
- Utilize the Zoom JWT integration
- OAuth integration
Questions we need answers to
- Is it possible to have a single user authorize the Zoom integration, allowing all users in the project to create/attach a Zoom meeting?
- What is the current JWT configuration workflow?
- What is the experience in an issue, if all users must authorize via OAuth?
- Do we need to create a GitLab app in the Zoom marketplace? if so, what is the level of effort including app marketplace approval?
- Is there a scoped down solution that will deliver value to the users?
Design Resources / Artifacts
Edited by Seth Engelhard