type

OutputTransform

OutputTransform changes one field in the response without changing storage. Register it with the field's AfterRead method; it is not a Hooks list. T is the field's response type, which differs from its stored type for references. Its context supplies response values, which may include related documents and locale fallback. Return Keep, Set, or Clear, as for a write transform. Field read access still runs afterward; visible context data is not permission to expose it. AfterRead runs after resource response hooks on reads and mutation responses, before final field redaction. Registration determines the callback phase. An error stops the response and can roll back an uncommitted mutation.

Full signature

Related types

  • Context

    Context describes one field callback at its current lifecycle phase. Root, Siblings and Prior are detached, immutable snapshots of field values; document metadata such as ID is available separately on Context. A callback changes its own value only through its return value.

  • Value

    Value carries an optional logical value. Its zero value is empty. For raw input, empty means omitted and Present(store.Null()) means explicit null. For typed scalars, empty is the portable empty state, not a durable absence encoding. T must follow its own ownership contract; this carrier does not deep-clone arbitrary mutable application values.

  • Change

    Change is what a field transform returns: Keep, Set, or Clear. Its zero value means Keep. Clear empties the callback's own logical value; it does not create an external patch command or durable scalar removal representation.