This guide covers creating and managing users within your Eden-MDBS organization.
Users in Eden are organization-scoped accounts with hierarchical access levels. User management is handled through the IAM (Identity and Access Management) API.
Eden uses a four-tier access level system:
| Level | Capabilities |
|---|---|
| Read | View resources and execute read-only operations |
| Write | All Read permissions + execute write operations |
| Admin | All Write permissions + manage users, endpoints, templates |
| SuperAdmin | All Admin permissions + manage other admins, organization settings |
Requires Admin or SuperAdmin access:
curl http://{host}:8000/api/v1/iam/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"username": "developer@company.com",
"password": "SecurePassword123!",
"description": "Development team member",
"access_level": "Write"
}'Response:
{
"status": "success",
"message": "success"
}Requires SuperAdmin access:
curl http://{host}:8000/api/v1/iam/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"username": "admin@company.com",
"password": "AdminPassword456!",
"description": "System Administrator",
"access_level": "Admin"
}'| Field | Required | Description |
|---|---|---|
username | Yes | Unique identifier (email recommended) |
password | Yes | User password |
description | No | User description or role |
access_level | No | Access level (defaults to "Read") |
curl http://{host}:8000/api/v1/iam/users/developer@company.com \
-H "Authorization: Bearer $TOKEN"Response:
{
"status": "success",
"data": {
"id": "developer@company.com",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"description": "Development team member",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
}Note: Passwords are never returned in API responses.
Users can update their own username, password, and description:
curl http://{host}:8000/api/v1/iam/users/developer@company.com \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PATCH \
-d '{
"description": "Senior Development team member",
"password": "NewSecurePassword789!"
}'Admins can update users with lower access levels:
curl http://{host}:8000/api/v1/iam/users/developer@company.com \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X PATCH \
-d '{
"access_level": "Admin"
}'All fields are optional in PATCH requests:
| Field | Description |
|---|---|
username | Change the user's username |
password | Change the user's password |
description | Change the user's description |
access_level | Change the user's access level |
| Requester | Target User | Can Update |
|---|---|---|
| User (Self) | Self | username, password, description |
| Admin | Read/Write | username, description, access_level |
| Admin | Admin | Cannot modify |
| SuperAdmin | Any | All fields including password |
Remove a user from the organization:
curl http://{host}:8000/api/v1/iam/users/developer@company.com \
-H "Authorization: Bearer $TOKEN" \
-X DELETEResponse:
{
"status": "success",
"message": "success"
}Note: Deleting a user removes all their RBAC permissions and access to resources.
{
"error": "Bad Request",
"message": "user developer@company.com exists"
}{
"error": "Bad Request",
"message": "user developer@company.com doesn't exist"
}{
"error": "Forbidden",
"message": "Insufficient access level to perform this operation"
}{
"error": "Bad Request",
"message": "Cannot modify user with equal or higher access level"
}| Role Type | Recommended Level |
|---|---|
| Read-only analysts | Read |
| Application developers | Write |
| Team leads/managers | Admin |
| System administrators | SuperAdmin |
| Operation | Endpoint | Method | Required Access |
|---|---|---|---|
| Create user | /api/v1/iam/users | POST | Admin |
| Get user | /api/v1/iam/users/{username} | GET | Admin |
| Update user | /api/v1/iam/users/{username} | PATCH | Admin/Self |
| Delete user | /api/v1/iam/users/{username} | DELETE | Admin |