Skip to content

The public featured rail

GET
/featured

Admin-curated placements at scope = 'public' (ADR 0065), in display order.

FEATURING NEVER WIDENS ACCESS. A placement renders only if the caller can already see its subject under the visibility rules that govern every other read; a placement pointing at content the caller may not see returns nothing at all, rather than an entry with a blank title. Per-asset sensitivity still applies: a non-public asset carries no thumbnail hint.

Anonymous-readable, and gated by the install’s public-mode setting like the rest of the public surface.

limit
integer
default: 24 >= 1 <= 100

Featured placements the caller may see, in order.

object
items
required
Array<object>

GitHub #341 — one admin-curated featured entry pointing at an asset or collection, with an explicit ordering position and the resolved subject title. Both subject kinds carry thumbnail hints so a tile can render a cover: assets from themselves, collections via ADR 0027’s hero-card fallback (#559).

object
id
required

The featured_items row id (used for remove/reorder).

string format: uuid
subject_kind
required
string
Allowed values: asset collection
subject_id
required
string format: uuid
position
required

0-based display order.

integer
title
required

Resolved subject title (asset title or collection name). Empty when the subject was deleted out from under the row.

string
cover_asset_id

The asset whose col variant renders this tile (#559).

For an asset subject this is the subject itself. For a COLLECTION it is the hero-card fallback of ADR 0027 — the most-recent post’s cover asset — which is why the id is needed separately: subject_id is the collection, and the variant endpoint is keyed by asset.

Null when nothing is servable to this caller, in which case the tile is title-only. Subject to the same gating as asset_file_hash, so it never names an asset the caller cannot see.

string format: uuid
nullable
asset_file_hash

Thumbnail hint for the tile’s cover asset; null when there is nothing servable for this caller. Populated for collection subjects too since #559.

string
nullable
asset_has_image

Whether a raster thumbnail exists for the cover asset.

Unreliable for asset subjects — the underlying has_image column has no writer, so it is false across the board; clients key on preview_available instead. Retained because removing a response field is a breaking change.

boolean
preview_available
required

True iff a servable col variant exists for the tile’s cover asset AND the caller passes the content plane (ADR 0064). The rail renders a thumbnail only when true, else a title-only tile with no byte request (#471). Computed from live variant existence, so unlike asset_has_image it is trustworthy. Populated for collection subjects too since #559.

boolean
created_at
required
string format: date-time