You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: document --vks-auth passthrough (flag, env var, identity semantics)
- vks README: GRN_MCP_VKS_AUTH in the env table, an HTTP-transport example,
and an "Upstream VKS identity" section separating inbound auth (who may
call the server) from upstream identity (whose credentials hit VKS).
- vks CLAUDE.md: passthrough example in the server-flags block.
- mcp-core README: http module row notes user_token_var/current_identity.
uv run vks-mcp-server --transport streamable-http --host 0.0.0.0 --port 8080
85
+
86
+
# Per-user upstream identity (behind the AgentBase Gateway)
87
+
uv run vks-mcp-server --transport streamable-http --port 8080 --vks-auth passthrough
84
88
```
85
89
86
90
`GET /health` is always unauthenticated (liveness/readiness). The Docker image
@@ -100,7 +104,23 @@ serves streamable-http on port 8080.
100
104
101
105
Behind the GreenNode MCP Gateway: use `api-key` when the Gateway's outbound auth
102
106
is API Key, or `jwt` when it is OAuth 2.0. `/health` is always unauthenticated.
103
-
Per-user VKS access: run with `--vks-auth passthrough` — the Gateway forwards each caller's IAM bearer token in `Authorization`, and the server uses it for every VKS/vServer call (tokenless requests are rejected; caches are isolated per caller; incompatible with `--auth-mode api-key`).
107
+
### Upstream VKS identity (`--vks-auth`)
108
+
109
+
Independent of inbound auth, `--vks-auth` selects **whose credentials the
110
+
server uses against the VKS/vServer APIs**:
111
+
112
+
-`service-account` (default) — the shared IAM credentials from `~/.greenode`;
113
+
every caller sees the same project and permissions.
114
+
-`passthrough` (HTTP only) — the AgentBase Gateway forwards each caller's IAM
115
+
bearer token in `Authorization`, and the server uses **that token** for every
116
+
VKS/vServer call: per-user projects, permissions, and results.
117
+
- Requests without a token are rejected (401 + `WWW-Authenticate`) — never a
118
+
silent service-account fallback; a rejected user token is not retried
119
+
under a different identity.
120
+
- All caches (discovery, kubernetes clients, project_id) are isolated per
121
+
caller identity.
122
+
- Incompatible with `--auth-mode api-key` (both would claim the
0 commit comments