-
Notifications
You must be signed in to change notification settings - Fork 390
Description
Hi,
I noticed an issue when initializing the API client in aiplatform.
In 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), 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!