Skip to content

Upgrading Fat Free CRM

Steve Kenworthy edited this page Apr 21, 2018 · 9 revisions

Upgrading Fat Free CRM

If you are upgrading your version of Fat Free CRM it is helpful to use the following reference below to keep track of the changes that have occurred. Please note: whilst more detailed notes can be found in the CHANGELOG file, this page provides notice of the 'breaking' changes that you will want to know about.

Important: to upgrade from previous versions of Fat Free CRM:

  • backup existing source code and Fat Free CRM database
  • update the source code by running bundle update fat_free_crm
  • review default settings in config/settings.default.yml, and change any settings in config/settings.yml if necessary.

0.19.0 (Unreleased)

Migration from Authlogic to Devise (


While we've migrated FFCRM, if you use it as an engine in an existing application, you may with

Changes to user mailer

We now rely on the Devise generated email templates. To customise, see

Data migration: Users - Database backup required

We have removed the authlogic specific token columns.

    remove_column :users, :persistence_token
    remove_column :users, :single_access_token
    remove_column :users, :perishable_token

If you decide to roll back to a previous release, you will have to restore these values from backup.

RSS and Atom links

If you make use of any RSS/Atom links with built in tokens, you will need to regenerate these.


These changes are on the master branch and not yet released as a gem.

  • Lots of code cleanup and changes
  • prototypejs is no longer supported. jQuery only. (BREAKING CHANGE) ** Please run bundle exec rake tmp:clear assets:precompile assets:clean if you upgrade master to ensure all caches are cleared.
  • prototype_rails gem removed.

0.13.0 December 27, 2013

This version addresses the following security vulnerability disclosures.

  • CVE-2013-7222: Known Session Secret
  • CVE-2013-7223: Lack of CSRF Protection
  • CVE-2013-7224: Default to_json for models
  • CVE-2013-7249: Default to_xml for models
  • CVE-2013-7225: Multiple SQL Injections

The following work has also been completed.

  • IMPORTANT you will need to run rake ffcrm:secret after upgrading before the rails server will start.
  • IMPORTANT settings.yml and locale files have all been converted from Syck to Psych format (you will need to convert your personal settings.yml file, if you have one.) Syck is no longer used. rake ffcrm:config:syck_to_psych will convert all yml files in config/ to the Psych format.
  • All RJS templates have been replaced with js.erb equivalents and use of prototype_legacy_helper gem deprecated.
  • Ruby 2 compatible and now recommended. Some parts of FFCRM perform 10%~25% faster on Ruby 2.0
  • delivery_method has been removed from settings.yml as this had no effect. (Use standard Rails config/environment settings instead.)
  • Updated ransack_ui and ransack for bug fixes and improved performance
  • ajax-chosen gem is no longer used
  • app/assets/images/tab_icons folder removed and Gentleface iconset replaced with FontAwesome
  • Improved cacheability of some views - using jQuery timeago plugin to calculate time deltas ("3 minutes ago") in the browser
  • Lots more bug fixes

0.12.1 December 27, 2013

This version addresses the following security vulnerability disclosures.

  • CVE-2013-7222: Known Session Secret
  • CVE-2013-7223: Lack of CSRF Protection
  • CVE-2013-7224: Default to_json for models
  • CVE-2013-7249: Default to_xml for models
  • CVE-2013-7225: Multiple SQL Injections

IMPORTANT you will need to run rake ffcrm:secret after upgrading before the rails server will start.

0.12.0 June 28, 2013

The format of config/settings.default.yml has changed from Syck to Psych. If your app does not load, please review your settings and ensure they are compatible with the Psych format. In particular, format of the tabs and admin_tabs section of config/settings.default.yml has changed. If you include this section in your custom config/settings.yml file, you can probably just copy and paste it across from config/settings.default.yml.

0.11.4 December 29, 2012

This is the last gem release to support ruby 1.8. From 0.12.0 onwards, only ruby 1.9.3 will be supported. This release uses Rails 3.2.

Please see an important fix for country data

See the CHANGELOG for more details.

0.11.2 May 9, 2012

CanCan is now used for the permissions model. You should now be able to create groups and add users to it.

See the CHANGELOG for more details.

0.11.1 March 30, 2012

See the CHANGELOG for more details.

0.11.0 March 10, 2012

If you are upgrading from a previous version (0.10.1 or below), your database schema needs to be updated.

Please run the following commands in this order:

bundle install --without heroku   # Installs gem dependencies
rake db:schema:upgrade            # Updates your schema to use the new timestamped migrations
rake db:migrate                   # Runs any new database migrations.

0.10.1 "Euwe": Aug 31, 2010

Release 0.10.1 introduces two major new features:

  • Email Dropbox -- attach emails as notes by forwarding or copying emails to dropbox address.
  • Existing assets such as Accounts, Contacts, Leads, etc. could be selected and attached to other assets.

Besides new features the latest release contains many smaller enhancements and bug fixes. As usual, please see the CHANGELOG file or run git log command for the complete list of changes.

Note: Fat Free CRM release 0.10.1 requires Ruby On Rails version 2.3.8.

0.9.10 "Alekhine": Mar 9, 2010

Changes in 0.9.10 release include:

  • Added support for compound (i.e. multi-field) addresses, see :compound_address setting.
  • Added optional :background_info setting to enable extra free form field for accounts, campaigns, contacts, leads, opportunities, or tasks.
  • Made default permissions configurable through :default_access setting.
  • Tasks can now be created with specific time deadline. This feature could be enabled by setting :task_calendar_with_time to true.
  • Added email attribute to Accounts.
  • Implemented editing and deleting notes.
  • Further improvements to better support localization, including calendar and JavaScript files.
  • Added the following locale translations: Spanish, Polish, French.
  • Miscellaneous improvements and bug fixes.

0.9.9b: Jan 7, 2010

  • Added :per_user_locale setting. By default individual users can't pick their own locale. To enable language selection in User/Profile set this option to true.
  • Implemented REST APIs for fetching asset notes.
  • Fixed plugin compatibility issue introduced in previous release.
  • Made some minor CSS tweaks to improve page layout.

0.9.9a: Dec 31, 2009

  • Added rake ffcrm:settings:show task to display current system settings.
  • Fixed password reset submission form.
  • Fixed Ruby 1.9 compatibility issue.

0.9.9 "Capablanca": Dec 28, 2009

This is the first Fat Free CRM release that supports localization. Developers can use locale files to translate Fat Free CRM screens and messages to their native language.

Important: this release updates config/settings.yml file that has to be reloaded. Please run the following commands after you update the source code:

$ rake ffcrm:settings:load RAILS_ENV=production $ rake ffcrm:settings:load RAILS_ENV=development

Other notable changes and fixes in 0.9.9 release include:

  • Added search support when running with Postgres database backend.
  • Improved Ruby 1.9 compatibility. All specs pass with both Ruby 1.8.7 and 1.9.1.
  • Added optional PLUGIN=plugin parameter to rake ffcrm:settings:load task.
  • Streamlined CSS styles to fix text wrapping.
  • Many small tweaks and fixes on Campaign and Opportunity tabs.
  • Fixed time calculations for dashboard activities.
  • Fixed sidebar search in Admin/Users.

0.9.8a: Oct 24, 2009

This is follow-on hotfix release that addresses issues detected in 0.9.8.

  • Fixed rake command failure when installing Fat Free CRM plugins; crm_tags plugin is now fully compatible.
  • Fixed SASS deprecation warnings making it possible to install Fat Free CRM on Heroku again (see this thread for details).
  • Refactored Facebox library to take into account base_url setting (when Fat Free CRM runs from subdirectory).
  • Added support for renamed main and admin tabs in config/settings.yml.

0.9.8 "Lasker": Oct 14, 2009

This release was primarily focused on expanding plugin support in core Fat Free CRM code base, as well as on specific requests received from Fat Free CRM users. Notable changes include:

  • Implemented crm_tags plugin that adds tagging support to Fat Free CRM models.
  • Added full support for deploying Fat Free CRM from web server subdirectory (see instructions in config/settings.yml file).
  • Fixed a bug that caused certain tasks to disappear.
  • Fixed a bug that made it impossible to complete a task with specific due date.
  • Fixed user activity timestamp to reflect UTC time offset.
  • Refactored forms to prevent multiple consecutive form submissions (ex. when inadvertently clicking [Submit] button twice).
  • Added support for creating opportunities with the same name (ex. for different accounts).
  • Deprecated model UUIDs when running with MySQL database backend (MySQL user no longer requires SYSTEM or TRIGGER privileges).
  • Refactored permissions by moving the code from plugin to the core library.
  • Added rake ffcrm:hooks task that shows the list of available Fat Free CRM callback hooks.
  • Made Rails cache core classes in when developing Fat Free CRM plugin (classes are no longer reloaded on each request).
  • Default required Rails version has been changed to v2.3.4 (and Fat Free CRM works fine with Rails 2.3.3 and 2.3.2).

0.9.7 "Steinitz": Sep 6, 2009

This is primarily follow-on and bug fixing release to the previous v0.9.6. Notable new feature is added support for custom tabs which primarily affects Fat Free CRM developers. Other changes include:

  • Fixed user signup vulnerability.
  • Fixed rake ffcrm:setup:admin task to make sure it actually assigns admin attribute.
  • Fixed assigning and revoking admin rights in user administration.
  • Fix to make it possible to run Rake tasks when settings are missing.
  • Search now accepts period and quote characters.
  • Open up "Quick find" on click rather than on mouseover.
  • Suppress terminal echo when asking for admin password in rake ffcrm:setup:admin task.
  • Upgraded Rails Engines plugin (edge 2009-06-16).
  • Plugin registration now accepts tab parameter (see crm_sample_tabs plugin for usage example).
  • Some code refactoring and minor visual tweaks.

0.9.6: Aug 24, 2009

The main focus of this release was to introduce Admin interface and disable unmanaged user signups. Specific changes are as follows:

  • Implemented Admin interface to manage users. This includes creating, editing, and deleting users, as well as approving, suspending, and reactivating user accounts.
  • Added new :user_signup setting setting in config/settings.yml to control user signups. Possible values are: ** :not_allowed -- (default value) users can only be added by system administrator. ** :allowed -- users can sign up and use the system once they have registered. ** :needs_approval -- users can sign up but must be approved before they can use the system.
  • Created rake ffcrm:setup:admin task to create admin user. rake ffcrm:setup now invokes this task by default.
  • Added timezone support. Fat Free CRM captures local time as reported by the web browser and adjusts all time values accordingly.
  • Implemented plugin dependencies to be able to change plugin loading order.
  • Updated settings to allow Fat Free CRM to run from a subdirectory.
  • Added warning about database reset in rake ffcrm:setup task.
Clone this wiki locally