googleapis / googleapis/python-aiplatform

[aiplatform] Allow explicit project_id parameter when initializing api_client

Open
#5,759 0 comments 1 reaction 0 assignees View on GitHub
api: vertex-ai
Dominant language
Python
Stars
905
Forks
465
Avg merge
1d 13h
Merged PRs (30d)
44

Description

Hi,

I noticed an issue when initializing the API client in aiplatform.
In [base.py#L568](https://github.com/googleapis/python-aiplatform/blob/main/google/cloud/aiplatform/base.py#L568), the `api_client` is initialized with only the `credentials object`, but without an explicit `project_id`:

```
self.api_client = self._instantiate_client(
location=self.location,
credentials=self.credentials,
appended_user_agent=appended_user_agent,
)
```

The problem is that the credentials object only carries the `quota project ID` (see the [google.auth.credentials reference](https://google-auth.readthedocs.io/en/stable/reference/google.auth.credentials.html)), not the actual project ID.

This makes it impossible to specify a different project ID for API requests other than the one used for quota billing.

## Expected behavior

It should be possible to initialize the api_client with an explicit project_id, separate from the quota_project_id in the credentials.

## Why this matters

Some users may want to:

* Use credentials tied to one project for billing/quota purposes
* Target a different project for Vertex AI resources

Currently, this scenario is not supported because the project_id cannot be overridden.

## Possible solution

Support a project argument when creating the client and pass it explicitly:

```
self.api_client = self._instantiate_client(
location=self.location,
credentials=self.credentials,
appended_user_agent=appended_user_agent,
project=project_id, # <-- new
)
```

This would align with other Google Cloud client libraries that allow explicit project configuration.

Thanks!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.