channel_create
channel_create is implemented by handleChannelCreate in src/api/handlers/channel/channel_create.osl.
Creates a channel or visual separator. For separators, size is the amount of UI spacing/padding clients should render around the separator.
Access
Section titled “Access”| Gate | Requirement |
|---|---|
| Authentication | Required by the central API gate. |
| Central permission | manage_channels |
| Broadcast | Not marked global directly by this adapter. A helper may emit focused or server-wide updates. |
Request
Section titled “Request”Every request includes cmd: "channel_create" and may include an opaque listener correlation value.
| Field | Validation / meaning |
|---|---|
name |
schema.string().trim().minLen(1).maxLen(64) |
type |
schema.enum(["text", "voice", "forum", "separator"]) |
permissions |
schema.record(schema.any()).optional() |
description |
schema.string().optional() |
display_name |
schema.string().optional() |
size |
schema.number().optional() |
max_message_age |
schema.number().min(0).optional() |
slow_mode_cooldown |
schema.number().min(0).optional() |
Validator source
Section titled “Validator source”The handler and shared validation path use these OSL schema definitions before normalization:
*schema.Schema schemaChannelCreate = schema.object({ name: schema.string().trim().minLen(1).maxLen(64), type: schema.enum(["text", "voice", "forum", "separator"]), permissions: schema.record(schema.any()).optional(), description: schema.string().optional(), display_name: schema.string().optional(), size: schema.number().optional(), max_message_age: schema.number().min(0).optional(), slow_mode_cooldown: schema.number().min(0).optional()})Processing path
Section titled “Processing path”handleCmdenforces authentication and themanage_channelspermission.dispatchCmdrouteschannel_createtohandleChannelCreate.- The adapter validates and normalizes input, then calls its domain collaborators.
- Durable mutations complete before the response or event is returned.
onMessageadds the request listener to direct responses and performs any marked broadcast.
Direct collaborators visible in the handler: channelNameError, channelGet, channelCreate, auditRecord, refreshChannels
Responses and events
Section titled “Responses and events”Response/event command names visible in this adapter: channel_create.
Validation and domain failures use:
{ "cmd": "error", "val": "<message>", "src": "channel_create", "listener": "<copied from request>"}