Settings

Per-user settings stored as JSONB. New keys are merged; existing keys not in the update request are preserved.

Get Settings

GET /api/v1/settings

Get the authenticated user's settings.

Response: 200 OK

{
  "user_id": "uuid",
  "settings": {
    "icon_pack": "default",
    "label_mode": "hostname",
    "theme": "dark"
  },
  "updated_at": "2024-01-01T00:00:00Z"
}

If no settings row exists, an empty settings object is returned.

Update Settings

PUT /api/v1/settings

Merge-update the authenticated user's settings. Only keys present in the request are updated; other keys are preserved.

Request body:

{
  "settings": {
    "icon_pack": "industrial",
    "theme": "light"
  }
}

Response: 200 OK (updated settings object)

Error: 400 Bad Request — Missing settings field