Support Mirror Properties for many-to-many Relationships as well
complete
Guillaume Hanique
Context
With a one-to-many Relationship in Blueprint A to Blueprint B, one can add a Mirror Property. If an Entity in A is related to an Entity in B, it will show that property of B in A. If that property in B is a String, it will appear in A as a String; if it is a Number in B, it will display as a Number in A.
In Port a Property can have a number of Data Types, among which String, Number, and DateTime. But a Property can also be an Array of Strings, an Array of Numbers, or an Array of DateTime.
Request
Make it possible to create Mirror Properties on many-to-many Relationships as well.
With a many-to-many Relationship in Blueprint A to Blueprint B, one can add a Mirror Property. If an Entity in A is related to Entities in B, it will show a list of values of that property of B in A. If that property in B is a string, it will appear in A as an Array of Strings; if it is a Number, it will display as an Array of Numbers..
Edge Cases
- If the Property in B is already an Array of Something, there is an issue, because that would become an Array of an Array of Something in A, which is a data type that Port currently doesn't support.
- With Relations there is a higher potential for a large number of items that would end up in the Mirror Property in A.
- Currently Port only supports Arrays of Strings, Numbers, and Objects. That may limit the data types for which a Mirror Property for a many-to-many Relationship can be created.
Gur Shafriri
complete
Done - You can now mirror properties via one-to-many relations.
Note that the resulting array is a "clean" list of existing properties. This means that it is flattened in case there are nested arrays, and nulls are dismissed.