* Chore: Webwidget Inbox Tech Debts
* Additional customization options creating Web Widget
* Changes to edit Page for Web Widget
* Remove the WebWidget API end points
* Minor chores
Address: #680, #502
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
* Ability to change the account name
* Ability to set a language to the account
Addresses: #667#307
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
* Chore: Enable Users to create multiple accounts
Addresses: #402
- migrations to split roles and other attributes from users table
- make changes in code to accommodate this change
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
* When the the .env file has line with REDIS_PASSWORD set as empty, the value for this in the initializers comes as an empty string "".
* Fixed this in a way that, if it's empty string, then it's taken as `nil` value so that password is skipped
* update db:schema due to migration
* reduce default concurrency for redis connection limit
* Allow auto update packages in the development mode without building image
* add sidekiq support to docker-compose
* Pass sidekiq cofig file
* passed the env file in base image rather than separately in rails, web packer and sidekiq in docker-compose
* removed un-necessary changes in schema
* changed concurrency to finer values
* removed default size set in sidekiq redis config
* Added the sidekiq config option in Procfile.dev
Co-authored-by: Sony Mathew <ynos1234@gmail.com>
Previously we did not support authentication for redis anywhere. Also in the docker compose we were exposing redis port 6379 without any authentication. In the app side for the connections that app server (for storing keys as well as for socket connections made using action cable) and Sidekiq were making to redis server did not support authentication.
With this commit, we support authentication for redis connections from app side and Sidekiq. This is supported in docker-compose as well.
The changes include :
* Added support for new env variable REDIS_PASSWORD
* This redis password is now supported by action cable connections, Sidekiq connections and app side redis connections
* Since Sidekiq did not have an initializer, added an initializer to pass custom config to Sidekiq (for now it's options for redis)
* Changes in docker-compose to pickup a password set in .env file to protect the redis server running in docker
* Added necessary documentation changes in `docker.md` and `environment-variables.md`
* [#139] Delayed emails for conversations
* Added the setex and get methods to Redis wrapper
* Set the priorities for the sidekiq queues
* Was not able to use mailhog for testing email in local, switched back to letter opener and added comments on using the SMTP settings
* Added after create hood in messages to queue the sending of mail after 2 minutes using sidekiq worker and also set the redis key for the conversation to avoid the email sending for every message
* Added the sidekiq worker to send the email and delete the conversation redis key
* Added the mailer and mail template
* mailer sends the last 10 messages along with the new messages from the time it was queued
* Send email only in development or if smtp config is set
* Send email only in development or if smtp config is set
* Set the SMTP_PORT in production variable
* Adding redis to circle CI
* Specs for the conversation email changes
* Added specs for conversation email sidekiq worker
* Added specs for conversation mailer
* Added specs in message model for the after create hook for notify email
* Send emails only when there is a reply from agent
* set development to use mailhog
* Adding comments for using letter opener
* Refactor: Inbox store, remove inboxes from sidebar
* Add a new page for inbox settings
* Show inboxes on sidebar
* Add inbox_members API
* Disable similar-code check
* Fix codeclimate scss issues
* Add widget_color update API and actions
* Add specs for inbox store
* Fix Facebook auth flow
* Fix agent loading, inbox name
* add sidekiq web view if the user is an administrator
* add sidekiq setup configuration and support
* update devise to use delivery_later method and update test
* update conversation to use deliver_later instead of deliver
* Update Routes
* Add Procfile for Heroku One-Click Start
* updating docs
* update concurrency and Procfile for supporting Heroku Free Dyno
* update Procfile.dev
* updated development docker setup
* turned on yarn integrity check
* create test docker compose and update development dockerfile
* create docker Readme.md file
* fix README.md file
* create docker-copmose and dockerfile for production/staging environment setup
* added mailhog to catch email
* remove yarn integrity check in development mode!
* Update Readme.md file to support mailhog inbox
* update link to docker development guide from mail README
* remove .env.development and use .env.example for docker as .env.development was mixing with circleci config
* make the dockerfile configurable like before
* update docker-compose as per suggesion in PR
* create docker setup docs
* Revert accidental deletion
* fix: typo for branding consistency
* fix typo
* update the code as per recommendation in PR
* remove package-lock and add gitignore
* fix vulnerability AND update env for tests to pass
* Fix yarn integrity check across different docker services
* update code based on rubocop and PR suggestions
* remove redundant test docker-compose and dockerfile
* update rails entrypoint, update docs and Gemfile
* [Rubocop] order Gemfile alphabetically
* Reordering Gemfile
- api to update name and email
- api to change password
- api to set profile pic
- fixes update_attribute! deprecation warning
- introducing active storage
* Fix warning Integrity check: System parameters don't match
* Reduce commands required to use docker-compose and update quick-setup doc
Data will still persist when stopping and restarting containers.
To destroy the data can use docker-compose down --volumes
* Moved webpacker-dev-server to its own service
* cache bundle and yarn - improve volume performance - env conditional statements
* Fix inconsistent build results found during testing
* #251 - Disable subscription in community edition
* Hide billing routes in sidebar for community edition
* Remove subscription serializer if billing disabled
* [#260] One click deploy to heroku
* Added app.json file for Heroku deployment
* Made changes in Procfile to accept the PORT as env variable
* Added the one click button in README.md
* Change readme and link
* Alignment of button in Readme
* Changing redis to free plan
* Removed node-js build-pack
* Changed the post-deploy script to be rake db:migrate
* Removed web concurrency variable from app.json for heroku
* Changed the link to chatwoot logo referenced in app.json
* Changed postdeploy hook
* Changed logo to be raw content from github
* Changed the SMTP variables
* Added optional conditional for sending mail
* Changed the naming of SMTP variables
* Having logo as base 64 encoded image for heroku deploy page
* Fixed key not found error for SMTP variables
* Correcting the specs for conversation assignment mailer
* Spec rubocop fixes
* Spec rubocop fixes
* Added the link to master for heroku app.json
* Added dotenv-rails gem to manage environment variables
* Added dotenv-rails gem to manage environment variables
* Removed figaro which was used earlier for this purpose
* Standardized variable names
* Changed all env variables to be upper case. This included changes in files referencing env variables.
* Added example env file with all variables set to empty value
* Removed the earlier setup of copying application.yml and database.yml and the scripts and documentation associated to this
* Docker setup
* Added docker file for building the docker images
* Added entrypoint.sh script which is referenced inside the Docker image
* Cloned the Procfile for development using docker which has slight change compared to regular procfile
* Added the docker-compose.yml which has 3 service's configuration, postgres, redis and chatwoot server and a mounted volume for postgres
* Added docker related info to documentation
* Added the docker setup info in the documentation
* Added info for using`rbenv` instead of rvm for managing ruby versions
* Updated the documentation for environment variables to have one about `dotenv-rails` gem and removed the documentation about the old copy paste method used by figaro
* Changing the postgres database, username and password as environment variables
* Removed database.yml from gitignore
* Made the postgres databse, username and password as environemnt variables
* Added this in documentation
* Added a quick setup page
* Added quick setup page
* Removed the docs from README and added link to the docs in website
* Removed the figaro related things from circle.ci config
* Adding external volume for redis in docker compose
* Added instructions for adding the redis volume in docs
* Add `invited_by` foreign key to User
Allows for a User to be tied to the user who invited them
* Include `current_user` in new agent initialization parameters
* Add `shoulda-matchers` for testing associations
* Add Inviter information and associated account to welcome email
* Only show inviter info if applicable
* Update conversation spec for FFaker compatibility
* Add Conversation factory with dependent factories
* Include FactoryBot methods in rspec config
* Add unit tests for public methods of Conversation model
* Move Current model into a separate file in lib folder
* Disable Metrics/BlockLength rule for db/migrate and spec folders
* Get rid of global $dispatcher variable
* Create Message#unread_since scope
* Refactor callback methods in Conversation model
* Create Conversations::EventDataPresenter
* Add translation keys for activity messages
* Add pry-rails gem
* Refactor Conversation#notify_status_change
* Add mock_redis for test env