diff --git a/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.test.ts b/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.test.ts index 689bab1ec82a7..7ec0211381248 100644 --- a/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.test.ts +++ b/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.test.ts @@ -34,6 +34,27 @@ describe('GmailConnector', () => { }); }); + describe('auth', () => { + it('supports bearer auth', () => { + expect(GmailConnector.auth?.types).toContain('bearer'); + }); + + it('supports oauth_authorization_code with correct Google defaults', () => { + const oauthType = GmailConnector.auth?.types.find( + (t) => typeof t === 'object' && t.type === 'oauth_authorization_code' + ); + expect(oauthType).toBeDefined(); + expect(oauthType).toMatchObject({ + type: 'oauth_authorization_code', + defaults: { + authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth', + tokenUrl: 'https://oauth2.googleapis.com/token', + scope: 'https://www.googleapis.com/auth/gmail.readonly', + }, + }); + }); + }); + describe('actions', () => { it('exposes searchMessages, getMessage, getAttachment, listMessages actions', () => { expect(GmailConnector.actions.searchMessages).toBeDefined(); diff --git a/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.ts b/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.ts index 2803e9b7651ef..0f03457c84c49 100644 --- a/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.ts +++ b/src/platform/packages/shared/kbn-connector-specs/src/specs/gmail/gmail.ts @@ -39,7 +39,17 @@ export const GmailConnector: ConnectorSpec = { supportedFeatureIds: ['workflows', 'agentBuilder'], }, auth: { - types: ['bearer'], + types: [ + 'bearer', + { + type: 'oauth_authorization_code', + defaults: { + authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth', + tokenUrl: 'https://oauth2.googleapis.com/token', + scope: 'https://www.googleapis.com/auth/gmail.readonly', + }, + }, + ], headers: { Accept: 'application/json', }, diff --git a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.test.ts b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.test.ts index 7fe7ccaaee7b2..3ba93079351e5 100644 --- a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.test.ts +++ b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.test.ts @@ -35,10 +35,25 @@ describe('GoogleCalendar', () => { expect(GoogleCalendar.metadata.supportedFeatureIds).toContain('workflows'); }); - it('should use bearer auth', () => { + it('should support bearer auth', () => { expect(GoogleCalendar.auth?.types).toContain('bearer'); }); + it('should support oauth_authorization_code with correct Google defaults', () => { + const oauthType = GoogleCalendar.auth?.types.find( + (t) => typeof t === 'object' && t.type === 'oauth_authorization_code' + ); + expect(oauthType).toBeDefined(); + expect(oauthType).toMatchObject({ + type: 'oauth_authorization_code', + defaults: { + authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth', + tokenUrl: 'https://oauth2.googleapis.com/token', + scope: 'https://www.googleapis.com/auth/calendar.readonly', + }, + }); + }); + it('should define all five actions as tools', () => { expect(GoogleCalendar.actions.searchEvents.isTool).toBe(true); expect(GoogleCalendar.actions.getEvent.isTool).toBe(true); diff --git a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.ts b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.ts index 338b72ee4e7be..fff2b1558c2bf 100644 --- a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.ts +++ b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_calendar/google_calendar.ts @@ -55,7 +55,17 @@ export const GoogleCalendar: ConnectorSpec = { supportedFeatureIds: ['workflows', 'agentBuilder'], }, auth: { - types: ['bearer'], + types: [ + 'bearer', + { + type: 'oauth_authorization_code', + defaults: { + authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth', + tokenUrl: 'https://oauth2.googleapis.com/token', + scope: 'https://www.googleapis.com/auth/calendar.readonly', + }, + }, + ], headers: { Accept: 'application/json', }, diff --git a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.test.ts b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.test.ts index a09abe1f25cbd..7562ab7d63b36 100644 --- a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.test.ts +++ b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.test.ts @@ -25,6 +25,28 @@ describe('GoogleDriveConnector', () => { jest.clearAllMocks(); }); + describe('auth', () => { + it('supports bearer auth', () => { + expect(GoogleDriveConnector.auth?.types).toContain('bearer'); + }); + + it('supports oauth_authorization_code with correct Google defaults', () => { + const oauthType = GoogleDriveConnector.auth?.types.find( + (t) => typeof t === 'object' && t.type === 'oauth_authorization_code' + ); + expect(oauthType).toBeDefined(); + expect(oauthType).toMatchObject({ + type: 'oauth_authorization_code', + defaults: { + authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth', + tokenUrl: 'https://oauth2.googleapis.com/token', + scope: + 'https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.metadata.readonly', + }, + }); + }); + }); + describe('searchFiles action', () => { it('should search files with a query', async () => { const mockResponse = { diff --git a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.ts b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.ts index ac3bf3642d844..e0c3601d6e1b2 100644 --- a/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.ts +++ b/src/platform/packages/shared/kbn-connector-specs/src/specs/google_drive/google_drive.ts @@ -60,7 +60,18 @@ export const GoogleDriveConnector: ConnectorSpec = { supportedFeatureIds: ['workflows', 'agentBuilder'], }, auth: { - types: ['bearer'], + types: [ + 'bearer', + { + type: 'oauth_authorization_code', + defaults: { + authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth', + tokenUrl: 'https://oauth2.googleapis.com/token', + scope: + 'https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.metadata.readonly', + }, + }, + ], headers: { Accept: 'application/json', },