Spaces and channels
How the container hierarchy works, and what each channel type does.
An organization holds spaces. A space holds channels, optionally grouped into categories. A space has a type, and the type decides which product surface renders it: work and partner spaces are Kemble Work, community and circle spaces are Kemble Circle.
A surface is a view predicate, never an authorization boundary. Nothing is granted or withheld on it — access resolves on organization and membership alone.
Channel types
- text — the ordinary conversation channel.
- announcement — readable by everyone in the space, postable only by people who can manage the channel.
- voice — a voice room, mesh below the plan threshold and an SFU above it.
- stage — a voice room where speaking is a separate permission from connecting, so an audience listens without publishing.
Managing them
- POST /api/spaces/:space/channels — create.
- PATCH /api/channels/:channel — rename, re-topic, archive, make private.
- PUT /api/channels/:channel/category — move between categories in the same space.
- POST /api/spaces/:space/categories/reorder — reorder, sending the complete ordering.
Reorder takes the whole ordering, not a diff. A partial or foreign list is refused with a 422 rather than applied in part.