Skip to main content
Version: 2.8

2.8.1 - June 2024

The summer is coming 😎 with a great release of the Olympe Platform ⚡.

The focus has been strongly put on performance and we can't wait to present what we call "Draw in Subscription". Continue reading to know more or jump straight to the end of the page to get the latest version numbers and upgrade instructions.

Major changes

⚡ Faster Draw ⚡

If you work on an instance with many projects, you probably have had the time to admire our colorful spinner turning at load time. Under the hood, opening Draw would immediately load the entire project list, including their bricks, their documentation and anything related to them. However, as many people use Draw in a mutualized way with increasing numbers of projects, loading times could become significant.

With this release, when you open Draw for the first time you'll need to be quick if you want to admire the spinner. It will not load any project but only the instance structure. Only when you "enter" a project will it start to load its content and its dependencies.

This is how it works:

  • When outside of projects, Draw loads only the structure.
  • When entering a project, it loads the projects and its imported projects (recursively) - to ensure it has all the required bricks available.
  • When jumping from a project to another, it loads the new project if necessary (chances it was already loaded as a dependency from the "previous" project) and it keeps the previous project in the cache for 30 minutes.
  • When reloading from inside a project, it loads the structure of all projects + the current project and its dependencies.

🔔 Improved notifications of code as data changes

At the core of the Olympe platform is a powerful notification system enabling the live updates across tabs and between Draw and running applications. When a change occurs somewhere, any other consumer of the edited item is notified.

When the code as data is changed in Draw, notifications are sent in real-time to:

  • other Draw users using the same project
  • any running front-end (UI) application using this code as data
  • any running backend (Service) application using the same code as data

While this notification system was working fairly well, we wanted to improve its performance and robustness:

  1. The notifications caching mechanism responds to and propagates changes faster.
  2. The cache algorithm has been improved to cover some edge cases which were missing or could lead to incomplete notifications.
  3. The notification communication layer has been reviewed to allow streaming of large messages, thus improving speed and reliability.

🛰️ Ability to send non-persisted files back and forth between front-end and back-end

If you handle files in your application and you need to send them across front and back-ends via a remote action (e.g. to store them in SharePoint, to send an image to ChatGPT, to call an API, etc...), you had to persist them before sending. This was due to a protocol limitation which has been removed in this release.

By allowing to send files like any other data type, we have removed an old confusion and make working with files easier and more enjoyable.

In short: you can now safely plug any file as input or output of a Remote Action, and remove and Persist Object brick that you previously added.

⚠️ Breaking changes

Docker images used as base to build your own images to deploy projects on environments have changed. You will need to update your dockerfiles with the following images:

  • frontend: olympeio/frontend-base:stable
  • backend: olympeio/backend-base:stable
  • codeAsData: olympeio/codeAsData-base:stable

The full configuration can be found here.

New bricks

Dynamic Form

This new Visual Component available from the "Commons" extension enables the developer to quickly build a form and retrieve the data entered by users.

The configuration of the form is done using a "Config Data Set". If we use for example:

repo ui

We instantly get a form, providing a JSON representation of its inputs upon clicking on "Save"

repo ui

This component supports a wide variety of input types, such as text, number, checkbox, color, date, email, password, range, time, switch...

On Key Pressed

A brick to listen to keyboard inputs. It outputs a Control Flow if the key is pressed. Can be used with modifier keys such as CTRL, ALT or SHIFT.

repo ui

Switch

Up until now the Switch brick was implemented using code-as-data. Since it's a heavily used and critical brick, we decided to deprecate the "Switch 8" soft-coded version and provide a new coded version of Switch 8, now used by all Switch X bricks. It will lead to improved performance and robustness.

Bug fixes and minor improvements

Draw

  • Constructor, getter and setter bricks generated from Data Types have inputs sorted alphabetically, like in the Data Model.
  • Fixed occurrences of "double-scrollbars" in Chrome.
  • Fixed a race condition in communication with the back-end which caused some UI issues in Draw.
  • Fixed cloning project issue when the project contain Config Data Type instances.
  • Prevent the deletion of Data Type/Config Data Type which are used by other projects.

Marketplace and extensions

  • The Log and Debug Log bricks output the stack trace in case of an error log level.
  • Dialog close icon now works on iOS.
  • Fixed an issue where a workflow instance could be reinitialized.
  • Fixed label display on Dropdown when autocomplete is activated.
  • Fixed background display on labels (all the way to the right).
  • Improved Generate Mock Data brick with a new more context input. Now you can provide some "contextual information" which will be used by the AI engine to generate more relevant mock data.
  • Fixed files generated by Create Excel file brick: they can now be opened on Android.

Use v2.8.1

  • Olympe DRAW v2.8.1 / CODE v9.8.0 / Extensions v2.8.0 / Orchestrator v7.3.0 / Toolkit v1.0.7
danger

Note that @olympeio/toolkit versions 1.0.7 is required to use the snapshooter feature with the Draw >= 2.8.0

To check whether your Olympe environment is on v2.8.1: click on the top-right logo in DRAW; you'll see the current version you are using.

draw version

CODE update

If you are using coded bricks, please update your package.json file with the following dependencies:

// Dev dependencies:
"@olympeio/toolkit": "1.0.7",
"@olympeio/draw": "2.8.1",

// Dependencies
"@olympeio/runtime-web": "9.8.0",
"@olympeio/runtime-node": "9.8.0",
"@olympeio/core": "2.8.0"
// Olympe Extensions
"@olympeio-extensions/...": "2.8.0"