From f10b517356256dab8684f883dbab772d7ae69be6 Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Wed, 31 Jan 2018 11:45:32 -0200 Subject: [PATCH] Fix broken links/markdown on the docs (#533) --- CODE_OF_CONDUCT.md | 21 +- CONTRIBUTING.md | 4 +- README.md | 11 +- Rakefile | 2 +- _layouts/default.html | 4 +- .../account-settings/README.md | 64 ++-- .../authentication/saml/README.md | 6 +- .../create-the-first-admin/README.md | 18 +- .../database-migration/README.md | 23 +- .../file-upload/minio/README.md | 60 ++- administrator-guides/hubot/README.md | 156 ++++---- administrator-guides/import/csv/README.md | 36 +- administrator-guides/import/hipchat/README.md | 4 +- administrator-guides/import/slack/README.md | 4 +- .../import/slack/slackbridge/README.md | 4 +- .../deadsimplescreensharing/README.md | 2 - .../integrations/github/README.md | 118 +++--- .../integrations/nixstats/README.md | 4 +- .../integrations/osticket/README.md | 2 +- .../integrations/replygif/README.md | 6 - .../remote-video-monitoring/README.md | 37 +- contributing/README.md | 6 +- .../contribution-guidelines/README.md | 6 +- .../documentation/documentation-map/README.md | 53 +-- .../markdown-styleguide/README.md | 10 +- .../missing-and-outdated-list/README.md | 44 +-- .../google-summer-of-code-2017/README.md | 179 ++++----- .../google-summer-of-code-2018/README.md | 189 ++++++---- contributing/promoting/README.md | 49 ++- contributing/reporting-issues/README.md | 22 +- contributing/security/README.md | 2 +- contributing/translating/README.md | 2 +- .../branches-and-releases/README.md | 94 +++-- .../code-styleguide/less/README.md | 354 ++++++++++-------- developer-guides/iframe-integration/README.md | 4 + .../authentication/README.md | 103 +++-- .../iframe-integration/commands/README.md | 16 +- .../iframe-integration/events/README.md | 32 +- developer-guides/livechat-api/README.md | 22 +- developer-guides/mobile-apps/README.md | 11 +- developer-guides/realtime-api/README.md | 23 +- .../realtime-api/livechat-api/README.md | 5 +- .../livechat-api/getinitialdata/README.md | 1 + .../livechat-api/registerguest/README.md | 5 +- .../sendmessagelivechat/README.md | 1 + .../realtime-api/method-calls/README.md | 2 +- .../method-calls/archive-rooms/README.md | 36 +- .../method-calls/create-channels/README.md | 30 +- .../create-private-groups/README.md | 30 +- .../method-calls/delete-message/README.md | 21 +- .../method-calls/delete-rooms/README.md | 36 +- .../method-calls/favoriting-rooms/README.md | 17 +- .../get-public-settings/README.md | 6 +- .../method-calls/get-rooms/README.md | 4 +- .../method-calls/get-subscriptions/README.md | 2 +- .../method-calls/hiding-rooms/README.md | 22 +- .../method-calls/joining-channels/README.md | 25 +- .../method-calls/leaving-rooms/README.md | 17 +- .../method-calls/list-custom-emoji/README.md | 3 +- .../method-calls/load-history/README.md | 6 +- .../realtime-api/method-calls/login/README.md | 8 +- .../method-calls/logout/README.md | 5 +- .../method-calls/opening-rooms/README.md | 29 +- .../method-calls/pin-message/README.md | 22 +- .../method-calls/register-user/README.md | 47 +-- .../method-calls/save-room-settings/README.md | 57 +-- .../method-calls/send-message/README.md | 7 +- .../method-calls/set-reaction/README.md | 14 +- .../method-calls/star-message/README.md | 16 +- .../method-calls/unarchive-rooms/README.md | 36 +- .../method-calls/unpin-message/README.md | 16 +- .../method-calls/update-message/README.md | 27 +- .../subscriptions/stream-notify-all/README.md | 12 +- .../stream-notify-room/README.md | 2 +- .../stream-notify-user/README.md | 12 +- .../realtime-api/the-message-object/README.md | 1 + developer-guides/rest-api/README.md | 192 +++++----- .../rest-api/authentication/README.md | 12 +- .../rest-api/authentication/login/README.md | 16 +- .../rest-api/channels/invite/README.md | 19 +- .../rest-api/channels/leave/README.md | 17 +- .../rest-api/chat/postmessage/README.md | 146 ++++---- .../rest-api/commands/get/README.md | 19 +- .../rest-api/commands/list/README.md | 13 +- .../rest-api/commands/run/README.md | 23 +- .../rest-api/groups/rename/README.md | 1 + developer-guides/rest-api/livechat/README.md | 18 +- .../rest-api/livechat/department/README.md | 76 ++-- .../rest-api/livechat/users/README.md | 6 +- .../offset-and-count-and-sort-info/README.md | 12 +- .../rest-api/query-and-fields-info/README.md | 4 +- .../rest-api/users/getavatar/README.md | 19 +- developer-guides/schema-definition/README.md | 97 +++-- developer-guides/troubleshooting/README.md | 18 +- .../ui-and-theming/colors/README.md | 74 ++-- .../ui-and-theming/components/README.md | 24 +- .../ui-and-theming/themes/README.md | 72 ++-- getting-support/README.md | 14 +- installation/docker-containers/README.md | 58 +-- .../manual-installation/centos/README.md | 2 +- .../manual-installation/debian/README.md | 2 +- .../README.md | 173 +++++---- .../manual-installation/opensuse/README.md | 3 +- .../pm2-systemd-upstart/README.md | 4 +- .../manual-installation/ubuntu/README.md | 4 +- .../ubuntu/snaps/README.md | 1 + .../windows-server/README.md | 2 +- .../mobile-and-desktop-apps/README.md | 2 +- installation/paas-deployments/aws/README.md | 4 +- .../paas-deployments/dplatform/README.md | 2 +- .../paas-deployments/hyper-sh/README.md | 2 +- .../paas-deployments/openshift/README.md | 2 +- .../paas-deployments/sloppy-io/README.md | 4 - .../updating/from-0-x-x-to-0-40-0/README.md | 4 +- markdown-style.rb | 2 +- markdown-styleguide.md | 11 +- user-guides/connecting-to-a-server/README.md | 2 +- 117 files changed, 1857 insertions(+), 1706 deletions(-) delete mode 100644 administrator-guides/integrations/replygif/README.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 3ddb933a01..2ced7898fa 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities @@ -43,4 +43,5 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] [homepage]: http://contributor-covenant.org + [version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b285e60b43..203415486c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,7 +24,7 @@ All missing/incomplete articles are links to a list with the description of each You can find a list of issues [here](https://github.com/RocketChat/Rocket.Chat.Docs/issues). When you find something you would like to work on just comment on it and we will add an __In Progress__ label. ---- +- - - ## Creating a new Pull Request @@ -77,7 +77,7 @@ If you add a page called `Testing Rocket.Chat Apps`, it will be converted to `te All words will be lowercased, spaces will be replaced with a `-` and any special character will be removed (like the `.` on `Rocket.Chat`) ---- +- - - ## Reporting Issues and Missing Articles diff --git a/README.md b/README.md index 0ee0d475d5..301fb6c3f8 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,14 @@ --- # Rocket.Chat Docs + ## What would you like to do? -* [Learn how to use Rocket.Chat](user-guides/) -* [Get support](getting-support/) -* [Install Rocket.Chat](installation/) -* [Administer your installation](administrator-guides/) -* [Contribute to the project](contributing/) +- [Learn how to use Rocket.Chat](user-guides/) +- [Get support](getting-support/) +- [Install Rocket.Chat](installation/) +- [Administer your installation](administrator-guides/) +- [Contribute to the project](contributing/) ![image](mockup.png) diff --git a/Rakefile b/Rakefile index 7172cb8ef6..edb16afd05 100644 --- a/Rakefile +++ b/Rakefile @@ -48,6 +48,6 @@ require 'html-proofer' task :test do sh "bundle exec jekyll build" - options = { :assume_extension => true, :allow_hash_href => true } + options = { :assume_extension => true, :allow_hash_href => true, :empty_alt_ignore => true, :disable_external => true } HTMLProofer.check_directory("./_site", options).run end diff --git a/_layouts/default.html b/_layouts/default.html index dc0b648fed..f445973d03 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -81,7 +81,7 @@ {% include toc.html %}
-
+
{{ content }}
@@ -107,7 +107,7 @@
  • Blog
  • diff --git a/administrator-guides/account-settings/README.md b/administrator-guides/account-settings/README.md index 18701eed83..fb37b28c64 100644 --- a/administrator-guides/account-settings/README.md +++ b/administrator-guides/account-settings/README.md @@ -4,52 +4,52 @@ In this section you can modify various settings about the accounts of the users In this guide we will go over all settings in the _Accounts_ Section. -- __Allow anonymous read__: Setting this to true will allow people to use the chat without having to create a account or log in. Anonymous users will be only allowed to read messages on public channels. -- __Allow anonymous write__: This will allow Anonymous users to post messages on public channels. -- __Allow users to delete own account__: Setting this to true allows users to delete they own account. When a user is deleted all their messages are deleted too. -- __Allow User Profile Change__: Setting this to false will block users from changing information on their profile. -- __Allow User Avatar Change__: Setting this to false will block users from changing their avatar. -- __Allow User Username Change__: Setting this to false will block users from changing their username. -- __Allow User Email Change__: Setting this to false will block users from changing their email -- __Allow User Password Change__: Setting this to false will block users from changing their password. +- **Allow anonymous read**: Setting this to true will allow people to use the chat without having to create a account or log in. Anonymous users will be only allowed to read messages on public channels. +- **Allow anonymous write**: This will allow Anonymous users to post messages on public channels. +- **Allow users to delete own account**: Setting this to true allows users to delete they own account. When a user is deleted all their messages are deleted too. +- **Allow User Profile Change**: Setting this to false will block users from changing information on their profile. +- **Allow User Avatar Change**: Setting this to false will block users from changing their avatar. +- **Allow User Username Change**: Setting this to false will block users from changing their username. +- **Allow User Email Change**: Setting this to false will block users from changing their email +- **Allow User Password Change**: Setting this to false will block users from changing their password. -- __Login Expiration in Days__: After this number of days of inactivity the user will be logged out. -- __Show form-based Login__: Setting this to false will remove the log in form from the login screen. This setting is useful when you are using a third party login system. -- __Placeholder for email or username login field__: This will change the placeholder for the _email or username_ field on the login screen. -- __Placeholder for password login field__: This will change the placeholder for the _password_ field on the login screen. -- __Forget user session on window close__: This will log out users when they close the window containing Rocket.Chat +- **Login Expiration in Days**: After this number of days of inactivity the user will be logged out. +- **Show form-based Login**: Setting this to false will remove the log in form from the login screen. This setting is useful when you are using a third party login system. +- **Placeholder for email or username login field**: This will change the placeholder for the _email or username_ field on the login screen. +- **Placeholder for password login field**: This will change the placeholder for the _password_ field on the login screen. +- **Forget user session on window close**: This will log out users when they close the window containing Rocket.Chat ## Avatar -- __Resize Avatar__: Set this to true to resize users avatars to a predefined size. You need ImageMagick or GraphicsMagick installed on your server for this feature to work. -- __Avatar Size__: The desired size after the avatar resizing. The unit is pixels (px). -- __Set Default Avatar__: If this setting is set to true, Rocket.Chat will try to find a default avatar based on OAuth Account or Gravatar. +- **Resize Avatar**: Set this to true to resize users avatars to a predefined size. You need ImageMagick or GraphicsMagick installed on your server for this feature to work. +- **Avatar Size**: The desired size after the avatar resizing. The unit is pixels (px). +- **Set Default Avatar**: If this setting is set to true, Rocket.Chat will try to find a default avatar based on OAuth Account or Gravatar. ## Iframe -These settings are related to the Iframe Integration, please se the [Iframe integration page] (/developers-guides/iframe-integration) for more details. +These settings are related to the Iframe Integration, please se the [Iframe integration page](../../developer-guides/iframe-integration) for more details. ## Registration -- __Default username prefix suggestion__: This is the prefix that will be suggested when a user is creating a username. -- __Require Name For Signup__: If this is set to true, the name of the user will be required to create a account. -- __Require Password Confirmation__: If this is set to true, the user will have to input his password twice when registering. -- __Email Verification__: If this is set to true, users will have to confirm their email via a confirmation email sent to their email. (For this setting work, the SMTP settings must be already set up. See [Email Configuration](../../../administrator-guides/email/setup)) -- __Manually Approve New Users__: If this is set to true, new users will have to wait for a user with the `view-user-administration` permission to approve their account before using Rocket.Chat. -- __Allowed Domains List__: This will block emails with different domains than the ones on this list. -- __Blocked Domains List__: This will block emails with domains that are on on this list. -- __Use Default Blocked Domains List__: Will block the email domains listed on this [file](https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/rocketchat-lib/server/lib/defaultBlockedDomainsList.js) -- __Use DNS Domain Check__: When this is set to true, users wont be able to register with invalid domains. -- __Registration Form__: This will change how the registration form is presented. Currently there are 3 options: +- **Default username prefix suggestion**: This is the prefix that will be suggested when a user is creating a username. +- **Require Name For Signup**: If this is set to true, the name of the user will be required to create a account. +- **Require Password Confirmation**: If this is set to true, the user will have to input his password twice when registering. +- **Email Verification**: If this is set to true, users will have to confirm their email via a confirmation email sent to their email. (For this setting work, the SMTP settings must be already set up. See [Email Configuration](../email/setup)) +- **Manually Approve New Users**: If this is set to true, new users will have to wait for a user with the `view-user-administration` permission to approve their account before using Rocket.Chat. +- **Allowed Domains List**: This will block emails with different domains than the ones on this list. +- **Blocked Domains List**: This will block emails with domains that are on on this list. +- **Use Default Blocked Domains List**: Will block the email domains listed on this [file](https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/rocketchat-lib/server/lib/defaultBlockedDomainsList.js) +- **Use DNS Domain Check**: When this is set to true, users wont be able to register with invalid domains. +- **Registration Form**: This will change how the registration form is presented. Currently there are 3 options: - Public: The form will be public and anyone will be able to access; - Disabled: The form will be disable and users wont be able to register through it; - Secret URL: The form will be only accessible using a specific URL; -- __Registration Form Secret URL__: String to be added to the secret URL. Is recommended to use a random string for that. Example: `https://open.rocket.chat/register/[secret_hash]`. -- __Registration Form Link Replacement Text__: Text to be shown in place of the registration form when the registration form is disabled. -- __Registration with Authentication Services__: Set this to true to allow registration with third party authentication services like Google or Twitter. -- __Default Roles for Authentication Services__: Default roles users will be given when registering through authentication services. -- __Password Reset__: Set this to true to allow users to reset their password. +- **Registration Form Secret URL**: String to be added to the secret URL. Is recommended to use a random string for that. Example: `https://open.rocket.chat/register/[secret_hash]`. +- **Registration Form Link Replacement Text**: Text to be shown in place of the registration form when the registration form is disabled. +- **Registration with Authentication Services**: Set this to true to allow registration with third party authentication services like Google or Twitter. +- **Default Roles for Authentication Services**: Default roles users will be given when registering through authentication services. +- **Password Reset**: Set this to true to allow users to reset their password. diff --git a/administrator-guides/authentication/saml/README.md b/administrator-guides/authentication/saml/README.md index 498371090b..9fe35dab6f 100644 --- a/administrator-guides/authentication/saml/README.md +++ b/administrator-guides/authentication/saml/README.md @@ -6,7 +6,7 @@ This is the unique name for your application as a Service Provider (SP) for SAML. Whatever you enter here will produce a metadata XML file you will need in order to populate the metadata your IdP (Identity Provider) requires. For example, if you put 'my-app', then your metadata will be at: - +`https://my-rocketchat-domain.tld/_saml/metadata/my-app` ### Custom Entry Point (IDP SSO Redirect URL) @@ -20,7 +20,7 @@ This is the URL provided by your IdP for logging out. In SAML-terminology, the i The URI that is the unique identifier of your service. By convention, this is also URL of your (unedited) metadata, again, where you set Custom Provider to 'my-app' this will be: - +`https://my-rocketchat-domain.tld/_saml/metadata/my-app` ### Custom Certificate (IDP Signing Certificate) @@ -42,7 +42,7 @@ You will have to send email field in your assertion or it will not work. If the As a popular open source IdP, SimpleSAMLphp can be used to provide an authentication endpoint for Rocket.Chat and the built in SAML support. Assuming you have a SimpleSAMLphp IdP up and running - [quickstart intructions here](https://simplesamlphp.org/docs/stable/simplesamlphp-idp) - you can find the metadata for the Rocket.Chat SAML Service Provider (SP) here, where 'my-app' is whatever you put in the 'Custom Provider' box in the Rocket.Chat SAML admin page: - +`https://my-rocketchat-domain.tld/_saml/metadata/my-app` Copy the XML on this page, open the metadata converter page in your SimpleSAMLphp admin UI (which you'll find at `/admin/metadata-converter.php`), paste the XML and submit. diff --git a/administrator-guides/create-the-first-admin/README.md b/administrator-guides/create-the-first-admin/README.md index 0a70f4d4ad..91a6275a78 100644 --- a/administrator-guides/create-the-first-admin/README.md +++ b/administrator-guides/create-the-first-admin/README.md @@ -4,13 +4,11 @@ After you deploy your server, the first user to register becomes the administrat In case your server has no administrators, you can create the first admin account by defining the environment variables ADMIN_PASS and ADMIN_EMAIL once. -``` -export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ -export MONGO_URL=mongodb://localhost:27017/rocketchat -export PORT=3000 -export ADMIN_USERNAME=admin -export ADMIN_PASS=supersecret -export ADMIN_EMAIL=admin@example.com - -node main.js -``` + export ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000/ + export MONGO_URL=mongodb://localhost:27017/rocketchat + export PORT=3000 + export ADMIN_USERNAME=admin + export ADMIN_PASS=supersecret + export ADMIN_EMAIL=admin@example.com + + node main.js diff --git a/administrator-guides/database-migration/README.md b/administrator-guides/database-migration/README.md index 4e41c446e8..dc426e5b93 100644 --- a/administrator-guides/database-migration/README.md +++ b/administrator-guides/database-migration/README.md @@ -12,26 +12,19 @@ Database migration may fail in these scenarios. A typical failure message is similar to: -``` -| Your database migration failed: | -| Object [object Object] has no method 'addUsersToRoles' | -(...) -| This Rocket.Chat version: 0.39.0 | -| Database locked at version: 18 | -| Database target version: 58 | - -``` + | Your database migration failed: | + | Object [object Object] has no method 'addUsersToRoles' | + (...) + | This Rocket.Chat version: 0.39.0 | + | Database locked at version: 18 | + | Database target version: 58 | As an example, the above migration is locked and stuck on 18. We need a target of 19 before migration to 58. One way to force migration is to manually unlock the migration in mongo and also increase database version to the target version (19). -``` - -use rocketchat -db.migrations.update({_id: 'control'},{$set:{locked:false,version:19}}) - -``` + use rocketchat + db.migrations.update({_id: 'control'},{$set:{locked:false,version:19}}) Restart Rocket.Chat and the migration should succeed now to the latest version. diff --git a/administrator-guides/file-upload/minio/README.md b/administrator-guides/file-upload/minio/README.md index d4102e0b40..a1245824c7 100644 --- a/administrator-guides/file-upload/minio/README.md +++ b/administrator-guides/file-upload/minio/README.md @@ -9,28 +9,26 @@ alternative to AWS S3. You can [download and install](https://minio.io/downloads Once you install and deploy Minio server, you can get the AccessKey and SecretKey from the startup message. -``` -2017-01-24T19:53:21.141689279Z -2017-01-24T19:53:21.141730078Z Endpoint: http://172.17.0.2:9000 http://127.0.0.1:9000 -2017-01-24T19:53:21.141735582Z AccessKey: 5fD3434325fDaGE77BNJlSoV1xGp -2017-01-24T19:53:21.141738933Z SecretKey: Quie2teech4oofoo9Dahsoo7aithauja -2017-01-24T19:53:21.141742292Z Region: us-east-1 -2017-01-24T19:53:21.141745405Z SQS ARNs: -2017-01-24T19:53:21.141749472Z -2017-01-24T19:53:21.141752499Z Browser Access: -2017-01-24T19:53:21.141755711Z http://172.17.0.2:9000 http://127.0.0.1:9000 -2017-01-24T19:53:21.141758830Z -2017-01-24T19:53:21.141762000Z Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide -2017-01-24T19:53:21.141765638Z $ mc config host add myminio http://172.17.0.2:9000 1H2MI5BCU45990DZ3WRL flJlSoV1xGp+u2fhfDaGE77BNE6OdyvAsdI15kPq -2017-01-24T19:53:21.141768751Z -2017-01-24T19:53:21.141771631Z Object API (Amazon S3 compatible): -2017-01-24T19:53:21.141774638Z Go: https://docs.minio.io/docs/golang-client-quickstart-guide -2017-01-24T19:53:21.142003548Z Java: https://docs.minio.io/docs/java-client-quickstart-guide -2017-01-24T19:53:21.142019474Z Python: https://docs.minio.io/docs/python-client-quickstart-guide -2017-01-24T19:53:21.142024004Z JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide -2017-01-24T19:53:21.142027614Z -2017-01-24T19:53:21.142030994Z Drive Capacity: 262 GiB Free, 303 GiB Total -``` + 2017-01-24T19:53:21.141689279Z + 2017-01-24T19:53:21.141730078Z Endpoint: http://172.17.0.2:9000 http://127.0.0.1:9000 + 2017-01-24T19:53:21.141735582Z AccessKey: 5fD3434325fDaGE77BNJlSoV1xGp + 2017-01-24T19:53:21.141738933Z SecretKey: Quie2teech4oofoo9Dahsoo7aithauja + 2017-01-24T19:53:21.141742292Z Region: us-east-1 + 2017-01-24T19:53:21.141745405Z SQS ARNs: + 2017-01-24T19:53:21.141749472Z + 2017-01-24T19:53:21.141752499Z Browser Access: + 2017-01-24T19:53:21.141755711Z http://172.17.0.2:9000 http://127.0.0.1:9000 + 2017-01-24T19:53:21.141758830Z + 2017-01-24T19:53:21.141762000Z Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide + 2017-01-24T19:53:21.141765638Z $ mc config host add myminio http://172.17.0.2:9000 1H2MI5BCU45990DZ3WRL flJlSoV1xGp+u2fhfDaGE77BNE6OdyvAsdI15kPq + 2017-01-24T19:53:21.141768751Z + 2017-01-24T19:53:21.141771631Z Object API (Amazon S3 compatible): + 2017-01-24T19:53:21.141774638Z Go: https://docs.minio.io/docs/golang-client-quickstart-guide + 2017-01-24T19:53:21.142003548Z Java: https://docs.minio.io/docs/java-client-quickstart-guide + 2017-01-24T19:53:21.142019474Z Python: https://docs.minio.io/docs/python-client-quickstart-guide + 2017-01-24T19:53:21.142024004Z JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide + 2017-01-24T19:53:21.142027614Z + 2017-01-24T19:53:21.142030994Z Drive Capacity: 262 GiB Free, 303 GiB Total To override Minio's auto-generated keys, you may pass secret and access keys explicitly as environment variables. Explained [here](https://docs.minio.io/docs/minio-docker-quickstart-guide) @@ -38,15 +36,15 @@ To override Minio's auto-generated keys, you may pass secret and access keys exp To setup Minio as the file storage server in Rocket.Chat, go to `File Uploads` section under `administration`, then set `Storage Type: GridFS (default)` to `AmazonS3`. Next, access the AmazonS3 menu and update the following details: -| Configuration Name | Description | -| ------------------ | ------------- | -| Bucket name | Minio Bucket Name | -| Access Key | Minio server Access Key | -| Secret Key | Minio server Secret Access Key | -| Region | us-east-1 | -| Bucket URL | | -| Signature Version | v2 (This may not be needed if using ssl) | -| Force Path Style | true (this may not be needed if using ssl) | +| Configuration Name | Description | +| -------------------- | --------------------------------------------------------- | +| Bucket name | Minio Bucket Name | +| Access Key | Minio server Access Key | +| Secret Key | Minio server Secret Access Key | +| Region | us-east-1 | +| Bucket URL | `http://[your.minio.domain/bucketname]` | +| Signature Version | v2 (This may not be needed if using ssl) | +| Force Path Style | true (this may not be needed if using ssl) | | URLs expiration time | 0 (if you want that your files don't have an expiry date) | ## Production setup diff --git a/administrator-guides/hubot/README.md b/administrator-guides/hubot/README.md index 9cd646be01..fd735a3d46 100644 --- a/administrator-guides/hubot/README.md +++ b/administrator-guides/hubot/README.md @@ -9,59 +9,53 @@ We have a couple of ways for you to get up and started with the hubot: You can quickly spin up a docker image with: -``` -docker run -it -e ROCKETCHAT_URL=: \ - -e ROCKETCHAT_ROOM='' \ - -e LISTEN_ON_ALL_PUBLIC=true \ - -e ROCKETCHAT_USER=bot \ - -e ROCKETCHAT_PASSWORD=bot \ - -e ROCKETCHAT_AUTH=password \ - -e BOT_NAME=bot \ - -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ - rocketchat/hubot-rocketchat -``` + docker run -it -e ROCKETCHAT_URL=: \ + -e ROCKETCHAT_ROOM='' \ + -e LISTEN_ON_ALL_PUBLIC=true \ + -e ROCKETCHAT_USER=bot \ + -e ROCKETCHAT_PASSWORD=bot \ + -e ROCKETCHAT_AUTH=password \ + -e BOT_NAME=bot \ + -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ + rocketchat/hubot-rocketchat ### Custom Scripts If you want to include your own custom scripts you can by doing: -``` -docker run -it -e ROCKETCHAT_URL=: \ - -e ROCKETCHAT_ROOM='' \ - -e LISTEN_ON_ALL_PUBLIC=true \ - -e ROCKETCHAT_USER=bot \ - -e ROCKETCHAT_PASSWORD=bot \ - -e ROCKETCHAT_AUTH=password \ - -e BOT_NAME=bot \ - -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ - -v $PWD/scripts:/home/hubot/scripts \ - rocketchat/hubot-rocketchat -``` + docker run -it -e ROCKETCHAT_URL=: \ + -e ROCKETCHAT_ROOM='' \ + -e LISTEN_ON_ALL_PUBLIC=true \ + -e ROCKETCHAT_USER=bot \ + -e ROCKETCHAT_PASSWORD=bot \ + -e ROCKETCHAT_AUTH=password \ + -e BOT_NAME=bot \ + -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ + -v $PWD/scripts:/home/hubot/scripts \ + rocketchat/hubot-rocketchat ### Docker-compose If you want to use docker-compose for this task, add this for v0.1.4 adapter (this must be inserted in your docker-compose.yml): -``` -# hubot, the popular chatbot (add the bot user first and change the password before starting this image) -hubot: - image: rocketchat/hubot-rocketchat:v0.1.4 - environment: - - ROCKETCHAT_URL=your-rocket-chat-instance-ip:3000 (e.g. 192.168.2.240:3000) - - ROCKETCHAT_ROOM= - - LISTEN_ON_ALL_PUBLIC=true - - ROCKETCHAT_USER=username-of-your-bot - - ROCKETCHAT_PASSWORD=yourpass - - BOT_NAME=bot - - GOOGLE_API_KEY=yourgoogleapikey -# you can add more scripts as you'd like here, they need to be installable by npm - - EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics,hubot-google,hubot-reddit,hubot-bofh,hubot-bookmark,hubot-shipit,hubot-maps - links: - - rocketchat:rocketchat -# this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier - ports: - - 3001:8080 -``` + # hubot, the popular chatbot (add the bot user first and change the password before starting this image) + hubot: + image: rocketchat/hubot-rocketchat:v0.1.4 + environment: + - ROCKETCHAT_URL=your-rocket-chat-instance-ip:3000 (e.g. 192.168.2.240:3000) + - ROCKETCHAT_ROOM= + - LISTEN_ON_ALL_PUBLIC=true + - ROCKETCHAT_USER=username-of-your-bot + - ROCKETCHAT_PASSWORD=yourpass + - BOT_NAME=bot + - GOOGLE_API_KEY=yourgoogleapikey + # you can add more scripts as you'd like here, they need to be installable by npm + - EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics,hubot-google,hubot-reddit,hubot-bofh,hubot-bookmark,hubot-shipit,hubot-maps + links: + - rocketchat:rocketchat + # this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier + ports: + - 3001:8080 If you wish that your bot listen to all public rooms and all private rooms he is joined to let the env "ROCKETCHAT_ROOM" empty like in the example above and set the env "LISTEN_ON_ALL_PUBLIC" to true. @@ -71,37 +65,29 @@ hubot: First you need to install hubot -``` -npm install -g yo generator-hubot -``` + npm install -g yo generator-hubot Then you need to start the setup of the bot -``` -mkdir myhubot -cd myhubot -yo hubot --adapter="rocketchat@1" -``` + mkdir myhubot + cd myhubot + yo hubot --adapter="rocketchat@1" It'll ask you a few questions. Alternatively you can actually answer the questions in one command: -``` -yo hubot --owner="OWNER " --name="bot" --description="Bot" --adapter="rocketchat@0.1" -``` + yo hubot --owner="OWNER " --name="bot" --description="Bot" --adapter="rocketchat@0.1" Also be sure to remember the name you specify. This is what the bot will respond to in Rocket.Chat. You will need to tell the adapter where your install is and what login information to use. -``` -export ROCKETCHAT_ROOM='' -export LISTEN_ON_ALL_PUBLIC=true -export ROCKETCHAT_USER=bot -export ROCKETCHAT_PASSWORD=bot -export ROCKETCHAT_AUTH=password -``` + export ROCKETCHAT_ROOM='' + export LISTEN_ON_ALL_PUBLIC=true + export ROCKETCHAT_USER=bot + export ROCKETCHAT_PASSWORD=bot + export ROCKETCHAT_AUTH=password Then start with: `bin/hubot -a rocketchat` @@ -115,23 +101,23 @@ On Docker you use: `-e VAR=Value` Regular hubot via: `export VAR=Value` or add to pm2 etc -Environment Variable | Description -:---- | :---- -ROCKETCHAT_URL | the URL where Rocket.Chat is running, can be specified as `host:port` or `http://host:port` or `https://host:port`. If you are using `https://`, you **MUST** setup websocket pass-through on your reverse proxy (NGINX, and so on) with a valid certificate (not self-signed). Directly accessing Rocket.Chat without a reverse proxy via `https://` is not possible. -ROCKETCHAT_USER | the bot user's name. It must be a registered user on your Rocket.Chat server, and the user must be granted `bot` role via Rocket.Chat's administrator's panel (note that this will also be the name that you can summon the bot with) -ROCKETCHAT_PASSWORD | the bot user's password -ROCKETCHAT_AUTH | defaults to 'password' if undefinied, or set to 'ldap' if your use LDAP accounts for bots. -ROCKETCHAT_ROOM | the channel/channels names the bot should listen to message from. This can be comma separated list. -LISTEN_ON_ALL_PUBLIC | if 'true' then bot will listen and respond to messages from all public channels, as well as respond to direct messages. Default to 'false'. ROCKETCHAT_ROOM should be set to empty (with `ROCKETCHAT_ROOM=''` ) when using `LISTEN_ON_ALL_PUBLIC`. *IMPORTANT NOTE*: This option also allows the bot to listen and respond to messages _from all newly created private groups_ that the bot's user has been added as a member. -RESPOND_TO_DM | if 'true' then bot will listen and respond to direct messages. When setting the option to 'true', be sure to also set ROCKETCHAT_ROOM. This option needs not be set if you are including LISTEN_ON_ALL_PUBLIC. Default is 'false'. -RESPOND_TO_EDITED | if 'true' then bot will respond to edited messages. Default is 'false'. -ROOM_ID_CACHE_SIZE | The maximum number of room IDs to cache. You can increase this if your bot usually sends messages to a large number of different rooms. Default value: 10 -DM_ROOM_ID_CACHE_SIZE | The maximum number of Direct Message room IDs to cache. You can increase this if your bot usually sends a large number of Direct Messages. Default value: 100 -ROOM_ID_CACHE_MAX_AGE | Room IDs and DM Room IDS are cached for this number of seconds. You can increase this value to improve performance in certain scenarios. Default value: 300 -BOT_NAME | ** Name of the bot. This is what it responds to -EXTERNAL_SCRIPTS | ** These are the npm modules it will add to hubot. You can use name of npm modules from [this](https://www.npmjs.com/browse/keyword/hubot-scripts) site. - -** - Docker image only. +| Environment Variable | Description | +| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ROCKETCHAT_URL | the URL where Rocket.Chat is running, can be specified as `host:port` or `http://host:port` or `https://host:port`. If you are using `https://`, you **MUST** setup websocket pass-through on your reverse proxy (NGINX, and so on) with a valid certificate (not self-signed). Directly accessing Rocket.Chat without a reverse proxy via `https://` is not possible. | +| ROCKETCHAT_USER | the bot user's name. It must be a registered user on your Rocket.Chat server, and the user must be granted `bot` role via Rocket.Chat's administrator's panel (note that this will also be the name that you can summon the bot with) | +| ROCKETCHAT_PASSWORD | the bot user's password | +| ROCKETCHAT_AUTH | defaults to 'password' if undefinied, or set to 'ldap' if your use LDAP accounts for bots. | +| ROCKETCHAT_ROOM | the channel/channels names the bot should listen to message from. This can be comma separated list. | +| LISTEN_ON_ALL_PUBLIC | if 'true' then bot will listen and respond to messages from all public channels, as well as respond to direct messages. Default to 'false'. ROCKETCHAT_ROOM should be set to empty (with `ROCKETCHAT_ROOM=''` ) when using `LISTEN_ON_ALL_PUBLIC`. _IMPORTANT NOTE_: This option also allows the bot to listen and respond to messages \_from all newly created private groups_ that the bot's user has been added as a member. | +| RESPOND_TO_DM | if 'true' then bot will listen and respond to direct messages. When setting the option to 'true', be sure to also set ROCKETCHAT_ROOM. This option needs not be set if you are including LISTEN_ON_ALL_PUBLIC. Default is 'false'. | +| RESPOND_TO_EDITED | if 'true' then bot will respond to edited messages. Default is 'false'. | +| ROOM_ID_CACHE_SIZE | The maximum number of room IDs to cache. You can increase this if your bot usually sends messages to a large number of different rooms. Default value: 10 | +| DM_ROOM_ID_CACHE_SIZE | The maximum number of Direct Message room IDs to cache. You can increase this if your bot usually sends a large number of Direct Messages. Default value: 100 | +| ROOM_ID_CACHE_MAX_AGE | Room IDs and DM Room IDS are cached for this number of seconds. You can increase this value to improve performance in certain scenarios. Default value: 300 | +| BOT_NAME | \*\* Name of the bot. This is what it responds to | +| EXTERNAL_SCRIPTS | \*\* These are the npm modules it will add to hubot. You can use name of npm modules from [this](https://www.npmjs.com/browse/keyword/hubot-scripts) site. | + +\*\* - Docker image only. ### FAQ @@ -142,27 +128,21 @@ You will want to set the environment variable: `RESPOND_TO_DM` to true **How do I make the bot listen on all public channels?** You will want to set the environment variable: `LISTEN_ON_ALL_PUBLIC` to true -** Note: This will also listen for commands in any private room that the bot has been added. But will only be able to do so after its added. +\*\* Note: This will also listen for commands in any private room that the bot has been added. But will only be able to do so after its added. ### Verify your bot is working Try: -``` -rocketbot ping -``` + rocketbot ping And: -``` -rocketbot help -``` + rocketbot help The example bot under `scripts` directory responds to: -``` -rocketbot report status -``` + rocketbot report status ## Developers diff --git a/administrator-guides/import/csv/README.md b/administrator-guides/import/csv/README.md index b650c143be..6602ef051c 100644 --- a/administrator-guides/import/csv/README.md +++ b/administrator-guides/import/csv/README.md @@ -6,27 +6,25 @@ The CSV importer allows you to import your own plain text files, however it does The zip file must be a **flat zip**, which means there can **not** be a "root" or "sub" folder in which the items reside in the zip file. The importer looks for the files `channels.csv` and `users.csv` immediately inside the zip and not inside of any folder. If you have any questions about this, please ask in [#support channel on the Community server](https://open.rocket.chat/channel/support). -``` -fileToImport.zip -├── channels.csv -├── users.csv -├── general -│   └── messages.csv -├── otherChannelName -│   ├── canBeAnyNameButHasToHave.csv -│   ├── theDotCSV.csv -│   └── asTheFileExt.csv -├── privateArea -│   └── messages.csv -└── random -    ├── dateTimeStamp1.csv -    ├── dateTimeStamp2.csv -    └── dateTimeStamp3.csv -``` + fileToImport.zip + ├── channels.csv + ├── users.csv + ├── general + │   └── messages.csv + ├── otherChannelName + │   ├── canBeAnyNameButHasToHave.csv + │   ├── theDotCSV.csv + │   └── asTheFileExt.csv + ├── privateArea + │   └── messages.csv + └── random +    ├── dateTimeStamp1.csv +    ├── dateTimeStamp2.csv +    └── dateTimeStamp3.csv ## channels.csv Format -The `channels.csv` requires a **very** specific structure and layout. Each line contains information about one channel. Each line must include the channel name, the creator, whether it is private or public, and the members in the channel separated by a semicolon `;`. Quotes are ***required***. +The `channels.csv` requires a **very** specific structure and layout. Each line contains information about one channel. Each line must include the channel name, the creator, whether it is private or public, and the members in the channel separated by a semicolon `;`. Quotes are **_required_**. 1. Channel name 2. Username of the channel creator @@ -71,7 +69,7 @@ The message csv files require a **very** specific format. Each line contains a n Once you have that all set up and zipped, then you can start the import process. -1. Go to +1. Go to `https://[your_rocketchat]/admin/import/prepare/csv` 2. Choose your `.zip` file and wait until Rocket.Chat can read it (it can take a few minutes, depending on the size of the file) 3. Deselect any items you **don't** want to import 4. At the top of the page, click on Start Importing diff --git a/administrator-guides/import/hipchat/README.md b/administrator-guides/import/hipchat/README.md index 3bf55b1699..a7d2cf11b4 100644 --- a/administrator-guides/import/hipchat/README.md +++ b/administrator-guides/import/hipchat/README.md @@ -5,5 +5,5 @@ There are currently two different HipChat importers. One for HipChat Cloud and a - [HipChat Cloud][1] - [HipChat Enterprise][2] -[1]:Cloud/ -[2]:Enterprise/ \ No newline at end of file +[1]:cloud/ +[2]:enterprise/ \ No newline at end of file diff --git a/administrator-guides/import/slack/README.md b/administrator-guides/import/slack/README.md index 36f9d0c6e0..be663e8c5c 100644 --- a/administrator-guides/import/slack/README.md +++ b/administrator-guides/import/slack/README.md @@ -2,10 +2,10 @@ To import your current Slack data into Rocket.Chat: -1. Go to +1. Go to `https://[your_app].slack.com/services/export` 2. Click on Start Export 3. Wait until your download is ready and download it (it will be a .zip file) -4. Go to +4. Go to `https://[your_rocketchat]/admin/import/prepare/slack` 5. Choose your downloaded .zip file and wait until Rocket.Chat can read it (it can take a few minutes, depending on the size of your Slack export) 6. Deselect any items you **don't** want to import 7. At the top of the page, click on Start Importing diff --git a/administrator-guides/import/slack/slackbridge/README.md b/administrator-guides/import/slack/slackbridge/README.md index 526dd0387c..cab5bb4bad 100644 --- a/administrator-guides/import/slack/slackbridge/README.md +++ b/administrator-guides/import/slack/slackbridge/README.md @@ -7,7 +7,7 @@ Once enabled and added to rooms, SlackBridge will clone the room in Rocket.Chat ## To create a Custom Bot in Slack: -1. Go to +1. Go to `https://[your_app].slack.com/apps/manage/custom-integrations` 2. At the top-right of your screen, click on Build 3. Choose Legacy custom integrations 4. Scroll down and click on ["Set up a bot user"](https://my.slack.com/apps/A0F7YS25R-bots) @@ -18,7 +18,7 @@ Once enabled and added to rooms, SlackBridge will clone the room in Rocket.Chat ## To enable SlackBridge in Rocket.Chat: -1. Go to +1. Go to `https://[your_host]/admin/SlackBridge` 2. Enable SlackBridge 3. Add your API Token, copied in step 6 above 4. Restart you Rocket.chat server diff --git a/administrator-guides/integrations/deadsimplescreensharing/README.md b/administrator-guides/integrations/deadsimplescreensharing/README.md index f8c60b9d3b..6d0aaac396 100644 --- a/administrator-guides/integrations/deadsimplescreensharing/README.md +++ b/administrator-guides/integrations/deadsimplescreensharing/README.md @@ -20,8 +20,6 @@ Create a Dead Simple Screen Sharing Meeting to do Screen Sharing and audio/video ![Dead Simple Screen Sharing rocket chat config](https://www.deadsimplescreensharing.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-12-at-7.37.15-PM-1024x839.png) - - That's it! we have integrated "Dead Simple Screen Sharing", now when chatting we just have to send the message `screenshare` and a Dead Simple Screen Sharing meeting will be created, and you and your team members can visit the meeting link and perform screen sharing and audio-conferencing. ![Dead Simple Screen Sharing Rocket.chat integartion](https://www.deadsimplescreensharing.com/wp-content/uploads/2018/01/Screen-Shot-2018-01-12-at-7.40.07-PM-1024x453.png) \ No newline at end of file diff --git a/administrator-guides/integrations/github/README.md b/administrator-guides/integrations/github/README.md index 29f5f7430b..9023bf70cf 100644 --- a/administrator-guides/integrations/github/README.md +++ b/administrator-guides/integrations/github/README.md @@ -8,11 +8,11 @@ We can do 2 types of integrations with GitHub: ## Receive alerts 1. Create a new **Incoming WebHook** -2. Select the channel where you will receive the alerts. You may wish to create a dedicated channel for your notifications. -3. Select an account from which the alerts will be posted. You may wish to create a dedicated account just for notifications. +2. Select the channel where you will receive the alerts. You may wish to create a dedicated channel for your notifications. +3. Select an account from which the alerts will be posted. You may wish to create a dedicated account just for notifications. 4. Set the "Enable Scripts" option to `True`. 5. Copy-paste one of the example scripts below. -6. Save the integration. This will generate a webhook URL and secret for you. +6. Save the integration. This will generate a webhook URL and secret for you. 7. Go to your repository `Settings -> WebHooks & services -> Add WebHook` 8. Paste your **WebHook URL** from Rocket.Chat into **Payload URL** 9. Keep **Content type** as `application/json` @@ -500,20 +500,18 @@ class Script { #### Customizing your integration scripts -The purpose of the integration script is to transform data in one format (the format provided by your incoming service, such as Github) into another format (the format expected by Rocket.Chat). Therefore, should you wish to customize either of the scripts presented above, you will need two resources: +The purpose of the integration script is to transform data in one format (the format provided by your incoming service, such as Github) into another format (the format expected by Rocket.Chat). Therefore, should you wish to customize either of the scripts presented above, you will need two resources: - [Github API specifications](https://developer.github.com/v3/) -- [Specifications for Rocket.Chat integration message objects](../../../administrator-guides/integrations/#script-details) +- [Specifications for Rocket.Chat integration message objects](../../integrations/index.html#incoming-script-details) -Note that data comes *into* your script from Github as the `request.content` object. +Note that data comes _into_ your script from Github as the `request.content` object. The Handlebars template used by Rocket.Chat to render messages from a JSON object may also be useful, and can be found [here](https://github.com/RocketChat/Rocket.Chat/blob/master/packages/rocketchat-message-attachments/client/messageAttachment.html). ### Send commands to GitHub -``` -This script only works for public repositories -``` + This script only works for public repositories - Create a new **Outgoing WebHook** - Select the channel where you will use the commands and receive the responses @@ -521,65 +519,65 @@ This script only works for public repositories - Enable Scripts - Use this **Script** to listen for commands `pr ls`, `pr list` and `help` -```javascript -/* exported Script */ -/* globals Store */ +````javascript + /* exported Script */ + /* globals Store */ -class Script { - prepare_outgoing_request({ request }) { - let match; + class Script { + prepare_outgoing_request({ request }) { + let match; - console.log('lastCmd', Store.get('lastCmd')); + console.log('lastCmd', Store.get('lastCmd')); - match = request.data.text.match(/^pr last$/); - if (match && Store.get('lastCmd')) { - request.data.text = Store.get('lastCmd'); - } + match = request.data.text.match(/^pr last$/); + if (match && Store.get('lastCmd')) { + request.data.text = Store.get('lastCmd'); + } - match = request.data.text.match(/^pr\s(ls|list)\s*(open|closed|all)?$/); - if (match) { - Store.set('lastCmd', request.data.text); - let u = request.url + '/pulls'; - if (match[2]) { - u += '?state='+match[2]; - } - return { - url: u, - headers: request.headers, - method: 'GET' - }; - } + match = request.data.text.match(/^pr\s(ls|list)\s*(open|closed|all)?$/); + if (match) { + Store.set('lastCmd', request.data.text); + let u = request.url + '/pulls'; + if (match[2]) { + u += '?state='+match[2]; + } + return { + url: u, + headers: request.headers, + method: 'GET' + }; + } - match = request.data.text.match(/^help$/); - if (match) { - Store.set('lastCmd', request.data.text); - return { - message: { - text: [ - '**GitHub commands**', - '```', - ' pr ls|list [open|closed|all] List Pull Requests', - '```' - ].join('\n') + match = request.data.text.match(/^help$/); + if (match) { + Store.set('lastCmd', request.data.text); + return { + message: { + text: [ + '**GitHub commands**', + '```', + ' pr ls|list [open|closed|all] List Pull Requests', + '```' + ].join('\n') + } + }; } - }; - } - } + } - process_outgoing_response({ request, response }) { - var text = []; - response.content.forEach(function(pr) { - text.push('> '+pr.state+' [#'+pr.number+']('+pr.html_url+') - '+pr.title); - }); + process_outgoing_response({ request, response }) { + var text = []; + response.content.forEach(function(pr) { + text.push('> '+pr.state+' [#'+pr.number+']('+pr.html_url+') - '+pr.title); + }); - return { - content: { - text: text.join('\n'), - parseUrls: false + return { + content: { + text: text.join('\n'), + parseUrls: false + } + }; } - }; - } -} -``` + } +```` - Save your integration diff --git a/administrator-guides/integrations/nixstats/README.md b/administrator-guides/integrations/nixstats/README.md index 03ba443854..340610f393 100644 --- a/administrator-guides/integrations/nixstats/README.md +++ b/administrator-guides/integrations/nixstats/README.md @@ -63,8 +63,8 @@ Add Nixstats notifications via a new WebHook in Rocket.Chat 2. Choose Outgoing WebHook 3. Select **Message Sent** as Event trigger 4. Enter **ns** as trigger word -5. Enter **** as URLs -6. Avatar URL **** +5. Enter `` as URLs +6. Avatar URL `` 7. **Token**, this is your nixstats API token, [create an API key](https://nixstats.com/settings/api). 8. Script Enabled set to **True** diff --git a/administrator-guides/integrations/osticket/README.md b/administrator-guides/integrations/osticket/README.md index 54431126ae..00a91f4e4f 100644 --- a/administrator-guides/integrations/osticket/README.md +++ b/administrator-guides/integrations/osticket/README.md @@ -6,7 +6,7 @@ Add osTicket notifications via a new WebHook in Rocket.Chat 2. Choose Incoming WebHook 3. Follow all instructions like Enable, give it a name, link to channel etc. 4. Press Save change and copy the *Webhook URL*. -5. Go to your osTicket project, ie. It's in the project "admin" panel, and "manage > plugins". +5. Go to your osTicket project, ie. `http://your.ip.address/osticket/scp` It's in the project "admin" panel, and "manage > plugins". 6. Download plugin in [https://github.com/tuudik/osticket-rocketchat](https://github.com/tuudik/osticket-rocketchat) and click in "add a new plugin", install plugin in directory include/plugins. 7. With plugin Rocket.Chat notifier installed, config it. Paste Rocket.Chat webhook url in form webhook, set a bot username, emoji icon, alert color anda save changes. 8. Test the webhook by creating a new ticket. diff --git a/administrator-guides/integrations/replygif/README.md b/administrator-guides/integrations/replygif/README.md deleted file mode 100644 index faab3a457d..0000000000 --- a/administrator-guides/integrations/replygif/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# ReplyGif - -[ReplyGif](http://www.replygif.net) is another smart and fun way to send GIFs. All you need to do is write a regular text message and you will get a relevant fun GIF with the text on it. - -Follow the install instructions here: - diff --git a/community-cookbook/remote-video-monitoring/README.md b/community-cookbook/remote-video-monitoring/README.md index cedb5c9965..a1050f767a 100644 --- a/community-cookbook/remote-video-monitoring/README.md +++ b/community-cookbook/remote-video-monitoring/README.md @@ -9,32 +9,31 @@ You can use Rocket.Chat to remotely monitor one or more (10s, 100s, or even 1000 Applications: -* home monitoring while on vacations (from cell phone or Internet Cafe) -* baby monitoring -* building surveillance -* assembly line quality assurance -* industrial control monitoring -* global/regional crisis/emergency center or medical monitoring -* ... many more +- home monitoring while on vacations (from cell phone or Internet Cafe) +- baby monitoring +- building surveillance +- assembly line quality assurance +- industrial control monitoring +- global/regional crisis/emergency center or medical monitoring +- ... many more -#### What you need +## What you need The monitoring PC does not need to have camera or mic. However, it must be running a recent copy of Chrome or Firefox that supports webrtc. At each location: a PC, Mac, Android tablet, embedded computer, or Chromebook running Rocket.Chat with a webrtc supported camera. -#### Scalability +## Scalability The design is massively scalable. With the current edition of Rocket.Chat, you can already monitor hundreds of locations. The server is not loaded by the sessions. This application really shows off the telecom lineage of webrtc -- Rocket.Chat acts as the 'switch' or 'signaling fabric' and gets out of the way once a monitoring session starts. -#### Getting started +## Getting started You should be relatively familiar with Rocket.Chat's video chat capabilities before attempting to try this feature. - -##### Install in-band driver +### Install in-band driver This feature is implemented within the webrtc in-band signaling driver. @@ -46,21 +45,21 @@ Then install the in-band driver: meteor add rocketchat:webrtc-ib -##### Create location 'users' +### Create location 'users' Create a new user for each location being monitored, for example - living room, dining room, baby's crib, assembly line A, Queen Mary Hospital IC station 1, and so on. Login as the monitoring user, and create a directed room to each of the locations. -##### Setting up locations +### Setting up locations At each location, on a machine with supported camera, logon as the location user and go to the directed room. Click on the top right arrow to open the flex window. You will see THREE buttons: 1. VIDEO CHAT -1. REMOTE -1. SETUP +2. REMOTE +3. SETUP Click on the `SETUP` button. Your browser will ask for permission to share camera and mic, allow it. This starts live video in the smaller window. @@ -68,15 +67,15 @@ You are all set! _Note: Make sure the machine will not go into power-save or auto shutoff._ -##### Remote Monitoring +### Remote Monitoring From your monitoring PC, logon to Rocket.Chat as the monitoring user. Enter any of the 'locations' room and click the `REMOTE` button to view the location. Like video chat, you can switch between up-and-down, side-by-side, full definition, and full screen HD mode once the monitoring starts. -##### Early Access +### Early Access You are working with _early access_ code. The code is working, but it has bugs. You find them, we fix them! If you encounter any bugs, please [create an issue](https://github.com/RocketChat/Rocket.Chat/issues/new). -##### Integration and customization +### Integration and customization Most frequently asked questions are: diff --git a/contributing/README.md b/contributing/README.md index 73de47b930..1ebfd62bf8 100644 --- a/contributing/README.md +++ b/contributing/README.md @@ -6,10 +6,10 @@ We are always looking for assistance with creating or updating documentation, testing our web, desktop and mobile apps, and reporting bugs. **Developers** who wish to make contributions, -please go [here](../contributing/developing/) to start. +please go [here](developing/) to start. If you have found a **security issue**, -[report it](../contributing/security/). +[report it](security/). Rocket.Chat is currently **translated** into more than twenty languages, but we've got a long way to go. @@ -18,7 +18,7 @@ If you'd like to assist us with this please email our To help improve our **documentation**, please see [Rocket.Chat Docs contribution guides](documentation/). -**Bloggers and news writers**, feel free to [spread the word](../contributing/promoting/)! +**Bloggers and news writers**, feel free to [spread the word](promoting/)! ## Code of Conduct diff --git a/contributing/documentation/contribution-guidelines/README.md b/contributing/documentation/contribution-guidelines/README.md index 9f98d5eec7..cb9dccf09d 100644 --- a/contributing/documentation/contribution-guidelines/README.md +++ b/contributing/documentation/contribution-guidelines/README.md @@ -24,7 +24,7 @@ All missing/incomplete articles are links to a list with the description of each You can find a list of issues [here](https://github.com/RocketChat/Rocket.Chat.Docs/issues). When you find something you would like to work on just comment on it and we will add an __In Progress__ label. ---- +- - - ## Creating a new Pull Request @@ -38,7 +38,7 @@ When you create a new pull request, we expect some requirements to be met. - When adding new documentation, add `New Documentation:` before the title. E.g. `New Documentation: Authentication Guide`. - When fixing documentation, add `Fix Documentation:` before the title. E.g. `Fix Documentation: Authentication Guide`. - When updating documentation, add `Update Documentation:` before the title. E.g. `Update Documentation: Authentication Guide`. -- For each pull request made, we run tests to check if there are any broken links. You can find how to run these tests locally [here](#test). +- For each pull request made, we run tests to check if there are any broken links. You can find how to run these tests locally [here](). - We also use a linter tool to check if the style of the markdown matches our [styleguide](../markdown-styleguide). Here is a link to the [Markdown Linter Tool](https://github.com/markdownlint/markdownlint). ### Recommended Workflow @@ -77,7 +77,7 @@ If you add a page called `Testing Rocket.Chat Apps`, it will be converted to `te All words will be lowercased, spaces will be replaced with a `-` and any special character will be removed (like the `.` on `Rocket.Chat`) ---- +- - - ## Reporting Issues and Missing Articles diff --git a/contributing/documentation/documentation-map/README.md b/contributing/documentation/documentation-map/README.md index e7d1bb50cd..c44a9de2a0 100644 --- a/contributing/documentation/documentation-map/README.md +++ b/contributing/documentation/documentation-map/README.md @@ -38,6 +38,7 @@ Here you can also find what articles are incomplete and missing. - Translating - Getting Support - Installation: + - Rocket.Chat Cloud - PaaS Deployments: - Aliyun @@ -65,6 +66,7 @@ Here you can also find what articles are incomplete and missing. - Available Images - Docker Compose - Manual Installation: + - CentOS - Debian - FreeBSD: @@ -72,25 +74,27 @@ Here you can also find what articles are incomplete and missing. - MacOSX - Multiple Instances to Improve Performance - OpenSUSE - - [RedHat](../missing-and-outdated-list/#RedHat) + - [RedHat](../missing-and-outdated-list/index.html#redhat) - Ubuntu: - Snaps: - AutoSSl - Windows 10 Pro - Windows Server: - - [Releases](../missing-and-outdated-list/#Releases) + - [Releases](../missing-and-outdated-list/index.html#releases) - Configuring SSL Reverse Proxy - PM2, Systemd, Upstart - Running in a sub folder + - Automation tools: - Ansible - Openshift - Vagrant - Mobile and Desktop Apps - - [Updating](../missing-and-outdated-list/#Updating) + - [Updating](../missing-and-outdated-list/index.html#updating) - From 0.x.x to 0.40.0 - Minimum Requirements + - User guides: - Connecting to a Server - Registration @@ -99,20 +103,20 @@ Here you can also find what articles are incomplete and missing. - Messaging - Channel Actions - Managing your Account - - [Voice and Video Calls](../missing-and-outdated-list/#Voice and Video Calls) - - [ScreenSharing](../missing-and-outdated-list/#ScreenSharing) + - [Voice and Video Calls](../missing-and-outdated-list/index.html#voice-and-video-calls) + - [ScreenSharing](../missing-and-outdated-list/index.html#screensharing) - Administrator guides: - Account Settings - - [Analytics](../missing-and-outdated-list/#Analytics) + - [Analytics](../missing-and-outdated-list/index.html#analytics) - Authentication: - CAS - Ldap - - [Oauth](../missing-and-outdated-list/#Oauth) + - [Oauth](../missing-and-outdated-list/index.html#oauth) - SAML - - [WordPress](../missing-and-outdated-list/#WordPress) - - [Customizing the UI](../missing-and-outdated-list/#Customizing the UI): - - [Layout](../missing-and-outdated-list/#Layout) - - [Assets](../missing-and-outdated-list/#Assets) + - [WordPress](../missing-and-outdated-list/index.html#WordPress) + - [Customizing the UI](../missing-and-outdated-list/index.html#Customizing-the-UI): + - [Layout](../missing-and-outdated-list/index.html#Layout) + - [Assets](../missing-and-outdated-list/index.html#Assets) - Database-Migration - Email: - Setup @@ -122,16 +126,16 @@ Here you can also find what articles are incomplete and missing. - File Upload: - Amazon S3 - Minio - - [GridFS](../missing-and-outdated-list/#GridFS) - - [Local File System](../missing-and-outdated-list/#Local File System) - - [General Settings](../missing-and-outdated-list/#General Settings) - - [General Section](../missing-and-outdated-list/#General Section) - - [Message Section](../missing-and-outdated-list/#Message Section) + - [GridFS](../missing-and-outdated-list/index.html#GridFS) + - [Local File System](../missing-and-outdated-list/index.html#Local-File-System) + - [General Settings](../missing-and-outdated-list/index.html#General-Settings) + - [General Section](../missing-and-outdated-list/index.html#General-Section) + - [Message Section](../missing-and-outdated-list/index.html#Message-Section) - Hubot - Import: - CSV - HipChat: - - [Cloud](../missing-and-outdated-list/#Cloud) + - [Cloud](../missing-and-outdated-list/index.html#hipchat-cloud) - Enterprise - Slack: - SlackBridge @@ -160,13 +164,13 @@ Here you can also find what articles are incomplete and missing. - Travis CI - Trello - uptimerobot - - [Internal Hubot](../missing-and-outdated-list/#Internal Hubot) + - [Internal Hubot](../missing-and-outdated-list/index.html#Internal-Hubot) - Jitsi Video Bridge - Livechat: - Livechat Queues - Notifications: - Push Notifications - - [Permissions](../missing-and-outdated-list/#Permissions) + - [Permissions](../missing-and-outdated-list/index.html#Permissions) - Plug-ins: - Drupal - Pidgin @@ -175,12 +179,12 @@ Here you can also find what articles are incomplete and missing. - Quick Start - Branches and Releases - Code Styleguide: - - [Less](../missing-and-outdated-list/#Less) + - [Less](../missing-and-outdated-list/index.html#Less) - Iframe Integration: - - [Authentication](../missing-and-outdated-list/#Authentication) + - [Authentication](../missing-and-outdated-list/index.html#Authentication) - Commands - Events - - [Internationalization](../missing-and-outdated-list/#Internationalization) + - [Internationalization](../missing-and-outdated-list/index.html#Internationalization) - Livechat API - Mobile Apps - Realtime-API: @@ -332,7 +336,7 @@ Here you can also find what articles are incomplete and missing. - update - Offset and Count and Sort Info - Query and Fields Info - - [Schema Definition](../missing-and-outdated-list#Schema Definition) + - [Schema Definition](../missing-and-outdated-list#Schema-Definition) - [Testing](../missing-and-outdated-list#Testing) - Troubleshooting - UI and Theming: @@ -340,5 +344,4 @@ Here you can also find what articles are incomplete and missing. - Components - Themes - Community Cookbook: - - Remote Video Monitoring - + - Remote Video Monitoring diff --git a/contributing/documentation/markdown-styleguide/README.md b/contributing/documentation/markdown-styleguide/README.md index eaf9637242..1a14369c93 100644 --- a/contributing/documentation/markdown-styleguide/README.md +++ b/contributing/documentation/markdown-styleguide/README.md @@ -4,12 +4,10 @@ The Rocket.Chat documentation supports the [Markdown Markup Language](https://en Markdown can be written in various different styles, in this document you will find the standard formatting guide for creating Rocket.Chat documentation. - You can run the Markdown linter locally by installing this [Markdown Linter Tool](https://github.com/markdownlint/markdownlint) and running the command `mdl ../` command on the docs main folder. @@ -362,13 +360,13 @@ Fenced code blocks should be surrounded by blank lines. **Wrong**: Some text - ``` + `` ` Code block - ``` + `` ` - ``` + `` ` Another code block - ``` + `` ` Some more text **Correct**: diff --git a/contributing/documentation/missing-and-outdated-list/README.md b/contributing/documentation/missing-and-outdated-list/README.md index 33a8b580bf..186ae51a24 100644 --- a/contributing/documentation/missing-and-outdated-list/README.md +++ b/contributing/documentation/missing-and-outdated-list/README.md @@ -6,97 +6,97 @@ All the missing and outdated articles on the documentation map will be listed an These items are not in any particular order. -## Internationalization (Missing) +## Internationalization This article is empty. There we should explain how to use the `i18n` system to handle the translations of Rocket.Chat. -## Testing (Incomplete) +## Testing In this article we explained how to start the end to end and unit tests in Rocket.Chat. We need to add instructions on how to create new tests for new features. -## Less (Incomplete) +## Less This style guide needs to be converted to CSS, since the base is almost the same. -## Internal Hubot (Missing) +## Internal Hubot Instructions on how to use and develop hubot scripts are needed in this article. -## Permissions (Incomplete) +## Permissions Not all permissions are listed on this articles, and some of the permissions listed there don't have a description. And Fix the markdown table on that article. -## GridFS (Missing) +## GridFS Tell how the GridFS file storage mode works and how to configure it. -## Local File System (Missing) +## Local File System Tell how the GridFS file storage mode works and how to configure it. -## Updating (Incomplete) +## Updating Add more updating guides for different environments. -## Voice and Video Calls (Incomplete) +## Voice and Video Calls Add proper instructions on how to use the video conference tools (both jitsi and WebRTC). Today we only have the requirements to run the WebRTC tool. Also differentiate jitsi from WebRTC. -## ScreenSharing (Missing) +## ScreenSharing Add instructions on how to use screen-sharing. -## RedHat(Incomplete) +## RedHat This section should be completed with the details on how to instal Rocket.Chat on RedHat. -## Releases (Missing) +## Releases Decide to either remove or complete this article. -## Hipchat Cloud (Missing) +## Hipchat Cloud Add instructions on how to import data from a cloud hosted hipchat. -## Schema Definition (Incomplete) +## Schema Definition Add more details on what is this doc is about. -## Wordpress (Missing) +## Wordpress Explain how the Wordpress Authentication works and how to set it up. -## Authentication (Missing) +## Authentication Add a little introduction and a list of links for the articles inside this folder. -## Analytics (Missing) +## Analytics Add instructions on how to set up analytics on Rocket.Chat using the `Analytics` section of settings. -## Customizing the UI (Missing) +## Customizing the UI Create a new section containing all the guides about customizing the ui using Rocket.Chat settings. -## Layout (Missing) +## Layout Create a guide on how to use the `Layout` setting section to customize some ui aspects of Rocket.Chat. -## Assets (Missing) +## Assets Create a guide on how to add assets (images, like favico and logos across the app) to Rocket.Chat. Also Explain what each asset size will change. -## General Settings (Missing) +## General Settings Create a new section Containing all the new guides about settings that alter the general behavior of Rocket.Chat. -## General Section (Missing) +## General Section Create a guide on how to use the `General` setting section. diff --git a/contributing/google-summer-of-code-2017/README.md b/contributing/google-summer-of-code-2017/README.md index 43de05bca2..8974dfbe5a 100644 --- a/contributing/google-summer-of-code-2017/README.md +++ b/contributing/google-summer-of-code-2017/README.md @@ -1,16 +1,16 @@ [![Google Summer of Code 2017](https://github.com/Sing-Li/bbug/raw/master/images/gsoclogo.jpg)](https://developers.google.com/open-source/gsoc/) -## How to apply +# How to apply -For general information, please visit our community server Google Summer of Code 2017 discussion group: https://open.rocket.chat/channel/gsoc17 +For general information, please visit our community server Google Summer of Code 2017 discussion group: -Final proposal submission is now officially closed. +Final proposal submission is now officially closed. Our sincere thanks goes to every student who had worked hard in creating one of the SIXTY EIGHT proposals we have received across all projects. We are totally surprised and flattered as a first year GSoC participating organization. The official list of accepted students and projects is now available directly from Google: -https://summerofcode.withgoogle.com/organizations/6368590472151040/ + Out of the SIXTY EIGHT proposals we received, we have painstakingly selected a short list of NINE outstanding ones. We have personally met (video conferenced) with every one of the students behind these NINE proposals during the last few weeks. @@ -18,24 +18,24 @@ Google has incredibly sponsored FOUR out of the NINE students (first year organi The FOUR Google sponsored students and projects for GSoC 2017 are: - Student | Project | Mentor(s) -:------------------- | :--------------------------------------- | :-------------------------------- -Naman Gupta | To Create a PWA Client | Karl Prieb, Guilherme Gazzo -Lucas Woo | Rocket.Chat iOS SDK | Rafael Kellermann Streit, Rodrigo Nascimento -Pradeep Kumar | Integrated Personal Email Gateway | Rodrigo Nascimento, Diego Sampaio -Mrinal Dhar | E2E encryption with Signal protocol | Marcelo Schmidt, Marius +| Student | Project | Mentor(s) | +| :------------ | :---------------------------------- | :------------------------------------------- | +| Naman Gupta | To Create a PWA Client | Karl Prieb, Guilherme Gazzo | +| Lucas Woo | Rocket.Chat iOS SDK | Rafael Kellermann Streit, Rodrigo Nascimento | +| Pradeep Kumar | Integrated Personal Email Gateway | Rodrigo Nascimento, Diego Sampaio | +| Mrinal Dhar | E2E encryption with Signal protocol | Marcelo Schmidt, Marius | Team bonding and familiarization activities have started between mentors and the selected students. -We have contacted the FIVE other students to discuss potential Rocket.Chat sponsorships. One student happily reported that he has already been selected by another GSoC 2017 mentoring organization. Another did not reply to any of our offers and queries before the deadline. THREE other students have accepted Rocket.Chat sponsorship and are currently working diligently with their mentors. +We have contacted the FIVE other students to discuss potential Rocket.Chat sponsorships. One student happily reported that he has already been selected by another GSoC 2017 mentoring organization. Another did not reply to any of our offers and queries before the deadline. THREE other students have accepted Rocket.Chat sponsorship and are currently working diligently with their mentors. The THREE Rocket.Chat sponsored students and projects for 2017 are: - Student | Project | Mentor(s) -:------------------- | :--------------------------------------- | :-------------------------------- -Karan Batra | Automatic Channels | Mitar, Rodrigo Nascimento -Sachin Shinde | Rocket.Chat Android SDK | Rafael Kellermann Streit -Manish Kakoti | Federation Server | Gabriel Engel, Sing Li, Matthew Hodgson +| Student | Project | Mentor(s) | +| :------------ | :---------------------- | :-------------------------------------- | +| Karan Batra | Automatic Channels | Mitar, Rodrigo Nascimento | +| Sachin Shinde | Rocket.Chat Android SDK | Rafael Kellermann Streit | +| Manish Kakoti | Federation Server | Gabriel Engel, Sing Li, Matthew Hodgson | Please keep monitoring this page for the latest Rocket.Chat GSoC 2017 updates. @@ -46,19 +46,19 @@ June is finally upon us. All of our GSoC students who have had prior apprentice In fact, due to their overwhelming enthusiasm, most of our GSoC students have started coding even before the beginning of June. Here are some of the most recent contributions (of many!) to Rocket.Chat by our new team of GSoC recruits: Manish Kakoti: -https://github.com/RocketChat/Rocket.Chat.Federation/pull/5 + Karan Batra: -https://github.com/RocketChat/Rocket.Chat/pull/7137 + Lucas Woo: -https://github.com/RocketChat/Rocket.Chat.iOS/pull/438 + Naman Gupta: -https://github.com/RocketChat/Rocket.Chat.PWA/pull/12 + Pradeep Kumar: -https://github.com/RocketChat/Rocket.Chat/pull/7088 + Congratulations to the new team members, and keep up the great work! We are all looking forward to the first evaluation milestone at the end of June. @@ -66,33 +66,33 @@ Congratulations to the new team members, and keep up the great work! We are all July is in full swing. First evaluation has completed and we're working towards our end-of-July milestone. -We are happy to report that all *seven* of our students have passed their first evaluation. Most are making very good pace on their projects, with some close to completion and in planning phase for extensions. We are also keeping a keen eye out on potential candidate(s) for full-time hire at end of their term. +We are happy to report that all _seven_ of our students have passed their first evaluation. Most are making very good pace on their projects, with some close to completion and in planning phase for extensions. We are also keeping a keen eye out on potential candidate(s) for full-time hire at end of their term. The following are the Rocket.Chat projects that our new team members are working on. Contribution and participation are welcomed immediately from the greater Rocket.Chat community: -* [iOS SDK](https://github.com/RocketChat/Rocket.Chat.iOS.SDK) -* [Android SDK](https://github.com/RocketChat/Rocket.Chat.Android.SDK) -* [Java SDK](https://github.com/RocketChat/Rocket.Chat.Java.SDK) -* [PWA](https://github.com/RocketChat/Rocket.Chat.PWA) -* [Federation](https://github.com/RocketChat/Rocket.Chat.Federation/tree/tsmatrixlib/tsmatrixserverlib) +- [iOS SDK](https://github.com/RocketChat/Rocket.Chat.iOS.SDK) +- [Android SDK](https://github.com/RocketChat/Rocket.Chat.Android.SDK) +- [Java SDK](https://github.com/RocketChat/Rocket.Chat.Java.SDK) +- [PWA](https://github.com/RocketChat/Rocket.Chat.PWA) +- [Federation](https://github.com/RocketChat/Rocket.Chat.Federation/) -After the evaulation, we have made sure that they all have received the first stipend payment - especially the students under Rocket.Chat's sponsorship. +After the evaulation, we have made sure that they all have received the first stipend payment - especially the students under Rocket.Chat's sponsorship. Working with a publicity company, we have been creating open source "hero stories" profiling every one of our new summer-term team members. Many of them have already been featured on our Blog: -* [Mrinal Dhar](https://rocket.chat/2017/07/02/mrinal-dhar-developing-end-to-end-encryption-with-signal-protocol/) -* [Manish Kakoti](https://rocket.chat/2017/07/02/manish-kakoti-extending-communications-beyond-teams-with-rocketchat-federation/) -* [Pradeep Kumar](https://rocket.chat/2017/07/02/pradeep-kumar-bridging-the-email-and-rocketchat-divide-with-personal-email-gateway) -* [Sachin Shinde](https://rocket.chat/2017/07/05/sachin-shinde-add-rocketchat-to-any-app-with-mobile-sdk) -* [Naman Gupta](https://rocket.chat/2017/07/06/naman-gupta-smaller-faster-and-more-bandwidthefficient-client-with-pwa) +- [Mrinal Dhar](https://rocket.chat/2017/07/02/mrinal-dhar-developing-end-to-end-encryption-with-signal-protocol/) +- [Manish Kakoti](https://rocket.chat/2017/07/02/manish-kakoti-extending-communications-beyond-teams-with-rocketchat-federation/) +- [Pradeep Kumar](https://rocket.chat/2017/07/02/pradeep-kumar-bridging-the-email-and-rocketchat-divide-with-personal-email-gateway) +- [Sachin Shinde](https://rocket.chat/2017/07/05/sachin-shinde-add-rocketchat-to-any-app-with-mobile-sdk) +- [Naman Gupta](https://rocket.chat/2017/07/06/naman-gupta-smaller-faster-and-more-bandwidthefficient-client-with-pwa) -In July, along with continued technical progress, we are focusing to help the student in development of their open source citizenship skills - something hopefully useful beyond their GSoC terms with us. +In July, along with continued technical progress, we are focusing to help the student in development of their open source citizenship skills - something hopefully useful beyond their GSoC terms with us. This will include activities in: -* promoting their open source project -* build and nurture a community around their project -* interaction with internal and external open source team members +- promoting their open source project +- build and nurture a community around their project +- interaction with internal and external open source team members Over the next two months, guided by their mentor(s) - each student will be giving a presentation on their project to the larger Rocket.Chat team. @@ -101,69 +101,80 @@ We continue to be extremely optimistic going into the critical mid-term evaluati ## Ideas ### Federation of Rocket.Chat Servers -* **Mentors:** Matthew Hodgson ([@arathorn](https://github.com/ara4n)) Rodrigo Nascimento ([@rodrigo.nascimento](https://github.com/rodrigok)) -* **Description:** Tens of thousands of Rocket.Chat servers are running at this very minute on the Internet. There is currently no way for users/bots/services of one instance to address or communicate with those from another. This project's mission is to make it possible. You will be working and exchanging ideas with the very best in the field - experts from Matrix.org and Rocket.Chat. -* **Desirable Skills:** Familiarity with JavaScript development. Demonstrated interest and/or passion on networking and federation protocols research and evolution. -* **Goal/Deliverable:** The foundation for all Rocket.Chat users/bots/services to optionally communicate with one another, across all connected instances. + +- **Mentors:** Matthew Hodgson ([@arathorn](https://github.com/ara4n)) Rodrigo Nascimento ([@rodrigo.nascimento](https://github.com/rodrigok)) +- **Description:** Tens of thousands of Rocket.Chat servers are running at this very minute on the Internet. There is currently no way for users/bots/services of one instance to address or communicate with those from another. This project's mission is to make it possible. You will be working and exchanging ideas with the very best in the field - experts from Matrix.org and Rocket.Chat. +- **Desirable Skills:** Familiarity with JavaScript development. Demonstrated interest and/or passion on networking and federation protocols research and evolution. +- **Goal/Deliverable:** The foundation for all Rocket.Chat users/bots/services to optionally communicate with one another, across all connected instances. ### Create a Progressive Web App client -* **Mentors:** Karl Prieb ([@karl.prieb](https://github.com/karlprieb)) -* **Description:** Create a new PWA client for Rocket.Chat using [Angular](https://angular.io/) framework, WebSocket and mobile-first approach. -* **Desirable Skills:** Some Javascript coding skills would be required to complete this task. -* **Goal/Deliverable:** A PWA client with basic chat functionality like channels and direct messages list, users status, channel messages, user preferences, etc. + +- **Mentors:** Karl Prieb ([@karl.prieb](https://github.com/karlprieb)) +- **Description:** Create a new PWA client for Rocket.Chat using [Angular](https://angular.io/) framework, WebSocket and mobile-first approach. +- **Desirable Skills:** Some Javascript coding skills would be required to complete this task. +- **Goal/Deliverable:** A PWA client with basic chat functionality like channels and direct messages list, users status, channel messages, user preferences, etc. ### Improved End-to-End Encryption Implemenation (currently feature-named OTR) -* **Mentors:** Marcelo Schmidt ([@marcelo.schmidt](https://github.com/marceloschmidt)) Mitar ([@mitar](https://github.com/mitar)) -* **Description:** Taking and improving our end-to-end encryption implementation. Perhaps replace with more modern protocols, such as [Signal](https://en.wikipedia.org/wiki/Signal_Protocol). -* **Desirable Skills:** Some Javascript coding skills and familiarity with cryptography. -* **Goal/Deliverable:** The ability to have end-to-end encrypted conversations between users. There are various features possible: forward secrecy, online and offline use (do users have to be online at the same time for encryption to be possible), do we store messages on the server, pair or group conversations, encrypted file transfer, etc. + +- **Mentors:** Marcelo Schmidt ([@marcelo.schmidt](https://github.com/marceloschmidt)) Mitar ([@mitar](https://github.com/mitar)) +- **Description:** Taking and improving our end-to-end encryption implementation. Perhaps replace with more modern protocols, such as [Signal](https://en.wikipedia.org/wiki/Signal_Protocol). +- **Desirable Skills:** Some Javascript coding skills and familiarity with cryptography. +- **Goal/Deliverable:** The ability to have end-to-end encrypted conversations between users. There are various features possible: forward secrecy, online and offline use (do users have to be online at the same time for encryption to be possible), do we store messages on the server, pair or group conversations, encrypted file transfer, etc. ### File uploads and exchanges with OwnCloud -* **Mentors:** Diego Sampaio ([@diego.sampaio](https://github.com/sampaiodiego)) Thomas Müller ([@thomas.muller](https://github.com/DeepDiver1975)) deepdiver1975@gmail.com -* **Description:** When you upload a file today in Rocket.Chat, your server may be configured to store it on AWS S3, Google's object storage, MongoDB's GridFS, or local filesystem. This project adds OwnCloud as an official target destination. In addition, since every user of Rocket.Chat may have her/his own OwnCloud server - some way to support file exchanges with those servers will also be interesting. You will be working with top engineers who actually designed and coded these features, from OwnCloud and Rocket.Chat, on this project. -* **Desirable Skills:** Familiarity with PHP and JavaScript development. Familiarity with (and already a user of) Rocket.Chat and OwnCloud definitely a plus. -* **Goal/Deliverable:** Support integrations between OwnCloud and Rocket.Chat as if it was designed-in since the very first day. + +- **Mentors:** Diego Sampaio ([@diego.sampaio](https://github.com/sampaiodiego)) Thomas Müller ([@thomas.muller](https://github.com/DeepDiver1975)) deepdiver1975@gmail.com +- **Description:** When you upload a file today in Rocket.Chat, your server may be configured to store it on AWS S3, Google's object storage, MongoDB's GridFS, or local filesystem. This project adds OwnCloud as an official target destination. In addition, since every user of Rocket.Chat may have her/his own OwnCloud server - some way to support file exchanges with those servers will also be interesting. You will be working with top engineers who actually designed and coded these features, from OwnCloud and Rocket.Chat, on this project. +- **Desirable Skills:** Familiarity with PHP and JavaScript development. Familiarity with (and already a user of) Rocket.Chat and OwnCloud definitely a plus. +- **Goal/Deliverable:** Support integrations between OwnCloud and Rocket.Chat as if it was designed-in since the very first day. ### Use of Chromecast as Presentation Room -* **Mentors:** Bradley Hilton ([@graywolf336](https://github.com/graywolf336)) -* **Description:** Use Chromecast as presentation output which shows a chat room and will join any Jitsi / WebRTC meetings that are started in it, this way meetings can be started inside Rocket.Chat and the Chromecast can be on a TV/Monitor inside a conference room. -* **Desirable Skills:** Some Javascript coding skills will be required to complete this task. Students with WebRTC knowledge and/or who have already produced Chromecast apps are on a good start. A Chromecast is required for this task. -* **Goal/Deliverable:** Being able to pair a room with Chromecast, displaying it's messages. Chromecast app needs to be able to automatically join a Jitsi/WebRTC video call. + +- **Mentors:** Bradley Hilton ([@graywolf336](https://github.com/graywolf336)) +- **Description:** Use Chromecast as presentation output which shows a chat room and will join any Jitsi / WebRTC meetings that are started in it, this way meetings can be started inside Rocket.Chat and the Chromecast can be on a TV/Monitor inside a conference room. +- **Desirable Skills:** Some Javascript coding skills will be required to complete this task. Students with WebRTC knowledge and/or who have already produced Chromecast apps are on a good start. A Chromecast is required for this task. +- **Goal/Deliverable:** Being able to pair a room with Chromecast, displaying it's messages. Chromecast app needs to be able to automatically join a Jitsi/WebRTC video call. ### Integrated Personal Email Gateway -* **Mentors:** Rodrigo Nascimento ([@rodrigo.nascimento](https://github.com/rodrigok)) -* **Description:** Add feature to allow automated reply when offline, and forwarding of incoming messages via email. -* **Desirable Skills:** Some Javascript coding skills will be required to complete this task. An understanding of industry standard SMTP and POP prototcols, and configuration of standard email servers will be required. -* **Goal/Deliverable:** Ability for each user to set an away message, and receive any offline messages - in batches per interval, via through email account. -### Create an SDK for Mobile Apps to include a chat inside other apps. -* **Mentors:** Rafeal Kellermann ([@rafaelks](https://github.com/rafaelks)) -* **Description:** Create an SDK (for iOS and/or Android) to embed in any app that wants to have a chat inside it. It could be useful for support and also for chat in enterprise apps. One example is an app that’s used by all sellers from a company to be able to communicate with each other using Rocket.Chat. Another example is something very similar to Intercom (https://www.intercom.com/mobile) -* **Desirable Skills:** Students will be required to code in either Java for Android SDK or Swift for the iOS SDK. Students will also need to understand how Rocket.Chat communicates over websockets. -* **Goal/Deliverable:** To have an SDK that allows App Developers to embed a chat system inside their own apps using Rocket.Chat servers to deliver messages. +- **Mentors:** Rodrigo Nascimento ([@rodrigo.nascimento](https://github.com/rodrigok)) +- **Description:** Add feature to allow automated reply when offline, and forwarding of incoming messages via email. +- **Desirable Skills:** Some Javascript coding skills will be required to complete this task. An understanding of industry standard SMTP and POP prototcols, and configuration of standard email servers will be required. +- **Goal/Deliverable:** Ability for each user to set an away message, and receive any offline messages - in batches per interval, via through email account. + +### Create an SDK for Mobile Apps to include a chat inside other apps + +- **Mentors:** Rafeal Kellermann ([@rafaelks](https://github.com/rafaelks)) +- **Description:** Create an SDK (for iOS and/or Android) to embed in any app that wants to have a chat inside it. It could be useful for support and also for chat in enterprise apps. One example is an app that’s used by all sellers from a company to be able to communicate with each other using Rocket.Chat. Another example is something very similar to Intercom () +- **Desirable Skills:** Students will be required to code in either Java for Android SDK or Swift for the iOS SDK. Students will also need to understand how Rocket.Chat communicates over websockets. +- **Goal/Deliverable:** To have an SDK that allows App Developers to embed a chat system inside their own apps using Rocket.Chat servers to deliver messages. ### Calendar Integration for Meeting Scheduling -* **Mentors:** Bradley Hilton ([@graywolf336](https://github.com/graywolf336)) -* **Description:** taking and embedding a calendar inside rocket.chat, being standalone yet integrating with all the calendars out there so people can schedule meetings and be reminded of upcoming meetings that are inside rocket.chat -* **Desirable Skills:** Some javascript coding skills -* **Goal/Deliverable:** The ability to schedule a meeting in Rocket.Chat + +- **Mentors:** Bradley Hilton ([@graywolf336](https://github.com/graywolf336)) +- **Description:** taking and embedding a calendar inside rocket.chat, being standalone yet integrating with all the calendars out there so people can schedule meetings and be reminded of upcoming meetings that are inside rocket.chat +- **Desirable Skills:** Some javascript coding skills +- **Goal/Deliverable:** The ability to schedule a meeting in Rocket.Chat ### Rocket.Chat on Mesh Network -* **Mentors:** Mitar ([@mitar](https://github.com/mitar)) Gabriel Engel ([@gabriel.engel](https://github.com/engelgabriel)) -* **Description:** Modify the Rocket.Chat to work on mesh networks. There are two basic types of mesh networks which would be interesting to cover: - * A network of mostly always online off-the-shelf WiFi equipment which forms a network where all network nodes can connect directly to each other (no NAT). Here it would be interesting to port Rocket.Chat so that it could run served as a static resource from these limited devices (which are often not powerful enought to run MongoDB and node.js, which Rocket.Chat otherwise uses for server-side part). Rocket.Chat should be bundled into a static resource, served over HTTP to clients, which could then use something like WebRTC to connect to each other and communicate with each other. A very thin server-side program might be needed as well, to help with WebRTC connections for example, or discovery of other nodes to connect to. A distributed database like [Scuttlebot](http://scuttlebot.io/) could be used as well. - * A [delay tolerant mesh network](https://en.wikipedia.org/wiki/Delay-tolerant_networking) where devices do not have regular connectivity between each other, and are often even moving around. Such networks often do not even use TCP/IP. On the other hand, devices often have much more storage space and power, when they are available. The idea is to change Rocket.Chat so that it can operate in such environment as well. -* **Desirable Skills:** Javascript, WebRTC, networking, OpenWrt, and programming for embeded devices (C, Lua, bash) -* **Goal/Deliverable:** An OpenWrt package providing a modified Rocket.Chat to work in a mesh network. + +- **Mentors:** Mitar ([@mitar](https://github.com/mitar)) Gabriel Engel ([@gabriel.engel](https://github.com/engelgabriel)) +- **Description:** Modify the Rocket.Chat to work on mesh networks. There are two basic types of mesh networks which would be interesting to cover: + - A network of mostly always online off-the-shelf WiFi equipment which forms a network where all network nodes can connect directly to each other (no NAT). Here it would be interesting to port Rocket.Chat so that it could run served as a static resource from these limited devices (which are often not powerful enought to run MongoDB and node.js, which Rocket.Chat otherwise uses for server-side part). Rocket.Chat should be bundled into a static resource, served over HTTP to clients, which could then use something like WebRTC to connect to each other and communicate with each other. A very thin server-side program might be needed as well, to help with WebRTC connections for example, or discovery of other nodes to connect to. A distributed database like [Scuttlebot](http://scuttlebot.io/) could be used as well. + - A [delay tolerant mesh network](https://en.wikipedia.org/wiki/Delay-tolerant_networking) where devices do not have regular connectivity between each other, and are often even moving around. Such networks often do not even use TCP/IP. On the other hand, devices often have much more storage space and power, when they are available. The idea is to change Rocket.Chat so that it can operate in such environment as well. +- **Desirable Skills:** Javascript, WebRTC, networking, OpenWrt, and programming for embeded devices (C, Lua, bash) +- **Goal/Deliverable:** An OpenWrt package providing a modified Rocket.Chat to work in a mesh network. ### Automatic Channels -* **Mentors:** Marcelo Schmidt ([@marcelo.schmidt](https://github.com/marceloschmidt)) Mitar ([@mitar](https://github.com/mitar)) -* **Description:** Add a feature of creation of automatic channels to Rocket.Chat and automatic joining of users to those channels. The idea is to extend Rocket.Chat with a plugin system where plugins could classify users into channels. Then such channel would be automatically created, if it does not yet exist, and user added to it. This should also work reactivelly so that plugin can remove the user from a chnnel, and remove such channels. Use cases here are various. For example, a plugin could detect user's language and automatically add them to a channel for that language. Or, plugin could resolve user's IP into their country and add them to a channel for this country. If user changes the IP and moves to another country, they should be automatically moved to a new channel. In combination with mesh networking support, users could be automatically put into channels local to the node to whic they are connected. -* **Desirable Skills:** Some javascript coding skills -* **Goal/Deliverable:** Modification to Rocket.Chat with a plugin system for automatic channels and joining with two example plugins: based on browser specified language, and country basd on GeoIP of the user. + +- **Mentors:** Marcelo Schmidt ([@marcelo.schmidt](https://github.com/marceloschmidt)) Mitar ([@mitar](https://github.com/mitar)) +- **Description:** Add a feature of creation of automatic channels to Rocket.Chat and automatic joining of users to those channels. The idea is to extend Rocket.Chat with a plugin system where plugins could classify users into channels. Then such channel would be automatically created, if it does not yet exist, and user added to it. This should also work reactivelly so that plugin can remove the user from a chnnel, and remove such channels. Use cases here are various. For example, a plugin could detect user's language and automatically add them to a channel for that language. Or, plugin could resolve user's IP into their country and add them to a channel for this country. If user changes the IP and moves to another country, they should be automatically moved to a new channel. In combination with mesh networking support, users could be automatically put into channels local to the node to whic they are connected. +- **Desirable Skills:** Some javascript coding skills +- **Goal/Deliverable:** Modification to Rocket.Chat with a plugin system for automatic channels and joining with two example plugins: based on browser specified language, and country basd on GeoIP of the user. ### Enable multi-instance High Availabilty (HA) configuration with snaps -* **Mentors:** Aaron Ogle ([@geekgonecrazy](https://github.com/geekgonecrazy)) -* **Description:** Modify the Rocket.Chat snap to enable mongodb replica's and multi instance Rocket.Chat -* **Desirable Skills:** Familiarity with linux, and bash scripting. -* **Goal/Deliverable:** A snap that can be used in a multi-instance HA setup. + +- **Mentors:** Aaron Ogle ([@geekgonecrazy](https://github.com/geekgonecrazy)) +- **Description:** Modify the Rocket.Chat snap to enable mongodb replica's and multi instance Rocket.Chat +- **Desirable Skills:** Familiarity with linux, and bash scripting. +- **Goal/Deliverable:** A snap that can be used in a multi-instance HA setup. diff --git a/contributing/google-summer-of-code-2018/README.md b/contributing/google-summer-of-code-2018/README.md index f806a8f292..234269dd50 100644 --- a/contributing/google-summer-of-code-2018/README.md +++ b/contributing/google-summer-of-code-2018/README.md @@ -11,151 +11,176 @@ redirect_from: ## How to apply -Interested students should email the mentor(s) directly for discussion and further information. You can also find them, most of the time, on our [community server](https://open.rocket.chat/) for real-time chat. Many of the mentors are fluent in both Portuguese and English. +Interested students should email the mentor(s) directly for discussion and further information. You can also find them, most of the time, on our [community server](https://open.rocket.chat/) for real-time chat. Many of the mentors are fluent in both Portuguese and English. If you have ideas and proposals that are not on our idea list, or if a mentor is not available, please email to: gsoc+2018@rocket.chat -For some real-time help on next steps, please visit our community server Google Summer of Code 2018 discussion channel: +For some real-time help on next steps, please visit our community server Google Summer of Code 2018 discussion channel: -[https://open.rocket.chat/channel/gsoc18](https://open.rocket.chat/channel/gsoc18) + For general discussions and information on the 2018 program, please see GSoC 2018 category on our discussion forums: -[https://forums.rocket.chat/c/gsoc](https://forums.rocket.chat/c/gsoc) + Our application to become a 2018 GSoC organization is currently under review. We will have more specific student application and deadline information here once (if) we are approved. ## Project Ideas (work in progress) ### Global Search -* **Mentors:** @rodrigo.nascimento -* **Description:** Add global search to Rocket.Chat, allowing users to search across messages, rooms, files, users, etc in a single and easy to use interface. Like a MacOS Spotlight search. -* **Desirable Skills:** Familiarity with JavaScript development, MongoDB or other search engine. + +- **Mentors:** @rodrigo.nascimento +- **Description:** Add global search to Rocket.Chat, allowing users to search across messages, rooms, files, users, etc in a single and easy to use interface. Like a MacOS Spotlight search. +- **Desirable Skills:** Familiarity with JavaScript development, MongoDB or other search engine. ### Users Directory integration plus custom fields editor and search -* **Mentors:** @marcelo.schmidt -* **Description:** Rocket.Chat already allows for users to add custom fields through a setting that accepts a JSON. We would like to create an interface to manage these custom fields. Each custom field must be composed of label, type (one of predefined: string, number, picklist, money, etc.), and an option to determine if this field must be displayed on registration or not. Rocket.Chat also needs an interface to search users based on custom fields. The user search functionality must be accessible from the channels / users list. Users must be able to select multiple records from the results and do one of the possible actions: add to existing channel or group and create new channel or group; if only one record is selected, it should also be possible to start a direct message with the selected user. -* **Desirable Skills:** Familiarity with JavaScript development. + +- **Mentors:** @marcelo.schmidt +- **Description:** Rocket.Chat already allows for users to add custom fields through a setting that accepts a JSON. We would like to create an interface to manage these custom fields. Each custom field must be composed of label, type (one of predefined: string, number, picklist, money, etc.), and an option to determine if this field must be displayed on registration or not. Rocket.Chat also needs an interface to search users based on custom fields. The user search functionality must be accessible from the channels / users list. Users must be able to select multiple records from the results and do one of the possible actions: add to existing channel or group and create new channel or group; if only one record is selected, it should also be possible to start a direct message with the selected user. +- **Desirable Skills:** Familiarity with JavaScript development. ### Storage integration with Google Drive and/or Dropbox -* **Mentors:** TBD -* **Description:** (1) Enabling Rocket.Chat users to use Google Drive and/or Dropbox for storage of their uploads. (2) Within Rocket.Chat, allow access to Google Drive or Dropbox contents. -* **Desirable Skills:** Familiarity with JavaScript development, and with Google Drive and/or Dropbox APIs. -### Scaling to the edge of dreams -* **Mentors:** TBD -* **Description:** Assist Rocket.Chat’s scalability engineers to scale Rocket.Chat to the next level. From tens of thousands of active connections, to hundreds of thousands to millions, to world-scale. -* **Desirable Skills:** We are looking for an enthusiastic undergraduate, planning to enroll or already enrolled for masters or PhD work in a cluster computing or scalability discipline to join us for an exciting summer of hands-on practical fun. Working alongside our scalability expert – you will devise and test out various performance and scalability enhancements for Rocket.Chat’s deployment configurations. You will be able to practice everything you have learnt so far in your under-graduate study, pushes beyond their limits, with a real production clustered server project – having your work impacting thousands of global users – all within the span of a single summer. +- **Mentors:** TBD +- **Description:** (1) Enabling Rocket.Chat users to use Google Drive and/or Dropbox for storage of their uploads. (2) Within Rocket.Chat, allow access to Google Drive or Dropbox contents. +- **Desirable Skills:** Familiarity with JavaScript development, and with Google Drive and/or Dropbox APIs. + +### Scaling to the edge of dreams + +- **Mentors:** TBD +- **Description:** Assist Rocket.Chat’s scalability engineers to scale Rocket.Chat to the next level. From tens of thousands of active connections, to hundreds of thousands to millions, to world-scale. +- **Desirable Skills:** We are looking for an enthusiastic undergraduate, planning to enroll or already enrolled for masters or PhD work in a cluster computing or scalability discipline to join us for an exciting summer of hands-on practical fun. Working alongside our scalability expert – you will devise and test out various performance and scalability enhancements for Rocket.Chat’s deployment configurations. You will be able to practice everything you have learnt so far in your under-graduate study, pushes beyond their limits, with a real production clustered server project – having your work impacting thousands of global users – all within the span of a single summer. ### LiveChat Reports and Analytics -* **Mentors:** TBD -* **Description:** Add a panel to have analytical information about interactions in LiveChat. -* **Desirable Skills:** Familiarity with JavaScript development. + +- **Mentors:** TBD +- **Description:** Add a panel to have analytical information about interactions in LiveChat. +- **Desirable Skills:** Familiarity with JavaScript development. ### Uniting “One Rocket.Chat” with Federation -* **Mentors:** TBD -* **Description:** Help Rocket.Chat to invent and implement networked federation for the next generation of collaboration platforms. -* **Desirable Skills:** Suitable for an ambitious undergraduate planning to enroll or already enrolled for masters or PhD work in a cluster computing, networking or distributed systems discipline in computer science or engineering to join us for an exciting summer of incredible brain crushing yet hands-on fun. Working alongside our federation team – you will help design and test out your hypothesis against a next generation federation mechanism optimized specifically for Rocket.Chat servers – uniting them globally across all geo-political boundaries to dyamically form “One Rocket.Chat”. This work will leverage all existing current research in this domain. You must already be familiar with the work of giants – such as matrix.org – and be ready to break all conventions to improve and innovate upon existing paradigms. You will be rewarded with production working experience on this bleeding-edge discipline, in a world-leading open source team environment with a like-minded team. An incredible and unique opportunity in 2018. + +- **Mentors:** TBD +- **Description:** Help Rocket.Chat to invent and implement networked federation for the next generation of collaboration platforms. +- **Desirable Skills:** Suitable for an ambitious undergraduate planning to enroll or already enrolled for masters or PhD work in a cluster computing, networking or distributed systems discipline in computer science or engineering to join us for an exciting summer of incredible brain crushing yet hands-on fun. Working alongside our federation team – you will help design and test out your hypothesis against a next generation federation mechanism optimized specifically for Rocket.Chat servers – uniting them globally across all geo-political boundaries to dyamically form “One Rocket.Chat”. This work will leverage all existing current research in this domain. You must already be familiar with the work of giants – such as matrix.org – and be ready to break all conventions to improve and innovate upon existing paradigms. You will be rewarded with production working experience on this bleeding-edge discipline, in a world-leading open source team environment with a like-minded team. An incredible and unique opportunity in 2018. ### Built-in and server themes for iOS -* **Mentors:** @matheus.cardoso -* **Description:** Be part of our iOS team this summer to push Rocket.Chat's native iOS App to the next level! You will - with our help - build the foundation for customizable user experience, support built-in themes for users to choose from and server-specific themes, allowing server owners to manifest the colors and feel of their communities. You will have the chance to exchange experience with our engineers and designers, plus your work will have a great impact on the experience of thousands of users! -* **Desirable Skills:** We are looking for an undergraduate student who is familiar with team work, developing iOS Apps using UIKit, Auto Layout and Swift, as well as writing maintainable code with Unit Tests. + +- **Mentors:** @matheus.cardoso +- **Description:** Be part of our iOS team this summer to push Rocket.Chat's native iOS App to the next level! You will - with our help - build the foundation for customizable user experience, support built-in themes for users to choose from and server-specific themes, allowing server owners to manifest the colors and feel of their communities. You will have the chance to exchange experience with our engineers and designers, plus your work will have a great impact on the experience of thousands of users! +- **Desirable Skills:** We are looking for an undergraduate student who is familiar with team work, developing iOS Apps using UIKit, Auto Layout and Swift, as well as writing maintainable code with Unit Tests. ### PDF/File preview -* **Mentors:** @rodrigo.nascimento -* **Description:** Add small previews for non image files improving the UI/UX allowing users to see a preview of the contect before click to open the file, it includes PDF, Word Documents and similar, Excel Documents and similar, PowerPoint and similar, Text files, Sketch, Photoshop, etc. -* **Desirable Skills:** Familiarity with JavaScript development. Experience hacking documents conversion and/or rendering libraries is a big plus. + +- **Mentors:** @rodrigo.nascimento +- **Description:** Add small previews for non image files improving the UI/UX allowing users to see a preview of the contect before click to open the file, it includes PDF, Word Documents and similar, Excel Documents and similar, PowerPoint and similar, Text files, Sketch, Photoshop, etc. +- **Desirable Skills:** Familiarity with JavaScript development. Experience hacking documents conversion and/or rendering libraries is a big plus. ### Draw (iOS) -* **Mentors:** TBD -* **Description:** Allow user to draw something using our iOS native app and send to Rocket.Chat channel. The draw would have different colors and "brush" options (pen, brush, pencil, etc). User will also be able to draw on top of an image selected from library or just shooted. On iPads, user will be able to use Apple Pencil to draw. -* **Desirable Skills:** Familiarity with Swift on iOS development. Ability to work in large multi-disciplinary teams. + +- **Mentors:** TBD +- **Description:** Allow user to draw something using our iOS native app and send to Rocket.Chat channel. The draw would have different colors and "brush" options (pen, brush, pencil, etc). User will also be able to draw on top of an image selected from library or just shooted. On iPads, user will be able to use Apple Pencil to draw. +- **Desirable Skills:** Familiarity with Swift on iOS development. Ability to work in large multi-disciplinary teams. ### Draw (Android) -* **Mentors:** TBD -* **Description:** Allow user to draw something using our Android native app and send to Rocket.Chat channel. The draw would have different colors and "brush" options (pen, brush, pencil, etc). User will also be able to draw on top of an image selected from library or just shooted. -* **Desirable Skills:** Familiarity with Java or Kotlin development on Android. Ability to work in large multi-disciplinary teams. +- **Mentors:** TBD +- **Description:** Allow user to draw something using our Android native app and send to Rocket.Chat channel. The draw would have different colors and "brush" options (pen, brush, pencil, etc). User will also be able to draw on top of an image selected from library or just shooted. +- **Desirable Skills:** Familiarity with Java or Kotlin development on Android. Ability to work in large multi-disciplinary teams. ### Apple Watch App -* **Mentors:** TBD -* **Description:** Create an Apple Watch application that replicates the most basic features we have in our iOS mobile client, such like viewing the chat rooms and reading the messages. Also let the user send a message to a chat using voice recognition. -* **Desirable Skills:** Familiarity with WatchKit development on WatchOS. Ability to work in large multi-disciplinary teams. + +- **Mentors:** TBD +- **Description:** Create an Apple Watch application that replicates the most basic features we have in our iOS mobile client, such like viewing the chat rooms and reading the messages. Also let the user send a message to a chat using voice recognition. +- **Desirable Skills:** Familiarity with WatchKit development on WatchOS. Ability to work in large multi-disciplinary teams. ### Enabling global decentralized blockchain powered crypto communities -* **Mentors:** TBD -* **Description:** Working together with our crypto and blockchain team – you will help build the key enabler platform for the future of blockchain powered decentralized communities all over this world (and perhaps even beyond). Within this short summer, you will gain experience in working on a global-circulation production-grade blockchain-powered adoption-acceleration platform. You will also meet and work with leading visionaries and pioneers in the current blockchain / crypto field. Tangible potential to become an early architect of this brave new world, supported by Rocket.Chat. -* **Desirable Skills:** Looking for a unique fringe-dropout university student already committed to our inevitable decentralized future powered by Web 3.0 and continued blockchain technology innovations. While maintaining a high score on all your subjects, you should be finding your existing university education ridiculously limiting, and already have experience hacking smart contracts, minting tokens for friends and family, hacking ethereum, and trading cryptokitties. You eat truffle for breakfast and ride the open zepplin to school every day. Recent government (perhaps your own government) baseless advances into this area has significantly disturbed you. You already realized that you are way ahead of your time. And you will recognize this GSoC 2018 project to be the absolutely not-to-miss opportunity of your life. + +- **Mentors:** TBD +- **Description:** Working together with our crypto and blockchain team – you will help build the key enabler platform for the future of blockchain powered decentralized communities all over this world (and perhaps even beyond). Within this short summer, you will gain experience in working on a global-circulation production-grade blockchain-powered adoption-acceleration platform. You will also meet and work with leading visionaries and pioneers in the current blockchain / crypto field. Tangible potential to become an early architect of this brave new world, supported by Rocket.Chat. +- **Desirable Skills:** Looking for a unique fringe-dropout university student already committed to our inevitable decentralized future powered by Web 3.0 and continued blockchain technology innovations. While maintaining a high score on all your subjects, you should be finding your existing university education ridiculously limiting, and already have experience hacking smart contracts, minting tokens for friends and family, hacking ethereum, and trading cryptokitties. You eat truffle for breakfast and ride the open zepplin to school every day. Recent government (perhaps your own government) baseless advances into this area has significantly disturbed you. You already realized that you are way ahead of your time. And you will recognize this GSoC 2018 project to be the absolutely not-to-miss opportunity of your life. ### Siri -* **Mentors:** TBD -* **Description:** Let user send and respond to messages talking to Siri on Apple mobile devices. -* **Desirable Skills:** Familiarity with SiriKit development. Ability to work in large multi-disciplinary teams + +- **Mentors:** TBD +- **Description:** Let user send and respond to messages talking to Siri on Apple mobile devices. +- **Desirable Skills:** Familiarity with SiriKit development. Ability to work in large multi-disciplinary teams ### Google Assistant -* **Mentors:** TBD -* **Description:** Let user send messages talking to Google Assistant. + +- **Mentors:** TBD +- **Description:** Let user send messages talking to Google Assistant. ### Performance tests -* **Mentors:** @diego.sampaio -* **Description:** Create an initial script to run performance tests of basic functionalities, it should be able to run in our CI and should track infomation to allow us and the community follow the performance changes. + +- **Mentors:** @diego.sampaio +- **Description:** Create an initial script to run performance tests of basic functionalities, it should be able to run in our CI and should track infomation to allow us and the community follow the performance changes. ### Javascript SDK -* **Mentors:** @karl.prieb @guilherme.gazzo -* **Description:** Create a javascript SDK that can be used on our ReactNative, Livechat and our webclient projects. + +- **Mentors:** @karl.prieb @guilherme.gazzo +- **Description:** Create a javascript SDK that can be used on our ReactNative, Livechat and our webclient projects. ### Android Wear App -* **Mentors:** @filipe.brito -* **Description:** Create an Android Wear application that replicates the most basic features we have in our Android app, such like viewing the chat rooms and reading the messages. + +- **Mentors:** @filipe.brito +- **Description:** Create an Android Wear application that replicates the most basic features we have in our Android app, such like viewing the chat rooms and reading the messages. ### Scripting support -* **Mentors:** TDB -* **Description:** We would love to see an embed Rocket.Chat scripting support. The scripting support will allow the customization of elements (server settings, user profile) through a GUI in a very easy and objective way. -* **Desirable Skills:** Familiarity with JavaScript development and software architecture (interpreter architectural style). + +- **Mentors:** TDB +- **Description:** We would love to see an embed Rocket.Chat scripting support. The scripting support will allow the customization of elements (server settings, user profile) through a GUI in a very easy and objective way. +- **Desirable Skills:** Familiarity with JavaScript development and software architecture (interpreter architectural style). ### Game platform integration - * **Mentors:** TBD - * **Description:** Integrate a multiplayer-capable game engine that runs on the web browser (eg. Unity WebGL, Phaser, Three.js) with Rocket.Chat. Let room members start small multiplayer games and play together. - * **Desirable Skills:** Experienced with JavaScript, web browser game engines, and networking. - + +- **Mentors:** TBD +- **Description:** Integrate a multiplayer-capable game engine that runs on the web browser (eg. Unity WebGL, Phaser, Three.js) with Rocket.Chat. Let room members start small multiplayer games and play together. +- **Desirable Skills:** Experienced with JavaScript, web browser game engines, and networking. + ### Improve Hubot Integration -* **Mentors:** @diego.dorgam -* **Description:** Improve the internal hubot interface, by allowing users to set up their own repositories for Rocket.Chat to read and deploy a hubot instance from it. Also would be awesome if the user could just edit the scripts files, and get console logs, right from the Rocket.Chat interface. -* **Desirable Skills:** Familiarity with JavaScript development and hubot architecture. + +- **Mentors:** @diego.dorgam +- **Description:** Improve the internal hubot interface, by allowing users to set up their own repositories for Rocket.Chat to read and deploy a hubot instance from it. Also would be awesome if the user could just edit the scripts files, and get console logs, right from the Rocket.Chat interface. +- **Desirable Skills:** Familiarity with JavaScript development and hubot architecture. ### Open Source Bot Frameworks Adapters -* **Mentors:** TBD (@diego.dorgam + ?) -* **Description:** The objective is to widely open Rocket.Chat's bots ecosystem by developing connectors/adapters to open source bot frameworks available in the web, so their community can develop bots able to run on Rocket.Chat platform. The scope would include the following frameworks: + +- **Mentors:** TBD (@diego.dorgam + ?) +- **Description:** The objective is to widely open Rocket.Chat's bots ecosystem by developing connectors/adapters to open source bot frameworks available in the web, so their community can develop bots able to run on Rocket.Chat platform. The scope would include the following frameworks: + - BotKit - Rasa.ai (Rasa Core) - BotPress -* **Desirable Skills:** Familiarity with JavaScript and Python development. + +- **Desirable Skills:** Familiarity with JavaScript and Python development. ### Buttons and Cards UI -* **Mentors:** TBD (@diego.dorgam + ?) -* **Description:** Include the possibility to send a message with customizable buttons and cards carousel (slidable images with text descriptions) so the user can interact with and bots can receive the feedback of those interactions, right on the Rocket.Chat's interface, and compatible (if possible) with existing UI conventions, so it becomes intuitive to their community to develop to Rocket.Chat.   -* **Desirable Skills:** Familiarity with JavaScript development. + +- **Mentors:** TBD (@diego.dorgam + ?) +- **Description:** Include the possibility to send a message with customizable buttons and cards carousel (slidable images with text descriptions) so the user can interact with and bots can receive the feedback of those interactions, right on the Rocket.Chat's interface, and compatible (if possible) with existing UI conventions, so it becomes intuitive to their community to develop to Rocket.Chat.   +- **Desirable Skills:** Familiarity with JavaScript development. ### Use Voice Recognition APIs -* **Mentors:** TBD -* **Description:** Develop a voice recognition integration feature, by building a `Settings` pane to connect some of the well-known voice recognition and speech to text APIs on the market directly from within Rocket.Chat. By configuring API's connection and usage attributes, and giving rocket.chat's UI the ability to click a button, record a message, send to the desired API and return the results to Rocket.Chat editing message box. The project scope could include the following APIs: -* IBM Watson's -* AWS Lex -* Google Assistent -* Bing -Different APIs can be proposed as a possible change of scope. -* **Desirable Skills:** Familiarity with JavaScript development. + +- **Mentors:** TBD +- **Description:** Develop a voice recognition integration feature, by building a `Settings` pane to connect some of the well-known voice recognition and speech to text APIs on the market directly from within Rocket.Chat. By configuring API's connection and usage attributes, and giving rocket.chat's UI the ability to click a button, record a message, send to the desired API and return the results to Rocket.Chat editing message box. The project scope could include the following APIs: +- IBM Watson's +- AWS Lex +- Google Assistent +- Bing + Different APIs can be proposed as a possible change of scope. +- **Desirable Skills:** Familiarity with JavaScript development. ### Built-in Speech2Text Engine -* **Mentors:** TBD -* **Description:** Integrate an Open Source speech to text engine to be used inside Rocket.Chat by users who prefer an On-Premise full featured installation. There are many opensource speech2text engines on the market, like CMUSphinx and pocketsphinxjs, annyang, JuliusJS, Mumble, Voix JS, voice-commands.js and Artyon.js. This project will include a feature matrix comparison between those engines and the best one to be implemented in Rocket.Chat bundle, giving the UI the ability to click a button, record a message, send it to the text2speech engine and return the results to Rocket.Chat editing message box. -* **Desirable Skills:** Familiarity with JavaScript development and speech2text techniques. + +- **Mentors:** TBD +- **Description:** Integrate an Open Source speech to text engine to be used inside Rocket.Chat by users who prefer an On-Premise full featured installation. There are many opensource speech2text engines on the market, like CMUSphinx and pocketsphinxjs, annyang, JuliusJS, Mumble, Voix JS, voice-commands.js and Artyon.js. This project will include a feature matrix comparison between those engines and the best one to be implemented in Rocket.Chat bundle, giving the UI the ability to click a button, record a message, send it to the text2speech engine and return the results to Rocket.Chat editing message box. +- **Desirable Skills:** Familiarity with JavaScript development and speech2text techniques. ### Calendar Integration -* **Mentors:** Mrinal Dhar (@mrinaldhar) -* **Description:** Implement a calendar inside Rocket.Chat for scheduling events and reminders, offering standalone functionality as well as integration with other calendars out there (Google Calendar, for example). Also implement AI based automatic event detection from messages, and other advanced scheduling features. -* **Desirable Skills:** Familiarity with JavaScript development. +- **Mentors:** Mrinal Dhar (@mrinaldhar) +- **Description:** Implement a calendar inside Rocket.Chat for scheduling events and reminders, offering standalone functionality as well as integration with other calendars out there (Google Calendar, for example). Also implement AI based automatic event detection from messages, and other advanced scheduling features. +- **Desirable Skills:** Familiarity with JavaScript development. diff --git a/contributing/promoting/README.md b/contributing/promoting/README.md index 088899b9da..9c8f8fcac0 100644 --- a/contributing/promoting/README.md +++ b/contributing/promoting/README.md @@ -4,49 +4,48 @@ Help promote Rocket.Chat If you are not a developer (or even if you are), you can still contribute to the project, a lot, by helping us promote it. As we are a free open source project, the community is our most important asset, so here are some ways that you can help the project continue to grow. -**Please use this as a to-do list, as they are important** +Please use this as a to-do list, as they are important ## Follow us Please follow us on as many social networks as you can: -* [Facebook](https://www.facebook.com/RocketChat) -* [Twitter](https://twitter.com/RocketChat) -* [Google+](https://plus.google.com/+RocketChatApp) -* [CrunchBase](https://www.crunchbase.com/organization/rocket-chat) -* [Angel](https://angel.co/rocket-chat) -* [LinkedIn](https://www.linkedin.com/company/rocket-chat) +- [Facebook](https://www.facebook.com/RocketChat) +- [Twitter](https://twitter.com/RocketChat) +- [Google+](https://plus.google.com/+RocketChatApp) +- [CrunchBase](https://www.crunchbase.com/organization/rocket-chat) +- [Angel](https://angel.co/rocket-chat) +- [LinkedIn](https://www.linkedin.com/company/rocket-chat) ## Vote, recommend, favorite and star us And vote for us on all these various polls and contests: -* [GitHub](https://github.com/RocketChat/Rocket.Chat) -* [ProductHunt](http://www.producthunt.com/tech/rocket-chat) -* [Bitnami](https://bitnami.com/contest/applications/13576/vote/now) -* [Slant](http://www.slant.co/topics/3346/~what-are-the-best-on-site-alternatives-to-slack) -* [StackShare](http://stackshare.io/stackups/lets-chat-vs-rocketchat-vs-mattermost) -* [Reddit](https://redd.it/3hbdrc) -* [StackExchange](http://softwarerecs.stackexchange.com/questions/18754/) -* [DockerHub](https://hub.docker.com/_/rocket.chat/) -* [AlternativeTo](https://alternativeto.net/software/rocket-chat/) +- [GitHub](https://github.com/RocketChat/Rocket.Chat) +- [ProductHunt](http://www.producthunt.com/tech/rocket-chat) +- [Slant](http://www.slant.co/topics/3346/~what-are-the-best-on-site-alternatives-to-slack) +- [StackShare](http://stackshare.io/stackups/lets-chat-vs-rocketchat-vs-mattermost) +- [Reddit](https://redd.it/3hbdrc) +- [StackExchange](http://softwarerecs.stackexchange.com/questions/18754/) +- [DockerHub](https://hub.docker.com/_/rocket.chat/) +- [AlternativeTo](https://alternativeto.net/software/rocket-chat/) ## Blog about us Here are some nice blog posts about our project for you to get some inspiration: -* http://www.thehacktoday.com/how-to-install-rocket-chat-make-your-own-chatting-website -* https://sameroom.io/blog/self-hosted-team-chat-options-and-alternatives -* http://blog.geekgonecrazy.com/2015/09/19/osx-setup/#rocketchat -* https://snowulf.com/2015/09/25/why-slack-when-you-can-rocket-chat/ -* http://liminality.xyz/self-hosting/ -* https://www.rosehosting.com/blog/install-rocketchat-on-an-ubuntu-14-04-vps/ -* https://thishosting.rocks/how-to-install-rocket-chat-on-ubuntu-and-use-it-on-your-wordpress/ +- +- +- +- +- +- +- ## Presentations -* http://slides.com/gabrielengel/meteordevshop#/ +- ## Deployed in Websites -* Investment and Trading Chat Room http://seekingoptions.com +- Investment and Trading Chat Room diff --git a/contributing/reporting-issues/README.md b/contributing/reporting-issues/README.md index b40525f5b9..68ecc19231 100644 --- a/contributing/reporting-issues/README.md +++ b/contributing/reporting-issues/README.md @@ -6,9 +6,9 @@ GitHub Issues are for bugs and feature requests only. Examples of things that aren't considered bugs or feature requests: -* Can't figure out how to do something -* Having issues accessing your server -* Can't get the server installed +- Can't figure out how to do something +- Having issues accessing your server +- Can't get the server installed If your issue falls into one of these categories, please see [Getting Support](../../getting-support/) @@ -28,14 +28,14 @@ Go [here](https://github.com/RocketChat/Rocket.Chat/issues/new) to open a new is Please include the following information in order to promote effective fixing. -* Operating System / Version / Architecture (64 bit?) -* Browser type and version, including any add-ons. (e.g. AdBlocker, NoScript, etc.) -* Rocket.Chat version -* Expected behavior -* Actual behavior -* Can the bug consistently be reproduced? If so, how? -* Relevant errors and other log output -* Screen shots as necessary +- Operating System / Version / Architecture (64 bit?) +- Browser type and version, including any add-ons. (e.g. AdBlocker, NoScript, etc.) +- Rocket.Chat version +- Expected behavior +- Actual behavior +- Can the bug consistently be reproduced? If so, how? +- Relevant errors and other log output +- Screen shots as necessary #### Determining Rocket.Chat Version diff --git a/contributing/security/README.md b/contributing/security/README.md index eb6c7b7cff..0053c94dad 100644 --- a/contributing/security/README.md +++ b/contributing/security/README.md @@ -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 [security@rocket.chat](mailto://security@rocket.chat) +> Please email the details to Rocket.Chat's security team at `security@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. diff --git a/contributing/translating/README.md b/contributing/translating/README.md index 89d11934a6..0298bdc413 100644 --- a/contributing/translating/README.md +++ b/contributing/translating/README.md @@ -2,6 +2,6 @@ First of all, thank you for your interest in helping us translate Rocket.Chat. -We use [Lingohub](https://translate.lingohub.com/rocketchat/dashboard) and we have over 20 translated languages. +We use [Lingohub](https://translate.lingohub.com/rocketchat/dashboard) and we have over 20 translated languages. If you want to help, send an email to `translations@rocket.chat` to be invited to the translation project. diff --git a/developer-guides/branches-and-releases/README.md b/developer-guides/branches-and-releases/README.md index 59478b3485..d6960f3563 100644 --- a/developer-guides/branches-and-releases/README.md +++ b/developer-guides/branches-and-releases/README.md @@ -1,8 +1,8 @@ -## Rocket.Chat Workflow +# Rocket.Chat Workflow 1. Start working on an issue you’re assigned to. If you’re not assigned to any issue, find the issue with the highest priority you can work on, by relevant label and assign it to yourself. Priority is given by milestones. You should always check issues in the current milestone, then short-term, middle-term and long-term in that order. -1. You are responsible for the issue that you're assigned to. If you are not able to do it or you believe you won't make it to the selected milestone, talk to your team, lead or manager to have it reassigned or postponed. -1. Once your code has been deployed in the release-candidate environment, please verify that your changes work as intended. We have seen issues where bugs did not appear in development but showed in production (e.g. due to merge issues). +2. You are responsible for the issue that you're assigned to. If you are not able to do it or you believe you won't make it to the selected milestone, talk to your team, lead or manager to have it reassigned or postponed. +3. Once your code has been deployed in the release-candidate environment, please verify that your changes work as intended. We have seen issues where bugs did not appear in development but showed in production (e.g. due to merge issues). ## Choosing something to work on @@ -24,6 +24,7 @@ If you’re in doubt about what to work on, ask your team, lead or manager. They ## Creating a Pull Request Anytime you start to work on something different, make sure you create or switch to a branch specific to the feature you're working on. You can choose to create a Pull Request anytime during your development phase, just make sure you add the label `stat: in progress` while the PR is not ready for merge (and remember to remove the label when it is). When naming your Pull Request, please start the name with one the following tags for identifying changes: + - [NEW] for new features (eg.: `[NEW] WhiteBoard integration`) - [FIX] for bug fixes. You should include the issue number(s) in parenthesis, whenever possible. (eg.: `[FIX] OTR timeout problems (#629, #2535)`) - [BREAK] for giving proper attention to changes that will break previous versions of Rocket.Chat (eg.: `[BREAK] Change notification setting type from boolean to string`) @@ -35,9 +36,9 @@ Anytime you start to work on something different, make sure you create or switch There are a few rules to get your pull request accepted: 1. All checks have passed - 1. Travis CI runs automatically when you push your pull request. If Travis fails, take a look at the reasons for failing. If it fails for no apparent reason, try running it again. - 1. You must sign the [Contributor License Agreement (CLA)][cla] - 1. At least one team member must approve the Pull Request. If you don't know who to ask for an approval, let your team, lead or manager know you need one, and someone will be assigned as reviewer. +2. Travis CI runs automatically when you push your pull request. If Travis fails, take a look at the reasons for failing. If it fails for no apparent reason, try running it again. +3. You must sign the [Contributor License Agreement (CLA)][cla] +4. At least one team member must approve the Pull Request. If you don't know who to ask for an approval, let your team, lead or manager know you need one, and someone will be assigned as reviewer. [cla]: https://cla-assistant.io/RocketChat/Rocket.Chat @@ -47,34 +48,28 @@ When the state of the `release-candidate` branch is ready to become a real relea The release process is as follows: -``` -$ git checkout master -Switched to branch 'master' -$ git merge --no-ff release-candidate -Merge made by recursive. -(Summary of changes) -$ git tag -a [version number] -``` + $ git checkout master + Switched to branch 'master' + $ git merge --no-ff release-candidate + Merge made by recursive. + (Summary of changes) + $ git tag -a [version number] To keep the changes made in the release branch, we need to merge those back into develop, though. In Git: -``` -$ git checkout develop -Switched to branch 'develop' -$ git merge --no-ff release-candidate -Merge made by recursive. -(Summary of changes) -``` + $ git checkout develop + Switched to branch 'develop' + $ git merge --no-ff release-candidate + Merge made by recursive. + (Summary of changes) To create the new `release-candidate` based on `develop`: -``` -$ git checkout release-candidate -Switched to branch 'release-candidate' -$ git merge --no-ff develop -Merge made by recursive. -(Summary of changes) -``` + $ git checkout release-candidate + Switched to branch 'release-candidate' + $ git merge --no-ff develop + Merge made by recursive. + (Summary of changes) Every team member should strive to thoroughly test the `release-candidate` branch, especially regarding issues they've worked on. Any bug-fixes applied to `release-candidate` should immediately be cherry-picked into `develop`. @@ -86,31 +81,27 @@ Hotfix branches are very much like release branches in that they are also meant Hotfix branches are created from the `master` branch: -``` -$ git checkout -b hotfix-[current-version].[sub-version] master -Switched to a new branch "hotfix-X.X.X" -``` + $ git checkout -b hotfix-[current-version].[sub-version] master + Switched to a new branch "hotfix-X.X.X" Then, fix the bug and commit the fix. Later, merge the bugfix into `master` and also into `release-candidate` (and `develop` if the bugfix cannot wait for the release branch to be finished). -``` -$ git commit -m "Fixed severe production problem" -[hotfix-X.X.X abc12d3] Fixed severe production problem -5 files changed, 32 insertions(+), 17 deletions(-) - -$ git checkout master -Switched to branch 'master' -$ git merge --no-ff hotfix-X.X.X -Merge made by recursive. -(Summary of changes) -$ git tag -a [current-version].[sub-version] - -$ git checkout release-candidate -Switched to branch 'release-candidate' -$ git merge --no-ff hotfix-X.X.X -Merge made by recursive. -(Summary of changes) -``` + $ git commit -m "Fixed severe production problem" + [hotfix-X.X.X abc12d3] Fixed severe production problem + 5 files changed, 32 insertions(+), 17 deletions(-) + + $ git checkout master + Switched to branch 'master' + $ git merge --no-ff hotfix-X.X.X + Merge made by recursive. + (Summary of changes) + $ git tag -a [current-version].[sub-version] + + $ git checkout release-candidate + Switched to branch 'release-candidate' + $ git merge --no-ff hotfix-X.X.X + Merge made by recursive. + (Summary of changes) ## Error reporting @@ -133,5 +124,4 @@ All labels are listed on the [labels page][labels]. ### Labels for community contributors -Issues that are beneficial to our users, 'nice to haves', that we currently do not have the capacity for or want to give the priority to, are labeled as `contrib: `, so the community can make a contribution. We categorize them into `easy`, `intermediate` and `experts needed` to help contributors pick an issue to work on when joining the project, based on how difficult is the work we believe the issue demands. - +Issues that are beneficial to our users, 'nice to haves', that we currently do not have the capacity for or want to give the priority to, are labeled as `contrib:`, so the community can make a contribution. We categorize them into `easy`, `intermediate` and `experts needed` to help contributors pick an issue to work on when joining the project, based on how difficult is the work we believe the issue demands. diff --git a/developer-guides/code-styleguide/less/README.md b/developer-guides/code-styleguide/less/README.md index 69ab89affb..6ab38c257b 100644 --- a/developer-guides/code-styleguide/less/README.md +++ b/developer-guides/code-styleguide/less/README.md @@ -8,60 +8,60 @@ ## Comments -* Prefer line comments (`//`) to block comments. -* Prefer comments on their own line. Avoid end-of-line comments. -* Write detailed comments for code that isn't self-documenting: - - Uses of z-index - - Compatibility or browser-specific hacks +- Prefer line comments (`//`) to block comments. +- Prefer comments on their own line. Avoid end-of-line comments. +- Write detailed comments for code that isn't self-documenting: + - Uses of z-index + - Compatibility or browser-specific hacks ## Formatting -* Use tabs for indentation -* Use dashes over camelCasing in class names. -* Prefer to not use ID selectors -* When using multiple selectors in a rule declaration, give each selector its own line. -* Put a space before the opening brace `{` in rule declarations -* In properties, put a space after, but not before, the `:` character. -* Put closing braces `}` of rule declarations on a new line -* Put blank lines between rule declarations, but not in nesting selectors. -* Put nesting after all properties. -* Try to not use `!important`. -* Lowercase, always :) +- Use tabs for indentation +- Use dashes over camelCasing in class names. +- Prefer to not use ID selectors +- When using multiple selectors in a rule declaration, give each selector its own line. +- Put a space before the opening brace `{` in rule declarations +- In properties, put a space after, but not before, the `:` character. +- Put closing braces `}` of rule declarations on a new line +- Put blank lines between rule declarations, but not in nesting selectors. +- Put nesting after all properties. +- Try to not use `!important`. +- Lowercase, always :) **Bad** ```less blockquote { - .clearfix; - margin: .5em 0; - &:first-child { - margin-top: 0; - } - &:last-child { - margin-bottom: 0; - } - padding-left: 10px; - position: relative; - &:before { - content: ' '; - width: 4px; - position: absolute; - border-radius: 2px; - left: 0; - top: -1px; - bottom: -1px; - } + .clearfix; + margin: .5em 0; + &:first-child { + margin-top: 0; + } + &:last-child { + margin-bottom: 0; + } + padding-left: 10px; + position: relative; + &:before { + content: ' '; + width: 4px; + position: absolute; + border-radius: 2px; + left: 0; + top: -1px; + bottom: -1px; + } } .login-terms { - font-size: smaller; - width: 520px; - padding: 10px; - max-width: 100%; - margin: auto; - a { - font-weight: bold !important; - text-decoration: underline; - } + font-size: smaller; + width: 520px; + padding: 10px; + max-width: 100%; + margin: auto; + a { + font-weight: bold !important; + text-decoration: underline; + } } ``` @@ -69,55 +69,56 @@ blockquote { ```less blockquote { - .clearfix; - margin: .5em 0; - padding-left: 10px; - position: relative; - - &:first-child { - margin-top: 0; - } - - &:last-child { - margin-bottom: 0; - } - - &::before { - content: ' '; - width: 4px; - position: absolute; - border-radius: 2px; - left: 0; - top: -1px; - bottom: -1px; - } + .clearfix; + margin: .5em 0; + padding-left: 10px; + position: relative; + + &:first-child { + margin-top: 0; + } + + &:last-child { + margin-bottom: 0; + } + + &::before { + content: ' '; + width: 4px; + position: absolute; + border-radius: 2px; + left: 0; + top: -1px; + bottom: -1px; + } } .login-terms { - font-size: smaller; - width: 520px; - padding: 10px; - max-width: 100%; - margin: auto; + font-size: smaller; + width: 520px; + padding: 10px; + max-width: 100%; + margin: auto; - a { - font-weight: bold; - text-decoration: underline; - } + a { + font-weight: bold; + text-decoration: underline; + } } ``` ## Selectors ### Create an empty line before selectors. + **Bad** ```less .class { - border: 0; + border: 0; } .second-class: { - text-align: right; + text-align: right; } ``` @@ -125,20 +126,21 @@ blockquote { ```less .class { - border: 0; + border: 0; } .second-class: { - text-align: right; + text-align: right; } ``` ### Use a single space after selectors. + **Bad** ```less .class{ - border: 0; + border: 0; } ``` @@ -146,19 +148,20 @@ blockquote { ```less .class { - border: 0; + border: 0; } ``` ### Add an empty line before nested selectors. + **Bad** ```less .class { - border: 0; - &.another-class { - color: #ffffff; - } + border: 0; + &.another-class { + color: #ffffff; + } } ``` @@ -166,27 +169,28 @@ blockquote { ```less .class { - border: 0; + border: 0; - &.another-class { - color: #ffffff; - } + &.another-class { + color: #ffffff; + } } ``` ### Use an empty line before non-nested selectors. + **Bad** ```less .class { - border: 0; + border: 0; - &.another-class { - color: #ffffff; - } + &.another-class { + color: #ffffff; + } } .logo { - display: block; + display: block; } ``` @@ -194,24 +198,25 @@ blockquote { ```less .class { - border: 0; + border: 0; - &.another-class { - color: #ffffff; - } + &.another-class { + color: #ffffff; + } } .logo { - display: block; + display: block; } ``` ### Don’t add whitespaces inside of the brackets within attribute selectors. + **Bad** ```less .input[ type="text" ] { - border: 0; + border: 0; } ``` @@ -219,16 +224,17 @@ blockquote { ```less .input[type="text"] { - border: 0; + border: 0; } ``` ### Don’t add a whitespace between operators within attribute selectors. + **Bad** ```less .input[type = "text" ] { - border: 0; + border: 0; } ``` @@ -236,16 +242,17 @@ blockquote { ```less .input[type="text"] { - border: 0; + border: 0; } ``` ### Always use a single space between the combinators of selectors. + **Bad** ```less .class>.button { - font-size: 1rem; + font-size: 1rem; } ``` @@ -253,16 +260,17 @@ blockquote { ```less .class > .button { - font-size: 1rem; + font-size: 1rem; } ``` ### Add a newline after the commas of selector lists. + **Bad** ```less .class, .another, .another-class { - padding: 1.5rem; + padding: 1.5rem; } ``` @@ -272,16 +280,17 @@ blockquote { .class, .another, .another-class { - padding: 1.5rem; + padding: 1.5rem; } ``` ### Don’t add a whitespace inside of the parentheses within pseudo-class selectors. + **Bad** ```less .class:not( .another ) { - margin: 5px; + margin: 5px; } ``` @@ -289,20 +298,21 @@ blockquote { ```less .class:not(.another) { - margin: 5px; + margin: 5px; } ``` ### Double colon for applicable pseudo-elements. + **Bad** ```less .class:before { - border-width: 2px; + border-width: 2px; } .class:first-child { - color: #000000; + color: #000000; } ``` @@ -310,26 +320,27 @@ blockquote { ```less .class::before { - border-width: 2px; + border-width: 2px; } .class:first-child { - color: #000000; + color: #000000; } ``` ## Properties ### Don’t add empty line in first/last property or in between properties. + **Bad** ```less .room-list { - border: 0; - padding-left: 0; + border: 0; + padding-left: 0; - color: #ddfc32; + color: #ddfc32; } ``` @@ -338,13 +349,14 @@ blockquote { ```less .room-list { - border: 0; - padding-left: 0; - color: #ddfc32; + border: 0; + padding-left: 0; + color: #ddfc32; } ``` ### Don't add properties in single-line. Use one property per line. + **Bad** ```less @@ -355,12 +367,13 @@ blockquote { ```less .sumbit { - color: #ffffff; - background-color: #000000; + color: #ffffff; + background-color: #000000; } ``` ### No empty blocks. + **Bad** ```less @@ -371,18 +384,19 @@ blockquote { ```less .button { - float: left; + float: left; } ``` ### Longhand properties must be combined into one shorthand property. + **Bad** ```less .class { - padding-left: 12px; - padding-top: 5px; - padding-bottom: 8px; + padding-left: 12px; + padding-top: 5px; + padding-bottom: 8px; } ``` @@ -390,27 +404,29 @@ blockquote { ```less .class { - padding: 5px auto 8px 12px; + padding: 5px auto 8px 12px; } ``` ### Don’t use shorthand properties that override related longhand properties. + **Example** ```less .class { - border-color: #ffffff; - border: 1px solid #000000; + border-color: #ffffff; + border: 1px solid #000000; } ``` ### Always add a trailing semicolon in the end of a declaration. + **Bad** ```less .another-class { - color: #ffffff; - padding: 2px + color: #ffffff; + padding: 2px } ``` @@ -418,17 +434,18 @@ blockquote { ```less .another-class { - color: #ffffff; - padding: 2px; + color: #ffffff; + padding: 2px; } ``` ### Add a newline after the colon of declarations. + **Bad** ```less .another-class { - box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); + box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); } ``` @@ -436,20 +453,21 @@ blockquote { ```less .another-class { - box-shadow: - 0 0 0 1px #5b9dd9, - 0 0 2px 1px rgba(30, 140, 190, 0.8); + box-shadow: + 0 0 0 1px #5b9dd9, + 0 0 2px 1px rgba(30, 140, 190, 0.8); } ``` ### Don’t duplicate properties within declaration blocks. + **Bad** ```less .another-class { - display: block; - margin-top: 2rem; - display: inline-block; + display: block; + margin-top: 2rem; + display: inline-block; } ``` @@ -457,24 +475,25 @@ blockquote { ```less .another-class { - margin-top: 2rem; - display: inline-block; + margin-top: 2rem; + display: inline-block; } ``` ### Don’t duplicate selectors along the file. + **Bad** ```less .some-class { - display: block; + display: block; } .another-class { - position: absolute; + position: absolute; } .some-class { - margin-top: 2rem; - display: inline-block; + margin-top: 2rem; + display: inline-block; } ``` @@ -482,18 +501,19 @@ blockquote { ```less .some-class { - display: block; - margin-top: 2rem; - display: inline-block; + display: block; + margin-top: 2rem; + display: inline-block; } ``` ### Add a whitespace before bang (!) declaration. + **Bad** ```less .class { - margin-left: 12px!important; + margin-left: 12px!important; } ``` @@ -501,16 +521,17 @@ blockquote { ```less .class { - margin-left: 12px !important; + margin-left: 12px !important; } ``` ### Use spaces around calc operators. + **Bad** ```less .class { - width: calc(~"200px-1rem"); + width: calc(~"200px-1rem"); } ``` @@ -518,16 +539,17 @@ blockquote { ```less .class { - width: calc(~"200px - 1rem"); + width: calc(~"200px - 1rem"); } ``` ### Remove units for zero lengths. + **Bad** ```less .button { - padding: 10px 0px 0px 2px; + padding: 10px 0px 0px 2px; } ``` @@ -535,16 +557,17 @@ blockquote { ```less .button { - padding: 10px 0 0 2px; + padding: 10px 0 0 2px; } ``` ### Use a leading zero for fractional numbers less than 1. + **Bad** ```less .message-form { - margin-right: .5rem; + margin-right: .5rem; } ``` @@ -552,16 +575,17 @@ blockquote { ```less .message-form { - margin-right: 0.5rem; + margin-right: 0.5rem; } ``` ### Don’t add trailing zeros in numbers. + **Bad** ```less .flex-tab { - padding-bottom: 1.500rem; + padding-bottom: 1.500rem; } ``` @@ -569,17 +593,18 @@ blockquote { ```less .flex-tab { - padding-bottom: 1.5rem; + padding-bottom: 1.5rem; } ``` ### Don’t add newlines in strings. + **Bad** ```less .nav-link::before { - content: "sample - text"; + content: "sample + text"; } ``` @@ -587,18 +612,21 @@ blockquote { ```less .nav-link::before { - content: "sample text"; + content: "sample text"; } ``` ## Colors + ### Lowercase, always. + ### Long notation. + **Bad** ```less .another-class { - background-color: #FFF; + background-color: #FFF; } ``` @@ -606,6 +634,6 @@ blockquote { ```less .another-class { - background-color: #ffffff; + background-color: #ffffff; } ``` diff --git a/developer-guides/iframe-integration/README.md b/developer-guides/iframe-integration/README.md index 6bb3826c4c..28a162649a 100644 --- a/developer-guides/iframe-integration/README.md +++ b/developer-guides/iframe-integration/README.md @@ -1,10 +1,14 @@ # Iframe Integration ## Use your own login page to login users in Rocket.Chat + If you want to authenticate users using the iframe integration, go to `Adminstration > Accounts > Iframe` and enable it: + - [How to use iframe integration for authentication](authentication/) ## Use Rocket.Chat in your site/app inside an iframe + If you need listen to events, go to `Administration > General > Iframe Integration` and enable send (events) or receive (commands), depending on your needs: + - [How to use iframe integration events](events/) - [How to use iframe integration commands](commands/) diff --git a/developer-guides/iframe-integration/authentication/README.md b/developer-guides/iframe-integration/authentication/README.md index d84a9c482b..b48d096e06 100644 --- a/developer-guides/iframe-integration/authentication/README.md +++ b/developer-guides/iframe-integration/authentication/README.md @@ -1,7 +1,9 @@ -## What is IFrame auth? +# What is IFrame auth? + With IFrame auth you can use your own auth page and do the comunication with Rocket.Chat to manage users. ## How to login in Rocket.Chat with default account system while in development + When you active the IFrame option you will not be able to access the default login page. Instead, you will need to login with your normal account to manage the settings. You can do that opening the Browser's Developer Console and executing this code: @@ -10,28 +12,37 @@ Meteor.loginWithPassword('username-or-email', 'your-password'); ``` ## Configuring + ### IFrame URL + The URL of the page you want to show as the login page of your Rocket.Chat instance (this page can be created in any programming language and/or web framework). ### API URL + The URL that Rocket.Chat will call to verify if user is logged-in -* If user is logged-in, should respond with the session token, example: + +- If user is logged-in, should respond with the session token, example: + ```json { - "token":"your-generated-token" + "token":"your-generated-token" } ``` + To do that, you should directly access the Rocket.Chat MongoDB database (using a MongoDB library or driver with the programming language that you have created your login page with) and find/create the user record under the collection `users` set the `services.iframe.token` and return via your API. -* Or you can respond with native account token using **loginToken**: + +- Or you can respond with native account token using **loginToken**: + ```json { - "loginToken":"your-auth-token" + "loginToken":"your-auth-token" } ``` -To do that you can use the [Rocket.Chat auth API](https://rocket.chat/docs/developer-guides/rest-api/#logon) and use the returned **authToken** as your loginToken. +To do that you can use the [Rocket.Chat auth API](https://rocket.chat/docs/developer-guides/rest-api/#logon) and use the returned **authToken** as your loginToken. Example of a user record: + ```javascript { "_id": "MZiFvWAf96876875u", @@ -58,16 +69,18 @@ Example of a user record: } ``` -* If user is not logged-in, should respond with status code 401 +- If user is not logged-in, should respond with status code 401 ### API Method -How Rocket.Chat will call your API, `GET` or `POST` +How Rocket.Chat will call your API, `GET` or `POST` ## Integrating your login page + Rocket.Chat and your login page will comunicate via `postMessage`. After user login, you should tell to Rocket.Chat to try the auth again calling your API to get the token: + ```javascript window.parent.postMessage({ event: 'try-iframe-login' @@ -75,13 +88,16 @@ window.parent.postMessage({ ``` Or you can call the login directly if you already have the token: + ```javascript window.parent.postMessage({ event: 'login-with-token', token: 'your-token' }, 'http://example.rocketchat.origin.com'); ``` + or passing the **loginToken** (the native login token from meteor, you can generate one using any login method, including via [REST API](https://rocket.chat/docs/developer-guides/rest-api/#logon)) + ```javascript window.parent.postMessage({ event: 'login-with-token', @@ -92,7 +108,8 @@ window.parent.postMessage({ You can call our OAuth services too, to do that you need to enable and configure each OAuth service on Rocket.Chat admin page and then you can call the services: You will receive the OAuth information, you should manage the user creationg/authentication and set the iframe token. -##### Facebook +### Facebook + ```javascript window.parent.postMessage({ event: 'call-facebook-login', @@ -101,23 +118,25 @@ window.parent.postMessage({ ``` The reply will be a postMessage back to your page with: + ```javascript { - event: 'facebook-login-success', - response: { - // authResponse: Object - // accessToken: "a7s6d8a76s8d7..." - // expiresIn: "5172793" - // secret: "..." - // session_key: true - // sig: "..." - // userID: "675676576" - // status: "connected" - } + event: 'facebook-login-success', + response: { + // authResponse: Object + // accessToken: "a7s6d8a76s8d7..." + // expiresIn: "5172793" + // secret: "..." + // session_key: true + // sig: "..." + // userID: "675676576" + // status: "connected" + } } ``` Or an error + ```javascript { event: 'facebook-login-error', @@ -127,33 +146,36 @@ Or an error ``` #### Google + ```javascript window.parent.postMessage({ event: 'call-google-login', - // scopes: - // webClientId: + // scopes: + // webClientId: }, 'http://example.rocketchat.origin.com'); ``` The reply will be a postMessage back to your page with: + ```javascript { event: 'google-login-success', - response: { - // "email": "rodrigoknascimento@gmail.com", - // "userId": "1082039180239", - // "displayName": "Rodrigo Nascimento", - // "gender": "male", - // "imageUrl": "https://lh5.googleusercontent.com/-shUpniJA480/AAAAAAAAAAI/AAAAAAAAAqY/_B8oyS8yBw0/photo.jpg?sz=50", - // "givenName": "Rodrigo", - // "familyName": "Nascimento", - // "ageRangeMin": 21, - // "oauthToken": "123198273kajhsdh1892h" - } + response: { + // "email": "rodrigoknascimento@gmail.com", + // "userId": "1082039180239", + // "displayName": "Rodrigo Nascimento", + // "gender": "male", + // "imageUrl": "https://lh5.googleusercontent.com/-shUpniJA480/AAAAAAAAAAI/AAAAAAAAAqY/_B8oyS8yBw0/photo.jpg?sz=50", + // "givenName": "Rodrigo", + // "familyName": "Nascimento", + // "ageRangeMin": 21, + // "oauthToken": "123198273kajhsdh1892h" + } } ``` Or an error + ```javascript { event: 'google-login-error', @@ -162,6 +184,7 @@ Or an error ``` #### Twitter + ```javascript window.parent.postMessage({ event: 'call-twitter-login' @@ -169,19 +192,21 @@ window.parent.postMessage({ ``` The reply will be a postMessage back to your page with: + ```javascript { event: 'twitter-login-success', - response: { - // "userName": "orodrigok", - // "userId": 293123, - // "secret": "asdua09sud", - // "token": "2jh3k1j2h3" - } + response: { + // "userName": "orodrigok", + // "userId": 293123, + // "secret": "asdua09sud", + // "token": "2jh3k1j2h3" + } } ``` Or an error + ```javascript { event: 'twitter-login-error', diff --git a/developer-guides/iframe-integration/commands/README.md b/developer-guides/iframe-integration/commands/README.md index 3811003718..5a93bfd675 100644 --- a/developer-guides/iframe-integration/commands/README.md +++ b/developer-guides/iframe-integration/commands/README.md @@ -1,15 +1,17 @@ # Iframe integration: Sending commands ## Available commands -Command | Params | Description ---- | --- | --- -go | - `path` string | Change url -login-with-token | - `token` string | Allow login with token -call-custom-oauth-login | - `service` string | Allow login via oauth methods -set-user-status | - `status` string | Set the status of the user -logout | | Log the user out of their current session + +| Command | Params | Description | +| ----------------------- | ------------------ | ----------------------------------------- | +| go | - `path` string | Change url | +| login-with-token | - `token` string | Allow login with token | +| call-custom-oauth-login | - `service` string | Allow login via oauth methods | +| set-user-status | - `status` string | Set the status of the user | +| logout | | Log the user out of their current session | ## Example + ```javascript document.querySelector('iframe').contentWindow.postMessage({ externalCommand: 'go', diff --git a/developer-guides/iframe-integration/events/README.md b/developer-guides/iframe-integration/events/README.md index 25425d8a19..02887baf90 100644 --- a/developer-guides/iframe-integration/events/README.md +++ b/developer-guides/iframe-integration/events/README.md @@ -4,23 +4,21 @@ Here is a list of events triggered from Rocket.Chat when the iframe integration is enabled: -Event name | Description ------------ | ----------- -`notification` | Fired when a user receives a notification -`unread-changed-by-subscription` | Fired each time a user's subscription record changes (i.e.: unread counts, etc) -`unread-changed` | Fired when the pages title changes -`room-opened` | Fired when a room is opened -`new-message` | Fired everytime the opened room receives a new message -`click-user-card-message` | Fired when the user clicks on a username link -`click-mention-link` | Fired when the user clicks on a mention link -`click-message-link` | Fired when the user clicks on a posted link -`click-action-link` | Fired when the user clicks on an action link button (i.e.: "click to join" to video conferences) +| Event name | Description | +| -------------------------------- | ------------------------------------------------------------------------------------------------ | +| `notification` | Fired when a user receives a notification | +| `unread-changed-by-subscription` | Fired each time a user's subscription record changes (i.e.: unread counts, etc) | +| `unread-changed` | Fired when the pages title changes | +| `room-opened` | Fired when a room is opened | +| `new-message` | Fired everytime the opened room receives a new message | +| `click-user-card-message` | Fired when the user clicks on a username link | +| `click-mention-link` | Fired when the user clicks on a mention link | +| `click-message-link` | Fired when the user clicks on a posted link | +| `click-action-link` | Fired when the user clicks on an action link button (i.e.: "click to join" to video conferences) | Above there is a sample code that listens to events fired from Rocket.Chat opened on an `iframe`: -``` -window.addEventListener('message', function(e) { - console.log(e.data.eventName); // event name - console.log(e.data.data); // event data -}); -``` + window.addEventListener('message', function(e) { + console.log(e.data.eventName); // event name + console.log(e.data.data); // event data + }); diff --git a/developer-guides/livechat-api/README.md b/developer-guides/livechat-api/README.md index e7d86c5ef0..c3b1406330 100644 --- a/developer-guides/livechat-api/README.md +++ b/developer-guides/livechat-api/README.md @@ -8,7 +8,8 @@ You can call multiple livechat APIs on the same page. ### Methods -#### *Set custom field* +#### _Set custom field_ + To set a custom field for a visitor, you can use the following code: ```javascript @@ -18,7 +19,8 @@ RocketChat(function() { }); ``` -#### *Set theme options* +#### _Set theme options_ + To change the online color of the livechat widget, use the following code: ```javascript @@ -33,6 +35,7 @@ RocketChat(function() { ### Events #### _onChatMaximized_ + Fired when the chat widget is maximized. ```javascript @@ -45,6 +48,7 @@ RocketChat(function() { ``` #### _onChatMinimized_ + Fired when the chat widget is minimized. ```javascript @@ -57,6 +61,7 @@ RocketChat(function() { ``` #### _onChatStarted_ + Fired when the chat is started (the first message was sent). ```javascript @@ -69,6 +74,7 @@ RocketChat(function() { ``` #### _onChatEnded_ + Fired when the chat is ended either by the agent or the visitor. ```javascript @@ -81,6 +87,7 @@ RocketChat(function() { ``` #### _onPrechatFormSubmit_ + Fired when the pre-chat form is submitted. ```javascript @@ -95,6 +102,7 @@ RocketChat(function() { ``` #### _onOfflineFormSubmit_ + Fired when the offline form is submitted. ```javascript @@ -110,8 +118,8 @@ RocketChat(function() { ## Change Log -| Version | Description | -| :--- | :--- | -| 0.53.0 | Added callback events and the ability to pass a flag to `setCustomField` so the value passed does not get wrote if there is already an existing value. | -| 0.36.0 | Added `setTheme` method | -| 0.26.0 | Added `setCustomField` method | +| Version | Description | +| :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0.53.0 | Added callback events and the ability to pass a flag to `setCustomField` so the value passed does not get wrote if there is already an existing value. | +| 0.36.0 | Added `setTheme` method | +| 0.26.0 | Added `setCustomField` method | diff --git a/developer-guides/mobile-apps/README.md b/developer-guides/mobile-apps/README.md index c48616404d..ba814c1578 100644 --- a/developer-guides/mobile-apps/README.md +++ b/developer-guides/mobile-apps/README.md @@ -28,13 +28,12 @@ This app is a shim. It presents a screen to collect the server URL of your choi In addition, this app replaces your Android device's webview with an up-to-date webview from the crosswalk-project. This enables devices with old Android versions, as far back as 4.0, to run Rocket.Chat. - ### Requirements Since this app is built with Cordova, the same requirements apply: -- __Node.js__ -- __Android SDK__: +- **Node.js** +- **Android SDK**: - This tool will not work unless you have the absolute latest updates for all Android SDK components. - Also you will need the SDK's tools and platform-tools directories on your system path otherwise Android support will fail. @@ -42,14 +41,13 @@ Since this app is built with Cordova, the same requirements apply: $ sudo npm install -g cordova -Additional information here: https://cordova.apache.org/docs/en/4.0.0/guide_cli_index.md.html +Additional information here: ### Install dependencies $ sudo npm install -g underscore $ sudo npm install -g coffee - ### Get the App Clone the `Rocket.Chat.Cordova` repo: @@ -74,7 +72,7 @@ In theory this is as simple as: But if you get some errors (which seems kinda normal), make sure you have installed the SDK or tools in the Requirements section. Even though meteor may install it's own version of the SDK or tools, you still need the standalone version installed and the environment variables set for the Cordova build to succeed. -__NOTE__: for android build, this Cordova build only supports android-22 target which is Android 5.1.1. NO OTHER target is supported at this time. Please make sure you have SDK Platform, SDK build tools for API 22 installed. +**NOTE**: for android build, this Cordova build only supports android-22 target which is Android 5.1.1. NO OTHER target is supported at this time. Please make sure you have SDK Platform, SDK build tools for API 22 installed. If there are a lot of `cannot find module` build problems, try adding and removing the cordova android platform: @@ -120,4 +118,3 @@ Follow the instructions [of the docker image](https://hub.docker.com/r/rocketcha ### Additional Information Check out the [How to submit your Android app to the Play Store](https://github.com/meteor/meteor/wiki/How-to-submit-your-Android-app-to-Play-Store) guide on the Meteor Wiki for additional information. - diff --git a/developer-guides/realtime-api/README.md b/developer-guides/realtime-api/README.md index 036772bd1a..81f96bdcae 100644 --- a/developer-guides/realtime-api/README.md +++ b/developer-guides/realtime-api/README.md @@ -1,6 +1,6 @@ # Realtime API -__IMPORTANT!__ These docs are based on an unreleased version of the API. If you want to try it out, point your client to __wss://open.rocket.chat/websocket__. +**IMPORTANT!** These docs are based on an unreleased version of the API. If you want to try it out, point your client to **wss://open.rocket.chat/websocket**. Our realtime API is composed of two elements: [Method Calls][1] and [Subscriptions][2]. Both of them are supported directly in the websocket connection. @@ -15,21 +15,24 @@ To make it possible to have everything working on the same connection we use RPC ``` The type of communication is defined according to the call: - - [Method Calls][1]: `method` - - [Subscriptions][2]: `sub` - Please note, the server will send you "ping" and you must respond with "pong" otherwise the server will close the connection. +- [Method Calls][1]: `method` +- [Subscriptions][2]: `sub` + + Please note, the server will send you "ping" and you must respond with "pong" otherwise the server will close the connection. Before requesting any method / subscription you have to send a connect message: + ```json { - "msg": "connect", - "version": "1", - "support": ["1"] + "msg": "connect", + "version": "1", + "support": ["1"] } ``` -[1]:method-calls/ -[2]:subscriptions/ +[1]: method-calls/ + +[2]: subscriptions/ -You can find a basic example script that uses the 'ddp' NodeJS package to subscribe to the Realtime-API stream of a Group/Channel here [https://github.com/jszaszvari/rocketchat-ddp-listener](https://github.com/jszaszvari/rocketchat-ddp-listener) +You can find a basic example script that uses the 'ddp' NodeJS package to subscribe to the Realtime-API stream of a Group/Channel here diff --git a/developer-guides/realtime-api/livechat-api/README.md b/developer-guides/realtime-api/livechat-api/README.md index 5e8ffcd564..428d1e7c3a 100644 --- a/developer-guides/realtime-api/livechat-api/README.md +++ b/developer-guides/realtime-api/livechat-api/README.md @@ -2,9 +2,8 @@ This API is intended to be used for having a livechat conversation; - - First of all you need to generate a visitor token (any random string); -- Call [livechat:getInitialData](getinitialData/) passing `visitorToken` as first argument, the response will be an object containing a livechat [configuration object](getinitialData/#response) with following properties: +- Call [livechat:getInitialData](getinitialdata/) passing `visitorToken` as first argument, the response will be an object containing a livechat [configuration object](getinitialdata/#response) with following properties: | Field | Type | Description | | :--- | :--- | :--- | @@ -19,6 +18,6 @@ This API is intended to be used for having a livechat conversation; - Call [livechat:registerGuest](registerguest/) to register user; - With the response of [livechat:registerGuest](registerguest/) you should call [login method](../method-calls/login/) passing the response token; - Before sending the first message you have to generate a random `room _id`; -- Now you can send messages to method [sendMessageLivechat](sendMessagelivechat/) +- Now you can send messages to method [sendMessageLivechat](sendmessagelivechat/) - Subscribe to: [stream-room-messages](../subscriptions/stream-room-messages/) and `stream-livechat-room` - Get agent info by calling `livechat:getAgentData` diff --git a/developer-guides/realtime-api/livechat-api/getinitialdata/README.md b/developer-guides/realtime-api/livechat-api/getinitialdata/README.md index a5523256de..32d2646aef 100644 --- a/developer-guides/realtime-api/livechat-api/getinitialdata/README.md +++ b/developer-guides/realtime-api/livechat-api/getinitialdata/README.md @@ -1,6 +1,7 @@ # Method: `livechat:getInitialData` ## DDP message + ```json {"msg":"method","method":"livechat:getInitialData","params":["7T4jzes7rX3Fr6cQ2"],"id":"1"}" ``` diff --git a/developer-guides/realtime-api/livechat-api/registerguest/README.md b/developer-guides/realtime-api/livechat-api/registerguest/README.md index e9d0fab5bb..874807ca1c 100644 --- a/developer-guides/realtime-api/livechat-api/registerguest/README.md +++ b/developer-guides/realtime-api/livechat-api/registerguest/README.md @@ -1,6 +1,5 @@ # Method: `livechat:registerGuest` ## DDP message -``` -{"msg":"method","method":"livechat:registerGuest","params":[{"token":"vXrkoq4NCMbyy8cpp","name":"test1","email":"test2@gmail.com","department":"3jMKjTQJxCDxwxxtx"}],"id":"5"} -``` + + {"msg":"method","method":"livechat:registerGuest","params":[{"token":"vXrkoq4NCMbyy8cpp","name":"test1","email":"test2@gmail.com","department":"3jMKjTQJxCDxwxxtx"}],"id":"5"} diff --git a/developer-guides/realtime-api/livechat-api/sendmessagelivechat/README.md b/developer-guides/realtime-api/livechat-api/sendmessagelivechat/README.md index 99d1685292..f614d84b2e 100644 --- a/developer-guides/realtime-api/livechat-api/sendmessagelivechat/README.md +++ b/developer-guides/realtime-api/livechat-api/sendmessagelivechat/README.md @@ -1,6 +1,7 @@ # Method: `sendMessageLivechat` ## DDP message + ```json {"msg":"method","method":"sendMessageLivechat","params":[{"_id":"XqEEHhQHvhFmK3Zoz","rid":"TT9iMmzusfcLq8sv2","msg":"test","token":"7T4jzes7rX3Fr6cQ2"}],"id":"11"} ``` diff --git a/developer-guides/realtime-api/method-calls/README.md b/developer-guides/realtime-api/method-calls/README.md index 2dbaf27071..67b34bccae 100644 --- a/developer-guides/realtime-api/method-calls/README.md +++ b/developer-guides/realtime-api/method-calls/README.md @@ -2,7 +2,7 @@ TODO: List all the calls and possible responses - as directories -Method calls are used to trigger actions based on the passed data. The response to any method call is completly asynchronous and there's no way to guarantee the order on the fullfilment of the calls. Because of that, it is really important that a `unique-id` is used on the method call since the same ID will be used on the response so the client may know the result of a call. +Method calls are used to trigger actions based on the passed data. The response to any method call is completly asynchronous and there's no way to guarantee the order on the fullfilment of the calls. Because of that, it is really important that a `unique-id` is used on the method call since the same ID will be used on the response so the client may know the result of a call. Example: Create a private room diff --git a/developer-guides/realtime-api/method-calls/archive-rooms/README.md b/developer-guides/realtime-api/method-calls/archive-rooms/README.md index 2c2aaacba9..050836154b 100644 --- a/developer-guides/realtime-api/method-calls/archive-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/archive-rooms/README.md @@ -1,12 +1,15 @@ # Archive Rooms + Archving a room marks it as read only and then removes it from the channel list on the left. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `archive-room` | _none_ | + +| Logged In | Permission | Setting | +| --------- | -------------- | ------- | +| Yes | `archive-room` | _none_ | ## Payload + 1. String - the id of the room to archive ## Example Call @@ -32,14 +35,19 @@ Archving a room marks it as read only and then removes it from the channel list ``` ## See Also -* [Create Channels][1] -* [Create Private Groups][2] -* [Delete Rooms][3] -* [Unarchive Rooms][4] -* [Save Room Settings][5] - -[1]:../create-channels/ -[2]:../create-private-groups/ -[3]:../delete-rooms/ -[4]:../unarchive-rooms/ -[5]:../save-room-settings/ + +- [Create Channels][1] +- [Create Private Groups][2] +- [Delete Rooms][3] +- [Unarchive Rooms][4] +- [Save Room Settings][5] + +[1]: ../create-channels/ + +[2]: ../create-private-groups/ + +[3]: ../delete-rooms/ + +[4]: ../unarchive-rooms/ + +[5]: ../save-room-settings/ diff --git a/developer-guides/realtime-api/method-calls/create-channels/README.md b/developer-guides/realtime-api/method-calls/create-channels/README.md index c87fcec728..a54a6a1afa 100644 --- a/developer-guides/realtime-api/method-calls/create-channels/README.md +++ b/developer-guides/realtime-api/method-calls/create-channels/README.md @@ -1,12 +1,15 @@ # Create Channels + Creates a public channel. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `create-c` | _none_ | +| --------- | ---------- | ------- | +| Yes | `create-c` | _none_ | ## Payload + 1. String - name of the channel 2. Array of strings - usernames of the people to add to the channel when it is created. This can be empty and only the caller of the method will be a member of the channel. 3. Boolean - whether the channel is read only or not @@ -27,6 +30,7 @@ Creates a public channel. ``` ## Example Response + The response will be an object with one property `rid` which is the id of the newly created room. ```json @@ -40,12 +44,16 @@ The response will be an object with one property `rid` which is the id of the ne ``` ## See Also -* [Create Private Groups][1] -* [Delete Channels][2] -* [Archive Rooms][3] -* [Unarchive Rooms][4] - -[1]:../create-private-groups/ -[2]:../delete-rooms/ -[3]:../archive-rooms/ -[4]:../unarchive-rooms/ + +- [Create Private Groups][1] +- [Delete Channels][2] +- [Archive Rooms][3] +- [Unarchive Rooms][4] + +[1]: ../create-private-groups/ + +[2]: ../delete-rooms/ + +[3]: ../archive-rooms/ + +[4]: ../unarchive-rooms/ diff --git a/developer-guides/realtime-api/method-calls/create-private-groups/README.md b/developer-guides/realtime-api/method-calls/create-private-groups/README.md index f8c1dab9aa..fc0dd37896 100644 --- a/developer-guides/realtime-api/method-calls/create-private-groups/README.md +++ b/developer-guides/realtime-api/method-calls/create-private-groups/README.md @@ -1,12 +1,15 @@ # Create Private Groups + Creates a private group. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `create-p` | _none_ | +| --------- | ---------- | ------- | +| Yes | `create-p` | _none_ | ## Payload + 1. String - name of the channel 2. Array of strings - usernames of the people to add to the private group when it is created. This can be empty and only the caller of the method will be a member of the group. @@ -25,6 +28,7 @@ Creates a private group. ``` ## Example Response + The response will be an object with one property `rid` which is the id of the newly created private group. ```json @@ -38,12 +42,16 @@ The response will be an object with one property `rid` which is the id of the ne ``` ## See Also -* [Create Channels][1] -* [Delete Private Groups][2] -* [Archive Rooms][3] -* [Unarchive Rooms][4] - -[1]:../create-channels/ -[2]:../delete-rooms/ -[3]:../archive-rooms/ -[4]:../unarchive-rooms/ + +- [Create Channels][1] +- [Delete Private Groups][2] +- [Archive Rooms][3] +- [Unarchive Rooms][4] + +[1]: ../create-channels/ + +[2]: ../delete-rooms/ + +[3]: ../archive-rooms/ + +[4]: ../unarchive-rooms/ diff --git a/developer-guides/realtime-api/method-calls/delete-message/README.md b/developer-guides/realtime-api/method-calls/delete-message/README.md index 6d23b6750f..cd6545e993 100644 --- a/developer-guides/realtime-api/method-calls/delete-message/README.md +++ b/developer-guides/realtime-api/method-calls/delete-message/README.md @@ -3,12 +3,15 @@ There is only way one to delete a message inside of Rocket.Chat, but it only requires the message's `_id` being passed in. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `delete-message` | `Message_AllowDeleting` - "Allow Message Deleting" | + +| Logged In | Permission | Setting | +| --------- | ---------------- | -------------------------------------------------- | +| Yes | `delete-message` | `Message_AllowDeleting` - "Allow Message Deleting" | ## Example Call + All that is needed to delete a message is passing the `_id` of the message. + ```json { "msg": "method", @@ -19,6 +22,7 @@ All that is needed to delete a message is passing the `_id` of the message. ``` ## Example Response + ```json { "msg": "result", @@ -28,11 +32,14 @@ All that is needed to delete a message is passing the `_id` of the message. ``` ## Additional Information + As mentioned in requirements, you must be logged in to be able to delete a message along with having the permission `delete-message`. Two settings apply, `Message_AllowDeleting` and then `Message_AllowDeleting_BlockDeleteInMinutes`. The first setting is a boolean, true/false, and the second setting is an integer that can be `0` for always being allowed to delete or it can be greater than zero which the deleting with be disallowed/blocked after the time has passed. ## See Also -* [Send Message Method][1] -* [Update Message Method][2] -[1]:../send-message/ -[2]:../update-message/ \ No newline at end of file +- [Send Message Method][1] +- [Update Message Method][2] + +[1]: ../send-message/ + +[2]: ../update-message/ diff --git a/developer-guides/realtime-api/method-calls/delete-rooms/README.md b/developer-guides/realtime-api/method-calls/delete-rooms/README.md index e0de65a55b..272c6ebcc0 100644 --- a/developer-guides/realtime-api/method-calls/delete-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/delete-rooms/README.md @@ -1,12 +1,15 @@ # Delete Rooms + Deleting a room, either a private group or public channel, is actually completed via the method `eraseRoom`. The user deleting the room must have permission to do so, by either being owner or admin. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `delete-c` _or_ `delete-p` | _none_ | + +| Logged In | Permission | Setting | +| --------- | -------------------------- | ------- | +| Yes | `delete-c` _or_ `delete-p` | _none_ | ## Payload + 1. String - the id of the room to delete ## Example Call @@ -33,14 +36,19 @@ Deleting a room, either a private group or public channel, is actually completed ``` ## See Also -* [Create Channels][1] -* [Create Private Groups][2] -* [Archive Rooms][3] -* [Unarchive Rooms][4] -* [Save Room Settings][5] - -[1]:../create-channels/ -[2]:../create-private-groups/ -[3]:../archive-rooms/ -[4]:../unarchive-rooms/ -[5]:../save-room-settings/ + +- [Create Channels][1] +- [Create Private Groups][2] +- [Archive Rooms][3] +- [Unarchive Rooms][4] +- [Save Room Settings][5] + +[1]: ../create-channels/ + +[2]: ../create-private-groups/ + +[3]: ../archive-rooms/ + +[4]: ../unarchive-rooms/ + +[5]: ../save-room-settings/ diff --git a/developer-guides/realtime-api/method-calls/favoriting-rooms/README.md b/developer-guides/realtime-api/method-calls/favoriting-rooms/README.md index 5a1d0b136e..eb613596a6 100644 --- a/developer-guides/realtime-api/method-calls/favoriting-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/favoriting-rooms/README.md @@ -1,12 +1,15 @@ # Favoriting Rooms + When a user makes a room as a favorite, the yellow star appears and it moves the room up to the "favorites" section of the list of rooms. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | _none_ | +| --------- | ---------- | ------- | +| Yes | _none_ | _none_ | ## Payload + 1. String - the id of the room to leave 2. Boolean - whether the room is a favorite or not, defaults to true @@ -35,8 +38,10 @@ When a user makes a room as a favorite, the yellow star appears and it moves the ``` ## See Also -* [Joining Channels][1] -* [Leaving Rooms][2] -[1]:../joining-channels/ -[2]:../leaving-rooms/ +- [Joining Channels][1] +- [Leaving Rooms][2] + +[1]: ../joining-channels/ + +[2]: ../leaving-rooms/ diff --git a/developer-guides/realtime-api/method-calls/get-public-settings/README.md b/developer-guides/realtime-api/method-calls/get-public-settings/README.md index 5be3800833..af9faf7102 100644 --- a/developer-guides/realtime-api/method-calls/get-public-settings/README.md +++ b/developer-guides/realtime-api/method-calls/get-public-settings/README.md @@ -3,6 +3,7 @@ This method is used to retrieve the public settings, such as Site Name. It accepts a timestamp as the first and only parameter which causes the results to be an object that contains the updated and removed settings after the provided time. If you want to retrieve all of the public settings, just omit the parameter. ## Example call to retrieve everything + ```json { "msg": "method", @@ -12,6 +13,7 @@ This method is used to retrieve the public settings, such as Site Name. It accep ``` ## Response + The `_id` value is id of the setting and is how it should be referenced. The `value` is exactly what the name describes, the value of the setting. ```json @@ -32,6 +34,7 @@ The `_id` value is id of the setting and is how it should be referenced. The `va ``` ## Example call to retrieve the updated and removed ones since the provided date + ```json { "msg": "method", @@ -42,6 +45,7 @@ The `_id` value is id of the setting and is how it should be referenced. The `va ``` ## Response + The `_id` value is id of the setting and is how it should be referenced. The `value` is exactly what the name describes, the value of the setting. ```json @@ -71,4 +75,4 @@ The `_id` value is id of the setting and is how it should be referenced. The `va ] } } -``` \ No newline at end of file +``` diff --git a/developer-guides/realtime-api/method-calls/get-rooms/README.md b/developer-guides/realtime-api/method-calls/get-rooms/README.md index 241109b1fb..2e938616f2 100644 --- a/developer-guides/realtime-api/method-calls/get-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/get-rooms/README.md @@ -13,6 +13,7 @@ The `remove` field is a collection of room id identifying the rooms that were re The `update` field is a collection of `room` and its content varies according to the `room type`. You can read more about the `room` object on [its own page][1]. ## Example call + ```json { "msg": "method", @@ -23,6 +24,7 @@ The `update` field is a collection of `room` and its content varies according to ``` ## Response + ```json { "msg": "result", @@ -38,4 +40,4 @@ The `update` field is a collection of `room` and its content varies according to } ``` -[1]:../../the-room-object/ +[1]: ../../the-room-object/ diff --git a/developer-guides/realtime-api/method-calls/get-subscriptions/README.md b/developer-guides/realtime-api/method-calls/get-subscriptions/README.md index 3c2bf18979..1e0b89b941 100644 --- a/developer-guides/realtime-api/method-calls/get-subscriptions/README.md +++ b/developer-guides/realtime-api/method-calls/get-subscriptions/README.md @@ -10,7 +10,7 @@ Example call: "method": "subscriptions/get", "id": "42", "params": [ { "$date": 1480377601 } ] -} +} ``` Response: diff --git a/developer-guides/realtime-api/method-calls/hiding-rooms/README.md b/developer-guides/realtime-api/method-calls/hiding-rooms/README.md index dd391e4809..5a75dded6e 100644 --- a/developer-guides/realtime-api/method-calls/hiding-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/hiding-rooms/README.md @@ -1,12 +1,15 @@ # Hiding Rooms + When you hide a room, that room no longer shows up on the list of channels and marks the property `open` to `false` on the user's subscription of the room. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | _none_ | +| --------- | ---------- | ------- | +| Yes | _none_ | _none_ | ## Payload + 1. String - the id of the room to leave ## Example Call @@ -33,10 +36,13 @@ When you hide a room, that room no longer shows up on the list of channels and m ``` ## See Also -* [Joining Channels][1] -* [Leaving Rooms][2] -* [Create Channels][3] -[1]:../joining-channels/ -[2]:../leaving-rooms/ -[3]:../create-channels/ +- [Joining Channels][1] +- [Leaving Rooms][2] +- [Create Channels][3] + +[1]: ../joining-channels/ + +[2]: ../leaving-rooms/ + +[3]: ../create-channels/ diff --git a/developer-guides/realtime-api/method-calls/joining-channels/README.md b/developer-guides/realtime-api/method-calls/joining-channels/README.md index 0538753ea9..fea2194346 100644 --- a/developer-guides/realtime-api/method-calls/joining-channels/README.md +++ b/developer-guides/realtime-api/method-calls/joining-channels/README.md @@ -1,12 +1,15 @@ # Joining Channels + You can only join yourself to public channels, private groups are not joinable. Some public channels require you to enter a `joinCode`. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `view-c-room` | _none_ | + +| Logged In | Permission | Setting | +| --------- | ------------- | ------- | +| Yes | `view-c-room` | _none_ | ## Payload + 1. String - the id of the room to join 2. String - the `joinCode`, only needed if the room requires a code to join @@ -25,6 +28,7 @@ You can only join yourself to public channels, private groups are not joinable. ``` ## Example Response + The response from calling the method will return a result of whether the user joined the channel or not. ```json @@ -36,10 +40,13 @@ The response from calling the method will return a result of whether the user jo ``` ## See Also -* [Create Channels][1] -* [Delete Rooms][2] -* [Archive Rooms][3] -[1]:../create-channels/ -[2]:../delete-rooms/ -[3]:../archive-rooms/ +- [Create Channels][1] +- [Delete Rooms][2] +- [Archive Rooms][3] + +[1]: ../create-channels/ + +[2]: ../delete-rooms/ + +[3]: ../archive-rooms/ diff --git a/developer-guides/realtime-api/method-calls/leaving-rooms/README.md b/developer-guides/realtime-api/method-calls/leaving-rooms/README.md index 68a17e54c5..bbfa12a76a 100644 --- a/developer-guides/realtime-api/method-calls/leaving-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/leaving-rooms/README.md @@ -1,12 +1,15 @@ # Leaving Rooms + You can leave any rooms, except for direct messages and except for rooms you are the last owner of. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | _none_ | +| --------- | ---------- | ------- | +| Yes | _none_ | _none_ | ## Payload + 1. String - the id of the room to leave ## Example Call @@ -32,8 +35,10 @@ You can leave any rooms, except for direct messages and except for rooms you are ``` ## See Also -* [Joining Channels][1] -* [Create Channels][2] -[1]:../joining-channels/ -[2]:../create-channels/ +- [Joining Channels][1] +- [Create Channels][2] + +[1]: ../joining-channels/ + +[2]: ../create-channels/ diff --git a/developer-guides/realtime-api/method-calls/list-custom-emoji/README.md b/developer-guides/realtime-api/method-calls/list-custom-emoji/README.md index 4f524be2dc..8fe59579d8 100644 --- a/developer-guides/realtime-api/method-calls/list-custom-emoji/README.md +++ b/developer-guides/realtime-api/method-calls/list-custom-emoji/README.md @@ -60,5 +60,4 @@ Example: The URL to access this emoji will be: -> http://yourhost.com/emoji-custom/Emoji%20Name.png - +`http://yourhost.com/emoji-custom/Emoji%20Name.png` diff --git a/developer-guides/realtime-api/method-calls/load-history/README.md b/developer-guides/realtime-api/method-calls/load-history/README.md index 4e0f605458..177f00ec51 100644 --- a/developer-guides/realtime-api/method-calls/load-history/README.md +++ b/developer-guides/realtime-api/method-calls/load-history/README.md @@ -3,6 +3,7 @@ Use this method to make the initial load of a room. After the initial load you may subscribe to the room messages stream (see [Stream Room Message][1]). This method accepts 4 parameters in the following order: + - The room id - The oldest message timestamp date (or null) - this is used to do pagination - The message quantity @@ -51,5 +52,6 @@ Examples: } ``` -[1]:../../subscriptions/stream-room-messages/ -[2]:../../the-message-object/ \ No newline at end of file +[1]: ../../subscriptions/stream-room-messages/ + +[2]: ../../the-message-object/ diff --git a/developer-guides/realtime-api/method-calls/login/README.md b/developer-guides/realtime-api/method-calls/login/README.md index 32ff7c253d..819ac8b9ec 100644 --- a/developer-guides/realtime-api/method-calls/login/README.md +++ b/developer-guides/realtime-api/method-calls/login/README.md @@ -27,7 +27,7 @@ Independently of the auth provider, upon an sucessful login we'll receive back a } ``` -That information should be saved locally in order to automatically authenticate the user the next time he tries to use the client. Look at [[Using an authentication token](#using-an-authentication-token)] for information about how to do it. +That information should be saved locally in order to automatically authenticate the user the next time he tries to use the client. Look at \[[Using an authentication token](#using-an-authentication-token)] for information about how to do it. ## Username and Password @@ -107,11 +107,13 @@ If you have a saved user authentication you may use the provided `auth-token` to A sucessful call will return the same message as an sucessful login (which it is). ## About token expiration date + As the token expires, you have to call the login method again in order to obtain a new token with a new expiration date. NB: You don't have to wait until the token is expired before asking for a new token. ## See Also -* [Logout][1] -[1]:../logout/ +- [Logout][1] + +[1]: ../logout/ diff --git a/developer-guides/realtime-api/method-calls/logout/README.md b/developer-guides/realtime-api/method-calls/logout/README.md index e74f46e4f4..bf91f1c2c1 100644 --- a/developer-guides/realtime-api/method-calls/logout/README.md +++ b/developer-guides/realtime-api/method-calls/logout/README.md @@ -1,6 +1,7 @@ # Logout ## See Also -* [Login][1] -[1]:../login/ +- [Login][1] + +[1]: ../login/ diff --git a/developer-guides/realtime-api/method-calls/opening-rooms/README.md b/developer-guides/realtime-api/method-calls/opening-rooms/README.md index 5d6efeab1e..a9fdad4cfb 100644 --- a/developer-guides/realtime-api/method-calls/opening-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/opening-rooms/README.md @@ -1,12 +1,15 @@ # Opening Rooms + When you open a room, that room shows up on the list of channels and marks the property `open` to `true` on the user's subscription of the room. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | _none_ | +| --------- | ---------- | ------- | +| Yes | _none_ | _none_ | ## Payload + 1. String - the id of the room to open ## Example Call @@ -33,12 +36,16 @@ When you open a room, that room shows up on the list of channels and marks the p ``` ## See Also -* [Hiding Rooms][1] -* [Joining Channels][2] -* [Leaving Rooms][3] -* [Create Channels][4] - -[1]:../hiding-rooms/ -[2]:../joining-channels/ -[3]:../leaving-rooms/ -[4]:../create-channels/ + +- [Hiding Rooms][1] +- [Joining Channels][2] +- [Leaving Rooms][3] +- [Create Channels][4] + +[1]: ../hiding-rooms/ + +[2]: ../joining-channels/ + +[3]: ../leaving-rooms/ + +[4]: ../create-channels/ diff --git a/developer-guides/realtime-api/method-calls/pin-message/README.md b/developer-guides/realtime-api/method-calls/pin-message/README.md index 9c99850d58..ec3014e171 100644 --- a/developer-guides/realtime-api/method-calls/pin-message/README.md +++ b/developer-guides/realtime-api/method-calls/pin-message/README.md @@ -1,13 +1,17 @@ # Pin Message + Pinning a message allows administrators and owners of rooms to easily store messages which are important. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | `Message_AllowPinning` - "Allow Message Pinning" | + +| Logged In | Permission | Setting | +| --------- | ---------- | ------------------------------------------------ | +| Yes | _none_ | `Message_AllowPinning` - "Allow Message Pinning" | ## Example Call + The only parameter that needs to be passed in is the [Message Object][1] and as of release `0.46` you need to send the entire message object otherwise an internal error will happen ([fixed via pull request #5087](https://github.com/RocketChat/Rocket.Chat/pull/5087)). + ```json { "msg": "method", @@ -18,7 +22,9 @@ The only parameter that needs to be passed in is the [Message Object][1] and as ``` ## Example Response + The response of a message being pinned is a new chat message which contains the broadcast of the message pinning. See [Message Object Details][1] for information about the response format. + ```json { "msg": "result", @@ -46,8 +52,10 @@ The response of a message being pinned is a new chat message which contains the ``` ## See Also -* [The Message Object][1] -* [Pinning Messages User Guide][2] -[1]:../../the-message-object/ -[2]:../../../../user-guides/messaging/ +- [The Message Object][1] +- [Pinning Messages User Guide][2] + +[1]: ../../the-message-object/ + +[2]: ../../../../user-guides/messaging/ diff --git a/developer-guides/realtime-api/method-calls/register-user/README.md b/developer-guides/realtime-api/method-calls/register-user/README.md index 0b6f3d25c8..c99294828a 100644 --- a/developer-guides/realtime-api/method-calls/register-user/README.md +++ b/developer-guides/realtime-api/method-calls/register-user/README.md @@ -20,7 +20,7 @@ The call format is: } ``` -The response is just the created user's _id: +The response is just the created user's \_id: ```json { @@ -48,45 +48,34 @@ In the case there's an error on the request, a possible error response would be ``` ### Possible errors -``` -"reason": "error-user-registration-disabled", -"message": "User registration is disabled [403]", -``` -``` -"reason": "error-user-registration-secret", -"message": "User registration is only allowed via Secret URL [403]", -``` + "reason": "error-user-registration-disabled", + "message": "User registration is disabled [403]", -``` -"reason": "error-invalid-customfield-json", -"message": "Invalid JSON for Custom Fields [403]", -``` + "reason": "error-user-registration-secret", + "message": "User registration is only allowed via Secret URL [403]", + + "reason": "error-invalid-customfield-json", + "message": "Invalid JSON for Custom Fields [403]", #### Custom Fields related -``` -"reason": "error-user-registration-custom-field", -"message": "Field ${ fieldName } is required [403]", -``` -``` -"reason": "error-user-registration-custom-field", -"message": "Value for field ${ fieldName } is invalid [403]", -``` + "reason": "error-user-registration-custom-field", + "message": "Field ${ fieldName } is required [403]", -``` -"reason": "error-user-registration-custom-field", -"message": "Max length of field ${ fieldName } ${ field.maxLength } [403]", -``` + "reason": "error-user-registration-custom-field", + "message": "Value for field ${ fieldName } is invalid [403]", -``` -"reason": "error-user-registration-custom-field", -"message": "Min length of field ${ fieldName } ${ field.minLength } [403]", -``` + "reason": "error-user-registration-custom-field", + "message": "Max length of field ${ fieldName } ${ field.maxLength } [403]", + + "reason": "error-user-registration-custom-field", + "message": "Min length of field ${ fieldName } ${ field.minLength } [403]", ## Accounts_CustomFields Example of what we can find inside the `Accounts_CustomFields` **encoded as JSON** + ```javascript { "role": { diff --git a/developer-guides/realtime-api/method-calls/save-room-settings/README.md b/developer-guides/realtime-api/method-calls/save-room-settings/README.md index c9ee4d03dc..d208644c53 100644 --- a/developer-guides/realtime-api/method-calls/save-room-settings/README.md +++ b/developer-guides/realtime-api/method-calls/save-room-settings/README.md @@ -1,27 +1,29 @@ # Save Room Settings - ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `edit-room` | _none_ | + +| Logged In | Permission | Setting | +| --------- | ----------- | ------- | +| Yes | `edit-room` | _none_ | ## Payload + 1. String - the id of the room to leave 2. String - the room setting to save 3. Any - the value of the setting to save, this value type depends on what the setting accepts ## Available Settings -| Setting | Accepted Values | -| --- | --- | -| `roomName` | String | -| `roomTopic` | String | -| `roomDescription` | String | -| `roomType` | `c` or `p` | -| `readOnly` | Boolean | -| `systemMessages` | Boolean | -| `default` | Boolean | -| `joinCode` | String | + +| Setting | Accepted Values | +| ----------------- | --------------- | +| `roomName` | String | +| `roomTopic` | String | +| `roomDescription` | String | +| `roomType` | `c` or `p` | +| `readOnly` | Boolean | +| `systemMessages` | Boolean | +| `default` | Boolean | +| `joinCode` | String | ## Example Call @@ -52,14 +54,19 @@ ``` ## See Also -* [Create Channels][1] -* [Create Private Groups][2] -* [Delete Rooms][3] -* [Archive Rooms][5] -* [Unarchive Rooms][4] - -[1]:../create-channels/ -[2]:../create-private-groups/ -[3]:../delete-rooms/ -[4]:../unarchive-rooms/ -[5]:../archive-rooms/ + +- [Create Channels][1] +- [Create Private Groups][2] +- [Delete Rooms][3] +- [Archive Rooms][5] +- [Unarchive Rooms][4] + +[1]: ../create-channels/ + +[2]: ../create-private-groups/ + +[3]: ../delete-rooms/ + +[4]: ../unarchive-rooms/ + +[5]: ../archive-rooms/ diff --git a/developer-guides/realtime-api/method-calls/send-message/README.md b/developer-guides/realtime-api/method-calls/send-message/README.md index 5d9a0b5b28..1bc5f3da5c 100644 --- a/developer-guides/realtime-api/method-calls/send-message/README.md +++ b/developer-guides/realtime-api/method-calls/send-message/README.md @@ -100,9 +100,10 @@ Second request (`sendFileMessage`): ``` ## See Also -* [The Message Object][1] -* [Delete Message Method][2] -* [Update Message Method][3] + +- [The Message Object][1] +- [Delete Message Method][2] +- [Update Message Method][3] [1]:../../the-message-object/ [2]:../delete-message/ diff --git a/developer-guides/realtime-api/method-calls/set-reaction/README.md b/developer-guides/realtime-api/method-calls/set-reaction/README.md index 7e84b9622e..b3a0f80b48 100644 --- a/developer-guides/realtime-api/method-calls/set-reaction/README.md +++ b/developer-guides/realtime-api/method-calls/set-reaction/README.md @@ -1,13 +1,17 @@ # Set Reaction + Reacting to messages is a convenient way to "react" to messages with emojis, allowing for a wide variety of options for integrations, questions, and whatever else people can come up with. ## Requirements + | Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | _none_ | +| --------- | ---------- | ------- | +| Yes | _none_ | _none_ | ## Example Call + Setting and removing a reaction requires a call to the same method with the same parameters. The first parameter is the reaction which is also the `emoji` and the second parameter is the message id of which the reaction is happening against. + ```json { "msg": "method", @@ -21,6 +25,7 @@ Setting and removing a reaction requires a call to the same method with the same ``` ## Example Response + ```json { "msg": "result", @@ -29,6 +34,7 @@ Setting and removing a reaction requires a call to the same method with the same ``` ## See Also -* [Reacting to Messages User Guide][1] -[1]:../../../../user-guides/messaging/ +- [Reacting to Messages User Guide][1] + +[1]: ../../../../user-guides/messaging/ diff --git a/developer-guides/realtime-api/method-calls/star-message/README.md b/developer-guides/realtime-api/method-calls/star-message/README.md index 9423bcbde6..878e5556f7 100644 --- a/developer-guides/realtime-api/method-calls/star-message/README.md +++ b/developer-guides/realtime-api/method-calls/star-message/README.md @@ -1,13 +1,17 @@ # Star Message + Starring messages allows a user to quickly save for future reference, or something similiar, for their own personal usage. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | `Message_AllowStarring` - "Allow Message Starring" | + +| Logged In | Permission | Setting | +| --------- | ---------- | -------------------------------------------------- | +| Yes | _none_ | `Message_AllowStarring` - "Allow Message Starring" | ## Example Call + The only parameter that needs to be passed in is an object with the `_id`, `rid`, and `starred` properties. The `starred` property is a boolean and it determines whether the user is starring the message or removing the star from the message. + ```json { "msg": "method", @@ -22,6 +26,7 @@ The only parameter that needs to be passed in is an object with the `_id`, `rid` ``` ## Example Response + ```json { "msg": "result", @@ -31,6 +36,7 @@ The only parameter that needs to be passed in is an object with the `_id`, `rid` ``` ## See Also: -* [Starring Messages User Guide][1] -[1]:../../../../user-guides/starring-messages/ +- [Starring Messages User Guide][1] + +[1]: ../../../../user-guides/messaging/ diff --git a/developer-guides/realtime-api/method-calls/unarchive-rooms/README.md b/developer-guides/realtime-api/method-calls/unarchive-rooms/README.md index d61f8f2525..ab244f1f26 100644 --- a/developer-guides/realtime-api/method-calls/unarchive-rooms/README.md +++ b/developer-guides/realtime-api/method-calls/unarchive-rooms/README.md @@ -1,12 +1,15 @@ # Unarchive Rooms + Unarchving a room removes it from being read only and then adds it back to the channel list on the left. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `unarchive-room` | _none_ | + +| Logged In | Permission | Setting | +| --------- | ---------------- | ------- | +| Yes | `unarchive-room` | _none_ | ## Payload + 1. String - the id of the room to unarchive ## Example Call @@ -32,14 +35,19 @@ Unarchving a room removes it from being read only and then adds it back to the c ``` ## See Also -* [Create Channels][1] -* [Create Private Groups][2] -* [Delete Rooms][3] -* [Archive Rooms][4] -* [Save Room Settings][5] - -[1]:../create-channels/ -[2]:../Create-private-groups/ -[3]:../delete-rooms/ -[4]:../archive-rooms/ -[5]:../save-room-settings/ + +- [Create Channels][1] +- [Create Private Groups][2] +- [Delete Rooms][3] +- [Archive Rooms][4] +- [Save Room Settings][5] + +[1]: ../create-channels/ + +[2]: ../create-private-groups/ + +[3]: ../delete-rooms/ + +[4]: ../archive-rooms/ + +[5]: ../save-room-settings/ diff --git a/developer-guides/realtime-api/method-calls/unpin-message/README.md b/developer-guides/realtime-api/method-calls/unpin-message/README.md index 08bda4a4a8..4018363427 100644 --- a/developer-guides/realtime-api/method-calls/unpin-message/README.md +++ b/developer-guides/realtime-api/method-calls/unpin-message/README.md @@ -1,13 +1,17 @@ # Unpin Message + Unpinning a message allows administrators and owners of rooms to remove pinned items from being pinnned after they are no longer valid. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | _none_ | `Message_AllowPinning` - "Allow Message Pinning" | + +| Logged In | Permission | Setting | +| --------- | ---------- | ------------------------------------------------ | +| Yes | _none_ | `Message_AllowPinning` - "Allow Message Pinning" | ## Example Call + The only parameter that needs to be passed in is the [Message Object][1] and as of release `0.46` you need to send the entire message object otherwise an internal error will happen ([fixed via pull request #5087](https://github.com/RocketChat/Rocket.Chat/pull/5087)). + ```json { "msg": "method", @@ -18,7 +22,9 @@ The only parameter that needs to be passed in is the [Message Object][1] and as ``` ## Example Response + The response of a message being pinned is a new chat message which contains the broadcast of the message pinning. See [Message Object Details][1] for information about the response format. + ```json { "msg": "result", @@ -46,7 +52,7 @@ The response of a message being pinned is a new chat message which contains the ``` ## See Also -* [Pinning Messages User Guide][1] -[1]:../../../../user-guides/messaging/ +- [Pinning Messages User Guide][1] +[1]: ../../../../user-guides/messaging/ diff --git a/developer-guides/realtime-api/method-calls/update-message/README.md b/developer-guides/realtime-api/method-calls/update-message/README.md index 9c3b700ba2..200da3fe70 100644 --- a/developer-guides/realtime-api/method-calls/update-message/README.md +++ b/developer-guides/realtime-api/method-calls/update-message/README.md @@ -1,13 +1,17 @@ # Update Message + Updating a message is what should be called when a user "edits" a message, passing in the changed message with the updates. ## Requirements -| Logged In | Permission | Setting | -| --- | --- | --- | -| Yes | `edit-message` | `Message_AllowEditing` - "Allow Message Editing" | + +| Logged In | Permission | Setting | +| --------- | -------------- | ------------------------------------------------ | +| Yes | `edit-message` | `Message_AllowEditing` - "Allow Message Editing" | ## Example Call + The only parameter that needs to be passed in is the [Message Object][1] which contains the updated message properties, such as the text. + ```json { "msg": "method", @@ -18,6 +22,7 @@ The only parameter that needs to be passed in is the [Message Object][1] which c ``` ## Example Response + ```json { "msg": "result", @@ -27,13 +32,17 @@ The only parameter that needs to be passed in is the [Message Object][1] which c ``` ## Additional Information + As mentioned in requirements, you must be logged in to be able to edit a message along with having the permission `edit-message`. Two settings apply, `Message_AllowEditing` and then `Message_AllowEditing_BlockEditInMinutes`. The first setting is a boolean, true/false, and the second setting is an integer that can be `0` for unlimited editing or anything greater and editing will be blocked after the time in minutes has passed. ## See Also -* [The Message Object][1] -* [Send Message Method][2] -* [Delete Message Method][3] -[1]:../../the-message-object/ -[2]:../send-message/ -[3]:../delete-message/ \ No newline at end of file +- [The Message Object][1] +- [Send Message Method][2] +- [Delete Message Method][3] + +[1]: ../../the-message-object/ + +[2]: ../send-message/ + +[3]: ../delete-message/ diff --git a/developer-guides/realtime-api/subscriptions/stream-notify-all/README.md b/developer-guides/realtime-api/subscriptions/stream-notify-all/README.md index 86a0bdfbc1..64910c0ede 100644 --- a/developer-guides/realtime-api/subscriptions/stream-notify-all/README.md +++ b/developer-guides/realtime-api/subscriptions/stream-notify-all/README.md @@ -4,12 +4,12 @@ General user-wide stream. Events available: - - roles-change - - updateEmojiCustom - - deleteEmojiCustom - - updateAvatar - - public-settings-changed - - permissions-changed +- roles-change +- updateEmojiCustom +- deleteEmojiCustom +- updateAvatar +- public-settings-changed +- permissions-changed ```json { diff --git a/developer-guides/realtime-api/subscriptions/stream-notify-room/README.md b/developer-guides/realtime-api/subscriptions/stream-notify-room/README.md index fb728e7019..e43b1bd93d 100644 --- a/developer-guides/realtime-api/subscriptions/stream-notify-room/README.md +++ b/developer-guides/realtime-api/subscriptions/stream-notify-room/README.md @@ -4,7 +4,7 @@ This is a room stream. Events available: - - deleteMessage +- deleteMessage ```json { diff --git a/developer-guides/realtime-api/subscriptions/stream-notify-user/README.md b/developer-guides/realtime-api/subscriptions/stream-notify-user/README.md index b00170d269..b3d647964b 100644 --- a/developer-guides/realtime-api/subscriptions/stream-notify-user/README.md +++ b/developer-guides/realtime-api/subscriptions/stream-notify-user/README.md @@ -4,12 +4,12 @@ This is the user stream. Events available: - - message - - otr - - webrtc - - notification - - rooms-changed - - subscriptions-changed +- message +- otr +- webrtc +- notification +- rooms-changed +- subscriptions-changed ```json { diff --git a/developer-guides/realtime-api/the-message-object/README.md b/developer-guides/realtime-api/the-message-object/README.md index 297719d0f0..01cfbd51b0 100644 --- a/developer-guides/realtime-api/the-message-object/README.md +++ b/developer-guides/realtime-api/the-message-object/README.md @@ -32,6 +32,7 @@ The URL metadata contains several informational fields: - `parsedUrl`: The parsed URL broken into its parts The attachment object can contain several fields: + - `image_url`: The image url of the attachment - `color`: _(Optional)_ The color of the border which displays on the left side of the attachment. diff --git a/developer-guides/rest-api/README.md b/developer-guides/rest-api/README.md index b686392f9a..48b82290d1 100644 --- a/developer-guides/rest-api/README.md +++ b/developer-guides/rest-api/README.md @@ -12,144 +12,144 @@ If you are an end-user and not a dev or a tester, [create an issue](https://gith When calling a production Rocket.Chat server, ensure it is running via HTTPS and has a valid SSL Certificate. The login method requires you to post your username and password in plaintext, which is why we highly suggest only calling the REST login api over HTTPS. Also, few things to note: -* Only call via HTTPS -* Implement a timed authorization token expiration strategy -* Ensure the calling user only has permissions for what they are calling an no more +- Only call via HTTPS +- Implement a timed authorization token expiration strategy +- Ensure the calling user only has permissions for what they are calling an no more ### Miscellaneous Information -| Url | Short Description | Details Page | -| :--- | :--- | :--- | +| Url | Short Description | Details Page | +| :------------- | :---------------------------------------- | :-------------------------- | | `/api/v1/info` | Information about the Rocket.Chat server. | [Link](miscellaneous/info/) | ### Authentication -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/login` | Authenticate with the REST API. | [Link](authentication/login/) | -| `/api/v1/logout` | Invalidate your REST API authentication token. | [Link](authentication/logout/) | -| `/api/v1/me` | Displays information about the authenticated user. | [Link](authentication/me/) | +| Url | Short Description | Details Page | +| :--------------- | :------------------------------------------------- | :----------------------------- | +| `/api/v1/login` | Authenticate with the REST API. | [Link](authentication/login/) | +| `/api/v1/logout` | Invalidate your REST API authentication token. | [Link](authentication/logout/) | +| `/api/v1/me` | Displays information about the authenticated user. | [Link](authentication/me/) | ### Users -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/users.create` | Create a new user. | [Link](users/create/) | -| `/api/v1/users.createToken` | Create a user authentication token. | [Link](users/createtoken/) | -| `/api/v1/users.delete` | Deletes an existing user. | [Link](users/delete/) | -| `/api/v1/users.getAvatar` | Gets the URL for a user's avatar. | [Link](users/getavatar/) | -| `/api/v1/users.getPresence` | Gets the online presence of the a user. | [Link](users/getpresence/) | -| `/api/v1/users.info` | Gets a user's information, limited to the caller's permissions. | [Link](users/info/) | -| `/api/v1/users.list` | All of the users and their information, limited to permissions. | [Link](users/list/) | -| `/api/v1/users.register` | Register a new user. | [Link](users/register/) | -| `/api/v1/users.resetAvatar` | Reset a user's avatar | [Link](users/resetavatar/) | -| `/api/v1/users.setAvatar` | Set a user's avatar | [Link](users/setavatar/) | -| `/api/v1/users.update` | Update an existing user. | [Link](users/update/) | +| Url | Short Description | Details Page | +| :-------------------------- | :-------------------------------------------------------------- | :------------------------- | +| `/api/v1/users.create` | Create a new user. | [Link](users/create/) | +| `/api/v1/users.createToken` | Create a user authentication token. | [Link](users/createtoken/) | +| `/api/v1/users.delete` | Deletes an existing user. | [Link](users/delete/) | +| `/api/v1/users.getAvatar` | Gets the URL for a user's avatar. | [Link](users/getavatar/) | +| `/api/v1/users.getPresence` | Gets the online presence of the a user. | [Link](users/getpresence/) | +| `/api/v1/users.info` | Gets a user's information, limited to the caller's permissions. | [Link](users/info/) | +| `/api/v1/users.list` | All of the users and their information, limited to permissions. | [Link](users/list/) | +| `/api/v1/users.register` | Register a new user. | [Link](users/register/) | +| `/api/v1/users.resetAvatar` | Reset a user's avatar | [Link](users/resetavatar/) | +| `/api/v1/users.setAvatar` | Set a user's avatar | [Link](users/setavatar/) | +| `/api/v1/users.update` | Update an existing user. | [Link](users/update/) | ### Channels -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/channels.addAll` | Adds all of the users on the server to a channel. | [Link](channels/addall/) | -| `/api/v1/channels.archive` | Archives a channel. | [Link](channels/archive/) | -| `/api/v1/channels.cleanHistory` | Cleans up a channel's history, requires special permission. | [Link](channels/cleanhistory/) | -| `/api/v1/channels.close` | Removes a channel from a user's list of channels. | [Link](channels/close/) | -| `/api/v1/channels.create` | Creates a new channel. | [Link](channels/create/) | -| `/api/v1/channels.getIntegrations` | Gets the channel's integration. | [Link](channels/getintegrations/) -| `/api/v1/channels.history` | Retrieves the messages from a channel. | [Link](channels/history/) | -| `/api/v1/channels.info` | Gets a channel's information. | [Link](channels/info/) | -| `/api/v1/channels.invite` | Adds a user to a channel. | [Link](channels/invite/) | -| `/api/v1/channels.kick` | Removes a user from a channel. | [Link](channels/kick/) | -| `/api/v1/channels.leave` | Removes the calling user from a channel. | [Link](channels/leave/) | -| `/api/v1/channels.list` | Retrives all of the channels from the server. | [Link](channels/list/) | -| `/api/v1/channels.list.joined` | Gets only the channels the calling user has joined. | [Link](channels/list-joined/) | -| `/api/v1/channels.open` | Adds the channel back to the user's list of channels. | [Link](channels/open/) | -| `/api/v1/channels.rename` | Changes a channel's name. | [Link](channels/rename/) | -| `/api/v1/channels.setDescription` | Sets a channel's description. | [Link](channels/setdescription/) | -| `/api/v1/channels.setJoinCode` | Sets the channel's code required to join it. | [Link](channels/setjoincode/) | -| `/api/v1/channels.setPurpose` | Sets a channel's description. | [Link](channels/setpurpose/) | -| `/api/v1/channels.setReadOnly` | Sets whether a channel is read only or not. | [Link](channels/setreadonly/) | -| `/api/v1/channels.setTopic` | Sets a channel's topic. | [Link](channels/settopic/) | -| `/api/v1/channels.setType` | Sets the type of room the channel should be. | [Link](channels/settype/) | -| `/api/v1/channels.unarchive` | Unarchives a channel. | [Link](channels/unarchive/) | +| Url | Short Description | Details Page | +| :--------------------------------- | :---------------------------------------------------------- | :-------------------------------- | +| `/api/v1/channels.addAll` | Adds all of the users on the server to a channel. | [Link](channels/addall/) | +| `/api/v1/channels.archive` | Archives a channel. | [Link](channels/archive/) | +| `/api/v1/channels.cleanHistory` | Cleans up a channel's history, requires special permission. | [Link](channels/cleanhistory/) | +| `/api/v1/channels.close` | Removes a channel from a user's list of channels. | [Link](channels/close/) | +| `/api/v1/channels.create` | Creates a new channel. | [Link](channels/create/) | +| `/api/v1/channels.getIntegrations` | Gets the channel's integration. | [Link](channels/getintegrations/) | +| `/api/v1/channels.history` | Retrieves the messages from a channel. | [Link](channels/history/) | +| `/api/v1/channels.info` | Gets a channel's information. | [Link](channels/info/) | +| `/api/v1/channels.invite` | Adds a user to a channel. | [Link](channels/invite/) | +| `/api/v1/channels.kick` | Removes a user from a channel. | [Link](channels/kick/) | +| `/api/v1/channels.leave` | Removes the calling user from a channel. | [Link](channels/leave/) | +| `/api/v1/channels.list` | Retrives all of the channels from the server. | [Link](channels/list/) | +| `/api/v1/channels.list.joined` | Gets only the channels the calling user has joined. | [Link](channels/list-joined/) | +| `/api/v1/channels.open` | Adds the channel back to the user's list of channels. | [Link](channels/open/) | +| `/api/v1/channels.rename` | Changes a channel's name. | [Link](channels/rename/) | +| `/api/v1/channels.setDescription` | Sets a channel's description. | [Link](channels/setdescription/) | +| `/api/v1/channels.setJoinCode` | Sets the channel's code required to join it. | [Link](channels/setjoincode/) | +| `/api/v1/channels.setPurpose` | Sets a channel's description. | [Link](channels/setpurpose/) | +| `/api/v1/channels.setReadOnly` | Sets whether a channel is read only or not. | [Link](channels/setreadonly/) | +| `/api/v1/channels.setTopic` | Sets a channel's topic. | [Link](channels/settopic/) | +| `/api/v1/channels.setType` | Sets the type of room the channel should be. | [Link](channels/settype/) | +| `/api/v1/channels.unarchive` | Unarchives a channel. | [Link](channels/unarchive/) | ### Groups -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/groups.archive` | Archives a private group. | [Link](groups/archive/) | -| `/api/v1/groups.close` | Removes a private group from the list of groups. | [Link](groups/close/) | -| `/api/v1/groups.create` | Creates a new private group. | [Link](groups/create/) | -| `/api/v1/groups.history` | Retrieves the messages from a private group. | [Link](groups/history/) | -| `/api/v1/groups.info` | Gets the information about a private group. | [Link](groups/info/) | -| `/api/v1/groups.invite` | Adds a user to the private group. | [Link](groups/invite/) | -| `/api/v1/groups.kick` | Removes a user from a private group. | [Link](groups/kick/) | -| `/api/v1/groups.leave` | Removes the calling user from the private group. | [Link](groups/leave/) | -| `/api/v1/groups.list` | List the private groups the caller is part of. | [Link](groups/list/) | -| `/api/v1/groups.open` | Adds the private group back to the list of groups. | [Link](groups/open/) | -| `/api/v1/groups.rename` | Changes the name of the private group. | [Link](groups/rename/) | -| `/api/v1/groups.setDescription` | Sets a private group's description. | [Link](groups/setdescription/) | -| `/api/v1/groups.setPurpose` | Sets a private group's description. | [Link](groups/setpurpose/) | -| `/api/v1/groups.setReadOnly` | Sets whether the room is read only or not. | [Link](groups/setreadonly/) | -| `/api/v1/groups.setTopic` | Sets a private group's topic. | [Link](groups/settopic/) | -| `/api/v1/groups.setType` | Sets the type of room this group will be. | [Link](groups/settype/) | -| `/api/v1/groups.unarchive` | Unarchives a private group. | [Link](groups/unarchive/) | +| Url | Short Description | Details Page | +| :------------------------------ | :------------------------------------------------- | :----------------------------- | +| `/api/v1/groups.archive` | Archives a private group. | [Link](groups/archive/) | +| `/api/v1/groups.close` | Removes a private group from the list of groups. | [Link](groups/close/) | +| `/api/v1/groups.create` | Creates a new private group. | [Link](groups/create/) | +| `/api/v1/groups.history` | Retrieves the messages from a private group. | [Link](groups/history/) | +| `/api/v1/groups.info` | Gets the information about a private group. | [Link](groups/info/) | +| `/api/v1/groups.invite` | Adds a user to the private group. | [Link](groups/invite/) | +| `/api/v1/groups.kick` | Removes a user from a private group. | [Link](groups/kick/) | +| `/api/v1/groups.leave` | Removes the calling user from the private group. | [Link](groups/leave/) | +| `/api/v1/groups.list` | List the private groups the caller is part of. | [Link](groups/list/) | +| `/api/v1/groups.open` | Adds the private group back to the list of groups. | [Link](groups/open/) | +| `/api/v1/groups.rename` | Changes the name of the private group. | [Link](groups/rename/) | +| `/api/v1/groups.setDescription` | Sets a private group's description. | [Link](groups/setdescription/) | +| `/api/v1/groups.setPurpose` | Sets a private group's description. | [Link](groups/setpurpose/) | +| `/api/v1/groups.setReadOnly` | Sets whether the room is read only or not. | [Link](groups/setreadonly/) | +| `/api/v1/groups.setTopic` | Sets a private group's topic. | [Link](groups/settopic/) | +| `/api/v1/groups.setType` | Sets the type of room this group will be. | [Link](groups/settype/) | +| `/api/v1/groups.unarchive` | Unarchives a private group. | [Link](groups/unarchive/) | ### Chat -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/chat.delete` | Deletes an existing chat message. | [Link](chat/delete/) | -| `/api/v1/chat.getMessage` | Retrieves a single chat message. | [Link](chat/getmessage/) | -| `/api/v1/chat.pinMessage` | Pins a chat message to the message's channel. | [Link](chat/pinmessage/) | -| `/api/v1/chat.postMessage` | Posts a new chat message. | [Link](chat/postmessage/) | -| `/api/v1/chat.react` | Sets/unsets the user's reaction to an existing chat message. | [Link](chat/react/) | -| `/api/v1/chat.starMessage` | Stars a chat message for the authenticated user. | [Link](chat/starmessage/) | -| `/api/v1/chat.unPinMessage` | Removes the pinned status of the provided chat message. | [Link](chat/unpinmessage/) | +| Url | Short Description | Details Page | +| :--------------------------- | :--------------------------------------------------------------- | :-------------------------- | +| `/api/v1/chat.delete` | Deletes an existing chat message. | [Link](chat/delete/) | +| `/api/v1/chat.getMessage` | Retrieves a single chat message. | [Link](chat/getmessage/) | +| `/api/v1/chat.pinMessage` | Pins a chat message to the message's channel. | [Link](chat/pinmessage/) | +| `/api/v1/chat.postMessage` | Posts a new chat message. | [Link](chat/postmessage/) | +| `/api/v1/chat.react` | Sets/unsets the user's reaction to an existing chat message. | [Link](chat/react/) | +| `/api/v1/chat.starMessage` | Stars a chat message for the authenticated user. | [Link](chat/starmessage/) | +| `/api/v1/chat.unPinMessage` | Removes the pinned status of the provided chat message. | [Link](chat/unpinmessage/) | | `/api/v1/chat.unStarMessage` | Removes the star on the chat message for the authenticated user. | [Link](chat/unstarmessage/) | -| `/api/v1/chat.update` | Updates the text of the chat message. | [Link](chat/update/) | +| `/api/v1/chat.update` | Updates the text of the chat message. | [Link](chat/update/) | ### IM -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/im.close` | Removes a direct message from the list of direct messages. | [Link](im/close/) | -| `/api/v1/im.history` | Retrieves the messages from a direct message. | [Link](im/history/) | +| Url | Short Description | Details Page | +| :--------------------------- | :------------------------------------------------------------ | :-------------------------- | +| `/api/v1/im.close` | Removes a direct message from the list of direct messages. | [Link](im/close/) | +| `/api/v1/im.history` | Retrieves the messages from a direct message. | [Link](im/history/) | | `/api/v1/im.messages.others` | Retrieves the messages from any direct message in the server. | [Link](im/messages-others/) | -| `/api/v1/im.list` | List the direct messages the caller is part of. | [Link](im/list/) | -| `/api/v1/im.list.everyone` | List all direct message the caller in the server. | [Link](im/list-everyone/) | -| `/api/v1/im.open` | Adds the direct message back to the list of direct messages. | [Link](im/open/) | -| `/api/v1/im.setTopic` | Sets a direct message topic. | [Link](im/settopic/) | +| `/api/v1/im.list` | List the direct messages the caller is part of. | [Link](im/list/) | +| `/api/v1/im.list.everyone` | List all direct message the caller in the server. | [Link](im/list-everyone/) | +| `/api/v1/im.open` | Adds the direct message back to the list of direct messages. | [Link](im/open/) | +| `/api/v1/im.setTopic` | Sets a direct message topic. | [Link](im/settopic/) | ### Command Methods -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/commands.get` | Get specification of the slash command. | [Link](commands/get/) | -| `/api/v1/commands.list` | Lists all available slash commands. | [Link](commands/list/) | -| `/api/v1/commands.run` | Execute a slash command in the specified room. | [Link](commands/run/) | +| Url | Short Description | Details Page | +| :---------------------- | :--------------------------------------------- | :--------------------- | +| `/api/v1/commands.get` | Get specification of the slash command. | [Link](commands/get/) | +| `/api/v1/commands.list` | Lists all available slash commands. | [Link](commands/list/) | +| `/api/v1/commands.run` | Execute a slash command in the specified room. | [Link](commands/run/) | ### Settings -| Url | Method | Short Description | Details Page | -| :--- | :--- | :--- | :--- | -| `/api/v1/settings/:_id` | `GET` | Gets a setting. | [Link](settings/get/) | +| Url | Method | Short Description | Details Page | +| :---------------------- | :----- | :----------------- | :----------------------- | +| `/api/v1/settings/:_id` | `GET` | Gets a setting. | [Link](settings/get/) | | `/api/v1/settings/:_id` | `POST` | Updates a setting. | [Link](settings/update/) | ## Language specific wrappers ### Java -* [rocket-chat-rest-client](https://github.com/baloise/rocket-chat-rest-client) +- [rocket-chat-rest-client](https://github.com/baloise/rocket-chat-rest-client) ### PHP -* [rocket-chat-rest-client](https://github.com/Fab1en/rocket-chat-rest-client) +- [rocket-chat-rest-client](https://github.com/Fab1en/rocket-chat-rest-client) ### Python -* [rocketchat_API](https://github.com/jadolg/rocketchat_API) +- [rocketchat_API](https://github.com/jadolg/rocketchat_API) ### Ruby -* [rocketchat-ruby](https://github.com/abrom/rocketchat-ruby) +- [rocketchat-ruby](https://github.com/abrom/rocketchat-ruby) diff --git a/developer-guides/rest-api/authentication/README.md b/developer-guides/rest-api/authentication/README.md index 5e48b1a863..b5927e9ae9 100644 --- a/developer-guides/rest-api/authentication/README.md +++ b/developer-guides/rest-api/authentication/README.md @@ -3,10 +3,10 @@ The authentication with the REST API is a two step process. 1. Passing your username and password to the `/api/v1/login` -1. Using the `authToken` and `userId` provided back on every method +2. Using the `authToken` and `userId` provided back on every method -| Url | Short Description | Details Page | -| :--- | :--- | :--- | -| `/api/v1/login` | Authenticate with the REST API. | [Link](login/) | -| `/api/v1/logout` | Invalidate your REST API authentication token. | [Link](logout/) | -| `/api/v1/me` | Displays information about the authenticated user. | [Link](me/) | +| Url | Short Description | Details Page | +| :--------------- | :------------------------------------------------- | :-------------- | +| `/api/v1/login` | Authenticate with the REST API. | [Link](login/) | +| `/api/v1/logout` | Invalidate your REST API authentication token. | [Link](logout/) | +| `/api/v1/me` | Displays information about the authenticated user. | [Link](me/) | diff --git a/developer-guides/rest-api/authentication/login/README.md b/developer-guides/rest-api/authentication/login/README.md index 06f799c2c1..2d2ddca435 100644 --- a/developer-guides/rest-api/authentication/login/README.md +++ b/developer-guides/rest-api/authentication/login/README.md @@ -1,18 +1,18 @@ # Login -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | :--- | -| `/api/v1/login` | `no` | `POST` | +| URL | Requires Auth | HTTP Method | +| :-------------- | :------------ | :---------- | +| `/api/v1/login` | `no` | `POST` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `username` | `myusername` | Required | Your username | +| Argument | Example | Required | Description | +| :--------- | :----------------- | :------- | :------------ | +| `username` | `myusername` | Required | Your username | | `password` | `my$up3erP@ssw0rd` | Required | Your password | -* Notes: - * **You will need to provide the `authToken` and `userId` for any of the authenticated methods.** +- Notes: +- **You will need to provide the `authToken` and `userId` for any of the authenticated methods.** ## Example Call - As Form Data diff --git a/developer-guides/rest-api/channels/invite/README.md b/developer-guides/rest-api/channels/invite/README.md index dcb04bf3d3..b2a6a80988 100644 --- a/developer-guides/rest-api/channels/invite/README.md +++ b/developer-guides/rest-api/channels/invite/README.md @@ -1,18 +1,20 @@ # Channel Invite + Adds a user to the channel. -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/channels.invite` | `yes` | `POST` | +| URL | Requires Auth | HTTP Method | +| :------------------------ | :------------ | :---------- | +| `/api/v1/channels.invite` | `yes` | `POST` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `roomId` | `ByehQjC44FwMeiLbX` | Required | The channel's id | +| Argument | Example | Required | Description | +| :------- | :------------------ | :------- | :--------------------------- | +| `roomId` | `ByehQjC44FwMeiLbX` | Required | The channel's id | | `userId` | `nSYqWzZ4GsKTX4dyK` | Required | The user id of who to invite | ## Example Call + ```bash curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ -H "X-User-Id: aobEdbYhXfu5hkeqG" \ @@ -22,6 +24,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ``` ## Example Result + ```json { "channel": { @@ -44,5 +47,5 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.48.0 | Added | +| :------ | :---------- | +| 0.48.0 | Added | diff --git a/developer-guides/rest-api/channels/leave/README.md b/developer-guides/rest-api/channels/leave/README.md index d8fd649baa..17ea4b96bb 100644 --- a/developer-guides/rest-api/channels/leave/README.md +++ b/developer-guides/rest-api/channels/leave/README.md @@ -1,17 +1,19 @@ # Channel Leave + Causes the callee to be removed from the channel. -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/channels.leave` | `yes` | `POST` | +| URL | Requires Auth | HTTP Method | +| :----------------------- | :------------ | :---------- | +| `/api/v1/channels.leave` | `yes` | `POST` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | +| Argument | Example | Required | Description | +| :------- | :------------------ | :------- | :--------------- | | `roomId` | `ByehQjC44FwMeiLbX` | Required | The channel's id | ## Example Call + ```bash curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ -H "X-User-Id: aobEdbYhXfu5hkeqG" \ @@ -21,6 +23,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ``` ## Example Result + ```json { "channel": { @@ -47,5 +50,5 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.48.0 | Added | +| :------ | :---------- | +| 0.48.0 | Added | diff --git a/developer-guides/rest-api/chat/postmessage/README.md b/developer-guides/rest-api/chat/postmessage/README.md index 5ae67fd52e..05da697eaa 100644 --- a/developer-guides/rest-api/chat/postmessage/README.md +++ b/developer-guides/rest-api/chat/postmessage/README.md @@ -1,97 +1,97 @@ # Post a chat message -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/chat.postMessage` | `yes` | `POST` | +| URL | Requires Auth | HTTP Method | +| :------------------------- | :------------ | :---------- | +| `/api/v1/chat.postMessage` | `yes` | `POST` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `roomId`

    `channel` | `ByehQjC44FwMeiLbX`

    `#general` |
    Required | The room id of where the message is to be sent.

    The channel name with the prefix in front of it. | -| `text` | `Sample message` | Optional | The text of the message to send, is optional because of attachments. | -| `alias` | `Some Name` | Optional | This will cause the message's name to appear as the given alias, but your username will still display. | -| `emoji` | `:smirk:` | Optional | If provided, this will make the avatar on this message be an emoji. [Emoji Cheetsheet](http://emoji.codes/) | -| `avatar` | `http://site.com/logo.png` | Optional | If provided, this will make the avatar use the provided image url. | -| `attachments` | `[{}]` | Optional | See the below section, [Attachments Detail](#attachments-detail), for details. | +| Argument | Example | Required | Description | +| :-------------------------- | :-------------------------------------- | :------------ | :---------------------------------------------------------------------------------------------------------- | +| `roomId`

    `channel` | `ByehQjC44FwMeiLbX`

    `#general` |
    Required | The room id of where the message is to be sent.

    The channel name with the prefix in front of it. | +| `text` | `Sample message` | Optional | The text of the message to send, is optional because of attachments. | +| `alias` | `Some Name` | Optional | This will cause the message's name to appear as the given alias, but your username will still display. | +| `emoji` | `:smirk:` | Optional | If provided, this will make the avatar on this message be an emoji. [Emoji Cheetsheet](http://emoji.codes/) | +| `avatar` | `http://site.com/logo.png` | Optional | If provided, this will make the avatar use the provided image url. | +| `attachments` | `[{}]` | Optional | See the below section, [Attachments Detail](#attachments-detail), for details. | ### Attachments Detail The attachments is an array of objects with any of the following properties. One attachment can have many sections, including: -* General -* Author Information -* Title Information -* Image -* Audio -* Video -* Table/Fields - -| Property | Example | Section | Description | -| :--- | :--- | :--- | :--- | -| `color` | `#ff0000` | General | The color you want the order on the left side to be, any value [background-css](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color) supports. | -| `text` | `Sample attachment text` | General | The text to display for this attachment, it is different than the message's text. | -| `ts` | `2016-12-09T16:53:06.761Z` | General | Displays the time next to the `text` portion. | -| `thumb_url` | `https://site.com/img.png` | General | An image that displays to the left of the `text`, looks better when this is relatively small. | -| `message_link` | `https://rocket.chat` | General | Only applicable if the `ts` is provided, as it makes the time clickable to this link. | -| `collapsed` | `false` | General | Causes the image, audio, and video sections to be hidding when collapsed is true. | -| `author_name` | `Bradley Hilton` | Author | Name of the author. | -| `author_link` | `https://bit.ly/` | Author | Providing this makes the author name clickable and points to this link. | -| `author_icon` | `https://site.com/img.png` | Author | Displays a tiny icon to the left of the Author's name. | -| `title` | `Attachment Title` | Title | Title to display for this attachment, displays under the author. | -| `title_link` | `https://youtube.com` | Title | Providing this makes the title clickable, pointing to this link. | -| `title_link_download` | `https://site.com/img.png` | Title | When this is provided, a download icon appears and clicking this saves the link to file. | -| `image_url` | `https://site.com/img.png` | Image | The image to display, will be "big" and easy to see. -| `audio_url` | `https://site.com/aud.mp3` | Audio | Audio file to play, only supports what [html audio](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio) does. | -| `video_url` | `https://site.com/vid.mp4` | Video | Video file to play, only supports what [html video](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video) does. | -| `fields` | `[{}]` | Fields | An array of [Attachment Field Objects](#attachment-field-objects). | +- General +- Author Information +- Title Information +- Image +- Audio +- Video +- Table/Fields + +| Property | Example | Section | Description | +| :-------------------- | :------------------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `color` | `#ff0000` | General | The color you want the order on the left side to be, any value [background-css](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color) supports. | +| `text` | `Sample attachment text` | General | The text to display for this attachment, it is different than the message's text. | +| `ts` | `2016-12-09T16:53:06.761Z` | General | Displays the time next to the `text` portion. | +| `thumb_url` | `https://site.com/img.png` | General | An image that displays to the left of the `text`, looks better when this is relatively small. | +| `message_link` | `https://rocket.chat` | General | Only applicable if the `ts` is provided, as it makes the time clickable to this link. | +| `collapsed` | `false` | General | Causes the image, audio, and video sections to be hidding when collapsed is true. | +| `author_name` | `Bradley Hilton` | Author | Name of the author. | +| `author_link` | `https://bit.ly/` | Author | Providing this makes the author name clickable and points to this link. | +| `author_icon` | `https://site.com/img.png` | Author | Displays a tiny icon to the left of the Author's name. | +| `title` | `Attachment Title` | Title | Title to display for this attachment, displays under the author. | +| `title_link` | `https://youtube.com` | Title | Providing this makes the title clickable, pointing to this link. | +| `title_link_download` | `https://site.com/img.png` | Title | When this is provided, a download icon appears and clicking this saves the link to file. | +| `image_url` | `https://site.com/img.png` | Image | The image to display, will be "big" and easy to see. | +| `audio_url` | `https://site.com/aud.mp3` | Audio | Audio file to play, only supports what [html audio](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio) does. | +| `video_url` | `https://site.com/vid.mp4` | Video | Video file to play, only supports what [html video](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video) does. | +| `fields` | `[{}]` | Fields | An array of [Attachment Field Objects](#attachment-field-objects). | #### Attachment Field Objects The field property of the attachments allows for "tables" or "columns" to be displayed on messages. -| Property | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `short` | true | Optional
    Default: `false` | Whether this field should be a short field. | -| `title` | `Status` | Required | The title of this field. | -| `value` | `online` | Required | The value of this field, displayed underneath the title value. | +| Property | Example | Required | Description | +| :------- | :------- | :----------------------------- | :------------------------------------------------------------- | +| `short` | true | Optional
    Default: `false` | Whether this field should be a short field. | +| `title` | `Status` | Required | The title of this field. | +| `value` | `online` | Required | The value of this field, displayed underneath the title value. | ## Message Object Example ```json { - "roomId": "Xnb2kLD2Pnhdwe3RH", + "roomId": "Xnb2kLD2Pnhdwe3RH", "channel": "#general", - "text": "Sample message", - "alias": "Gruggy", - "emoji": ":smirk:", + "text": "Sample message", + "alias": "Gruggy", + "emoji": ":smirk:", "avatar": "http://res.guggy.com/logo_128.png", - "attachments": [{ + "attachments": [{ "color": "#ff0000", "text": "Yay for gruggy!", "ts": "2016-12-09T16:53:06.761Z", "thumb_url": "http://res.guggy.com/logo_128.png", "message_link": "https://google.com", "collapsed": false, - "author_name": "Bradley Hilton", - "author_link": "https://rocket.chat/", - "author_icon": "https://avatars.githubusercontent.com/u/850391?v=3", - "title": "Attachment Example", - "title_link": "https://youtube.com", - "title_link_download": "https://rocket.chat/download", - "image_url": "http://res.guggy.com/logo_128.png", - "audio_url": "http://www.w3schools.com/tags/horse.mp3", - "video_url": "http://www.w3schools.com/tags/movie.mp4", - "fields": [{ - "short": true, - "title": "Test", - "value": "Testing out something or other" - },{ - "short": true, - "title": "Another Test", - "value": "[Link](https://google.com/) something and this and that." - }] - }] + "author_name": "Bradley Hilton", + "author_link": "https://rocket.chat/", + "author_icon": "https://avatars.githubusercontent.com/u/850391?v=3", + "title": "Attachment Example", + "title_link": "https://youtube.com", + "title_link_download": "https://rocket.chat/download", + "image_url": "http://res.guggy.com/logo_128.png", + "audio_url": "http://www.w3schools.com/tags/horse.mp3", + "video_url": "http://www.w3schools.com/tags/movie.mp4", + "fields": [{ + "short": true, + "title": "Test", + "value": "Testing out something or other" + },{ + "short": true, + "title": "Another Test", + "value": "[Link](https://google.com/) something and this and that." + }] + }] } ``` @@ -131,10 +131,10 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log -| Version | Description | -| :--- | :--- | -| 0.49.0 | The `channel` can now be a room's id. | -| 0.48.0 | Information about the sent message is now returned. | -| 0.17.0 | Messages aren't always processed as from BOT and urls are parsed by default. | -| 0.14.0 | Internally using `processWebhookMessage` which enabled more features. | -| 0.13.0 | Added | +| Version | Description | +| :------ | :--------------------------------------------------------------------------- | +| 0.49.0 | The `channel` can now be a room's id. | +| 0.48.0 | Information about the sent message is now returned. | +| 0.17.0 | Messages aren't always processed as from BOT and urls are parsed by default. | +| 0.14.0 | Internally using `processWebhookMessage` which enabled more features. | +| 0.13.0 | Added | diff --git a/developer-guides/rest-api/commands/get/README.md b/developer-guides/rest-api/commands/get/README.md index 408f35ec8d..d197f16dc3 100644 --- a/developer-guides/rest-api/commands/get/README.md +++ b/developer-guides/rest-api/commands/get/README.md @@ -1,17 +1,19 @@ # Command Get + Get specification of the slash command. -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/commands.get` | `yes` | `GET` | +| URL | Requires Auth | HTTP Method | +| :--------------------- | :------------ | :---------- | +| `/api/v1/commands.get` | `yes` | `GET` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `command` | `me` | Required | The name of the command. | +| Argument | Example | Required | Description | +| :-------- | :------ | :------- | :----------------------- | +| `command` | `me` | Required | The name of the command. | ## Example Call + ```bash curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ -H "X-User-Id: aobEdbYhXfu5hkeqG" \ @@ -19,6 +21,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ``` ## Example Result + ```json { "command": { @@ -34,5 +37,5 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.60.2 | Added | +| :------ | :---------- | +| 0.60.2 | Added | diff --git a/developer-guides/rest-api/commands/list/README.md b/developer-guides/rest-api/commands/list/README.md index 0b68725b34..c482c6612f 100644 --- a/developer-guides/rest-api/commands/list/README.md +++ b/developer-guides/rest-api/commands/list/README.md @@ -1,11 +1,13 @@ # Command List + Lists all available slash commands. -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/commands.list` | `yes` | `GET` | +| URL | Requires Auth | HTTP Method | +| :---------------------- | :------------ | :---------- | +| `/api/v1/commands.list` | `yes` | `GET` | ## Example Call + ```bash curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ -H "X-User-Id: aobEdbYhXfu5hkeqG" \ @@ -13,6 +15,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ``` ## Example Result + ```json { "commands": [ @@ -129,5 +132,5 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.60.2 | Added | +| :------ | :---------- | +| 0.60.2 | Added | diff --git a/developer-guides/rest-api/commands/run/README.md b/developer-guides/rest-api/commands/run/README.md index 87edd6d554..000b453b6f 100644 --- a/developer-guides/rest-api/commands/run/README.md +++ b/developer-guides/rest-api/commands/run/README.md @@ -1,19 +1,21 @@ # Command Run + Execute a slash command in the specified room. -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/commands.run` | `yes` | `POST` | +| URL | Requires Auth | HTTP Method | +| :--------------------- | :------------ | :---------- | +| `/api/v1/commands.run` | `yes` | `POST` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `command` | `unmute` | Required | The name of the command to be executed. | -| `roomId` | `ByehQjC44FwMeiLbX` | Required | The ID of the room. | -| `params` | `@user123` | Optional
    Default: `undefined` | Parameters of the command if required. | +| Argument | Example | Required | Description | +| :-------- | :------------------ | :--------------------------------- | :-------------------------------------- | +| `command` | `unmute` | Required | The name of the command to be executed. | +| `roomId` | `ByehQjC44FwMeiLbX` | Required | The ID of the room. | +| `params` | `@user123` | Optional
    Default: `undefined` | Parameters of the command if required. | ## Example Call + ```bash curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ -H "X-User-Id: aobEdbYhXfu5hkeqG" \ @@ -23,6 +25,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ``` ## Example Result + ```json { "success": true @@ -32,5 +35,5 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.60.2 | Added | +| :------ | :---------- | +| 0.60.2 | Added | diff --git a/developer-guides/rest-api/groups/rename/README.md b/developer-guides/rest-api/groups/rename/README.md index 47489083af..7401f707a6 100644 --- a/developer-guides/rest-api/groups/rename/README.md +++ b/developer-guides/rest-api/groups/rename/README.md @@ -1,4 +1,5 @@ # Group Rename + Changes the name of the private group. | URL | Requires Auth | HTTP Method | diff --git a/developer-guides/rest-api/livechat/README.md b/developer-guides/rest-api/livechat/README.md index 95ee198b3f..f1e7744674 100644 --- a/developer-guides/rest-api/livechat/README.md +++ b/developer-guides/rest-api/livechat/README.md @@ -4,13 +4,13 @@ Manage livechat related data: | Url | HTTP Method | Short Description | Details Page | | :--- | :--- | :--- | :--- | -| `/api/v1/livechat/users/:type` | `GET` | Get a list of agents or managers. | [info](users/#list-agents-or-managers) | -| `/api/v1/livechat/users/:type` | `POST` | Create a new livechat agent or manager. | [info](users/#register-new-agent-or-manager) | -| `/api/v1/livechat/users/:type/:_id` | `GET` | Retrieve agent or manager data. | [info](users/#get-info-about-an-agent-or-manager) | -| `/api/v1/livechat/users/:type/:_id` | `DELETE` | Removes a livechat agent or manager. | [info](users/#removes-an-agent-or-manager) | -| `/api/v1/livechat/department` | `GET` | Get a list of livechat departments. | [info](department/#list-departments) | -| `/api/v1/livechat/department` | `POST` | Creates a new livechat department. | [info](department/#register-a-new-department) | -| `/api/v1/livechat/department/:_id` | `GET` | Retrieve a livechat department data. | [info](department/#get-info-about-a-deparment) | -| `/api/v1/livechat/department/:_id` | `PUT` | Updates a livechat department data. | [info](department/#update-a-department) | -| `/api/v1/livechat/department/:_id` | `DELETE` | Delete a livechat department. | [info](department/#removes-a-deparment) | +| `/api/v1/livechat/users/:type` | `GET` | Get a list of agents or managers. | [info](users/index.html#list-agents-or-managers) | +| `/api/v1/livechat/users/:type` | `POST` | Create a new livechat agent or manager. | [info](users/index.html#register-new-agent-or-manager) | +| `/api/v1/livechat/users/:type/:_id` | `GET` | Retrieve agent or manager data. | [info](users/index.html#get-info-about-an-agent-or-manager) | +| `/api/v1/livechat/users/:type/:_id` | `DELETE` | Removes a livechat agent or manager. | [info](users/index.html#removes-an-agent-or-manager) | +| `/api/v1/livechat/department` | `GET` | Get a list of livechat departments. | [info](department/index.html#list-departments) | +| `/api/v1/livechat/department` | `POST` | Creates a new livechat department. | [info](department/index.html#register-a-new-department) | +| `/api/v1/livechat/department/:_id` | `GET` | Retrieve a livechat department data. | [info](department/index.html#get-info-about-a-department) | +| `/api/v1/livechat/department/:_id` | `PUT` | Updates a livechat department data. | [info](department/index.html#update-a-department) | +| `/api/v1/livechat/department/:_id` | `DELETE` | Delete a livechat department. | [info](department/index.html#removes-a-department) | | `/api/v1/livechat/sms-incoming/:service` | `POST` | Send SMS messages to Rocket.Chat. | [info](sms-incoming/) | diff --git a/developer-guides/rest-api/livechat/department/README.md b/developer-guides/rest-api/livechat/department/README.md index 7667b33d36..8dcda14e1a 100644 --- a/developer-guides/rest-api/livechat/department/README.md +++ b/developer-guides/rest-api/livechat/department/README.md @@ -2,9 +2,9 @@ Get a list of departments. -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/livechat/department` | `yes` | `GET` | +| URL | Requires Auth | HTTP Method | +| :---------------------------- | :------------ | :---------- | +| `/api/v1/livechat/department` | `yes` | `GET` | ## Example Call @@ -36,14 +36,14 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.42.0 | Added | +| :------ | :---------- | +| 0.42.0 | Added | -# Register a new department +## Register a new department -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/livechat/department` | `yes` | `POST` | +| URL | Requires Auth | HTTP Method | +| :---------------------------- | :------------ | :---------- | +| `/api/v1/livechat/department` | `yes` | `POST` | ## Example payload @@ -105,20 +105,20 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.42.0 | Added | +| :------ | :---------- | +| 0.42.0 | Added | -# Get info about a department +## Get info about a department -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/livechat/department/:_id` | `yes` | `GET` | +| URL | Requires Auth | HTTP Method | +| :--------------------------------- | :------------ | :---------- | +| `/api/v1/livechat/department/:_id` | `yes` | `GET` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `_id` | `SQafHvoFPuB57NmBD` | Required | The department `_id`. | +| Argument | Example | Required | Description | +| :------- | :------------------ | :------- | :-------------------- | +| `_id` | `SQafHvoFPuB57NmBD` | Required | The department `_id`. | ## Example Call @@ -159,20 +159,20 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.42.0 | Added | +| :------ | :---------- | +| 0.42.0 | Added | -# Update a department +## Update a department -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/livechat/department/:_id` | `yes` | `PUT` | +| URL | Requires Auth | HTTP Method | +| :--------------------------------- | :------------ | :---------- | +| `/api/v1/livechat/department/:_id` | `yes` | `PUT` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `_id` | `iTfLCX3qqwKgf5uqg` | Required | Department `_id`. | +| Argument | Example | Required | Description | +| :------- | :------------------ | :------- | :---------------- | +| `_id` | `iTfLCX3qqwKgf5uqg` | Required | Department `_id`. | ## Example payload @@ -234,20 +234,20 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.42.0 | Added | +| :------ | :---------- | +| 0.42.0 | Added | -# Removes a department +## Removes a department -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/livechat/department/:_id` | `yes` | `DELETE` | +| URL | Requires Auth | HTTP Method | +| :--------------------------------- | :------------ | :---------- | +| `/api/v1/livechat/department/:_id` | `yes` | `DELETE` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | -| `_id` | `iTfLCX3qqwKgf5uqg` | Required | The department `_id`. | +| Argument | Example | Required | Description | +| :------- | :------------------ | :------- | :-------------------- | +| `_id` | `iTfLCX3qqwKgf5uqg` | Required | The department `_id`. | ## Example Call @@ -269,5 +269,5 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ ## Change Log | Version | Description | -| :--- | :--- | -| 0.42.0 | Added | \ No newline at end of file +| :------ | :---------- | +| 0.42.0 | Added | diff --git a/developer-guides/rest-api/livechat/users/README.md b/developer-guides/rest-api/livechat/users/README.md index 8f2dea9d17..ec5599148a 100644 --- a/developer-guides/rest-api/livechat/users/README.md +++ b/developer-guides/rest-api/livechat/users/README.md @@ -44,7 +44,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ | :--- | :--- | | 0.42.0 | Added | -# Register new agent or manager +## Register new agent or manager Register a new agent or manager. @@ -95,7 +95,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ | :--- | :--- | | 0.42.0 | Added | -# Get info about an agent or manager +## Get info about an agent or manager | URL | Requires Auth | HTTP Method | | :--- | :--- | :--- | @@ -134,7 +134,7 @@ curl -H "X-Auth-Token: 9HqLlyZOugoStsXCUfD_0YdwnNnunAJF8V47U3QHXSq" \ | :--- | :--- | | 0.42.0 | Added | -# Removes an agent or manager +## Removes an agent or manager | URL | Requires Auth | HTTP Method | | :--- | :--- | :--- | diff --git a/developer-guides/rest-api/offset-and-count-and-sort-info/README.md b/developer-guides/rest-api/offset-and-count-and-sort-info/README.md index 7d702db12b..a1520ae61c 100644 --- a/developer-guides/rest-api/offset-and-count-and-sort-info/README.md +++ b/developer-guides/rest-api/offset-and-count-and-sort-info/README.md @@ -5,17 +5,17 @@ However, the defaults are different per server due to configuration settings. ## Query Parameter Information -* `offset` - number of items to "skip" in the query, is zero based so it starts off at `0` being the first item. -* `count` - the amount of items to "get" in the query, is one based so to get only one you would pass in `1`. If you want to get all of the records, then pass in `0` but this will only work if the setting (see below) allows it. -* `sort` - specify the order in which the results should be returned. Sort hash uses attribute name for key and value of `1` for asc, `-1` for desc. +- `offset` - number of items to "skip" in the query, is zero based so it starts off at `0` being the first item. +- `count` - the amount of items to "get" in the query, is one based so to get only one you would pass in `1`. If you want to get all of the records, then pass in `0` but this will only work if the setting (see below) allows it. +- `sort` - specify the order in which the results should be returned. Sort hash uses attribute name for key and value of `1` for asc, `-1` for desc. ## Settings These are the settings for the REST API which relate to the offset and count. If you need to change them, go to `Administration -> General -> REST API`. -* `API_Default_Count` _(Default Count)_ - Defines the default `count` for when the parameter is not provided -* `API_Upper_Count_Limit` _(Max Record Amount)_ - Defines ceiling for the `count` and this value will be set if the `count` is higher -* `API_Allow_Infinite_Count` _(Allow Getting Everything)_ - Determines whether `0` can be passed into the `count` to allow getting all of the records. +- `API_Default_Count` _(Default Count)_ - Defines the default `count` for when the parameter is not provided +- `API_Upper_Count_Limit` _(Max Record Amount)_ - Defines ceiling for the `count` and this value will be set if the `count` is higher +- `API_Allow_Infinite_Count` _(Allow Getting Everything)_ - Determines whether `0` can be passed into the `count` to allow getting all of the records. ## Example diff --git a/developer-guides/rest-api/query-and-fields-info/README.md b/developer-guides/rest-api/query-and-fields-info/README.md index b28068ae2a..0ce5725e19 100644 --- a/developer-guides/rest-api/query-and-fields-info/README.md +++ b/developer-guides/rest-api/query-and-fields-info/README.md @@ -6,8 +6,8 @@ If an invalid json object is passed, the request will fail. ## Query Parameter Information -* `query` - json object which accepts [MongoDB](https://docs.mongodb.com/manual/reference/operator/query/) query operators -* `fields` - json object with properties that have either `true` or `false` to include them or exclude them +- `query` - json object which accepts [MongoDB](https://docs.mongodb.com/manual/reference/operator/query/) query operators +- `fields` - json object with properties that have either `true` or `false` to include them or exclude them ## Query Example diff --git a/developer-guides/rest-api/users/getavatar/README.md b/developer-guides/rest-api/users/getavatar/README.md index d851d86c90..b358d3e782 100644 --- a/developer-guides/rest-api/users/getavatar/README.md +++ b/developer-guides/rest-api/users/getavatar/README.md @@ -1,13 +1,13 @@ # User Get Avatar -| URL | Requires Auth | HTTP Method | -| :--- | :--- | :--- | -| `/api/v1/users.getAvatar` | `no` | `GET` | +| URL | Requires Auth | HTTP Method | +| :------------------------ | :------------ | :---------- | +| `/api/v1/users.getAvatar` | `no` | `GET` | ## Payload -| Argument | Example | Required | Description | -| :--- | :--- | :--- | :--- | +| Argument | Example | Required | Description | +| :--------------------- | :------------------ | :------- | :------------------------------ | | `userId` or `username` | `BsNr28znDkG8aeo7W` | Required | The id or username of the user. | ## Example Call @@ -18,13 +18,12 @@ curl http://localhost:3000/api/v1/users.getAvatar?userId=BsNr28znDkG8aeo7W ## Example Result -``` -http://localhost:3000/avatar/bobsmith -``` + http://localhost:3000/avatar/bobsmith + _N.B. the response is a 307 temporary redirect_ ## Change Log | Version | Description | -| :--- | :--- | -| 0.50.0 | Added | +| :------ | :---------- | +| 0.50.0 | Added | diff --git a/developer-guides/schema-definition/README.md b/developer-guides/schema-definition/README.md index f015c3c187..5c8a300a64 100644 --- a/developer-guides/schema-definition/README.md +++ b/developer-guides/schema-definition/README.md @@ -26,28 +26,28 @@ ### Fields -Fields | Type | Description -:-------------- | :----------------- | :------------------------ -_id | Random.id() | Room Id -t | String | Room Type -ts | Date | Room Creation Timestamp -name | String | Room Name (t:d -> empty) -lm | Date | Last Message Timestamp -msgs | Integer | Messages Counter -cl | Boolean | If users can leave room -ro | Boolean | Read Only -usernames | Array[String] | Room Users -usernames.0 | String | User Username -u | Object | Owner User -u._id | Random.id() | User Id -u.username | String | User Username +| Fields | Type | Description | +| :---------- | :------------ | :----------------------- | +| \_id | Random.id() | Room Id | +| t | String | Room Type | +| ts | Date | Room Creation Timestamp | +| name | String | Room Name (t:d -> empty) | +| lm | Date | Last Message Timestamp | +| msgs | Integer | Messages Counter | +| cl | Boolean | If users can leave room | +| ro | Boolean | Read Only | +| usernames | Array[String] | Room Users | +| usernames.0 | String | User Username | +| u | Object | Owner User | +| u.\_id | Random.id() | User Id | +| u.username | String | User Username | ### Indexes -Fields | Options -:-------------- | :----------------- -name | unique, sparce -u._id | +| Fields | Options | +| :----- | :------------- | +| name | unique, sparce | +| u.\_id | | ## Subscriptions @@ -76,34 +76,34 @@ u._id | ### Fields -Fields | Type | Description -:-------------- | :----------------- | :----------------------------------------------------------------- -_id | Random.id() | Subscriptions Id -t | String | Subscription Type (copy from Room) -ts | Date | Subscription Creation Timestamp -ls | Date | Last Seen Timestamp -name | String | Subscription Name (t:d -> target username) -rid | Random.id() | Room Id -f | Boolean | Favorited -open | Boolean | Is Room Opened -alert | Boolean | Room has unread messages for this user -unread | Integer | Counter of unread messages with mentions or from direct messages -u | Object | User -u._id | Random.id() | User Id -u.username | String | User Username -v | Object | Visitor -v._id | Random.id() | Visitor Id -v.username | String | Visitor Username +| Fields | Type | Description | +| :--------- | :---------- | :--------------------------------------------------------------- | +| \_id | Random.id() | Subscriptions Id | +| t | String | Subscription Type (copy from Room) | +| ts | Date | Subscription Creation Timestamp | +| ls | Date | Last Seen Timestamp | +| name | String | Subscription Name (t:d -> target username) | +| rid | Random.id() | Room Id | +| f | Boolean | Favorited | +| open | Boolean | Is Room Opened | +| alert | Boolean | Room has unread messages for this user | +| unread | Integer | Counter of unread messages with mentions or from direct messages | +| u | Object | User | +| u.\_id | Random.id() | User Id | +| u.username | String | User Username | +| v | Object | Visitor | +| v.\_id | Random.id() | Visitor Id | +| v.username | String | Visitor Username | ### Indexes -Fields | Options -:-------------- | :----------------- -rid, u._id | unique -u._id, name, t | unique -open | -alert | -unread | +| Fields | Options | +| :-------------- | :------ | +| rid, u.\_id | unique | +| u.\_id, name, t | unique | +| open | | +| alert | | +| unread | | ## Messages @@ -134,11 +134,10 @@ unread | ### Indexes -Fields | Options -:-------------- | :----------------- -rid, ts | -expireAt | expireAfterSeconds - +| Fields | Options | +| :------- | :----------------- | +| rid, ts | | +| expireAt | expireAfterSeconds | ## Visitors diff --git a/developer-guides/troubleshooting/README.md b/developer-guides/troubleshooting/README.md index 33cb78826b..528233751d 100644 --- a/developer-guides/troubleshooting/README.md +++ b/developer-guides/troubleshooting/README.md @@ -1,11 +1,9 @@ -### Troubleshooting +# Troubleshooting - -1) **babel-runtime**: +1. **babel-runtime**: If you are having the following error: - ```bash (STDERR) Error: The babel-runtime npm package could not be found in your node_modules (STDERR) directory. Please run the following command to install it: @@ -23,9 +21,9 @@ Just install the mentioned package with the following command: meteor npm install --save babel-runtime ``` -2) **bcrypt**: +1. **bcrypt**: -If you see the following warning in the ``meteor`` logs: +If you see the following warning in the `meteor` logs: ```bash (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt. @@ -37,8 +35,8 @@ If you see the following warning in the ``meteor`` logs: (STDERR) ``` -Don't panic =) It means that the ``bcrypt`` library is not installed on your -system and ``meteor`` will use a javascript alternative that is about three +Don't panic =) It means that the `bcrypt` library is not installed on your +system and `meteor` will use a javascript alternative that is about three times slower. If you want to install the library to make it faster, use the following @@ -48,7 +46,7 @@ command: meteor npm install --save bcrypt ``` -If the version of the ``python`` interpreter on your system is **greater than** +If the version of the `python` interpreter on your system is **greater than** v2.5.0 or **less than** 3.0.0, it should work fine, but, if you see a message like this: @@ -58,7 +56,7 @@ gyp ERR! stack Error: Python executable "/usr/local/bin/python3" is v3.5.2, whic gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0. ``` -After you are sure that you have a ``python`` interpreter that matches the +After you are sure that you have a `python` interpreter that matches the above requirements, use the following command to fix the error: ```bash diff --git a/developer-guides/ui-and-theming/colors/README.md b/developer-guides/ui-and-theming/colors/README.md index bba1e64680..19d39717b9 100644 --- a/developer-guides/ui-and-theming/colors/README.md +++ b/developer-guides/ui-and-theming/colors/README.md @@ -2,16 +2,14 @@ > NB: The UI is in active development and component refactoring will change (and hopefully improve) the use of color. The immidiate goal is to consolidate use of color and styles, before moving forward to a consistent style guide for Rocket.Chat. -[Most](https://github.com/RocketChat/Rocket.Chat/issues/4091)* use of color in Rocket.Chat can be customised by changing color settings under Administration > Layout > Colors. We encourage developers to use the defined variables in their contributions (instead of hard-coding colors), to allow site owners to change the color scheme with consistent results. +[Most](https://github.com/RocketChat/Rocket.Chat/issues/4091)\* use of color in Rocket.Chat can be customised by changing color settings under Administration > Layout > Colors. We encourage developers to use the defined variables in their contributions (instead of hard-coding colors), to allow site owners to change the color scheme with consistent results. See the [theme variables file](https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/rocketchat-theme/server/variables.js) for current available color settings. All color settings are available to Less files as variables, as long as the Less files were compiled using the `addPackageAsset` method of `rocketchat-theme`. ---- +- - - ## Color Scheme -> NB: The documentation below refers to color usage as it exists in [a development branch](https://github.com/RocketChat/Rocket.Chat/tree/timkinnane-pr/color-fixes) that has not yet been merged with any production release. - The Rocket.Chat color scheme consists of three groups of color settings, Alpha, Major and Minor Colors. Some further variations of these colors are created in Less and not exposed to settings. @@ -22,10 +20,10 @@ The naming of color settings/variables is not related to any specific component, Semi-transparent black or white, used in components to shade/tint the background color, e.g. to indicate a selected or disabled state. The use of alpha colors allows site owners to easily change color scheme without defining every variation for every state of a component. -* transparent-dark -* transparent-darker -* transparent-ight -* transparent-ighter +- transparent-dark +- transparent-darker +- transparent-ight +- transparent-ighter #### Alpha Colors Example @@ -35,65 +33,61 @@ Semi-transparent black or white, used in components to shade/tint the background The primary palette of the app. Contributions and modifications to components should make use of these colors. -* content-background-color -* primary-background-color -* primary-font-color -* primary-action-color -* secondary-background-color -* secondary-font-color -* secondary-action-color -* component-color -* success-color -* pending-color -* error-color -* selection-color +- content-background-color +- primary-background-color +- primary-font-color +- primary-action-color +- secondary-background-color +- secondary-font-color +- secondary-action-color +- component-color +- success-color +- pending-color +- error-color +- selection-color ### Minor Colors A set of minor colors for specific use cases will inherit from the major colors by default but can be used by admins who want more granular control over the color scheme. -* tertiary-background-color _defaults to component-color_ -* tertiary-font-color _defaults to transparent-light_ -* link-font-color _defaults to primary-action-color_ -* info-font-color _defaults to secondary-font-color_ -* custom-scrollbar-color _defaults to transparent-dark_ -* status-online _defaults to success-color_ -* status-away _defaults to pending-color_ -* status-busy _defaults to error-color_ -* status-offline _defaults to transparent-darker_ - -### Mixins, Computed Colors and Dark UI - -Some handy [Less mixins](https://github.com/RocketChat/Rocket.Chat/blob/master/packages/rocketchat-theme/server/lesshat.less) provide shortcuts for coloring properties and states of components like buttons, links and inputs. +- tertiary-background-color _defaults to component-color_ +- tertiary-font-color _defaults to transparent-light_ +- link-font-color _defaults to primary-action-color_ +- info-font-color _defaults to secondary-font-color_ +- custom-scrollbar-color _defaults to transparent-dark_ +- status-online _defaults to success-color_ +- status-away _defaults to pending-color_ +- status-busy _defaults to error-color_ +- status-offline _defaults to transparent-darker_ -When [colors are imported from settings](https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/rocketchat-theme/assets/stylesheets/utils/_colors.import.less), some extra variables are created for backgrounds, borders and contrasts, based on color settings. +### Dark UI The computed colors allows owners to choose a **dark UI** with appropriate contrast. e.g. in a light UI, the disabled state might darken an element, but on a dark UI it should be lightened. The mixins achieve this by mixing the color with a contrast of the background color instead of using darken/lighten. See [this example](https://codepen.io/owlandfox/pen/EyJROO) of form input states that dynamically contrast to both dark and light backgrounds. Developers are encouraged to use mixins and computed colors in contributions instead of hard-coding variations, to maintain consistent balance and contrasts of colors regardless how the scheme settings may be changed by owners. ---- +- - - ## Default Colors These examples show the implementation of the default color scheme with the main components of the Rocket.Chat UI. -#### Side Nav +### Side Nav ![Side nav example colors](side-nav.png) -#### Account Box +### Account Box ![Account Box example colors](account-box.png) -#### Flex Nav +### Flex Nav ![Flex nav example colors](flex-nav.png) -#### Message Box +### Message Box ![Message box example colors](message-box.png) -#### Settings Page +### Settings Page ![Settings page example colors](settings-page.png) diff --git a/developer-guides/ui-and-theming/components/README.md b/developer-guides/ui-and-theming/components/README.md index 9eda2df5c0..8a989d69a0 100644 --- a/developer-guides/ui-and-theming/components/README.md +++ b/developer-guides/ui-and-theming/components/README.md @@ -4,20 +4,20 @@ This article stub needs descriptive content and example usage for each component Example content: -### Side Nav +## Side Nav _Describe usage for template development contributions_ _Provide example usage and html structure / class names of nested elements_ -* Content - * Admin Link - * Input Line - * Button -* Account Box - * Status - * Account Link -* Rooms List - * Header - * Item - * Item List +- Content + - Admin Link + - Input Line + - Button +- Account Box + - Status + - Account Link +- Rooms List + - Header + - Item + - Item List diff --git a/developer-guides/ui-and-theming/themes/README.md b/developer-guides/ui-and-theming/themes/README.md index fe8609a2db..6848571110 100644 --- a/developer-guides/ui-and-theming/themes/README.md +++ b/developer-guides/ui-and-theming/themes/README.md @@ -4,7 +4,7 @@ Theming for Rocket.Chat is an incomplete feature and we encourage developers to To customize the Rocket.Chat UI you can either modify the `rocketchat-theme` or `rocketchat-ui` packages directly, but if you're keeping in sync with active development it would be easier to avoid conflicts by creating your own theme package. ---- +- - - ## Creating a Theme @@ -14,52 +14,44 @@ Private themes would need to be maintained on your own fork of Rocket.Chat, but The minimum contents for a theme package would be a `package.js` file containing the description, e.g: -``` -Package.describe({ - name: 'author:mytheme', - version: '0.0.1', - summary: 'My theme customisations.', - git: 'https://github.com/author/my-rocket.chat-theme' -}); -``` + Package.describe({ + name: 'author:mytheme', + version: '0.0.1', + summary: 'My theme customisations.', + git: 'https://github.com/author/my-rocket.chat-theme' + }); Then include dependent packages and your custom theme files. e.g: -``` -Package.onUse(function(api) { - api.versionsFrom('1.2'); - api.use([ - 'templating', - 'rocketchat:lib', - 'rocketchat:theme' - ]); - api.use('templating', 'client'); -``` + Package.onUse(function(api) { + api.versionsFrom('1.2'); + api.use([ + 'templating', + 'rocketchat:lib', + 'rocketchat:theme' + ]); + api.use('templating', 'client'); ---- +- - - ## Adding Stylesheets The `rocketchat-theme` package has methods for including [Less](http://lesscss.org/) asset files in the build. Less files (and the a server.coffee or .js file to load them) must first be included in the `package.js` manifest (within the `Package.onUse` function), e.g.: -``` - api.addAssets([ - 'assets/theme.less' - ], 'server'); - api.addFiles([ - 'server.coffee' - ], 'server'); -``` + api.addAssets([ + 'assets/theme.less' + ], 'server'); + api.addFiles([ + 'server.coffee' + ], 'server'); Then in `server.coffee`... -``` -RocketChat.theme.addPackageAsset -> Assets.getText 'assets/theme.less' -``` + RocketChat.theme.addPackageAsset -> Assets.getText 'assets/theme.less' That will read in any styles and variables from your custom less file and compile it with the rest of the css. ---- +- - - ## Adding and Modifying Templates @@ -69,22 +61,16 @@ Here's an example replacing the unauthorized page template: ** In `package.js` ** -``` -api.addFiles(['views/notAuthorized.html', 'client.coffee'], 'client'); -``` + api.addFiles(['views/notAuthorized.html', 'client.coffee'], 'client'); ** In `views/notAuthorized.html` ** -``` - -``` + ** In `client.coffee` ** -``` -Template.myNotAuthorized.replaces 'notAuthorized' -``` + Template.myNotAuthorized.replaces 'notAuthorized' See the [docs for that package](https://github.com/aldeed/meteor-template-extension) for more info on inheriting and overwriting templates and helpers. diff --git a/getting-support/README.md b/getting-support/README.md index 9e1712f061..539c6d66b5 100644 --- a/getting-support/README.md +++ b/getting-support/README.md @@ -6,18 +6,18 @@ We have a great community that likes to give back. Some great places to ask your questions: -* Stack Overflow [Rocket.Chat Tag](https://stackoverflow.com/questions/tagged/rocket.chat) -* [Server Fault](https://serverfault.com/search?q=Rocket.Chat) +- Stack Overflow [Rocket.Chat Tag](https://stackoverflow.com/questions/tagged/rocket.chat) +- [Server Fault](https://serverfault.com/search?q=Rocket.Chat) Our community also often hangs out on our [community server](https://open.rocket.chat). Some of the channels to get help: -* [\#support](https://open.rocket.chat/channel/support) channel for help with general Rocket.Chat -* [\#ubuntu-snap](https://open.rocket.chat/channel/ubuntu-snap) channel for help with snap installs -* [\#desktop](https://open.rocket.chat/channel/desktop) channel for help with the desktop client -* [\#hubot](https://open.rocket.chat/channel/hubot) channel for help with hubot scripting -* [\#dev](https://open.rocket.chat/channel/dev) channel for developers needing help developing new features +- [#support](https://open.rocket.chat/channel/support) channel for help with general Rocket.Chat +- [#ubuntu-snap](https://open.rocket.chat/channel/ubuntu-snap) channel for help with snap installs +- [#desktop](https://open.rocket.chat/channel/desktop) channel for help with the desktop client +- [#hubot](https://open.rocket.chat/channel/hubot) channel for help with hubot scripting +- [#dev](https://open.rocket.chat/channel/dev) channel for developers needing help developing new features Remember to have a little patience. Support is provided by other members of the community like you in their free time. diff --git a/installation/docker-containers/README.md b/installation/docker-containers/README.md index ca70f45c56..f1e454f589 100644 --- a/installation/docker-containers/README.md +++ b/installation/docker-containers/README.md @@ -12,18 +12,18 @@ This guide is designed for everyone, however, it is intentionally detailed to he ## What we'll cover in this guide -1. [Securing the server: Firewall basics (optional)](#1-securing-the-server-firewall-basics-optional-recommended-) -2. [Securing the server: Fail2Ban IDS (optional)](#2-securing-the-server-fail2ban-optional-recommended-) -3. [Installing Docker and Docker-Compose](#3-installing-docker-and-docker-compose) -4. [Editing the hosts file](#4-editing-the-hosts-file) -5. [Installing Nginx SSL Reverse Proxy](#5-installing-nginx-ssl-certificate) -6. [Creating docker-compose.yml](#6-create-the-docker-compose-yml-file-local-directories) -7. [Automatic start-up, and crash recovery](#7-automatic-startup-crash-recovery) -8. [Reboot & Status check](#8-reboot-and-status-check) -9. [Registering & Configuring Hubot, the chat robot](#9-registering-configuring-hubot-the-chat-robot) -10. [FAQ & Troubleshooting](#10-troubleshooting-faq) -11. [TODO](#11-todo-) -12. [Known Issues](#12-known-issues-) +1. [Securing the server: Firewall basics (optional)](index.html#1-securing-the-server-firewall-basics-optional-recommended) +2. [Securing the server: Fail2Ban IDS (optional)](index.html#2-securing-the-server-fail2ban-optional-recommended) +3. [Installing Docker and Docker-Compose](index.html#3-installing-docker-and-docker-compose) +4. [Editing the hosts file](index.html#4-editing-the-hosts-file) +5. [Installing Nginx SSL Reverse Proxy](index.html#5-installing-nginx--ssl-certificate) +6. [Creating docker-compose.yml](index.html#6-create-the-docker-composeyml-file--local-directories) +7. [Automatic start-up, and crash recovery](index.html#7-automatic-startup--crash-recovery) +8. [Reboot & Status check](index.html#8-reboot-and-status-check) +9. [Registering & Configuring Hubot, the chat robot](index.html#9-registering--configuring-hubot-the-chat-robot) +10. [FAQ & Troubleshooting](index.html#10-troubleshooting--faq) +11. [TODO](index.html#11-todo) +12. [Known Issues](index.html#12-known-issues) ## Prerequisites @@ -32,7 +32,7 @@ This guide is written assuming that you're starting with: - a clean new installation of Ubuntu 14.04 (64 bit) - properly configured DNS that resolves requests to your domain name ---- +- - - ## 1. Securing the server: Firewall basics (optional, recommended) @@ -84,7 +84,7 @@ sudo ufw reload sudo ufw disable ``` ---- +- - - ## 2. Securing the server: Fail2ban (optional, recommended) @@ -100,7 +100,7 @@ sudo apt-get install fail2ban Pre ---- +- - - ## 3. Installing Docker and Docker-Compose @@ -127,7 +127,7 @@ sudo chmod +x /usr/local/bin/docker-compose sudo docker-compose --version ``` ---- +- - - ## 4. Editing the hosts file @@ -146,7 +146,7 @@ sudo nano /etc/hosts Sav ---- +- - - ## 5. Installing Nginx & SSL certificate @@ -182,7 +182,7 @@ Open the SSL Certificate provided by the SSL vendor (will probably have a .crt o Sav ---- +- - - ### 5b. Self-Signed SSL @@ -200,7 +200,7 @@ Tip: It is important that the Common Name be set properly. Enter your fully qual Sav ---- +- - - ### 5c. Set Key Permissions, Dhparams, Configure NGINX @@ -273,7 +273,7 @@ sudo service nginx configtest && sudo service nginx restart sudo nginx -t ``` ---- +- - - ## 6. Create the docker-compose.yml file & local directories @@ -332,7 +332,7 @@ hubot: Sav ---- +- - - ## 7. Automatic Startup & Crash Recovery @@ -392,7 +392,7 @@ end script Sav ---- +- - - ## 8. Reboot and Status check @@ -412,7 +412,9 @@ sudo reboot sudo docker ps -a ``` +``` [![docker ps -a](https://www.imageforge.us/images/c90bd55a7b357c20b18815a5560f43f3.png)](https://www.imageforge.us/image/60kNT) +``` As you can see, our three docker containers are up and running: Rocket Chat, MongoDB, and Hubot. NOTE: You may see only one, or none at all if the downloads are still in progress. Be patient, and check it periodically. Eventually, it should look similar to our sample screenshot. If it does, congratulations, you did it! GREAT JOB! @@ -449,7 +451,7 @@ _Great! I'm in, but the bot is nowhere to be seen!_ No ---- +- - - ## 9. Registering & Configuring Hubot, the chat robot @@ -469,7 +471,7 @@ With the bot account registered, you can force it to join by simply rebooting th For ---- +- - - ## 10. Troubleshooting & FAQ @@ -506,7 +508,7 @@ sudo ufw status **Check your SSL installation** just as before the update. **Ooh, so fast!** +Visit `https://your_hostname.com` just as before the update. **Ooh, so fast!** To confirm you're actually using both services like you'd expect, you can stop one rocketchat service at a time and confirm that chat still works. Restart that service and stop the other. Still work? Yep, you're using both services! ## Check your database + Another very important part is your database. As mentioned above, you will need to make sure you are running a replicaset. This is important for a couple of reasons: -1. Database reliability. You will want to make sure that your data is replicated, and you have another node if something happens to your primary. -2. Rocket.Chat does what's called oplog tailing. The oplog is turned on when you setup a replicaset. Mongo makes use of this to publish events so the other nodes in the replicaset can make sure its data is up to date. Rocket.Chat makes use of this to watch for database events. If someone sends a message on Instance 1 and you are connected to Instance 2. Instance 2 watches for message insert events and then is able to show you a new message has arrived. +1\. Database reliability. You will want to make sure that your data is replicated, and you have another node if something happens to your primary. +2\. Rocket.Chat does what's called oplog tailing. The oplog is turned on when you setup a replicaset. Mongo makes use of this to publish events so the other nodes in the replicaset can make sure its data is up to date. Rocket.Chat makes use of this to watch for database events. If someone sends a message on Instance 1 and you are connected to Instance 2. Instance 2 watches for message insert events and then is able to show you a new message has arrived. ### Database engine + Another thing to keep in mind is the storage engine you are using. By default mongo uses wiredtiger. Wiredtiger under some loads can be very CPU and Memory intensive. Under small single instance setups we don't typically see issues. But when you run multiple instances of Rocket.Chat it can some times get a bit unruly. It's because of this we recommend in multiple instance situations that you switch the mongo storage engine to mmapv1. diff --git a/installation/manual-installation/opensuse/README.md b/installation/manual-installation/opensuse/README.md index 4e4abc5d14..aa9618d7c5 100644 --- a/installation/manual-installation/opensuse/README.md +++ b/installation/manual-installation/opensuse/README.md @@ -6,7 +6,6 @@ Node.js version: 8.9.3 Rocket.Chat version: 0.60.0 - These are barebones instructions for how to set up a Rocket.Chat server on OpenSUSE Leap 42.2 using nginx as a reverse proxy. These will help you set up a system you can experiment with. **THEY ARE NOT INTENDED FOR SETUP OF A PRODUCTION SYSTEM!** They are oriented on using a VM from AWS, but should work for any Leap 42.2 system. ## Overview @@ -243,7 +242,7 @@ ufs: temp directory created at "/tmp/ufs" ➔ +--------------------------------------------------------+ ``` -... and that's Rocket.Chat all set. Direct a browser to and register a yourself as new user. The first user you register will be made the server admin. +... and that's Rocket.Chat all set. Direct a browser to `https://YOUR.SERVER.NAME` and register a yourself as new user. The first user you register will be made the server admin. ## Sources diff --git a/installation/manual-installation/pm2-systemd-upstart/README.md b/installation/manual-installation/pm2-systemd-upstart/README.md index 1919ab335c..48dd69019e 100644 --- a/installation/manual-installation/pm2-systemd-upstart/README.md +++ b/installation/manual-installation/pm2-systemd-upstart/README.md @@ -55,7 +55,7 @@ proper directory (/etc/init) usage is as simple as rebooting. Which upstart management jobs that you use depend on what type of Rocket.Chat deployment you are using (Docker-compose, non-docker, etc). A race-condition exists with docker-compose which requires that mongo and the Rocket.Chat application be started independently, thus a slightly modified upstart job is required compared to non-docker instances. ---- +- - - ### Non-Docker-Compose @@ -113,7 +113,7 @@ script end script ``` ---- +- - - ### Docker-Compose diff --git a/installation/manual-installation/ubuntu/README.md b/installation/manual-installation/ubuntu/README.md index 7a9c9ce053..83bb894836 100644 --- a/installation/manual-installation/ubuntu/README.md +++ b/installation/manual-installation/ubuntu/README.md @@ -14,7 +14,7 @@ Snaps are secure. Rocket.Chat and all of its dependencies are isolated from the Find out more information about snaps [here](../../../installation/manual-installation/ubuntu/snaps/) -If you would like to enable using the snap please see [here](../../../installation/manual-installation/ubuntu/snaps/autossl/) +If you would like to enable `https://yoursite.com` using the snap please see [here](../../../installation/manual-installation/ubuntu/snaps/autossl/) ## Manual install @@ -144,7 +144,7 @@ export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=001-rs ## Install -Download Stable version of Rocket.Chat (or pick a version from [our releases page](https://rocket.chat/releases)): +Download Stable version of Rocket.Chat (or pick a version from [our releases page](https://rocket.chat/download)): ```bash curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz diff --git a/installation/manual-installation/ubuntu/snaps/README.md b/installation/manual-installation/ubuntu/snaps/README.md index 2691c1e09b..a4fe5eb9aa 100644 --- a/installation/manual-installation/ubuntu/snaps/README.md +++ b/installation/manual-installation/ubuntu/snaps/README.md @@ -5,6 +5,7 @@ ``` sudo snap install rocketchat-server ``` + Then browse to localhost:3000 and setup RocketChat. Snaps are secure. Rocket.Chat and all of its dependencies are isolated from the rest of your system. Snaps also auto update when we release a new version. So no need more hassle updating. diff --git a/installation/manual-installation/windows-server/README.md b/installation/manual-installation/windows-server/README.md index 06c9005fb2..3b88dffc44 100644 --- a/installation/manual-installation/windows-server/README.md +++ b/installation/manual-installation/windows-server/README.md @@ -20,7 +20,7 @@ To start, go to `Control Panel -> Programs and Features` and uninstall each of t Then, download and install each of the following **in order**: 1. [Python 2.7.3](https://www.python.org/ftp/python/2.7.3/python-2.7.3.msi) (if you have Python 3.x already installed, just leave it, both can coexist) -2. [Visual C++ 2010 Express](http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express) or Visual Studio 2010 +2. [Visual C++ 2010 Express](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) or Visual Studio 2010 3. [Windows SDK 7.1](http://www.microsoft.com/en-us/download/details.aspx?id=8279) 4. [Visual Studio 2010 SP1](http://www.microsoft.com/en-us/download/details.aspx?id=23691) 5. [Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1](http://www.microsoft.com/en-us/download/details.aspx?id=4422) diff --git a/installation/mobile-and-desktop-apps/README.md b/installation/mobile-and-desktop-apps/README.md index 6bece853ba..19b7cb2ef9 100644 --- a/installation/mobile-and-desktop-apps/README.md +++ b/installation/mobile-and-desktop-apps/README.md @@ -44,7 +44,7 @@ The app for iOS (iPhone, iPad, iPod touch) can be found on the App Store. Just s The app for Android can be found on Google Play. Just search for `Rocket.Chat` -[![Rocket.Chat on Google Play](https://camo.githubusercontent.com/4cd0ed80662cc51c4203e457fdc3358d0df2e73e/68747470733a2f2f75706c6f61642e77696b696d656469612e6f72672f77696b6970656469612f636f6d6d6f6e732f7468756d622f352f35382f476f6f676c655f506c61795f6c6f676f5f323031352e504e472f32323070782d476f6f676c655f506c61795f6c6f676f5f323031352e504e47)](https://play.google.com/store/apps/details?id=com.konecty.rocket.chat) +[![Rocket.Chat on Google Play](https://play.google.com/store/apps/details?id=chat.rocket.android&hl=en)](https://play.google.com/store/apps/details?id=com.konecty.rocket.chat) ### Android and iOS Mobile users diff --git a/installation/paas-deployments/aws/README.md b/installation/paas-deployments/aws/README.md index 0bcb6b638a..908236578d 100644 --- a/installation/paas-deployments/aws/README.md +++ b/installation/paas-deployments/aws/README.md @@ -98,7 +98,7 @@ This guide covers the following: - Backup the default config file for reference: `cd /etc/nginx/sites-available` `sudo mv default default.reference` - - Create a new file with the following contents. Replace with your domain (it appears 4 times below). Make sure to update it in the path to your key files as well. + - Create a new file with the following contents. Replace `ABC.DOMAIN.COM` with your domain (it appears 4 times below). Make sure to update it in the path to your key files as well. `sudo nano /etc/nginx/sites-available/default` @@ -261,6 +261,6 @@ This guide covers the following: ### 10. Use it -1. Login to your site at +1. Login to your site at `https://ABC.DOMAIN.COM` - Note: the first user to login will be an administrator 2. You can then use the native apps to connect to your Rocket.Chat server. diff --git a/installation/paas-deployments/dplatform/README.md b/installation/paas-deployments/dplatform/README.md index 63a745cce1..4fca3ed20a 100644 --- a/installation/paas-deployments/dplatform/README.md +++ b/installation/paas-deployments/dplatform/README.md @@ -2,4 +2,4 @@ Easiest way to install a ready-to-run Rocket.Chat server on a Linux machine, VM, or VPS - [@j8r's DPlatform](https://github.com/j8r/DPlatform)! -[![deploy](https://raw.githubusercontent.com/j8r/DPlatform/gh-pages/img/deploy.png)](https://dfabric.github.io/DPlatform-ShellCore/) +[deploy](https://dfabric.github.io/DPlatform-ShellCore/) diff --git a/installation/paas-deployments/hyper-sh/README.md b/installation/paas-deployments/hyper-sh/README.md index 7e89df8222..fdbbd20b69 100644 --- a/installation/paas-deployments/hyper-sh/README.md +++ b/installation/paas-deployments/hyper-sh/README.md @@ -4,7 +4,7 @@ Rocket.Chat is a web chat application for communities and companies wanting to p ## 1. Register for your free Hyper credits -First take 2 minutes to sign up for Hyper, receive your free credits and install the CLI: [https://docs.hyper.sh/GettingStarted/index.html](https://docs.hyper-sh/GettingStarted/index.html) +First take 2 minutes to sign up for Hyper, receive your free credits and install the CLI: ## 2. Create a floating IP address diff --git a/installation/paas-deployments/openshift/README.md b/installation/paas-deployments/openshift/README.md index 9caa4f8c9b..2ae764ed10 100644 --- a/installation/paas-deployments/openshift/README.md +++ b/installation/paas-deployments/openshift/README.md @@ -12,7 +12,7 @@ documentation in OpenShift website. 1. [Login](#1-login) 2. [Create a project](#2-create-a-project) -3. [Import the ImageStream and templates](#3-import-the-imagestram-and-templates) +3. [Import the ImageStream and templates](#3-import-the-imagestream-and-templates) 4. [Create the app](#4-create-the-app) ## 1. Login diff --git a/installation/paas-deployments/sloppy-io/README.md b/installation/paas-deployments/sloppy-io/README.md index 7bfb5cfbc7..a9674f6517 100644 --- a/installation/paas-deployments/sloppy-io/README.md +++ b/installation/paas-deployments/sloppy-io/README.md @@ -4,10 +4,6 @@ Host your docker container at [sloppy.io](http://sloppy.io). Get an account and use the [quickstarter](https://github.com/sloppyio/quickstarters/tree/master/rocketchat) -## Get It - -Resource Repository: [Link to files](https://github.com/RocketChat/Deploy.to.Cloud/tree/master/sloppy.io) - ## Start it ``` diff --git a/installation/updating/from-0-x-x-to-0-40-0/README.md b/installation/updating/from-0-x-x-to-0-40-0/README.md index 3d84a820b5..98999efe7c 100644 --- a/installation/updating/from-0-x-x-to-0-40-0/README.md +++ b/installation/updating/from-0-x-x-to-0-40-0/README.md @@ -16,5 +16,5 @@ sudo n 4.8.4 Then follow the upgrade steps of your chosen method like normal: -- [Ubuntu](../../../installation/manual-installation/ubuntu/#update) -- [CentOS](../../../installation/manual-installation/centos/#update) +- [Ubuntu](../../../installation/manual-installation/ubuntu/index.html#update) +- [CentOS](../../../installation/manual-installation/centos/index.html#upgrade) diff --git a/markdown-style.rb b/markdown-style.rb index 995cfbe111..1ca79df3ba 100644 --- a/markdown-style.rb +++ b/markdown-style.rb @@ -15,5 +15,5 @@ rule 'MD004', :style => :dash rule 'MD007', :indent => 4 rule 'MD029', :style => :ordered -rule 'MD035', :style => "---" +rule 'MD035', :style => "- - -" diff --git a/markdown-styleguide.md b/markdown-styleguide.md index eaf9637242..f534e21bd6 100644 --- a/markdown-styleguide.md +++ b/markdown-styleguide.md @@ -4,12 +4,9 @@ The Rocket.Chat documentation supports the [Markdown Markup Language](https://en Markdown can be written in various different styles, in this document you will find the standard formatting guide for creating Rocket.Chat documentation. - You can run the Markdown linter locally by installing this [Markdown Linter Tool](https://github.com/markdownlint/markdownlint) and running the command `mdl ../` command on the docs main folder. @@ -362,13 +359,13 @@ Fenced code blocks should be surrounded by blank lines. **Wrong**: Some text - ``` + `` ` Code block - ``` + `` ` - ``` + `` ` Another code block - ``` + `` ` Some more text **Correct**: diff --git a/user-guides/connecting-to-a-server/README.md b/user-guides/connecting-to-a-server/README.md index e9492e5063..4a232b4a40 100644 --- a/user-guides/connecting-to-a-server/README.md +++ b/user-guides/connecting-to-a-server/README.md @@ -6,7 +6,7 @@ You can use a web browser or one of the [many client applications](https://rocke To connect to a Rocket.Chat server through a web browser you need to enter the desired server address in the browser's address bar. -If it is a valid Rocket.Chat server address you will then be presented with the [registration](../registration/]) and [login](../login/) page if unauthenticated or taken to the server's homepage if authenticated. +If it is a valid Rocket.Chat server address you will then be presented with the [registration](../registration/) and [login](../login/) page if unauthenticated or taken to the server's homepage if authenticated. ## Using the Desktop application