Publishes product.product.updated; null publishes nothing.
Protected ReadonlydbProtected ReadonlyrouteStaticinstanceThe process default: built from each dependency's own instance().
The whole catalogue, unscoped. Always paginated (pageSize defaults to
50) — a caller that wants every row pages through with searchIterator,
never by omitting the page size. An "unpaginated when you don't ask" mode
is exactly the shape that let fetchVendorList silently truncate at 50
rows.
Every live product as the route engine resolves it for one entity, or for an entity type alone (entity-specific fields absent), in one statement.
Update mutable fields on a product. Only name and description are
editable; id/externalId is immutable. Pass null for description
to clear it.
Admin reads and edits over
productrows across all customers. Products are inserted by migration; onlynameanddescriptionare runtime-editable (seerules/cascade-product.md).updateis the only runtime writer, so it alone busts theproduct-searchcache and the product's record tag wherever another namespace's pages copy its columns.