One board per site: a page anybody with the link can open, with no login.
Closing is not revoking
The distinction matters more than it looks, and both are needed.
| What survives | When you want it | |
Close (active: false) | The address and every setting. The same link works again when you reopen. | A presentation ended. You will resend the same link next week. |
Revoke (DELETE) | Nothing. Republishing mints a new address. | The link leaked. The old address must stay dead. |
Collapsing them into one action would take away whichever you needed.
Closing stops the expiry clock
A board set to expire in seven days and then closed for a month does not come back expired.
Closing stores the days that were left and clears the date; reopening turns them back into a date counted from that moment. So "one more week" means a week of being readable, not a week of calendar.
While closed, expires_at is null and days_left carries what remains.
While open it is the other way round. They are never both set.
Part days round up — six hours left is stored as one day, never zero, so a board cannot die the instant it is reopened.
Revenue is off unless you ask
A board is usually shared to show traffic. Takings are a different kind of disclosure, and the mistake cannot be undone: the link has already been sent.
So revenue, keywords and imported_history default to off, and the other
nine sections default to on. Sections you do not mention in a PUT keep their
current value.
The address is your domain
The slug is the site's own domain, and it is unique across all of TrueStat — whoever publishes first holds it.
That is why a board cannot be published before the site's first event.
Without the check, anybody could point a site at a domain they do not own and
claim its address. Publishing an address another site already took answers
409 rather than a vague failure, because retrying will never work.
Saving settings never reopens a closed board
PUT /share changes settings. It does not touch whether the board is open.
Somebody who closed it when a presentation ended should not find it back on air because a colleague ticked a checkbox the next day. The switch lives on its own endpoint.
The password is never returned
If a board has one, no endpoint gives it back — not as a hash, not in any form. A hash is offline-crackable and the board it opens is public.