Project memberships
Control project access by managing user and group permissions at the project level.
Update Project Membership
PUT /v1/project-memberships/{projectId}
Update a project membership.
Path Parameters:
projectId
(string, required): Project UUID
Request Body:
{
"userIds": [
"56d4b940-ae51-4515-b207-f63328a66b32",
"78f6c152-bf62-5626-c318-g74439b77c43"
],
"groupIds": [
"12a3b4c5-d6e7-8f90-1234-567890abcdef"
],
"projectName": "Mobile App Development"
}
Response (200 OK):
{
"message": "Project membership updated successfully"
}
Add Users/Groups to Project
PUT /v1/project-memberships/{projectId}/add
Update a project membership by adding users and/or groups.
Path Parameters:
projectId
(string, required): Project UUID
Request Body:
{
"userIds": [
"89g7d263-ch73-6737-d429-h85550c88d54"
],
"groupIds": [
"98z7y6x5-w4v3-2u1t-0987-654321fedcba"
]
}
Response (200 OK):
{
"message": "Users and groups added to project successfully"
}
Remove Users/Groups from Project
PUT /v1/project-memberships/{projectId}/remove
Update a project membership by removing users and/or groups.
Path Parameters:
projectId
(string, required): Project UUID
Request Body:
{
"userIds": [
"78f6c152-bf62-5626-c318-g74439b77c43"
],
"groupIds": [
"12a3b4c5-d6e7-8f90-1234-567890abcdef"
]
}
Response (200 OK):
{
"message": "Users and groups removed from project successfully"
}
Get Project Membership Groups
GET /v1/project-memberships/{projectId}/groups
Get the project membership groups.
Path Parameters:
projectId
(string, required): Project UUID
Query Parameters:
pageSize
(integer, optional): How many elements per page (1-100, default: 50)pageNumber
(integer, optional): Current page number (default: 1)sortField
(string, optional): Field to sort by (id, name, createdAt, description, default: createdAt)sortDirection
(string, optional): Sort direction (ASC, DESC, default: ASC)search
(string, optional): Search keywordexpandGroupUsersMaxCount
(integer, optional): Maximum number of user details per group (0-100, default: 0)
Response (200 OK):
{
"content": [
{
"id": "12a3b4c5-d6e7-8f90-1234-567890abcdef",
"name": "Developers",
"description": "Development team members",
"numberOfUsers": 5,
"createdAt": "2024-01-01T08:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z",
"userDetails": [
{
"avatarUrl": "https://example.com/avatar1.jpg",
"firstName": "John",
"lastName": "Doe"
},
{
"avatarUrl": null,
"firstName": "Jane",
"lastName": "Smith"
}
]
}
],
"page": {
"size": 1,
"pageSize": 50,
"pageNumber": 1,
"totalElements": 1,
"totalPages": 1
}
}
Get Project Membership Users
GET /v1/project-memberships/{projectId}/users
Get the project membership users.
Path Parameters:
projectId
(string, required): Project UUID
Query Parameters:
pageSize
(integer, optional): How many elements per page (1-100, default: 50)pageNumber
(integer, optional): Current page number (default: 1)sortField
(string, optional): Field to sort by (id, firstName, lastName, email, createdAt, lastLoginAt, role, default: createdAt)sortDirection
(string, optional): Sort direction (ASC, DESC, default: ASC)search
(string, optional): Search keywordinvitationStatus
(string, optional): Filter by invitation status (any, invite, accepted, default: any)
Response (200 OK):
{
"content": [
{
"id": "56d4b940-ae51-4515-b207-f63328a66b32",
"fsidUserId": "56d4b940-ae51-4515-b207-f63328a66b32",
"firstName": "Joe",
"lastName": "Test",
"email": "[email protected]",
"avatarUrl": "https://example.com/avatar.jpg",
"lastLoginAt": "2024-01-15T10:30:00Z",
"createdAt": "2024-01-01T08:00:00Z",
"updatedAt": "2024-01-15T10:30:00Z",
"isInvite": false,
"role": "builder",
"groupNames": ["Developers"],
"__fsidPermissions": {
"api-keys.manage.own": true,
"api-keys.manage.all": false
}
},
{
"id": "89g7d263-ch73-6737-d429-h85550c88d54",
"fsidUserId": "89g7d263-ch73-6737-d429-h85550c88d54",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"avatarUrl": null,
"lastLoginAt": null,
"createdAt": "2024-01-10T14:30:00Z",
"updatedAt": "2024-01-10T14:30:00Z",
"isInvite": true,
"role": "builder",
"groupNames": [],
"__fsidPermissions": {
"api-keys.manage.own": true,
"api-keys.manage.all": false
}
}
],
"page": {
"size": 2,
"pageSize": 50,
"pageNumber": 1,
"totalElements": 2,
"totalPages": 1
}
}
Response (400 Bad Request):
{
"message": "Invalid Paging Arguments",
"traceId": "09f9aa68-4d89-465b-8d6d-41490fff7727"
}
Updated 21 days ago