mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-26 01:06:23 +02:00
refactor: unify all 3 google Composio and non-Composio connector types and pipelines keeping same credential adapters
This commit is contained in:
parent
6c37b563c0
commit
83152e8e7e
24 changed files with 633 additions and 3596 deletions
41
surfsense_backend/app/utils/google_credentials.py
Normal file
41
surfsense_backend/app/utils/google_credentials.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
"""Shared Google OAuth credential utilities for native and Composio connectors."""
|
||||
|
||||
import logging
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
from google.oauth2.credentials import Credentials
|
||||
|
||||
from app.db import SearchSourceConnectorType
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
COMPOSIO_GOOGLE_CONNECTOR_TYPES = {
|
||||
SearchSourceConnectorType.COMPOSIO_GOOGLE_DRIVE_CONNECTOR,
|
||||
SearchSourceConnectorType.COMPOSIO_GMAIL_CONNECTOR,
|
||||
SearchSourceConnectorType.COMPOSIO_GOOGLE_CALENDAR_CONNECTOR,
|
||||
}
|
||||
|
||||
|
||||
def build_composio_credentials(connected_account_id: str) -> Credentials:
|
||||
"""
|
||||
Build Google OAuth Credentials backed by Composio's token management.
|
||||
|
||||
The returned Credentials object uses a refresh_handler that fetches
|
||||
fresh access tokens from Composio on demand, so it works seamlessly
|
||||
with googleapiclient.discovery.build().
|
||||
"""
|
||||
from app.services.composio_service import ComposioService
|
||||
|
||||
service = ComposioService()
|
||||
access_token = service.get_access_token(connected_account_id)
|
||||
|
||||
def composio_refresh_handler(request, scopes):
|
||||
fresh_token = service.get_access_token(connected_account_id)
|
||||
expiry = datetime.now(timezone.utc).replace(tzinfo=None) + timedelta(minutes=55)
|
||||
return fresh_token, expiry
|
||||
|
||||
return Credentials(
|
||||
token=access_token,
|
||||
expiry=datetime.now(timezone.utc).replace(tzinfo=None) + timedelta(minutes=55),
|
||||
refresh_handler=composio_refresh_handler,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue