GeezerVison is showing github.com — feat: add organization skill ACL queries and share organization ACL helpers by ibetitsmike · Pull Request #30591 · coder/coder
Conversation
ibetitsmike
commented
Oct 10, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Part of CODAGT-1341.
Adds the database and SDK pieces for editing an organization skill's access control list, with no routes. UpdateOrganizationSkillACLByID in queries/skills.sql writes group_acl, user_acl and updated_at on an org-owned row and returns it; dbauthz loads the row and checks share on its RBACObject(), following the MCP server config ACL pattern. The row lock it pairs with, GetOrganizationSkillByIDForUpdate, comes from the write routes layer. LockOrganizationMembersByUserIDsForShare in queries/organizationmembers.sql locks the listed users' membership rows FOR KEY SHARE, so they can't be removed until the transaction ends; dbauthz checks read on the organization's members. codersdk/skills.go gains OrganizationSkillRole (read, or "" to delete), OrganizationSkillACL, OrganizationSkillUser, OrganizationSkillGroup, UpdateOrganizationSkillACLRequest (sparse user_roles/group_roles), and the experimental client methods OrganizationSkillACL, UpdateOrganizationSkillACL and OrganizationSkillACLAvailable. The next layer adds the routes those methods call.
The second commit generalizes the MCP server config ACL helpers in coderd/mcp_acl.go so the skill routes can reuse them. The changes: type-parameterized principal resolution (resolveACLUsers, resolveACLGroups, aclGroupMemberCounts), one validateOrganizationACLUpdate that runs acl.Validate, the org membership and org match checks, and canonical UUID rekeying with duplicate rejection, plus applyACLReadRoles and writeOrganizationACLAvailable. coderd/rbac/acl gets a named Role constraint that includes the new role type. MCP behavior is unchanged except that its 500 error messages are now generic. The duplicate mcpServerConfigACLReducedUser is gone in favor of the existing reducedUserFromPaginatedOrganizationMember, and the MCP validator type is now unexported.
Testing
TestMethodTestSuite: new entries UpdateOrganizationSkillACLByID (asserts share) and LockOrganizationMembersByUserIDsForShare (asserts read on organization members).
- The existing MCP ACL tests (
TestMCPServerConfigACL, TestMCPServerConfigACLAvailable, TestMCPServerConfigACLWorkspaceSharingModes, TestMCPServerConfigACLConcurrentDelete) pass unchanged against the refactored helpers. So do the chat model ACL tests and ./coderd/rbac/acl/....
- Built and tested at each commit's own tree:
go build ./..., the full dbauthz suite, codersdk, golangci-lint on the touched packages, and make gen with no diff.
Review record
This stack adds organization skills to Coder Agents: admins publish a skill once per organization, share it with groups or members, and chats in that organization load it next to personal and workspace skills.
Stack, bottom to top: #30584, #30585, #30586, #30587, #30588, #30589, #30590, #30591, #30592, #30593, #30594, #30595, #30596, #30597, #30598, #30599, #30600, #30601, #30602, #30603, #30604.
Xum opened this PR on behalf of @ibetitsmike.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
chatgpt-codex-connector[bot] reacted with thumbs up emoji
This was referenced Oct 10, 2026
ibetitsmike
changed the title
mike/org skills/acl queries
feat: add organization skill ACL queries and share organization ACL helpers
Oct 10, 2026
This was referenced Oct 10, 2026
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Codex Review Summary
This comment shows the latest Codex review activity on this pull request.
| Review |
Status |
Commit |
Review trigger |
| 📝 Code Review |
✅ Completed 2026-10-10T03:42:38.703857Z |
b0f1b46 |
Manual request |
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review" or "@codex security review".
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff.
Reviewed commit: 89babfc1d0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
# Conflicts:
# coderd/database/dbauthz/dbauthz_test.go
# coderd/database/queries/skills.sql
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. Can't wait for the next one!
Reviewed commit: b0f1b464ff
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|