Remove redundant project_id validation in VertexAIModel to support cross-project service accounts #802
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
This PR removes an unnecessary validation check in the VertexAIModel class that compared the provided project_id with the credentials' project ID. Previously, the code enforced that these values must match, which is not required in Google Cloud Platform (GCP) workflows.
Rationale
In GCP, it is valid and common to use a service account from one project to interact with resources in another project. For example:
Centralized service account management in a "shared" project.
Cross-project API access (e.g., Vertex AI models in a different project).
The removed validation check prevented this legitimate use case by raising an error when the provided project_id differed from the credentials' project ID. This change prioritizes the explicitly provided project_id parameter, aligning with GCP's flexibility.
Impact
Users can now specify a project_id that differs from the service account's associated project.
Enables cross-project resource access patterns without validation errors.
Maintains backward compatibility — if no project_id is provided, credentials' project ID is still used as before.