Skip to content

Backend: Enforce 50 paths limit on include:rules:exists

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Summary

While implementing the rules:exists:paths subkey in !149326 (merged), we discovered that job:rules:exists has a 50-path/pattern limit enforced but include:rules:exists does not. The limit is already documented, but some users may have unknowingly exceeded 50 paths when using rules:exists in include.

To avoid a breaking change for those users, we decided to temporarily introduce the metadata option disable_simple_exists_paths_limit in !149596 (merged). This would allow the behaviour of include:rules:exists to remain the same before and after the introduction of the new subkeys.

NOTE: To clarify, the 50-limit is only disabled on the simple version of include:rules:exists, i.e. when specifying exists: directly as an Array. However, the 50-limit is enforced when exists: is specified as a Hash with subkey paths:.

Further context: See #386040 (comment 1863080059) for details.

Proposal

Remove support for disable_simple_exists_paths_limit in the applicable exists/rules Entry config classes. Ensure the 50-limit is enforced on the simple version of include:rules:exists.

It's recommended to roll out this change behind a Feature Flag. We do not need to wait for a major milestone per #386040 (comment 1869207122).

Edited by 🤖 GitLab Bot 🤖