bug(sdk/ts): forward().close() never revokes SSH session tokens of open connections
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 62/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- api
Línea de trabajo
Empieza en sdk/typescript/src/client.ts con forward, teardown y forwardConnection, y sigue cómo la señal AbortController por conexión llega al bloque finally que llama a revokeSshSession. Revisa la llamada de revocación del cliente de archivos en Go para ver el contexto independiente previsto. Para reproducirlo, abre una conexión, cierra el handle y confirma que no se envía ninguna solicitud RevokeSshSession. Está terminado cuando cada token emitido recibe una solicitud de revocación con su propio timeout, incluso después de que la señal de la conexión se haya abortado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
User Story
I use OpenShell and build automation against its SDKs. I found this while reviewing sdk/ on main; it is identified from the code paths cited below and has not yet been reproduced against a live gateway.
Problem Statement
On close() (or caller abort), teardown aborts each connection's AbortController. forwardConnection's finally then calls revokeSshSession({ token, allowMissing: true }, { signal }) with that same, already-aborted signal, so the revoke RPC is never sent. The Go file client revokes with a fresh background context.
Impact / Why This Matters
Every SSH session token minted for connections still open at close() stays valid until it expires instead of being revoked, contrary to the method's documented revoke-on-close behavior.
Acceptance Criteria
- Closing a forward handle with open connections issues
RevokeSshSessionfor each minted token (bounded by its own timeout, independent of the aborted connection signal).
Reproduction Steps
const h = await client.sandbox.forward(name, { targetPort }).- Open a local connection so a session token is minted.
await h.close().- Observe no
RevokeSshSessionRPC reaches the gateway for that token (the call rejects immediately on the aborted signal).
Suggested UX (if applicable)
No response
Environment
- OpenShell:
main@ 82977e2 (2026-10-13) - SDK: TypeScript (
sdk/typescript/src/client.ts,forward/forwardConnection) - Toolchain: Go 1.25.4 linux/amd64, Node 22
Logs
- Lenguaje dominante
- Rust
- Estrellas
- 15.4k
- Forks
- 1.7k
- Merge medio
- 2 d 6 h
- PR fusionados (30 d)
- 397
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/OpenShell
-
bug(sdk/go): browser login callback binds 127.0.0.1 but redirect_uri uses localhostQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertostate:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NVIDIA/OpenShell#4518 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug(sdk/go): edge (Cloudflare Access) token is cached for the client lifetime and never reloadedAbiertostate:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
NVIDIA/OpenShell#4515 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
state:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
NVIDIA/OpenShell#4509 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
state:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
docs(upgrade): no migration notes for 0.1.1, 0.1.2, or 0.1.3 (only the 0.1.0 page exists)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertostate:triage-needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA/OpenShell
Issues similares
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsPosiblemente ocupada @roboomp la tomó hoy. Abiertobug prio:p2 providers triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
can1357/oh-my-pi#15798 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
requires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/datafusion-comet#7001 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Add a Storybook section to CONTRIBUTING.mdPosiblemente ocupada @ChanakyaG2004 la tomó hoy. Abiertodocumentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
FlowwStar/FlowStar#995 · 2 comentarios ·
Los mantenedores suelen responder en 1 día