feat(google-cli): add env escape hatch for body.project override

This commit is contained in:
jack
2026-03-10 22:15:26 +00:00
parent 887cf25b65
commit c949214e99
2 changed files with 16 additions and 5 deletions

View File

@@ -38,9 +38,13 @@ export class AntigravityExecutor extends BaseExecutor {
transformRequest(model, body, stream, credentials) {
const bodyProjectId = body?.project;
const credentialsProjectId = credentials?.projectId;
// Prefer OAuth-stored projectId over incoming body.project to avoid stale/wrong
// client-side values causing 404/403 from Cloud Code endpoints.
const projectId = credentialsProjectId || bodyProjectId;
const allowBodyProjectOverride = process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE === "1";
// Default: prefer OAuth-stored projectId over incoming body.project to avoid
// stale/wrong client-side values causing 404/403 from Cloud Code endpoints.
// Opt-in escape hatch: set OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE=1.
const projectId =
allowBodyProjectOverride && bodyProjectId ? bodyProjectId : credentialsProjectId || bodyProjectId;
if (!projectId) {
throw new Error(

View File

@@ -20,8 +20,15 @@ export class GeminiCLIExecutor extends BaseExecutor {
}
transformRequest(model, body, stream, credentials) {
// Always prefer OAuth-stored projectId if present. Incoming body.project can be
// stale when clients cache older Cloud Code project values.
const allowBodyProjectOverride = process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE === "1";
// Default: prefer OAuth-stored projectId. Incoming body.project can be stale
// when clients cache older Cloud Code project values.
// Opt-in escape hatch: set OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE=1.
if (allowBodyProjectOverride && body?.project) {
return body;
}
if (credentials?.projectId) {
body.project = credentials.projectId;
}