Skip to content

2023.1 – Hvannadalsnjúkur

⚠️   Breaking Changes

The new search of the web client requires you to do a manual re-index after upgrade. This is done using limefu.

Python upgrade. Follow the installation guide.

⚡ Features

⏩   Faster Save

We added the possibility to turn of database customizations on save. This will reduce the complexity and database traffic when saving objects. The benefits are:

  • Faster save

  • Reduced risk of deadlocks in the database

  • Less load on the database

This feature can be enabled with the feature flag run_sql_customizations_on_update set to false. It will then disable these SQL customizations:

  • csp_beforeupdate, csp_afterupdate, csp_afterdataupdate and csp_afterupdatecompleted.

  • SQL for update.

  • Update if relation has changed.

The main replacement at the moment where logic should be moved instead is Custom Limeobject.

👤   Users and groups in Lime Admin

Users and Groups are now managed in Lime Admin. Hold on to your hat because it has never been smoother nor faster to work with Users and Groups in CRM!

You will be able to do everything you can do in LISA for Users and Groups, such as:

  • Create users

  • Create groups

  • Add users to groups

  • Set passwords

  • Create API users and API keys

  • Deactivate and delete users

  • and more

Read more in our docs.

With this new feature, we also have the possibility to do all of these things via our API. Click User menu ➡ API Documentation. 🤘

The search which is used by the web client is faster, more reliable and future-proof. We are now using Elastic 7 instead of Elastic 5.

We have crushed a few bugs and doing indexing in a better fashion. Re-indexing is faster and not necessary to do as often. This means that if a property (also called field) on a limetype (table) is changed, deleted or added in LISA, a reindex of that limetype is NO LONGER required.

📅   User Preferences: Date Formats (beta)

Select how you want to present time and dates. For example 2023-03-31 or 31.03.2023 for dates and 13:37 or 1:37 PM for times.

Enabled using feature switch useUserPreferences

📝   New to-do workflow (beta)

We have a new, smooth and lean to-do workflow ready for you. Gone are the big modals with too many choices.

Some of the new features

  • New postpone component. Fast, light and smooth. 😻

  • Quick note. Quickly add a history note with minimum amount of clicks. 💥

  • Mark as done with the option to Add next todo from a snackbar. No big modal that you need to dismiss every time. 🤘

  • When adding the new todo, we use the normal form. Which means: same layout, same features, auto-attach, hide fields, etc. works. 🙏

  • Add next todo from button in widget slot. If you want more than the Add next todo in the snackbar, you can add a button called Add next todo to the card, that's always present for done to-dos. ✅

Enabled by setting the feature switches useNewMarkAsDone and useNewTodo set to true. And add the web component limec-quick-note to the To-do card.

🍬   Some small goodies

  1. Possibility to add prepare_update() hook for Custom Limeobject, which runs before the database transaction starts. Which could reduce the risk of deadlocks in the database when saving.

  2. Lime Admin has received some love and care. A better code editor and much more compact layout are two much requested features.

  3. Lime Admin now works on phones. If you're on the run and need to add a column to a table view -- now you can.

  4. Bulk update turned on everywhere. Previously, you needed to switch Bulk update on for each lime type. Now, Bulk update is available for all lime types by default. You can inactivate it for certain lime types or user groups if you wish.

  5. Navigate to your profile (coworker) card via the user menu.

  6. Set default filter set for explorer (to-do) widget using the parameter filterId.

🐞   Bugfixes

  • Date picker for weeks looks different second time opened.

  • Text is column filters gets deleted for relation fields.

  • Separate settings for Global Search: one for The Search and one for relation fields.

  • Option queries should not be applied to column filter pickers.

  • Slow relation picker and wrong results.

  • Save via web component should only save specific fields.

  • Avoid loading web components twice

  • Sales pipe widget having proper translations for Finnish.

  • Variant not working when variant field is "a relation away".

  • "Clear column filter" redirects to start page

  • SUM in tables not working properly

  • You can't save a filter when using "show connected"

  • Content in tabs does not load until you press 🔃

  • Fields that should be read-only due to policies are not read-only

  • Users can mark todo-s as done even though they only have read access

  • Options that are not updated does not show up when searching

  • It is now possible to login even if you are a member of 100+ groups

  • Tasks triggered by API-keys now get the database default language, previously they reused the language they had last time. But if that language had been disabled they got incorrect data model information.

  • The system is now much faster to rebuild its cache when a table is changed in LISA.

  • SCIM once again refreshes member cache when groups members are updated. This was a regression in Rysy.

  • SCIM doesn't update databasetimestamp (which invalidates most internal caches) unless it has too.

  • Performance has been slightly improved when saving relations between objects.

  • System is better at detecting when a sql-on-update customization isn't working and abort the entire save operation.

  • The [key] column in [sys_data] is now much bigger allowing addons to be much more specific when saving user data.

  • Calls to /ldc/LDC.Database/ExecuteBatch can no longer save the updates if something else goes wrong.

⚙️   Included services and frameworks

  • LDC - 12.9.1893

  • LISA - 12.8.35

  • Elastic Search - 7.17.9

  • Java Development Kit (JDK) - 8u111

  • Ngnix for Windows - 1.23.3.1 SnapDragonfly

  • NSSM - 2.21-134

  • WinSW 2.12.0

  • Microsoft ODBC Driver 18 for SQL Server (MSODBCSQL18) - 18.0.1.1

  • Microsoft Visual C++ 2015 x86 Redistributable (VC Redist) - [14.34.31938.0]{.mark}

  • Microsoft Visual C++ 2015 x64 Redistributable (VC Redist) - 14.0.23026.1

  • Microsoft Visual C++ 2010 x86 Redistributable (VC Redist) - 10.0.40219.325 (Required by Nginx For Windows)

  • Microsoft OLE DB Driver 19 for SQL Server

  • Erlang OTP - 25.0.2

  • RabbitMQ Server - 3.10.5

  • Microsoft Handle (sysinternals) - 5.0

Erlang and RabbitMQ needs to be manually uninstalled to get upgrade. Check version first, if it's the same versions installed no action is needed. It's optional to upgrade. If upgrading, both Erlang and RabbitMQ needs to be upgraded. Instructions can be found here: Uninstall Erlang and RabbitMQ when doing Lime CRM Server upgrade

Changelog

Python 3.11

Lime CRM now requires Python 3.11 on-premise. The new python version must be installed before running the installer. Any pre-existing Python 3.7 should be left where it is.

The installer uses the py launcher to make sure its starting Python 3.11, even if 3.7 is before it in the PATH.

The venv created for Lime CRM is now called lime_crm_venv and is created by Python's built in venv module, previously it was created by virtualenv and called Python3.

Solutions must be built for python 3.11 before they can be installed.

Elastic Search 7

This release comes with Elastic Search 7 only. Previously Elastic Search 5 was used.

The new version enables many optimizations and is used slightly different. More detailed info can be found here.

Important information:

  • Prior to creating a new search index, it is necessary to manually delete the previous data directory (%LIME_HOME_PATH%\Elasticsearch\data) associated with ElasticSearch 5. Otherwise, old indexes built for ElasticSearch 5 will remain on the server and take up disk space and interfere with the new installation.
  • Please verify that there is no globally defined JAVA_HOME system environment variable in your system configuration. If such a variable exists, kindly remove it to ensure proper functionality (the installer will fail if this variable is set). For instructions on modifying system environment variables on a Windows computer, please refer to the following external resource: Modifying Environment Variables on Windows

Service Names

Some of the services installed by Lime CRM has changed names in this version. Further the import- and task handler services has been split into two services each.

Lime services (2023.1):

  • Lime CRM Event Handler (lime-event-handler)
  • Lime CRM Import Service 1 (lime-crm-importer-1)
  • Lime CRM Scheduler (limecrm-scheduler)
  • Lime CRM Search Indexer (lime-crm-search-indexer)
  • Lime CRM Server Administration (llab-lisa)
  • Lime CRM Task Scheduler Service (lime-task-scheduler)
  • Lime CRM Task Service 1 (lime-task-handler-1)
  • Lime CRM Webfront (lime-crm-webfront)
  • Lime CRM Webserver (lime-crm-webserver)

Lime Component Services (2023.1):

  • COM+ Applications → Lundalogik Data Components

Service Wrapper

We have updated all our Python services to be run as a service with WinSW. This is a change compared to previous versions where some services were installed via a python win32 library from lime-core and some using NSSM.

WinSW is installed in C:\Program Files (x86)\Lundalogik\LIME Pro Server\Lime Services. There is one exe and xml for each service. These files are not meant to be edited and will be overwritten by the installer.

Service Logging

The logging for all Python services is now written to file directly from lime-core, previously it used stdout and was written to file by nssm. This has the benefit that they can all be configured in the same way.

Read more about the logging configuration.

Lime Pro Command Prompt

The convenient command prompt on the desktop now has access to both limefu and lime-project at the same time without having to activate any extra venvs.

SQL Drivers

New SQL Driver for LDC - Microsoft OLE DB Driver for SQL Server

In this version of Lime CRM, we have updated the SQL driver. Previously, the SQL Server Native Client was used. But from now on, LDC uses the Microsoft OLE DB Driver when connecting to the SQL server.

Why are we upgrading the driver?

The SQL Server Native Client has been removed from SQL Server 2022 (16.x) and SQL Server Management Studio 19 (SSMS) and is no longer recommended to use by Microsoft.

Celery

The task handler, task scheduler and importer are Celery applications. Celery has not received the necessary patches from its maintainers to enable all its features when running Python 3.11 on Windows yet so in this release we opt to run in threads connection mode.

Web Server

New WSGI server

Lime CRM Webserver is a python based WSGI Server. We have changed the WSGI server that Lime CRM is run with from Cheroot to Waitress.

Nginx

  • Nginx has been updated to version 1.23.3.1.
  • The endpoint /nginx_status/ is no longer externally accessible.
  • TLS (https traffic) is terminated in the nginx proxy. In previous versions of Lime CRM, TLS was terminated in the Web Server.

RabbitMQ

Newer versions of RabbitMQ requires the program Handle.exe to work properly. This software is automatically installed when you install this version of Lime CRM Server.

What is Handle?

Handle is a utility that displays information about open handles for any process in the system. You can use it to see the programs that have a file open, or to see the object types and names of all the handles of a program. Read more here

Long Paths

The installer now enables LongPathsEnabled in the registry.

Included services and frameworks

Below is a list as originally shipped with 2023.1:

  • LDC - 12.9.1893
  • LISA - 12.8.35
  • Elastic Search - 7.17.9
  • OpenJDK 19.0.2
  • Ngnix for Windows - 1.23.3.1 SnapDragonfly
  • NSSM - 2.21-134
  • WinSW 2.12.0
  • Microsoft ODBC Driver 18 for SQL Server (MSODBCSQL18) - 18.0.1.1
  • Microsoft Visual C++ 2015 x86 Redistributable (VC Redist) - 14.34.31938.0
  • Microsoft Visual C++ 2015 x64 Redistributable (VC Redist) - 14.0.23026.1
  • Microsoft OLE DB Driver 19 for SQL Server
  • Erlang OTP - 25.0.2
  • RabbitMQ Server - 3.10.5