4
PermissionSets are currently defined using XML files, which have several problems:

1. They still use IDs and basically expect you to remember the IDs of every table by memory, if you want to quickly review permissions.
2. There is no autocomplete when selecting the IDs.
3. When entering an ID there is no way to check which tables are missing in the file, nor whether the ID you are entering is already in the file, unless you manually search the complete file (very easy, specially in projects with 100+ tables).
4. There are no validations while editing the file. You get a message informing of the permission XML files found when compiling, but it is easy to miss and, specially, if you make a mistake when editing an existing file, it is very easy to miss that one of the permission sets is not being logged in the console when compiling.
5. There is a VS Command that autogenerates the file, including permissions for codeunits, pages, etc... even though those permissions will never make a different, because BC default permissions grant access to all objects. What a great way to trick new BC developers into doing the totally useless job of assigning permissions to those objects!

It would be nice if you adopted a new file format, either keeping xml or using json, that:

1. Warned you if a table is not included in any of the permissionset files.
2. Warned you if no permissionsets exists (and AppSourceCop is enabled).
3. Used named tables instead of IDs.
4. Only supported tabledata permissions.
5. Validated the contents of the file.
6. Supported autocomplete.
Category: Development
STATUS DETAILS
Completed
Ideas Administrator

Thank you for this suggestion! We have reworked permissionset (and entitlements) in 2021 Wave 1, moving definition to AL instead of XML files, with the added benefit of better tooling/compiler support. The old XML files are still supported on-prem for v18 and in a transition period (using a server config), along with tools for converting between the formats. Thus closing this as completed.

Best regards,
Business Central Team