App data projections
The 5 model(s) this image’s apps publish on the anonymous list face, and the NARROWINGS
each one answers to. Editing this page by hand is undone by pnpm codegen and breaks CI.
A caller reads a model through:
GET /v1/ext-public/<extension>/<model>?store=<store_id>[&<field>=<value>][&projection=<name>]Rules, and all three are the kernel’s rather than any app’s:
- No
projection= the full row, exactly as this face has always answered. Absence changes nothing for a caller that already exists. - An unknown
projectionis REFUSED (400 invalid), and the refusal lists the names the model does declare. It is never the full row in silence — a caller that asks for a narrowing has sized itself for one, and answering a typo with the complete payload is “it works” hiding an error. - A projection only NARROWS. Its columns are validated against the model’s own declared fields when the app is loaded and when it is installed, so it can never open a field the full face was not already serving.
The declaration is the app’s (dataModels[].publicList), never the kernel’s — a projection name is that
app’s vocabulary. Growing one is a decision, taken in a manifest, and it shows up on this page.
feed.feed_settings
Section titled “feed.feed_settings”Full row (no projection): store_ref, collection, revision, last_event_type, last_event_id, stamped_at — plus the platform’s own id and created_at.
Declares no projection: this model answers with the full row only.
recommendations.pairing
Section titled “recommendations.pairing”Full row (no projection): product_id, paired_product_id, paired_handle, position — plus the platform’s own id and created_at.
Declares no projection: this model answers with the full row only.
recommendations.settings
Section titled “recommendations.settings”Full row (no projection): items_per_block — plus the platform’s own id and created_at.
Declares no projection: this model answers with the full row only.
reviews.review
Section titled “reviews.review”Full row (no projection): product_id, rating, body, author, verified — plus the platform’s own id and created_at.
?projection= |
Columns |
|---|---|
summary |
product_id, rating |
shelves.settings
Section titled “shelves.settings”Full row (no projection): item_count_default, item_count_max — plus the platform’s own id and created_at.
Declares no projection: this model answers with the full row only.