Skip to content

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.