Authors

Public read-only author profiles backed by accounts.User, scoped to users with at least one published post.

Service: blog.authors

Public read-only — only find is exposed. Backed by accounts.User via a strict allowlist of public-safe profile fields. get_queryset scopes results to users who authored at least one public post, so unpublished drafts never reveal their authors.

Fields

Field Type Description
id string User id
username string Username
first_name string First name
last_name string Last name
headline string? Public headline. null if unset
bio string? Public bio. null if unset

Warning: Auth/crypto material (password, email, permissions, key blobs) is outside the allowlist and can never be requested — even via ?fields=... (rejected with FieldValidationError).

find

List post authors with their public profile. Only find is exposed; the inherited create / update / delete / detail routes are intentionally dropped.

HTTP

Request

GET /v1/blog/authors?fields=id,username,first_name,last_name,headline,bio&limit=100
Authorization: Bearer <token>

Response

{
  "items": [
    {
      "id": "42",
      "username": "jdoe",
      "first_name": "John",
      "last_name": "Doe",
      "headline": "Staff writer",
      "bio": "Covers security and privacy."
    }
  ],
  "total": 1
}

WebSocket

Request

{
  "jsonrpc": "2.0",
  "method": "blog.authors.find",
  "params": {
    "fields": ["id", "username", "first_name", "last_name", "headline", "bio"],
    "limit": 100
  },
  "id": 40
}

Response

{
  "jsonrpc": "2.0",
  "result": {
    "items": [
      {
        "id": "42",
        "username": "jdoe",
        "first_name": "John",
        "last_name": "Doe",
        "headline": "Staff writer",
        "bio": "Covers security and privacy."
      }
    ],
    "total": 1
  },
  "id": 40
}