[awf] api-proxy: Gemini Vertex WIF default OIDC audience and missing project path
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Problem
Gemini on Vertex AI with GCP WIF fails in two ways: (1) the token exchange returns 503 Vertex AI OIDC token (gcp) unavailable; (2) Vertex rejects requests with 400 RESOURCE_PROJECT_INVALID.
Context
Original: github/gh-aw#71986 (AWF v0.28.70, Gemini CLI 0.64.0). Related: #8888.
Root Cause
containers/api-proxy/gcp-oidc-token-provider.jsuses the bareprojects/...provider name as the GitHub token audience. GCP accepts only the full canonical form(iam.googleapis.com/redacted) whenallowedAudiences` is unset.src/services/credentials/vertex-credential-env.tssets a placeholderGOOGLE_API_KEY. Gemini CLI then selects Vertex express mode, so the request path omitsprojects/{project}/locations/{location}. The WIF token needs a project-scoped path.
Proposed Solution
- Default the GitHub token audience to
(iam.googleapis.com/redacted) Keep the explicitAWF_AUTH_OIDC_AUDIENCEoverride and leave the STS requestaudience` unchanged. Add tests for the default and the override. - When GCP OIDC is active, have the Vertex adapter rewrite native model paths
/v1beta1/publishers/google/models/<m>:<method>to/v1beta1/projects/<project>/locations/<location>/publishers/.... Preserve the version, method and query string. Leave project-scoped paths and static-key express mode unchanged. Use the location-appropriate host. ReadAWF_AUTH_GCP_PROJECTandAWF_AUTH_GCP_LOCATIONfrom the compiler, which needs a gh-aw-side change. - Test
v1andv1beta1, query preservation, and regional and global hosts.
Generated by Firewall Issue Dispatcher · copilot · auto · ~20 AIC · ⊞ 5.5K · ◷
- Lingua principale
- TypeScript
- Stelle
- 157
- Fork
- 80
- Merge medio
- 3h 44m
- PR unite (30g)
- 439
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di github/gh-aw-firewall
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
github/gh-aw-firewall#10778 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows automated dependencies
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
github/gh-aw-firewall#3837 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
github/gh-aw-firewall#10793 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
github/gh-aw-firewall#10792 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
github/gh-aw-firewall#10788 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di github/gh-aw-firewall
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
gnosis/gnosis_vpn#661 ·
I maintainer di solito rispondono entro 1 giorno
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)Apertatriage:bug-verified
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
I maintainer di solito rispondono entro 1 giorno
-
fix: reject sourceStorage/packagedStorage bucket that differs from the stack default (fail loud)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Eyevinn/open-videocore#1300 ·
I maintainer di solito rispondono entro 1 giorno
-
nextjs-tracking
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
cloudflare/vinext#4390 ·
I maintainer di solito rispondono entro 1 giorno
-
kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
kubernetes-sigs/headlamp#8175 ·
I maintainer di solito rispondono entro 2 giorni