- feature to store contact IP for accounts
- IP lookup through geocoder gem
- ability to do IP lookup through external APIs
- add commit hook to prevent push to develop and master
- migrations to fix default values for jsonb columns
For the outgoing emails which has dependency on the incoming
part as well like the conversation continuity part, some of the
config variables used were entirely based on the account attributes.
But this is not true in case of self hosted situations where you have
multiple accounts and have a common config for incoming emails.
So moved out some of the attributes entirely dependednt on the account
to ENV with a fallback to the Global config.
Also, with this changes the name of the agent will be shown in the
email clinet with in the conversation rather than just the support
email address. This has a huge UX impact on the cutomer.
Modified all the necessary unit tests to reflect these changes.
Updated the .env.example file for the new ENV variable.
* Feature: Introduce Super Admins
- added new devise model for super user
- added administrate gem
- sample dashboards for users and accounts
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
* Chore: Moved the email ingress method to an env variable (#777)
* Moved the email ingress method in config to an environment variable
* Updated documentation to reflect this
* Added ingress config to staging env config (#777)
* Re-arranged the order in env configs so that email related configs are together
* Added POC for mail inbox reply email
* created mailbox and migratuion for the same
* cleaned up sidekiq queues and added the queues for action mailbox and active storage
* created conversation mailbox and functionlaity to create a message on the conversation when it's replied
* Added UUID to conversation to be used in email replies
* added migration to add uuid for conversation
* changed parsing and resource fetching to reflect matching uuid and
loading conversation alone
* cleaned up conversation mailbox.rb
* Added content type & attribute for message
* Added the new reply email to outgoing emails
* Added migration to accounts for adding domain and settings
* Modified seeds to reflect this changes
* Added the flag based column on account for boolean settings
* Added the new reply to email in outgoing conversation emails based on conditions
* Added dynamic email routing in application mailbox
* Added dynamic email routing in application mailbox
* Added a catch all deafult empty mailbox
* Added annotation for account
* Added the complete email details & attachments to the message
* Added the complete email details to the message in content_attributes, like subject, to, cc, bcc etc
* Modified the mail extractor to give a serilaized version of email
* Handled storing attachments of email on the message
* Added incoming email settings, env variables
* [#138] Added documentation regarding different email settings and variables
* Fixed the mail attachments blob issue (#138)
* Decoided attachments were strings and had to construct blobs out fo them to work with active storage
* Fixed the content encoding issue with mail body
* Fixed issue with Proc used in apllication mailbox routing
* Fixed couple of typos and silly mistakes
* Set appropriate from email for conversation reply mails (#138)
* From email was taken from a env variable, changed it to take from account settings if enabled
* Set the reply to email correctly based on conversation UUID
* Added commented config ind development.rb for mailbox ingress
* Added account settings for domain and support email (#138)
* Added the new attributes in accounts controller params whitelisting, api responses
* Added options for the the new fields in account settings
* Fixed typos in email continuity docs and warnings
* Added specs for conversation reply mailer changes (#138)
* Added specs for
* conversation reply mailer
* Accounts controller
* Account and Conversation models
* Added tests for email presenter (#138)
* Specs for inbound email routing and mailboxes (#138)
Introduce new environment variable that lets you control account signups
ENABLE_ACCOUNT_SIGNUP :( true | false | api_only )
Fixes: #406
Co-authored-by: Pranav Raj S <pranavrajs@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
* 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
* #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