Replace Project Users
Method
REST method is adopted.
HTTP Method
PUT: Replace all active user assignments for a project
Naming Convention
snake_case is used for URI parameters. JSON fields use camelCase.
Request and Response
Headers
Request Headers
Authorization:Bearer <access_token>Content-Type:application/json
URI
| Name | Type | Required | Description |
|---|---|---|---|
| project_id | integer | Required | Project ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| assignments | array | Required | Complete desired assignment set; maximum 100 entries |
| assignments[].userId | integer | Required | User record ID; duplicates are rejected |
| assignments[].projectAccess | string | Required | "1" = read, "2" = read/write |
An empty assignments array removes all active users from the project.
Response (200 OK)
{
"list": [
{
"id": 12,
"userId": 4,
"projectId": 3,
"projectAccess": "2",
"createdAt": 1788422400000,
"updatedAt": 1788422400000,
"createdBy": "admin-cognito-sub",
"updatedBy": "admin-cognito-sub",
"deletedAt": null,
"deletedBy": null
}
]
}
Authentication
A valid admin Cognito Bearer token with read/write access to users and projects is required.
Exception Handling
| Description | Status Code | Status Name |
|---|---|---|
| Invalid list, duplicate user ID, or organization mismatch | 400 | Bad Request |
| Missing or invalid token | 401 | Unauthorized |
| Insufficient user or project permission | 403 | Forbidden |
| User or project not found | 404 | Not Found |
Process Flow
- Validate the admin session, request, and write permissions.
- Verify all active users belong to the project's organization.
- In one transaction, soft-delete omitted assignments and upsert requested assignments.
- Return the complete active assignment set.
Source: apps/admin/src/routes/v1/user-project.ts