Skip to content

AireFrame Release Notes

Version: 3.0.0
Release Date: 17th June 2026

Summary of Changes

✨ New Features

  • Linked Data Set Indicator — FRAME-2480
  • Bulk Structural Entity API — FRAME-2541
  • Bulk Subject API — FRAME-2543
  • Optimised Subject Access Filtering — FRAME-2562

⚡ Improvements

  • Bulk Replace Subject Locations — FRAME-2539
  • Flexible Subject Launcher via Custom Field — FRAME-2565
  • Manual Structure Cache Clear Removed — FRAME-2551

🐞 Bug Fixes

  • False Stale Data Warning on Tab Revisit — FRAME-2483
  • Inconsistent User Name Theming — FRAME-2582

Detailed Changes

✨ New Features


Linked Data Set Indicator (FRAME-2480)

Description

Single source data sets that are used within a Linked or Stacked Data Set now display their relationship clearly, rather than showing as "Not Used". This prevents confusion when reviewing data set usage and avoids errors that could occur when attempting to delete a data set that is still in use indirectly.

What this means for you

You can now see at a glance whether a data set is part of a Linked or Stacked Data Set, making it much easier to understand how your data is connected and avoid accidentally removing something that is still in use.

Bulk Structural Entity API (FRAME-2541)

Description

A new bulk upsert API endpoint has been introduced for structural entities, allowing multiple entities to be created or updated in a single request. All operations are wrapped in a transaction so that either everything succeeds or everything is rolled back. Child entities may be included in the same request as their parent, provided they appear after the parent in the array.

What this means for you

Large structural changes, such as setting up a new structural entity tree, can now be applied in one go rather than one record at a time, saving time and ensuring your data stays consistent throughout the process.

Bulk Subject API (FRAME-2543)

Description

A new bulk upsert API endpoint has been added for subjects, enabling multiple subjects to be created or updated in a single transactional request.

What this means for you

Importing or updating large numbers of subjects is now far quicker and more reliable.

Optimised Subject Access Filtering (FRAME-2562)

Description

The subject access architecture has been updated to integrate subjects, groups, and structural entities more closely with the AireFrame data model. This enables filtering to be performed directly within database queries rather than through additional application-layer processing.

What this means for you

This change is primarily an internal architectural improvement and does not introduce any immediate functional changes. It provides the foundation for future performance and scalability enhancements in subject access filtering.

⚡ Improvements


Bulk Replace Subject Locations (FRAME-2539)

Description

It is now possible to replace all subject locations under a particular structural entity in one operation. Both the source and destination location parameters are optional, so you can use this to either add all subjects to a new location, remove them from an existing one, or move them from one to another in a single step.

What this means for you

Moving all students from one year group to another — for example at the start of a new academic year — can now be done in a single bulk action rather than updating each subject individually.

Flexible Subject Launcher via Custom Field (FRAME-2565)

Description

The subject launcher has been updated to support launching a subject using any unique custom field value, via the URL pattern /subject-launcher/[custom_field_key]/[custom_field_value]. This replaces the previous external ID launcher with a more flexible, configuration-free approach.

What this means for you

You can now link directly to a subject's record using any unique identifier you already store, without needing to set up additional configuration.

🐞 Bug Fixes


False Stale Data Warning on Tab Revisit (FRAME-2483)

Description

A stale data warning icon was incorrectly appearing when navigating back to a tab that had been open for a period of time, even though no data had actually changed. The component was using the time of the most recent re-render rather than the time data was first fetched, causing the staleness check to give a false positive. This has been corrected so that the warning only appears when data genuinely requires refreshing.

Inconsistent User Name Theming (FRAME-2582)

Description

The user name display in AireFrame was using a secondary text colour whilst the Portal was using the primary text colour, resulting in a visual inconsistency between the two interfaces. Both now use the correct primary text colour, bringing them in line with each other.