fix(credentials): bind OAuth reconnect drafts to exact flows

Abierto
#6,716 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript

Línea de trabajo

Start by tracing the shared credential-draft lifecycle and the generic and custom OAuth callback entry points; no specific files are named in the issue. Use the listed concurrency, cross-provider, target-mismatch, environment-mismatch, success, replay, and expiry scenarios as the test plan. Done means callbacks process only the protected exact draft and reject mismatched or expired targets without changing unrelated flows.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Summary

OAuth reconnect drafts are selected by broad ambient context rather than one exact protected flow. Tighten the shared credential-draft lifecycle so concurrent and cross-provider OAuth flows cannot consume or mutate the wrong draft.

Required changes

  • validate reconnect target credential type, provider, workspace, and provider-specific environment at draft creation
  • return the draft ID and bind it into protected OAuth state
  • process the exact draft row identified by that protected state during callback
  • repeat type, provider, workspace, and environment checks before the final credential mutation
  • preserve ordinary new-credential and legacy OAuth behavior where the same invariants hold

Tests

  • concurrent OAuth tabs in one workspace
  • concurrent OAuth flows across workspaces
  • cross-provider reconnect attempts
  • wrong credential type and wrong target credential
  • provider-specific environment mismatch
  • exact-flow success and replay/expired-draft rejection

Context

This is a platform-wide credential integrity change affecting generic OAuth and custom OAuth flows. It is intentionally separate from Dynamics 365 CRM PR #6714, which adds UI-level environment binding but must not absorb shared draft infrastructure changes.

Lenguaje dominante
TypeScript
Estrellas
29.8k
Forks
3.9k
Merge medio
1 h 44 min
PR fusionados (30 d)
841

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de simstudioai/sim

Todos los issues de simstudioai/sim

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.