Alloy March 2025 Update
By now, you may have heard about our exciting new Alloy apps! If not, you'll soon have entirely new ways to interact with Alloy and get work done. Each app focuses on a key aspect of Alloy, providing streamlined experiences that only include the features and data needed for the business at hand.
We've been working hard to get the new apps ready for you and are just applying the finishing touches now… stay tuned next week! 👀
Therefore, this month's update is light on new features, though there are some important things to mention. The update took place during the evening of the 27th of March. For a full list of changes, see v2.69 and v2.70 in the Alloy Changelog.
Attribute uniqueness on interfaces ❄️
All attributes have a Unique property. If enabled, all item values for that attribute must be different.
The uniqueness check for interface attributes has changed. When creating/editing an item of a design that implements an interface with a unique attribute, the uniqueness check will compare the supplied value against items of all designs that implement the interface (rather than the single design).
For compatibility reasons, all existing interface attributes have had their Unique property disabled. Don't worry, your designs/interfaces will continue working in the same way as before! Going forward, if this property is enabled on an interface attribute, it will now behave in the manner described above.
Abstract standard paths ➡️ ❓
Back in January, we announced the concept of standard paths for designs/interfaces. A standard path is a handy shortcut to an attribute on a parent or child design/interface, which you'd otherwise have to navigate to using the Pathfinder (over any number of "hops").
API users can now create an abstract standard path on any interface. This is effectively a placeholder shortcut, where you specify the destination design/interface and attribute type, but no path! If a design implements the interface, it must override the abstract standard path with a real path.
This makes standard paths incredibly flexible and open-ended.
For example, imagine a workflow that triggers on a component item and uses a Relation action to fetch its corresponding asset head item. By referencing the ID of an abstract standard path on an interface (instead of a fixed AQS path), the Relation action can reference items of any design that implements the interface, over any number of hops.
In other words, the workflow could trigger on a street light component and fetch the corresponding street light asset it belongs to, whether it's one hop away (column > street light) or multiple hops (lamp > housing > bracket > column > street light).
We'll be including standard paths in our blueprinted modules going forward, to make key connected attributes more visible and easier to select. You'll also be able to define your own standard paths in the new Alloy apps 🙂.