Limitations - SUSE/aimaas GitHub Wiki
While the architecture specs define high-level requirements for this abstract and generic tool we might want to disallow certain actions, concepts, etc. in order to keep it sane.
Attribute Definitions
Changing the data type of an attribute
While such a change might work in certain directions (e.g. int
to float
or anything to str
) it might not in others. Providing a single default value for all entities in a schema might also not be the desired behavior.
Therefore, we will not support this. Type conversions should be performed by a client (manually or automated) and results stored in a new attribute.
Changing an attribute definition from a single value to a list of values (and vice versa)
While the transition from a single value to a list is unambiguous and might be easy to implement, the same is not true for the other direction. In addition, both changes would constitute an API change, that is not backwards compatible.
Therefore, we will not allow this. However, users will be able to work around this limitation by
- adding a new attribute of the desired type,
- deleting the old attribute and
- renaming the new attribute to the old attribute's name
Unique list of values
Attribute definitions allow setting a unique
flag to enforce that the values of an attribute are unique for a schema. For multi-valued attributed, such a constraint is difficult to implement and does not make much sense.
Therefore, the unique
constraint will only apply to single-value attributes. However, values in a multi-valued attribute are prevented from being duplicated.
Change Requests
One exclusive request per entity/attribute
In the architecture specification it said:
It should be possible to prevent the submission of change for a value, for which another pending review exists.
After careful deliberation this limitation might be counter-intuitive for users. Therefore, it was decided to drop this limitation.