Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ title: "Rocket.Chat Documentation"
description: Rocket.Chat user, admin, API, integration, plugin and contributing documentation.

# leave trailing slash off
url: https://rocket.chat/docs
# url: https://rocket.chat/docs
url: ""

# bump if alterting styles or js
version: 41
Expand Down
2 changes: 2 additions & 0 deletions _data/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@
- getDeletedMessages
- getMessage
- getMessageReadReceipts
- getPinnedMessages
- getThreadMessages
- getThreadsList
- pinMessage
Expand Down Expand Up @@ -399,6 +400,7 @@
- inquiries.take
- message
- room
- rooms
- sms-incoming
- users
- video-call
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,15 @@ For iOS you need an apple developer account that costs US$99 per year. Follow in
Now you should be able to Send a test message. Make sure that you have logged in to the server once, and then closed the app.
You should see a test notification after you pressed the send button.

## Privacy

Rocket.Chat allows for additional privacy configurations on push notifications:

- Show Channel/Group/Username in Notification: Default is "TRUE", disabling this setting prevents the Channel, Group, Discussion and Username being sent to the push notification gateway
- Show Message in Notification: Default is "TRUE", disabling this setting prevents the message content from being sent to the push notification gateway

If both settings are set to "FALSE", the user will receive a push notification without contextual information, as no such contextual information is sent to the push notification gateway in the first place. The user can then access the contextual information by opening the Rocket.Chat application. This is helpful in compliance-sensitive requirements like HIPAA to prevent sensitive information being disclosed via push notification.

## General Observations

- If you don't want notifications you can just disable gateway and not provide keys.
Expand Down
18 changes: 7 additions & 11 deletions bots/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,18 @@ of permissions.

## How do bots send and receive messages?

Rocket.Chat's framework (Meteor) has built-in utilities for streaming updates to data collections.
Every user in Rocket.Chat has such a collection for their messages. Bots subscribe to
the collection of messages for their user account, creating a stream that is updated every time a message is sent either directly to them or any room they are joined in.
Bots in Rocket.Chat cannot send messages to users on thir own. Instead, they subscribe to
so-called collections of messages that every user has. The subscription creates a stream
that is updated every time messages are sent either directly to bots or any room they are joined in.

For more details, see the [Bots Architecture section](bots-architecture/).
For more details, see the [Bots Architecture section](bots-architecture/#message-streams).

## How are bots hosted?

Rocket.Chat supports bots that are hosted outside of your Rocket.Chat instance. Their working logic is defined by their provider.
Rocket.Chat supports bots that are hosted _outside_ of your Rocket.Chat instance.
The working logic of these bots is defined by their provider.

Rocket.Chat supports for multiple bot frameworks and platforms, including:
[bBot](http://bbot.chat/), [Hubot](https://hubot.github.com/), [Botkit](https://botkit.ai/), [Botpress](https://botpress.io/).

The hosting for bots depends on the platform. For example, Hubot can be
launched on any Node.js environment, but you have to set it up yourself (using Heroku or
Glitch services). Another bot platforms like Botkit provide their own services for hosting and provisioning bots. They just need a configuration to connect to your Rocket.Chat instance.
For more details, see the [Bots Architecture section](bots-architecture/#bot-platforms-and-frameworks).

## Getting Started

Expand Down
33 changes: 30 additions & 3 deletions bots/bots-architecture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ to [**external**](../) bots.

Bots architecture consists of two main parts: Rocket.Chat host and [bot host](#bots-host).
These two parts are connected with each other via [Rocket Chat SDK](#rocketchat-sdk) methods.
Bot host runs externally to the Rocket.Chat host and consists of SDK, [adapter](#framework-adapter),
[framework](#bot-framework) and, typically, external [services](#external-services).
Bot host runs externally to the Rocket.Chat host and consists of the bot infrastructure and,
typically, external [services](#external-services). The bot infrastructure, in turn,
consists of SDK, [adapter](#framework-adapter), and [framework](#bot-framework).

A bot, being subscribed to room's messages (all or specific ones) handles these
messages and responds back to the user in an interactive manner. The conversational model
Expand All @@ -18,6 +19,19 @@ can be designed and managed by tooling and frameworks on the bot host.
Today, many bots are created using bot frameworks or platforms based on popular programming
languages, such as NodeJS and Python.

## How Bots Architecture works

Bot creators design the bot's logic with the help of their favorite framework.
This logic defines behavioral interaction with users, giving the bot context-awareness.
Context-awareness helps the bot to identify user's intents, understand what the user is
looking for so that they can simulate more personalized human-like conversation.

With the ability to listen to and respond to messages, the bot can be integrated into
the Rocket.Chat host, so that it can engage with users in a conversational manner. To perform
this connection, bot creators use adapters that can translate the logic defined via the
framework's powers to the format that the Rocket.Chat host understands. Adapters use
Rocket.Chat SDK methods to communicate with the Rocket.Chat host.

## Users and Bots

Bots in Rocket.Chat require user accounts with the `bot` role. Other than having
Expand All @@ -43,6 +57,19 @@ A bot host can manage and run many different bots as well as many instances of a
The bot host typically manages connections to [external services](#external-services)
as well.

### Bot platforms and frameworks

Rocket.Chat supports multiple bot frameworks and platforms, including:
[bBot](http://bbot.chat/),
[Hubot](https://hubot.github.com/),
[Botkit](https://botkit.ai/),
[Botpress](https://botpress.io/).

The hosting for bots depends on the platform. For example, Hubot can be launched on any
Node.js environment, but you have to set it up yourself (using Heroku or Glitch services).
Other bot platforms like Botkit provide their own services for hosting and provisioning bots.
They just need a configuration to connect to your Rocket.Chat instance.

## Message Streams

Every user in Rocket.Chat has a collection for their messages that can be
Expand All @@ -65,7 +92,7 @@ that is used to link the framework with the Rocket.Chat host.

An adapter allows bot creators to design and build bot interactions according to the
framework's rules and practices without dealing with the low-level programming
details of the communication with the Rocket.Chat host.
details and methods of the communication with the Rocket.Chat host.

Adapters use Rocket.Chat SDK to communicate with the Rocket.Chat host.

Expand Down
2 changes: 2 additions & 0 deletions contributing/documentation/documentation-map/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,7 @@ Here you can also find what articles are incomplete and missing.
- getDeletedMessages
- getMessage
- getMessageReadReceipts
- getPinnedMessages
- getThreadMessages
- getThreadsList
- pinMessage
Expand Down Expand Up @@ -395,6 +396,7 @@ Here you can also find what articles are incomplete and missing.
- inquiries.take
- message
- room
- rooms
- sms-incoming
- users
- video-call
Expand Down
7 changes: 4 additions & 3 deletions contributing/security/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Given the nature of Chat, we understand each person using Rocket.Chat has some e

## If you find a Security Issue

> Please email the details to Rocket.Chat's security team at `[email protected]`
> Please email the details to Rocket.Chat's security team at `[email protected]` or report directly into our [HackerOne Program.](https://hackerone.com/rocket_chat)

Our security team will respond to confirm receipt of your message, review and plan the mitigation of the issue appropriately, as well as set a timeline for a new release or patch.

Expand All @@ -16,7 +16,7 @@ We follow responsible disclosure and will credit researchers when a security iss
- You make a good faith effort to avoid privacy violations, destruction of data and interruption or degradation of our service during your research.
- You give us reasonable time to respond to your report and carry out remediation.
- We credit the first researcher to report an issue. Additionally, we reserve the right to only acknowledge researchers who discover issues in Rocket.Chat projects or related services, if we determine the issue to be of a high or critical severity, or if there has been continued research or contributions made by the reporter.
- We will credit you with your name and a "no-follow" link to the address of your choosing (e.g. Twitter or personal website).
- We will credit you with your name and a "no-follow" link to the address of your choosing (e.g. Twitter or personal website). As a token of our gratitude for your assistance, we also offer an [original Rocket.Chat Shirt](https://shop.spreadshirt.com/rocketchat) to every first reporter of a security problem that was not yet known to us. We may limit this reward to one item per person and depending on the availability of the item. Please refrain from requesting additional compensation for reporting vulnerabilities.
- We will not bring any lawsuit or begin law enforcement investigation into you if you follow these parameters.

## What details should you include when reporting a Security Issue
Expand Down Expand Up @@ -46,5 +46,6 @@ Rocket.Chat is very grateful for the following people who have responsibly discl
- [Joe DeMesy](https://badwith.computer), October/2016
- [Shubham Shah](https://shubs.io), October/2016
- [Steeve Barbeau](https://twitter.com/steevebarbeau), October/2017
- [Johann Helbling](https://mobile.twitter.com/jhelblinghh), August 2019

Thank you all very much!
Thank you all very much!
3 changes: 1 addition & 2 deletions developer-guides/graphql-api/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# GraphQL API

Rocket.Chat now supports a GraphQL API.
> **This API is a work in progress, so feel free to test, ask us questions, and submit Pull Requests!**
> _Support to GraphQL API was removed in version `2.0.0`_

Here are some links that will be useful for the use of Rocket.Chat GraphQL API

Expand Down
2 changes: 2 additions & 0 deletions developer-guides/graphql-api/authentication/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# GraphQL API Authentication

> _Support to GraphQL API was removed in version `2.0.0`_

**Note**

> To be able to use the GraphQL API, a login by GraphQL is needed (Tokens provided by REST API are different from the tokens of the GraphQL API).
Expand Down
2 changes: 2 additions & 0 deletions developer-guides/graphql-api/schema/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# GraphQL API Schema

> _Support to GraphQL API was removed in version `2.0.0`_

To see the GraphQL schema of the Rocket.Chat GraphQL API, you should use some GraphQL graphical tool. <br/>
These tools are able to show the schema, using the [Instropection tool](https://graphql.org/learn/introspection/) of GraphQL.<br/>
You can use the instrospection queries to show the schema, but by a graphical tool is easier.<br/>
Expand Down
2 changes: 2 additions & 0 deletions developer-guides/graphql-api/setup/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# GraphQL API Setup

> _Support to GraphQL API was removed in version `2.0.0`_

## General information

In order to be able to use the GraphQL API, this feature has to be enabled by the administrator. In the admin panel,
Expand Down
2 changes: 2 additions & 0 deletions developer-guides/graphql-api/subscription/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# GraphQL API Subscription

> _Support to GraphQL API was removed in version `2.0.0`_

You can subscribe (Websocket protocol) to listen to events, by a GraphQL subscription.
You should listen the event on the same port defined in the admin panel, in the GraphQL subscription port field. (`General` -> `GrahQL API` -> `GraphQL Subscription Port`)

Expand Down
2 changes: 2 additions & 0 deletions developer-guides/rest-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ When calling a production Rocket.Chat server, ensure it is running via HTTPS and
| `/api/v1/chat.getDeletedMessages` | Retrieves the deleted messages since specific date. | [Link](chat/getdeletedmessages/) |
| `/api/v1/chat.getMessage` | Retrieves a single chat message. | [Link](chat/getmessage/) |
| `/api/v1/chat.getMessageReadReceipts` | Retrieves message read receipts. | [Link](chat/getmessagereadreceipts/) |
| `/api/v1/chat.getPinnedMessages` | Retrieve pinned messages from a room. | [Link](chat/getpinnedmessages/) |
| `/api/v1/chat.getThreadMessages` | Retrieves thread's messages. | [Link](chat/getthreadmessages/) |
| `/api/v1/chat.getThreadsList` | Retrieves channel's threads. | [Link](chat/getthreadslist/) |
| `/api/v1/chat.ignoreUser` | Ignores an user from a chat. | [Link](chat/ignoreuser/) |
Expand Down Expand Up @@ -99,6 +100,7 @@ When calling a production Rocket.Chat server, ensure it is running via HTTPS and
| :------------------------------- | :------------------------------------------------------------ | :------------------------------- |
| `/api/v1/livechat/inquiries.list`| Retrieves a list of open inquiries. | [Link](livechat/inquiries-list/) |
| `/api/v1/livechat/inquiries.take`| Take an open inquiry. | [Link](livechat/inquiries-take/) |
| `/api/v1/livechat/rooms` | Retrieves a list of livechat rooms. | [Link](livechat/rooms/) |

### Permissions

Expand Down
1 change: 1 addition & 0 deletions developer-guides/rest-api/chat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
| `/api/v1/chat.getDeletedMessages` | Retrieves the deleted messages since specific date. | [Link](getdeletedmessages/) |
| `/api/v1/chat.getMessage` | Retrieves a single chat message. | [Link](getmessage/) |
| `/api/v1/chat.getMessageReadReceipts` | Retrieves message read receipts. | [Link](getmessagereadreceipts/) |
| `/api/v1/chat.getPinnedMessages` | Retrieve pinned messages from a room. | [Link](getpinnedmessages/) |
| `/api/v1/chat.getThreadMessages`| Retrieves thread's messages. | [Link](getthreadmessages/) |
| `/api/v1/chat.getThreadsList` | Retrieves channel's threads. | [Link](getthreadslist/) |
| `/api/v1/chat.ignoreUser` | Ignores an user from a chat. | [Link](ignoreuser/) |
Expand Down
88 changes: 88 additions & 0 deletions developer-guides/rest-api/chat/getpinnedmessages/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Get Pinned Messages

Retrieve pinned messages from a room. It supports ONLY the [Offset and Count Query Parameters](../../offset-and-count-and-sort-info/)

| URL | Requires Auth | HTTP Method |
| :--- | :--- | :--- |
| `/api/v1/chat.getPinnedMessages` | `yes` | `GET` |

## Query Parameters

| Argument | Example | Required | Description |
| :--- | :--- | :--- | :--- |
| `roomId` | `ByehQjC44FwMeiLbX` | Required | The room id |
| `offset` | `0` | Optional | See [Offset Parameter](../../offset-and-count-and-sort-info/) |
| `count` | `1` | Optional | See [Count Parameter](../../offset-and-count-and-sort-info/) |

## Example Call

```bash
curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \
-H "X-User-Id: aobEdbYhXfu5hkeqG" \
http://localhost:3000/api/v1/chat.getPinnedMessages?roomId=ByehQjC44FwMeiLbX
```

```bash
curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \
-H "X-User-Id: aobEdbYhXfu5hkeqG" \
http://localhost:3000/api/v1/chat.getPinnedMessages?roomId=ByehQjC44FwMeiLbX&count=2&offset=0
```

## Example Result

```json
{
"messages": [
{
"_id": "Srhca3mgthgjkEisJ",
"rid": "ByehQjC44FwMeiLbX",
"msg": "I pinned this message",
"ts": "2019-03-23T00:53:24.388Z",
"u": {
"_id": "aobEdbYhXfu5hkeqG",
"username": "user",
"name": "User"
},
"mentions": [],
"channels": [],
"_updatedAt": "2019-03-23T00:53:28.813Z",
"pinned": true,
"pinnedAt": "2019-03-23T00:53:28.813Z",
"pinnedBy": {
"_id": "aobEdbYhXfu5hkeqG",
"username": "user"
}
},
{
"_id": "m3AZcKrvayKEZSKJN",
"rid": "GENERAL",
"msg": "Ola",
"ts": "2019-03-23T00:53:50.974Z",
"u": {
"_id": "aobEdbYhXfu5hkeqG",
"username": "user",
"name": "user"
},
"mentions": [],
"channels": [],
"_updatedAt": "2019-03-23T00:53:53.649Z",
"pinned": true,
"pinnedAt": "2019-03-23T00:53:53.649Z",
"pinnedBy": {
"_id": "aobEdbYhXfu5hkeqG",
"username": "user"
}
}
],
"count": 2,
"offset": 0,
"total": 2,
"success": true
}
```

## Change Log

| Version | Description |
| :--- | :--- |
| 2.0.0 | Added |
1 change: 1 addition & 0 deletions developer-guides/rest-api/livechat/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Manage Livechat related data:
| `/api/v1/livechat/message/:_id` | `DELETE` | Delete a Livechat message. | [info](message/index.html#removes-a-livechat-message) |
| `/api/v1/livechat/messages.history/:rid` | `GET` | Load Livechat messages history. | [info](message/index.html#load-livechat-messages-history) |
| `/api/v1/livechat/offline.message` | `POST` | Send a new Livechat offline message. | [info](message/index.html#send-a-new-livechat-offline-message) |
| `/api/v1/livechat/rooms` | `GET` | Retrieves a list of livechat rooms. | [info](rooms/) |
| `/api/v1/livechat/room` | `GET` | Get the Livechat room data or open a new room. | [info](room/index.html) |
| `/api/v1/livechat/room.close` | `POST` | Close a Livechat room. | [info](room/index.html#close-livechat-room) |
| `/api/v1/livechat/room.transfer` | `POST` | Transfer a Livechat room to another agent or department. | [info](room/index.html#transfer-livechat-room) |
Expand Down
Loading