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
{{ message }}
Repository navigation
CoderMCPServer delete and RBAC test follow-ups #378
Follow-ups from the final assessments of #368 (CoderMCPServer delete path), #376 (test S9) and #377 (test S11). None blocks the activation. Line numbers refer to main after #368.
Delete path
A marker-only object waits forever when its pinned Coder organization is deleted while the control plane lives. With only a create marker (no status.configID), the delete reads the organization's MCP server configs (findMCPServerSlug, internal/controller/codermcpserver_controller.go:492). Any list error, including Coder's own 404 for the deleted organization, gives CoderUnavailable, so the finalizer stays. Fix: treat Coder's own 404 on that list (isCoderResourceNotFound) as absence. A proxy 404 must still wait.
Missing tests:
No operator access on delete: the wait branch at internal/controller/codermcpserver_delete.go:61.
A marker-only delete when the operator is not a site owner: internal/controller/codermcpserver_delete.go:107.
A marker-only delete when the config list fails.
A manual finalizer removal leaves the object's sentCredentials entry in memory until the operator restarts. The entry holds only hashes, not values. The release path removes it, but a hand-removed finalizer skips that path.
S9 reads only config/rbac/role.yaml. It must scan every config/rbac/*.yaml for rules that reach core Secrets, and also pin config/rbac/clusterrolebinding.yaml, so a new Role or binding cannot widen Secret access without a golden-copy change.
The comment of TestCoderMCPServerStatusPolicy says the policy "denies the status writes of every other test". It denies only status writes of CoderMCPServer objects. Correct the comment.
Activity