metabase / metabase/metabase

Consolidate/streamline 3rd party integrations configuration?

Open
#3,700 2 comments 2 reactions 0 assignees View on GitHub
Administration/Auth Administration/Databases Administration/Settings Priority:P3 Type:New Feature
Dominant language
Clojure
Stars
49.3k
Forks
6.8k
Avg merge
1d 13h
Merged PRs (30d)
653

Description

As an open source project we're in a weird place when it comes to 3rd party integrations using OAuth because the admin must both create OAuth client id/secret _and_ go through the normal OAuth flow. It would be nice if we could streamline that experience as much as possible.

With the addition of the Google Analytics driver we now have 3 different places that require a Google OAuth client ID and secret (Auth, BigQuery, GA), but there's no reason we couldn't use the same one everywhere.

It would be nice if the admin only had to create and configure the OAuth client id / secret once. They would still go through the auth flow to authorize different scopes and get different access/refresh tokens for different features, but they wouldn't have to create new credentials and copy them every time.

Once we do that we should switch the BQ/GA setup flow to use the redirect flow rather than copying the code (i.e. `urn:ietf:wg:oauth:2.0:oob` "redirect uri"), since the admin will have configured the correct redirect URI.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by mapping the separate OAuth configuration and authorization flows for Auth, BigQuery, and Google Analytics, then determine how shared client credentials and redirect-based setup should work; done means one admin configuration supports the integrations while preserving their separate scopes and tokens.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
authentication, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.