Channels
Channel kinds
- self - per org inbox of system messages
- direct - one to one channel with another user
- org: ad-hoc, org, group - group channels
- dispatch - channels attached to a dispatch
- inbox - Inbox notifications
- data - data only channels with messages not indended for user consumption
Direct channels are not connected to a specific org. The channel id is an XOR of the user ids. The self channel is an XOR of the user id and the Org id. The inbox is available through the channel query but the data is accessed via a different API.
Ad-hoc group channels can be created and managed by users while other types of group channels are created at the org level.
Reading channels
Channel data is available via the packets
interface. This will return a paged packet list that includes an opaque cursor allowing movement to the next and prior pages.
query {
packets(channel: Uuid!, first: Int, after: String, status: String): PacketList!
}
Updating unread position
Directily update a channel using the org id and the channel id. The return value is either "ok" or "fail".
mutation {
updateChannelLastRead(org: Uuid!, id: Uuid!): String!
}
Update a batch of channels using a channel query. The return value is a mutation result.
mutation {
updateChannelPosWithQuery(org: Uuid!, query: String!): MutationResult!
}
Managing org local direct channel list
Add and remove user ids to the local org list of direct channels.
mutation {
modifyChannelSettings(org: Uuid!, add:[Uuid!]!, remove:[Uuid!]!){
result
error
records
}
}
Getting the list of the local connections can be done most simply with the channel query interface described above. To get some additional detail (such as whether the user belongs to the local org or not) use the following api.
query {
channelSettings(org: Uuid!){
channelId
kind
settings
updatedAt
createdAt
lastWrite
lastMessage
membership
}
}
Read only channels
Channels can be read only.
Creating and managing ad-hoc channels
Users are able to create ad-hoc
channels via the API. All other channel types are managed via the admin interface.
Managed channels
Managed channels are used for support