mirror of
https://github.com/databasus/databasus.git
synced 2026-04-06 00:32:03 +02:00
FEATURE (storages): Add Google Drive
This commit is contained in:
26
docs/how-extrnal-oauth-works.md
Normal file
26
docs/how-extrnal-oauth-works.md
Normal file
@@ -0,0 +1,26 @@
|
||||
Cloud storages usually require OAuth (Google Drive, Dropbox, OneDrive)
|
||||
|
||||
OAuth services usually need HTTPS domain for authorization. Self hosted Postgresus can be hosted via HTTP or even without static IP so this way does not work. To make OAuth works even on localhost, we proxy requests via postgresus.com domain
|
||||
|
||||
As permanent URL for authorization we use main Postgresus domain. It forward responses to the self hosted domain so it can get access to the cloud
|
||||
|
||||
This is the sequence of requests (example for Google Drive):
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant SelfHosted as http://localhost:4005<br/>Self-hosted Postgresus
|
||||
participant Proxy as https://postgresus.com<br/>Proxy website
|
||||
participant Google as Google OAuth
|
||||
|
||||
SelfHosted->>Google: Send auth request with DTO
|
||||
|
||||
Google->>Proxy: Redirect with auth code<br/>to postgresus.com/oauth
|
||||
|
||||
Proxy->>SelfHosted: Redirect to self-hosted instance<br/>with DTO + auth code
|
||||
|
||||
SelfHosted->>Google: Exchange auth code for tokens<br/>POST /oauth2/token
|
||||
Google->>SelfHosted: Return access & refresh tokens
|
||||
|
||||
SelfHosted->>SelfHosted: Store Google Drive config for files exchange
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user