18.3 Release Notes (2/9)

👋 Hello Builders! Version 18.3 of the Airkit platform is out! It's a big release, including the introduction of a new publishing flow to facilitate multi-environment publishing, the removal of the Journey Builder, the ability to test Airscript expressions from any Builder, and much more.

Let's jump right in!

🎉 Added

Journey Builder Removal

In v18.3, Journey Builder is no longer a part of the Studio. Moving forward, defining how Journeys begin can be done constantly in Triggers Builder, and Journeys no longer need to be conceptualized in terms of "Steps".

Multi-Environment Publishing

We've introduced a new publishing flow that allows applications to be deployed to multiple environments at once, and the interface to do so makes the different resources used by the different deployments more explicit. You can read more about this new publishing flow in Publish and Manage Deployments.

Data Masking and Auditing

Introducing the ability to tag sensitive data! Tagging and categorizing information as sensitive prevents it from being seen by developers with insufficient permissions, prevents it from being downloaded insecurely, and allows it to be tracked and audited according to the tag it has been assigned, of which there are three options:

  • PII
  • PCI
  • HIPAA

For more information on tagging data and running Audit Events, see Data Masking and Auditing.

New Application Creation Flow

We've reimagined the initial application creation flow to reduce the number of clicks it takes to start building. All you have to do now is select what you want to build, and if you choose to work from a boilerplate, it will come with all relevant Triggers configured out-of-the-box:

Airscript Console

Now you can test Airscript functions no matter what Builder you're working in!

Near the bottom of the Studio, to the immediate right of the Variable Tree, we've added the Airscript Console, which evaluates Airscript expressions and displays a record of what previous expressions have returned. The Airscript Console has access to all Airscript functions and operators as well as local variables. For testing purposes, it will evaluate local variables as if they have the value assigned to them in the Variable Tree. In the following example, for instance, session.example was evaluated as though it had the value "Hello, world!":

Additional expressions can be tested by entering them to the right of the '>' icon at the bottom of the interface and pressing enter.

Understand the impact of changes to variables, assets, and themes

Using the CTRL/CMD + K shortcut now allows you to search across your application for all usages and move to the definition location for all of the following elements:

  • Variables
  • Assets
  • Theme Variants

Renaming variables found here will update their designation across the application.

Additionally:

  • Variables can now be right-clicked in order to find their usages and jump to their declarations or rename them.
  • Elements such as Connections, Schedules, App Objects, Media, and Themes can be right-clicked to find locations in the app where they can be used.

Control Inspector UI improvements

We've reorganized the UI associated with Inspecting Web Controls. The exact contents of the Inspector has always varied depending on the nature of the Web Control being Inspected, and this reorganization hasn't changed that, so you'll want to check out the Reference Documentation for individual Web Controls if you want to learn more details about how their UI has changed.

One overarching change that has been made to all of them is that Styling is now handled in its own tab, designated Style:

Theme Builder Improvements

We've made some small changes to how themes are conceptualized. In addition to consisting of Variants, themes are also made up of variables, which define default values for colors, sizes, fonts. Variables are now stored in their own branch of the Tree in the Theme Builder. While the Theme Builder comes out-of-the-box with several variables that can be modified, it is also possible to make your own, which allows you do things like keep track of a more detailed color palette, juggle multiple proprietary fonts, and store additional units of time that you might want to reuse in different kinds of Animations.

For a deeper dive into the changes made here, see Theme Builder.

Inline Container

We've introduced a new Container: the Inline Container! This uses the css inline to allow allows elements and Controls to be easily displayed inline, wrapping them together on the Web Page. Among other things, this makes it possible to nest hyperlinks inside of Label text, like so:

New Airscript Expressions

There is a new Airscript function: REVERSE, which takes either a List or a string and returns it in reverse order.

There is also a new Airscript operator: the Null Coalescing Operator (??).

Iframe Control Events

The Embedded External Content Web Control now provides the ability to run an Event from inside the embedded External Content Control to the App, as well as the ability to send data to the iFrame control.

For more, check out Embedded External Content (iFrame).

🛠 Fixes & Updates

  • Uploaded Assets now auto-populate to selected Image component.
  • Custom Data Types and Airdata App Objects now populate with sample data when created it the Variable Tree.
  • Scrolling improvements were made to the Connections Builder.
  • Transform Data Operations now come with a default expression that references the Data Operation immediately above.
  • Using the AirData Data Operation to insert or update Object instances now auto-populates rows.
  • After adding a Text Label, the new Label will automatically come into focus.
  • Container Lists now come pre-populated with sample data and Controls.
  • Dropdown Lists now come pre-populated with sample data.
  • The Connections Builder now longer parses as empty when only the Session Started/Session Ended Events have been modified.