User
Reference for the arke/user@v1 profile -- human accounts on the network.
Profile
arke/user@v1
Users represent human accounts on the Arke network. Like all entity types, users extend the base Eidos schema with type-specific validation.
Required Properties
| Property | Type | Constraints | Description |
|---|---|---|---|
label | string | Non-empty | Display name for the user |
Flexible Properties
User entities support flexible properties - any additional key-value pairs can be stored in the properties object without restriction.
Common optional properties include:
| Property | Type | Description |
|---|---|---|
name | string | Full name (set from JWT claims during registration) |
avatar_url | string | Profile image URL |
bio | string | User biography or description |
Relationships
User relationships are flexible and not validated by the profile. Common relationship patterns:
| Predicate | Peer Type | Description |
|---|---|---|
owner | collection | Collections the user owns |
editor | collection | Collections the user can edit |
viewer | collection | Collections the user can view |
member_of | group | Groups the user belongs to |
Validation Rules
The user profile validates:
- On create:
labelmust be provided and non-empty - On update: If
labelis provided, it cannot be empty - Type enforcement: Only entities with
type: 'user'can be accessed via user operations
User Creation
Users are created via POST /auth/register when a user with a valid JWT first accesses the system:
- The JWT is verified using the configured JWT secret
- A new user entity is created with:
label: From JWTuser_metadata.name, or fallback toUser {short_id}nameproperty: Set if JWT contains a name
- A mapping is created between the external auth provider ID and the Arke entity ID
Registration is idempotent - calling it when already registered returns the existing user.
Update Operations
Users are updated via PUT /users/{id} with standard entity update semantics:
{
"expect_tip": "bafyrei...",
"label": "New Display Name",
"properties": {
"bio": "Updated biography"
},
"properties_remove": ["old_field"],
"note": "Updated profile"
}The expect_tip CID is required for optimistic concurrency control.