Spaces:
Sleeping
Sleeping
| import os | |
| from typing import Any, Dict, Optional | |
| # Map of piece names to OAuth configuration | |
| # In production, these should be stored in the database or a secure vault. | |
| # For MVP, we use environment variables. | |
| OAUTH_CONFIGS: Dict[str, Dict[str, Any]] = { | |
| "@activepieces/piece-slack": { | |
| "auth_url": "https://slack.com/oauth/v2/authorize", | |
| "token_url": "https://slack.com/api/oauth.v2.access", | |
| "client_id": os.getenv("SLACK_CLIENT_ID", "default_slack_id"), | |
| "client_secret": os.getenv("SLACK_CLIENT_SECRET", "default_slack_secret"), | |
| "scopes": ["channels:read", "chat:write", "groups:read", "im:read", "mpim:read"] | |
| }, | |
| "@activepieces/piece-google-drive": { | |
| "auth_url": "https://accounts.google.com/o/oauth2/v2/auth", | |
| "token_url": "https://oauth2.googleapis.com/token", | |
| "client_id": os.getenv("GOOGLE_CLIENT_ID", "default_google_id"), | |
| "client_secret": os.getenv("GOOGLE_CLIENT_SECRET", "default_google_secret"), | |
| "scopes": ["https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/drive.file"] | |
| }, | |
| "@activepieces/piece-gmail": { | |
| "auth_url": "https://accounts.google.com/o/oauth2/v2/auth", | |
| "token_url": "https://oauth2.googleapis.com/token", | |
| "client_id": os.getenv("GOOGLE_CLIENT_ID", "default_google_id"), | |
| "client_secret": os.getenv("GOOGLE_CLIENT_SECRET", "default_google_secret"), | |
| "scopes": ["https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.send"] | |
| }, | |
| "@activepieces/piece-hubspot": { | |
| "auth_url": "https://app.hubspot.com/oauth/authorize", | |
| "token_url": "https://api.hubapi.com/oauth/v1/token", | |
| "client_id": os.getenv("HUBSPOT_CLIENT_ID", "default_hubspot_id"), | |
| "client_secret": os.getenv("HUBSPOT_CLIENT_SECRET", "default_hubspot_secret"), | |
| "scopes": ["crm.objects.contacts.read", "crm.objects.contacts.write"] | |
| } | |
| } | |
| def get_oauth_config(piece_name: str) -> Optional[Dict[str, Any]]: | |
| return OAUTH_CONFIGS.get(piece_name) | |