airbytehq / airbytehq/airbyte

[source-salesforce] Add OAuth 2.0 JWT Bearer authentication

Aberta
#80,782 2 comentários 1 reação 0 responsáveis Ver no GitHub
autoteam community connectors/source/salesforce hyd-review team/use
Linguagem predominante
Python
Estrelas
22.1k
Forks
5.4k
Merge médio
5h
PRs com merge (30d)
671

Descrição

## Topic

Add Salesforce's OAuth 2.0 JWT Bearer Token flow as a second authentication method for `source-salesforce`.

## Relevant information

**Connector:** source-salesforce
**Current released version:** 2.7.23
**Type:** Enhancement / feature request (backwards-compatible, additive)

### Problem / motivation

`source-salesforce` only supports the OAuth 2.0 **refresh-token** flow (`client_id` + `client_secret` + `refresh_token`). That flow requires:
* human authorization, which isn't always available
* storing a long-lived client secret + refresh token

Salesforce's [OAuth 2.0 JWT Bearer Token flow](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_jwt_flow.htm&type=5) is the standard answer for this: the client signs a short-lived RS256 JWT with the connected app's private key and exchanges it for an access token — **no refresh token and no client secret required**.

### Proposed solution

Add JWT bearer as a parallel auth method selected by an `auth_type` field, keeping the existing refresh-token path unchanged

### Scope / impact

- minor version bump: existing OAuth configs remain valid. no config migration, no impact to existing connections

### Willingness to contribute

- [x] Yes, I want to contribute.

Implementation + unit tests + docs are ready; happy to open a PR once this is triaged/assigned. Verified locally: 113 unit tests pass (5 new JWT tests) and `check` against a live JWT-configured connected app returns `SUCCEEDED`.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Start by locating the source-salesforce authentication configuration and the existing refresh-token flow, then review how an auth_type field could select the JWT Bearer path. Run the connector's unit tests and the check command against a JWT-configured connected app. Done means RS256 JWT authentication, unit tests, and docs are added while existing OAuth configurations remain unchanged.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
api, authentication, backend
Tipo de issue
Funcionalidade
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
48/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.