From 0a88fef824de7a0de94b5fbeeef0092dbebd0711 Mon Sep 17 00:00:00 2001 From: Manoj Bajaj Date: Tue, 9 Jun 2026 10:00:39 +0530 Subject: [PATCH 1/2] feat: add bundled providers for 14 Google Workspace and API services Adds OAuth2/PKCE provider definitions for Gmail, Drive, Calendar, Chat, Admin SDK, Analytics, Classroom, Docs, Forms, Meet, Photos, Search Console, Sheets, Slides, and Tasks. Each uses the standard Google authorization and token endpoints with service-specific API scopes. The generic google provider is unchanged. Co-Authored-By: Claude Sonnet 4.6 --- .../auth/bundled_providers/google-admin.json | 28 +++++++++++++++++++ .../bundled_providers/google-analytics.json | 27 ++++++++++++++++++ .../bundled_providers/google-calendar.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-chat.json | 27 ++++++++++++++++++ .../bundled_providers/google-classroom.json | 28 +++++++++++++++++++ .../auth/bundled_providers/google-docs.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-drive.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-forms.json | 28 +++++++++++++++++++ .../auth/bundled_providers/google-gmail.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-meet.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-photos.json | 27 ++++++++++++++++++ .../google-search-console.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-sheets.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-slides.json | 27 ++++++++++++++++++ .../auth/bundled_providers/google-tasks.json | 27 ++++++++++++++++++ 15 files changed, 408 insertions(+) create mode 100644 src/authsome/auth/bundled_providers/google-admin.json create mode 100644 src/authsome/auth/bundled_providers/google-analytics.json create mode 100644 src/authsome/auth/bundled_providers/google-calendar.json create mode 100644 src/authsome/auth/bundled_providers/google-chat.json create mode 100644 src/authsome/auth/bundled_providers/google-classroom.json create mode 100644 src/authsome/auth/bundled_providers/google-docs.json create mode 100644 src/authsome/auth/bundled_providers/google-drive.json create mode 100644 src/authsome/auth/bundled_providers/google-forms.json create mode 100644 src/authsome/auth/bundled_providers/google-gmail.json create mode 100644 src/authsome/auth/bundled_providers/google-meet.json create mode 100644 src/authsome/auth/bundled_providers/google-photos.json create mode 100644 src/authsome/auth/bundled_providers/google-search-console.json create mode 100644 src/authsome/auth/bundled_providers/google-sheets.json create mode 100644 src/authsome/auth/bundled_providers/google-slides.json create mode 100644 src/authsome/auth/bundled_providers/google-tasks.json diff --git a/src/authsome/auth/bundled_providers/google-admin.json b/src/authsome/auth/bundled_providers/google-admin.json new file mode 100644 index 00000000..dcb8f5a2 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-admin.json @@ -0,0 +1,28 @@ +{ + "schema_version": 1, + "name": "google-admin", + "display_name": "Google Admin", + "logo": "img.logo.dev/name/google", + "description": "Google Workspace Admin access for managing users, groups, and organizational units via the Admin SDK.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://admin.googleapis.com/admin/directory/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/admin.directory.user", + "https://www.googleapis.com/auth/admin.directory.group" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_ADMIN_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-analytics.json b/src/authsome/auth/bundled_providers/google-analytics.json new file mode 100644 index 00000000..0f8e46ec --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-analytics.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-analytics", + "display_name": "Google Analytics", + "logo": "img.logo.dev/name/google-analytics", + "description": "Google Analytics access for reading web analytics data via the Analytics Data API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://analyticsdata.googleapis.com/v1beta", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/analytics.readonly" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_ANALYTICS_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-calendar.json b/src/authsome/auth/bundled_providers/google-calendar.json new file mode 100644 index 00000000..d201c491 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-calendar.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-calendar", + "display_name": "Google Calendar", + "logo": "img.logo.dev/name/google-calendar", + "description": "Google Calendar access for reading and managing calendar events via the Calendar API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://www.googleapis.com/calendar/v3", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/calendar" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_CALENDAR_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-chat.json b/src/authsome/auth/bundled_providers/google-chat.json new file mode 100644 index 00000000..fbf2bab2 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-chat.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-chat", + "display_name": "Google Chat", + "logo": "img.logo.dev/name/google-chat", + "description": "Google Chat access for sending and managing messages and spaces via the Chat API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://chat.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/chat.messages" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_CHAT_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-classroom.json b/src/authsome/auth/bundled_providers/google-classroom.json new file mode 100644 index 00000000..c7e7fc93 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-classroom.json @@ -0,0 +1,28 @@ +{ + "schema_version": 1, + "name": "google-classroom", + "display_name": "Google Classroom", + "logo": "img.logo.dev/name/google-classroom", + "description": "Google Classroom access for managing courses, assignments, and student rosters via the Classroom API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://classroom.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/classroom.courses", + "https://www.googleapis.com/auth/classroom.rosters" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_CLASSROOM_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-docs.json b/src/authsome/auth/bundled_providers/google-docs.json new file mode 100644 index 00000000..1e602194 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-docs.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-docs", + "display_name": "Google Docs", + "logo": "img.logo.dev/name/google-docs", + "description": "Google Docs access for reading and editing documents via the Docs API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://docs.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/documents" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_DOCS_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-drive.json b/src/authsome/auth/bundled_providers/google-drive.json new file mode 100644 index 00000000..85d29709 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-drive.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-drive", + "display_name": "Google Drive", + "logo": "img.logo.dev/name/google-drive", + "description": "Google Drive access for managing files and folders via the Drive API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://www.googleapis.com/drive/v3", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/drive" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_DRIVE_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-forms.json b/src/authsome/auth/bundled_providers/google-forms.json new file mode 100644 index 00000000..6a707758 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-forms.json @@ -0,0 +1,28 @@ +{ + "schema_version": 1, + "name": "google-forms", + "display_name": "Google Forms", + "logo": "img.logo.dev/name/google-forms", + "description": "Google Forms access for creating forms and reading responses via the Forms API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://forms.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/forms.body", + "https://www.googleapis.com/auth/forms.responses.readonly" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_FORMS_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-gmail.json b/src/authsome/auth/bundled_providers/google-gmail.json new file mode 100644 index 00000000..10200bcc --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-gmail.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-gmail", + "display_name": "Gmail", + "logo": "img.logo.dev/name/gmail", + "description": "Gmail access for reading, composing, and managing email via the Gmail API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://gmail.googleapis.com/gmail/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://mail.google.com/" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GMAIL_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-meet.json b/src/authsome/auth/bundled_providers/google-meet.json new file mode 100644 index 00000000..148fc13e --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-meet.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-meet", + "display_name": "Google Meet", + "logo": "img.logo.dev/name/google-meet", + "description": "Google Meet access for creating and managing video meeting spaces via the Meet REST API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://meet.googleapis.com/v2", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/meetings.space.created" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_MEET_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-photos.json b/src/authsome/auth/bundled_providers/google-photos.json new file mode 100644 index 00000000..8a77278f --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-photos.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-photos", + "display_name": "Google Photos", + "logo": "img.logo.dev/name/google-photos", + "description": "Google Photos access for reading and managing photo libraries via the Photos Library API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://photoslibrary.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/photoslibrary.readonly" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_PHOTOS_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-search-console.json b/src/authsome/auth/bundled_providers/google-search-console.json new file mode 100644 index 00000000..737a2be0 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-search-console.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-search-console", + "display_name": "Google Search Console", + "logo": "img.logo.dev/name/google-search-console", + "description": "Google Search Console access for reading search analytics and sitemaps via the Search Console API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://searchconsole.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/webmasters.readonly" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-sheets.json b/src/authsome/auth/bundled_providers/google-sheets.json new file mode 100644 index 00000000..1f33a96b --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-sheets.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-sheets", + "display_name": "Google Sheets", + "logo": "img.logo.dev/name/google-sheets", + "description": "Google Sheets access for reading and editing spreadsheets via the Sheets API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://sheets.googleapis.com/v4", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/spreadsheets" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_SHEETS_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-slides.json b/src/authsome/auth/bundled_providers/google-slides.json new file mode 100644 index 00000000..4f98d551 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-slides.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-slides", + "display_name": "Google Slides", + "logo": "img.logo.dev/name/google-slides", + "description": "Google Slides access for reading and editing presentations via the Slides API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://slides.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/presentations" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_SLIDES_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-tasks.json b/src/authsome/auth/bundled_providers/google-tasks.json new file mode 100644 index 00000000..3d0d3bb0 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-tasks.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-tasks", + "display_name": "Google Tasks", + "logo": "img.logo.dev/name/google-tasks", + "description": "Google Tasks access for reading and managing task lists and tasks via the Tasks API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://tasks.googleapis.com/tasks/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/tasks" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "GOOGLE_TASKS_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} From 2e7d2f6dae0b2a98516dd44d0c447950639fb061 Mon Sep 17 00:00:00 2001 From: Manoj Bajaj Date: Tue, 9 Jun 2026 10:09:51 +0530 Subject: [PATCH 2/2] feat: add bundled providers for Jira, Confluence, YouTube, Vertex AI, Todoist, Cloudflare, Outlook, Word, Calendar, and Zoom Adds 10 new provider definitions: - jira/confluence: dedicated Atlassian OAuth 3LO providers with service-specific scopes, distinct from the generic atlassian provider - google-youtube: YouTube Data API v3 with full youtube scope - google-vertex-ai: Vertex AI / Cloud Platform scope - todoist: API key flow via app.todoist.com/oauth with PKCE - cloudflare: API token (api_key flow) via Authorization: Bearer - microsoft-outlook: Graph mail scopes (Mail.ReadWrite, Mail.Send) - microsoft-word: Graph files scopes (Files.ReadWrite.All, Sites.ReadWrite.All) - microsoft-calendar: Graph calendar scopes (Calendars.ReadWrite) - zoom: PKCE + device code; granular meeting/user/recording scopes Co-Authored-By: Claude Sonnet 4.6 --- .../auth/bundled_providers/cloudflare.json | 20 +++++++++++++ .../auth/bundled_providers/confluence.json | 30 +++++++++++++++++++ .../bundled_providers/google-vertex-ai.json | 27 +++++++++++++++++ .../bundled_providers/google-youtube.json | 27 +++++++++++++++++ src/authsome/auth/bundled_providers/jira.json | 29 ++++++++++++++++++ .../bundled_providers/microsoft-calendar.json | 27 +++++++++++++++++ .../bundled_providers/microsoft-outlook.json | 29 ++++++++++++++++++ .../bundled_providers/microsoft-word.json | 28 +++++++++++++++++ .../auth/bundled_providers/todoist.json | 26 ++++++++++++++++ src/authsome/auth/bundled_providers/zoom.json | 29 ++++++++++++++++++ 10 files changed, 272 insertions(+) create mode 100644 src/authsome/auth/bundled_providers/cloudflare.json create mode 100644 src/authsome/auth/bundled_providers/confluence.json create mode 100644 src/authsome/auth/bundled_providers/google-vertex-ai.json create mode 100644 src/authsome/auth/bundled_providers/google-youtube.json create mode 100644 src/authsome/auth/bundled_providers/jira.json create mode 100644 src/authsome/auth/bundled_providers/microsoft-calendar.json create mode 100644 src/authsome/auth/bundled_providers/microsoft-outlook.json create mode 100644 src/authsome/auth/bundled_providers/microsoft-word.json create mode 100644 src/authsome/auth/bundled_providers/todoist.json create mode 100644 src/authsome/auth/bundled_providers/zoom.json diff --git a/src/authsome/auth/bundled_providers/cloudflare.json b/src/authsome/auth/bundled_providers/cloudflare.json new file mode 100644 index 00000000..6d3b470c --- /dev/null +++ b/src/authsome/auth/bundled_providers/cloudflare.json @@ -0,0 +1,20 @@ +{ + "schema_version": 1, + "name": "cloudflare", + "display_name": "Cloudflare", + "logo": "img.logo.dev/name/cloudflare", + "description": "Cloudflare API token access for managing zones, DNS, Workers, and account resources.", + "auth_type": "api_key", + "flow": "api_key", + "api_url": "https://api.cloudflare.com/client/v4", + "api_key": { + "header_name": "Authorization", + "header_prefix": "Bearer", + "env_var": "CLOUDFLARE_API_TOKEN", + "key_pattern": "^[A-Za-z0-9_-]{40}$", + "key_pattern_hint": "Cloudflare API tokens are 40-character alphanumeric strings generated in the Cloudflare dashboard under My Profile > API Tokens." + }, + "export": { + "CLOUDFLARE_API_TOKEN": "API_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/confluence.json b/src/authsome/auth/bundled_providers/confluence.json new file mode 100644 index 00000000..a62fdb5e --- /dev/null +++ b/src/authsome/auth/bundled_providers/confluence.json @@ -0,0 +1,30 @@ +{ + "schema_version": 1, + "name": "confluence", + "display_name": "Confluence", + "logo": "img.logo.dev/name/confluence", + "description": "Confluence Cloud access for reading and writing pages, spaces, and content via the Confluence REST API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://api.atlassian.com/ex/confluence", + "oauth": { + "authorization_url": "https://auth.atlassian.com/authorize", + "token_url": "https://auth.atlassian.com/oauth/token", + "revocation_url": null, + "device_authorization_url": null, + "scopes": [ + "read:confluence-content.all", + "write:confluence-content", + "read:confluence-space.summary", + "read:confluence-user", + "search:confluence", + "offline_access" + ], + "pkce": true, + "supports_device_code": false, + "supports_dcr": false + }, + "export": { + "CONFLUENCE_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-vertex-ai.json b/src/authsome/auth/bundled_providers/google-vertex-ai.json new file mode 100644 index 00000000..776d9b31 --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-vertex-ai.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-vertex-ai", + "display_name": "Vertex AI", + "logo": "img.logo.dev/name/google-cloud", + "description": "Google Vertex AI access for generative models, embeddings, and ML pipelines via the Vertex AI API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://us-central1-aiplatform.googleapis.com/v1", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/cloud-platform" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "VERTEX_AI_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/google-youtube.json b/src/authsome/auth/bundled_providers/google-youtube.json new file mode 100644 index 00000000..c74f0ccf --- /dev/null +++ b/src/authsome/auth/bundled_providers/google-youtube.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "google-youtube", + "display_name": "YouTube", + "logo": "img.logo.dev/name/youtube", + "description": "YouTube Data API access for managing channels, videos, playlists, and comments.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://www.googleapis.com/youtube/v3", + "oauth": { + "authorization_url": "https://accounts.google.com/o/oauth2/v2/auth", + "token_url": "https://oauth2.googleapis.com/token", + "revocation_url": "https://oauth2.googleapis.com/revoke", + "device_authorization_url": "https://oauth2.googleapis.com/device/code", + "scopes": [ + "openid", + "profile", + "https://www.googleapis.com/auth/youtube" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "YOUTUBE_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/jira.json b/src/authsome/auth/bundled_providers/jira.json new file mode 100644 index 00000000..b1a5bffc --- /dev/null +++ b/src/authsome/auth/bundled_providers/jira.json @@ -0,0 +1,29 @@ +{ + "schema_version": 1, + "name": "jira", + "display_name": "Jira", + "logo": "img.logo.dev/name/jira", + "description": "Jira Cloud access for reading and managing issues, projects, and workflows via the Jira REST API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://api.atlassian.com/ex/jira", + "oauth": { + "authorization_url": "https://auth.atlassian.com/authorize", + "token_url": "https://auth.atlassian.com/oauth/token", + "revocation_url": null, + "device_authorization_url": null, + "scopes": [ + "read:jira-work", + "write:jira-work", + "read:jira-user", + "manage:jira-project", + "offline_access" + ], + "pkce": true, + "supports_device_code": false, + "supports_dcr": false + }, + "export": { + "JIRA_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/microsoft-calendar.json b/src/authsome/auth/bundled_providers/microsoft-calendar.json new file mode 100644 index 00000000..1719a25b --- /dev/null +++ b/src/authsome/auth/bundled_providers/microsoft-calendar.json @@ -0,0 +1,27 @@ +{ + "schema_version": 1, + "name": "microsoft-calendar", + "display_name": "Outlook Calendar", + "logo": "img.logo.dev/name/microsoft-outlook", + "description": "Outlook Calendar access for reading and managing calendar events and schedules via Microsoft Graph.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://graph.microsoft.com/v1.0/me/calendars", + "oauth": { + "authorization_url": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "token_url": "https://login.microsoftonline.com/common/oauth2/v2.0/token", + "revocation_url": null, + "device_authorization_url": "https://login.microsoftonline.com/common/oauth2/v2.0/devicecode", + "scopes": [ + "User.Read", + "Calendars.ReadWrite", + "offline_access" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "MICROSOFT_CALENDAR_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/microsoft-outlook.json b/src/authsome/auth/bundled_providers/microsoft-outlook.json new file mode 100644 index 00000000..5263434b --- /dev/null +++ b/src/authsome/auth/bundled_providers/microsoft-outlook.json @@ -0,0 +1,29 @@ +{ + "schema_version": 1, + "name": "microsoft-outlook", + "display_name": "Microsoft Outlook", + "logo": "img.logo.dev/name/microsoft-outlook", + "description": "Microsoft Outlook access for reading, sending, and managing email via Microsoft Graph.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://graph.microsoft.com/v1.0/me/messages", + "oauth": { + "authorization_url": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "token_url": "https://login.microsoftonline.com/common/oauth2/v2.0/token", + "revocation_url": null, + "device_authorization_url": "https://login.microsoftonline.com/common/oauth2/v2.0/devicecode", + "scopes": [ + "User.Read", + "Mail.ReadWrite", + "Mail.Send", + "MailboxSettings.ReadWrite", + "offline_access" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "MICROSOFT_OUTLOOK_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/microsoft-word.json b/src/authsome/auth/bundled_providers/microsoft-word.json new file mode 100644 index 00000000..6c881bcb --- /dev/null +++ b/src/authsome/auth/bundled_providers/microsoft-word.json @@ -0,0 +1,28 @@ +{ + "schema_version": 1, + "name": "microsoft-word", + "display_name": "Microsoft Word", + "logo": "img.logo.dev/name/microsoft-word", + "description": "Microsoft Word document access for reading and editing .docx files stored in OneDrive and SharePoint via Microsoft Graph.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://graph.microsoft.com/v1.0/me/drive", + "oauth": { + "authorization_url": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "token_url": "https://login.microsoftonline.com/common/oauth2/v2.0/token", + "revocation_url": null, + "device_authorization_url": "https://login.microsoftonline.com/common/oauth2/v2.0/devicecode", + "scopes": [ + "User.Read", + "Files.ReadWrite.All", + "Sites.ReadWrite.All", + "offline_access" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "MICROSOFT_WORD_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/todoist.json b/src/authsome/auth/bundled_providers/todoist.json new file mode 100644 index 00000000..b80ce588 --- /dev/null +++ b/src/authsome/auth/bundled_providers/todoist.json @@ -0,0 +1,26 @@ +{ + "schema_version": 1, + "name": "todoist", + "display_name": "Todoist", + "logo": "img.logo.dev/name/todoist", + "description": "Todoist access for managing tasks, projects, and labels via the Todoist REST API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://api.todoist.com/rest/v2", + "oauth": { + "authorization_url": "https://app.todoist.com/oauth/authorize", + "token_url": "https://api.todoist.com/oauth/access_token", + "revocation_url": "https://api.todoist.com/api/v1/revoke", + "device_authorization_url": null, + "scopes": [ + "data:read_write", + "task:add" + ], + "pkce": true, + "supports_device_code": false, + "supports_dcr": false + }, + "export": { + "TODOIST_ACCESS_TOKEN": "ACCESS_TOKEN" + } +} diff --git a/src/authsome/auth/bundled_providers/zoom.json b/src/authsome/auth/bundled_providers/zoom.json new file mode 100644 index 00000000..a737e4ff --- /dev/null +++ b/src/authsome/auth/bundled_providers/zoom.json @@ -0,0 +1,29 @@ +{ + "schema_version": 1, + "name": "zoom", + "display_name": "Zoom", + "logo": "img.logo.dev/name/zoom", + "description": "Zoom access for creating and managing meetings, users, and recordings via the Zoom API.", + "auth_type": "oauth2", + "flow": "pkce", + "api_url": "https://api.zoom.us/v2", + "oauth": { + "authorization_url": "https://zoom.us/oauth/authorize", + "token_url": "https://zoom.us/oauth/token", + "revocation_url": "https://zoom.us/oauth/revoke", + "device_authorization_url": "https://zoom.us/oauth/devicecode", + "scopes": [ + "user:read:user", + "meeting:read:meeting", + "meeting:write:meeting", + "meeting:read:list_meetings", + "cloud_recording:read:recording" + ], + "pkce": true, + "supports_device_code": true, + "supports_dcr": false + }, + "export": { + "ZOOM_ACCESS_TOKEN": "ACCESS_TOKEN" + } +}