Description
- Why ?
On some production plateform, some users could not receive new mails.
Investigation prouved that it was due to loops (A => B => A)
- Definition of Done
Given a A => B mapping As an admin When I create a B => A mapping Then the operation fails
Unit tests needs to be written at the RRT level, and at the webadmin routes level for each mapping type (Alias, address, forward, group) with heteronegeous / homogeneous mappings being part of the loop. Domain mappings, Regex needs to be supported as part of theresolution mechanism.
However detecting loops upon domain mapping/alias & regex mapping creation is out of scope.
This validation and its limitations needs to be documented.
- How
Given a B => A mapping being created Attempt the RRT resolution of the target of the mapping (here A) If the result of the resolution contains the source of the mapping (here B) then we detected a loop and should fail
- Outcome
Creation of Address Alias Forward Group mappings is guaranteed to be loop free.