Repository navigation
api | web | docs: invite members to a single project - #54
Merged
Merged
Conversation
A project gets its own admin, editor and viewer role groups, created when its first member is added. The team member and invitation endpoints take an optional project_id, so the project Members tab reuses the team's UI. A project member sees the team with that one project in it and nothing else of the team. In the project they act by role, including through API keys and MCP. Volume metrics now authorize on the team, project or environment the volume belongs to. They required a team role before, which refused project members and keys limited to a project. Deleting a project removes its role groups, its invitations and the grants that named it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Someone can now be invited to one project instead of the whole team. They see the team with that project in it and nothing else, and act in the project by role, including through API keys and MCP.
How
groups.project_idandinvitations.project_id, both nullable with cascade delete. A project gets admin, editor and viewer role groups when its first member is added, each holding one grant on the project. The permission checker already resolved project grants and path visibility, so it is unchanged.project_id. With it they act on the project and require a role on the project, which a team role also satisfies. No new endpoints.Also changed
get-volume-metricsrequired a team role, so a project member or a key limited to a project could not read usage of a volume in their own project. It now passes for a viewer of the team, project or environment the volume belongs to. The team must be visible to the caller first, and a volume they cannot view answers not found like a missing one.Tested
Go tests cover project role groups, project invitations, the project member list, and cleanup on project delete.
Ran the branch against the local dev stack with a headless browser and a fresh project-only account, 59 of 59 checks passed:
Not covered by the run:
keyaccess.RequesterHolds).Notes
ComingSoonCardhas no users left. Not removed here.