Self-hosted cluster removal: retry a logout that failed, or one skipped because the cluster couldn't be read
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 25/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- typescript
调研方向
Start with the best-effort design and its trade-offs in src/features/cluster/DESIGN.md, then find the cluster removal path and its one-attempt logout call. Decide where a credential-free "logout owed" marker is stored and when the next app sign-out checks it, and how the cluster read is retried. Done means a failed logout is retried on the next app sign-out, and the stored credential is kept until that retry.
由索引模型根据 Issue 内容生成。
描述
What happens
After #1966, removing a self-hosted cluster from Studio sends one best-effort logout to its server and forgets the remembered sign-ins for the cluster and its instances. "Best effort" was the call on #1954: one attempt, a short timeout, and the removal never waits on it. That leaves two cases where the server-side session outlives the removal:
- The logout fails or times out. Studio has already forgotten the sign-in, so nothing retries it, not even a later app sign-out. A server that's unreachable when you remove it keeps that session until it expires.
- Studio can't read the cluster record at removal. Both reads, alongside and after the DELETE, failed. Studio can't tell whether the cluster was self-hosted, so it sends no logout. The forgetting happens on the next visit to one of the cluster's pages, as #1954 does for Fabric clusters.
Both are accepted costs of the best-effort design, recorded in src/features/cluster/DESIGN.md. Neither touches another cluster's credentials.
Possible improvement
Keep a small "logout owed" marker after a failed logout, holding no credential, so the next app sign-out retries it once. For case 2, retry the cluster read once later. Either way the stored credential has to stay until the retry, which is the trade-off the best-effort call avoided.
Review-Deferral: 360de88dc2418237 severity=minor category=security
Review-Deferral: 85883ef1b2f4b7a1 severity=nit category=reliability
Raised by the cross-model review of #1966 (#1931).
🤖 Generated by Anthropic Claude Code (Claude Opus 5.5); posted via @dawsontoth.
- 主要语言
- TypeScript
- 星标
- 5
- 派生
- 4
- 平均合并
- 1 天 12 小时
- 30 天内合并 PR
- 65
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
HarperFast/studio 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
HarperFast/studio#2070 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
HarperFast/studio#2067 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
HarperFast/studio#2053 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
HarperFast/studio#2026 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 77/100
HarperFast/studio#2021 ·
维护者通常 1 天内回复
查看 HarperFast/studio 的全部 Issue
相似的 Issue
-
security
难度 2/5 1-3 小时 新手友好度 64/100
IBM/ibmi-mcp-server#256 ·
维护者通常 7 天内回复
-
e2e-failure ready-to-code
难度 1/5 1 小时以内 新手友好度 84/100
redhat-developer/rhdh-plugin-export-overlays#4746 · 1 条评论 ·
维护者通常 1 天内回复
-
area:ui
难度 2/5 1-3 小时 新手友好度 78/100
openfootmanager/openfootmanager#1365 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
boxlite-ai/boxlite#2543 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100