🤖 CoderWorkspacePool Share mode: optionally stop the workspace when a share is revoked
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 15/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- go, kubernetes
调研方向
The payload names no code files, only the ShareRevoked and ShareRemoved messages, the pool how-to and plan section 6.2 step 11, all referenced from #446. Start by reading those, then the discussion threads it links. Done means a settled design for an opt-in stop after revocation, including a decision on ShareRemoved, crash-safe state, and active-build handling. Implementation should wait for that design.
由索引模型根据 Issue 内容生成。
描述
Problem
When the share policy no longer allows a share, the operator removes the Coder user from the workspace ACL and the claim reports ShareRevoked (#446). Coder also drops shares itself, for example when an admin tightens the organization's sharing setting (ShareRemoved). In both cases, Coder applies the removal only after the workspace restarts (Shared workspaces: "The workspace must be restarted for the user or group removal to take effect"). The operator does not restart or stop the workspace, so the user keeps access until someone does. A claimed workspace can run for a long time: a template with a default TTL of 0 has no autostop, and claims.idleTimeoutSeconds is opt-in.
Found by the Codex reviews of #446 (normal P1 and security P2): https://github.com/coder/coder-k8s/pull/446#discussion_r4433811754 and https://github.com/coder/coder-k8s/pull/446#discussion_r4433811122
Current behavior (#446)
The ShareRevoked and ShareRemoved messages and the pool how-to say that the user keeps access until the workspace restarts or stops. They tell the admin to restart or stop the workspace in Coder, or to delete the claim, to end the access at once. This matches Coder's own unshare, which also leaves the restart to a person.
Option
An opt-in setting on the pool or the control plane: after a revocation, the member stops the workspace with the operator token, confirms the stop build, and only then reports the share as revoked. This needs:
- A crash-safe state between the ACL removal and the confirmed stop, so a lost status write still leads to the stop.
- Handling of an active build (cancel with
expect_status, as the member's delete cleanup does). - A decision for
ShareRemoved, where Coder or a person removed the share. - A Kind check in P9 that the user loses an open session.
It interrupts the claimant's session, so it stays opt-in. It changes plan 6.2 step 11, where a bound member only watches its workspace. Refs #153.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
- 主要语言
- Go
- 星标
- 5
- 派生
- 3
- 平均合并
- 1 小时 50 分钟
- 30 天内合并 PR
- 160
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
coder/coder-k8s 的其他 Issue
-
难度 3/5 半天 新手友好度 62/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 35/100
维护者通常 1 天内回复
-
难度 3/5 半天 新手友好度 45/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 30/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 8/100
维护者通常 1 天内回复
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 72/100
open-feature/flagd-schemas#237 ·
-
enhancement
难度 2/5 1-3 小时 新手友好度 72/100
superplanehq/superplane#9234 ·
维护者通常 1 天内回复
-
v1: -r replaces an existing report path (breaks /dev/null and symlinks)可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 65/100
betterleaks/betterleaks#469 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
prime-radiant-inc/evener#5901 ·
维护者通常 1 天内回复