Skip to content

Support user_agent via connect_args or url query parameters #1209

Open
@tboddyspargo

Description

@tboddyspargo

Is your feature request related to a problem? Please describe.

It's frustrating to manually create client objects with user_supplied_client just to be able to customize the user_agent.

Describe the solution you'd like

I'd like user_agent to be configurable via connect_args when invoking sa.engine.create_engine. Since theClient is automatically created as part of create_connect_args, any user-provided connect_args can't currently be incorporated.

One solution would be to defer the creation of the Client object until BigQueryDialect.connect so that all connect_args (both from create_connect_args and the user) can be incorporated.

However, as a smaller iteration to allow control over this, it would be helpful to be able to specify the user_agent string as part of the URL so that parse_url (in the context of create_connect_args) can extract it as a ClientInfo object and pass it to _helpers.create_bigquery_client for automatic client creation.

client = _helpers.create_bigquery_client(
credentials_path=self.credentials_path,
credentials_info=self.credentials_info,
credentials_base64=self.credentials_base64,
project_id=self.billing_project_id,
location=self.location,
default_query_job_config=default_query_job_config,
)

Describe alternatives you've considered

Today, our only option seems to be user_supplied_client and creating our own client – and bq_storage_client – with appropriate ClientInfo populated.

Additional context
Add any other context or screenshots about the feature request here.

Metadata

Metadata

Labels

api: bigqueryIssues related to the googleapis/python-bigquery-sqlalchemy API.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions