Choose which rows are public
Publication is a table setting, independent of its fields and read access. A private table stays private under every rule.
The Database screen lets the owner choose All rows, a date field, or a
checkbox field. An agent can make the same choice with update_table:
{ "handle": "posts", "publication": { "field": null } }This shows all rows immediately, including undated drafts and future-dated rows. It changes no saved value. Ask the owner before widening publication. The site’s own filters still apply.
To use a field, declare it first or send the updated fields with the setting:
{ "handle": "posts", "publication": { "field": "visible" } }A boolean publishes only when true. A date publishes on that day, at midnight
UTC; a later date is scheduled and a missing date is a draft. The chosen field
does not need to be called published_at. That name can itself hold a boolean
when explicitly selected as the publication field. With All rows, the date
field can be omitted entirely. Changing field types does not convert existing
row values, so adding a new field is usually safer than retyping old values.
Omitting publication on an update preserves the setting. Setting it to
null restores the default: Posts and Portfolio use a date field called
published_at; other tables show every row. Existing tables keep those
defaults until explicitly changed. get_site reports the effective rule.
Listings, individual row pages, references, sitemaps and feeds follow the same rule. A date rule also supplies the publication date and default newest-first order. Boolean and All rows use newest-created-first and supply no publication date. Portfolio keeps its manually chosen order first. A page can still display or sort by a separate date.
A public form cannot set the field that publishes its submission. With All rows, a publicly readable submission appears immediately. Never use All rows as a way to expose private contact submissions.