Create Work Channel
POST /work/channels
Create one Work channel.
409 when the name is taken — a channel’s slug IS its room address, so two
channels cannot share one. 422 for a name or description that cannot be
normalized, and for an unknown templateId. templateId seats the
template’s specialists and seeds its Canvas.
The creator comes from the authenticated principal. The body cannot express
it: author, actor_id, org_id and createdBy are refused
outright rather than ignored.
Authorizations
Parameters
Header Parameters
Request Body required
One channel a person is creating.
Carries what the channel IS and who is seated in it — never who is creating
it. The creator, the organization and the signing identity all come from the
authenticated session in work/router.py, and Idempotency-Key comes from
the header. SERVER_OWNED_MESSAGE_FIELDS is reused verbatim for the refusal
because the danger is identical: create_work_event turns whatever
actor_id/org_id it is handed into the signing key AND the g8_actor /
g8_org tags.
Responses
201
Successful Response
object
The result of one channel write, with its idempotent-replay marker.
object
One Work channel as the room stores it.
object
422
Validation Error