The Stream Chat Glossary provides definitions for common terms associated with building Stream Chat Apps. If you have any questions please reach out to us at https://getstream.io/contact/support/.
Admin - Default configuration that provides elevated permissions across the entire application. Can only be created server-side. Any user can be made an admin via updateUser server-side.
role management docs - https://getstream.io/chat/docs/node/role_management/?language=javascript&q=watch%20create%20query
Analytics - Stream does not have analytics, but they can easily be integrated using the Webhook or SQS features.
App ID: Unique identifier associated with your respected App. Can be used by support to look up your App information and the organization associated with your App.
API key: Public unique identifier for your App. Used to initialize your App.
API Secret: Private unique identifier for your App used for Authentication. Provides server-side permissions. Isn't safe to expose client-side.
You can find the ID, Key, & Secret in the dashboard. An example App is shown below with the Key & Secret scrubbed
Channel: Channels are used for conversations between users. Channels can be used for 1:1 communication or for groups of users. Each channel has a channel ID and a Channel Type (described in the below definition).
Create Channel docs - https://getstream.io/chat/docs/node/creating_channels_backend/?language=javascript
Channel Type: Defines the configurations and permissions of a channel (e.g. Livestream, Messaging, etc.)
Docs - https://getstream.io/chat/docs/node/channel_features/?language=javascript
channel.create() - Used to get or create channels, typically for a server-side integration.
channel.query() - Allows you to paginate the list of messages, watchers, and members of a channel. Also, get or creates the channel if it doesn't exist.
docs - https://getstream.io/chat/docs/node/channel_pagination/?language=javascript&q=channel.query
channel.watch() - Creates a channel if it doesn't exist and watches the channel state and tells the Stream API you want to receive events when anything in the channel changes. Also queries the channel state and returns members, watchers, and messages when initially called.
docs - https://getstream.io/chat/docs/node/watch_channel/?language=javascript
Chat bots - Stream does not offer a Chat Bot, but they can easily be integrated using the Webhook or SQS features.
Client: A chat client instance for browser/mobile devices. The Client is used to access API methods such as client.queryChannels(); and maintains the websocket connection. To instantiate the client and connect it to Stream please see the below example in Node.js:
const chatClient = StreamChat.getInstance(appKEY)
Docs - https://getstream.io/chat/docs/node/init_and_users/?language=javascript&q=client
Concurrent Connections: The number of websocket connections on your Stream Chat apps at the same time. The peak number of concurrent connections for the month is a key billing metric.
Dashboard: The dashboard houses all of your basic app data, permissions options, billing info, some usage analytics data, and provides moderation controls.
Encryption (out of the box): Messages are encrypted in transit using TLS 1.2 and in rest with AE256. Messages are not end to end encrypted, but you can use a third party service, like Virgil or Tanker.io for integrating end to end encryption with Stream.
Error codes - HTTP status codes returned with every API request that describe the
erros messages.
Event - updates sent to the client from the API that keep the client up to date. A few examples are a new message, new user image, and a new member joining a channel. In the docs below you can see a complete list of events.
docs - https://getstream.io/chat/docs/node/event_object/?language=javascript&q=offset
Filters - Used when returning results with the Stream query endpoints. You can query with custom fields you've defined on the object you are querying, as well as built-in fields.
example docs - https://getstream.io/chat/docs/node/query_channels/?language=javascript
Limit - Parameter used with Stream queries that sets a cap on the number of results that will be returned with this endpoint.
example docs - https://getstream.io/chat/docs/node/query_channels/?language=javascript
MAU (monthly active users): The total number of users that have connected to your Stream chat apps over the course of the month. Key billing metric.
Member: A user role associated with a specific channel, typically granted more permissions than a non-member user. For example, default permissions on our "messaging" type channel allow a user to read and write to the channel, as well as receive push notifications.
Messages - At it's most basic form, a message is text posted by one user into a channel for one or more other users to view. Messages can have attachments (i.e. audio, video, image, and text). Below is a example of how to send a basic text message with node.JS
const message = await channel.sendMessage({
text: '@Stacy, what's up?!',
});
Multi-tenancy/Teams - An application level configuration that allows an app to be separated into different tenants that restricts data sharing between tenants. Typically used by our customers who have their own SaaS software customers (i.e. B2B2B use cases).
Offset - The number of indices into a dataset where you want to start at (i.e. if the offset is 10, then you will start 10 records into the dataset)
const channels = await authClient.queryChannels(filter, sort, {
limit: 20, offset: 10
});
Options - In addition to filter and sort, another tool to organize and filter data with queryChannels. Examples include watching the channel and limiting the number of channels or messages returned.
docs - https://getstream.io/chat/docs/node/query_channels/?language=javascript#query-options
Owner - Default Stream configuration providing elevated permissions to the owner of a channel, message, or user. For example, you can delete your own message, or update your own name or profile.
Rate limits - Limits to the number of API calls that can be made in 1 minute. These rate limits are set at reasonable limits to protect Stream's infrastructure and also help you identify integration issues early.
docs - https://getstream.io/chat/docs/javascript/rate_limits/
Reaction: Likes, comments, loves, etc. Reactions can be customized for any use case your application requires. Similar to other objects in Stream Chat, reactions allow you to add custom data to the reaction of your choice.
Regional Settings: The location of your app on our AWS infrastructure. Selecting the correct location for you app is key, because this can otherwise cause latency issues. You will want to align your customer base and app location as closely as possible. You app location will be noted in the dashboard under "Region". In the below example it would be "us-east".
Role - Determines the permissions of end-users and staff members at the application level. Examples of roles are Admin, Guest, User, Anonymous, etc.
docs - https://getstream.io/chat/docs/node/channel_user_role/?language=javascript&q=offset
Server/Server Side Code: Server-side code is often used to keep information secure and create tailored solutions for specific use cases with the Stream tools, like the Webhook for example. Some Stream operations can only be done server-side, such as creating JWTs or deleting users.
Sort - Parameter used with Stream queries. Increases query options and flexibility. Sorting is based on field and direction, and multiple sorting options can be provided. You can sort by parameters like last_updated or unread_count.
example docs - https://getstream.io/chat/docs/node/query_channels/?language=javascript
Support: A team of engineers focused on customer success and helping with any integration blockers or questions you may have! We are reachable at https://getstream.io/contact/support/ with less than 30 minute response times on average. Please feel free to email us anytime :)
Team(s) - Required metadata associated with a user or channel if you are using the multi-tenancy feature. In a B2B2B use case, each team would typically be one of your customers.
Token/JWT - JSON Web Tokens are used to authenticate users/the client when a user signs onto stream. These tokens are created server-side.
Token best practices - https://getstream.zendesk.com/hc/en-us/articles/360060576774-Token-Creation-Best-Practices
User: A unique user in your App. Technically speaking, the type is an object and it must have an id field. Can have as many custom fields as you would like as long as the size of the object is less than 5KB.
Watcher: a user who is subscribed to updates on a channel (new messages, etc). This actually doesn't imply membership, for example a non-member can watch a Livestream channel-type.
Webhook: An API feature that send JSON payloads (i.e. chat data) in real time to a URL typically pointing to your server. This is useful for various purposes like 3rd party analytics, record keeping, advanced moderation, etc.
Chat offers two Webhooks: Push and Pre-send. The main difference is that the Pre-send Webhook will allow you to make further adjustments to or block a message before it is posted in the channel.
Webhook docs - https://getstream.io/chat/docs/node/webhooks_overview/?language=javascript
Comments
0 comments
Please sign in to leave a comment.