dlt-hub/dlt

dlt tries OAuth in GCP Instead of Service Account Credentials when given Service Account Credentials via credential file

Offen

#3.328 geöffnet am 17.11.2025

 (2 Kommentare) (1 Reaktion) (0 zugewiesene Personen)Python (589 Forks)github user discovery
good first issue

Repository-Metriken

Stars
 (5.765 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 7T 7h) (54 gemergte PRs in 30 T)

Beschreibung

dlt version

dlt 1.17.1

Describe the problem

When using GCP service account credentials, referenced either in environment variables or in secrets.toml I get this following error.

`GcpOAuthCredentials` cannot parse the configuration value provided. The value is of type `str` and comes from the sections `('credentials',)` Value may be a secret and is not shown. Details:  The expected representation for `GcpOAuthCredentials` is a string with serialized oauth2 user info and may be wrapped in 'install'/'web' node - depending of oauth2 app type.

Expected behavior

dlt should be using GcpServiceAccountCredentials, which currently can be used when explicitly provided within the pipeline as in

    with open("creds.json", "r") as f:
        creds =  json.load(f)

    service_dict = json.loads(json.dumps(creds))

    gcp_credentials = GcpServiceAccountCredentials()
    gcp_credentials.parse_native_representation(json.dumps(creds))

Steps to reproduce

set up GCP service account credentials and attempt to use them either in secrets.toml as in

[destination.filesystem]
bucket_url = "gs://yourbucket...

[destination.filesystem]
credentials="path/to/your/json"

when running a dlt pipeline for filesystem destination

Operating system

macOS

Runtime environment

Local

Python version

3.10

dlt data source

API

dlt destination

Filesystem & buckets

Other deployment details

No response

Additional information

No response

Contributor Guide