Permission entries will exist if you run "Permission defaults" on upgrade page. Some permissions, such as xml_cdr_delete, are disabled by default to keep from "accidentally" deleting something.
Without adding it to the database hence "permission if it exists" as it is stated in xml_cdr.php, you cannot tick the box and have it save that permission in the gui alone, I tried it on a second installation on a separate device as well. Same for archive, this is all in the master branch in case there is any confusion as to which branch I am talking about. While on this I change the protection to true for the superadmin so that I don't accidentally change permissions I deliberately enabled. I don't see where the need to tick Permission Defaults during upgrades is even necessary unless I missed something completely here, if so please advise.
Was the ability for the superadmin to delete records ever a common problem? The superadmin has the power to delete or change lots of things as it is necessary to administer. One of the reasons I like the delete function is for garbage records that occasionally occur from unsuccessful attacks. Having a page or more of these is annoying. FusionPBX is a gui, if one is doing more and more by the command line, then it is more of administering Freeswitch by hand and less with the FusionPBX gui. You want to talk about accidentally deleting records? The fastest way to accidentally delete records is to log into the database and start administering commands to clear records where you find out exactly what they did after the fact. If the gui is operating in this function, you can select them each visually.
In the Master Branch we both lost our ability to delete records with the gui by default as well as administer the database and import one of our daily database backups if needing to restore what we accidentally deleted from the gui as well. Adminer is gone.
As an aside, another thing I do is to have /var/lib/freeswitch on it's own partition and move backups to that folder as well and change the path in variables. This allows one to do a clean installation and have the last number of days worth of database backups as well as any voicemails, recordings and such so long as you do not format this partition, then install FusionPBX/Freeswitch by the Fusionpbx install script. I only mention this because we have backups of the last few or more days of both the database and the relevant files separate from the database in their own tarballs as well.