Comme nous avions plusieurs problème d’audit sur notre instance DEV sur des modules natifs, nous avons installé une nouvelle instance temporaire pour pouvoir réexporté ces modules (System, Documents…) de la nouvelle instance vers l’instance DEV.
Nous avons cependant remarqué quelque chose. Il y a 2 problèmes d’audit par défaut à la création de cette nouvelle instance :
Ok, les 2 audits seront effacés dans la prochaine release.
Pour supprimer un warning ou une erreur si un de vos paramétrages est un faux positif (un choix fait exprès pour de bonne raison), il faut savoir que le process d’audit utilise une instance particulière nommée audit_XXX donc on peut filtrer sur le nom de l’instance pour changer de comportement pour passer les tests.
Exemple pour ModuleCommit qui est un vrai-faux objet avec des champs logiques et dont le code surcharge le “search” pour ne pas utiliser la base mais le repo GIT et qui n’a donc pas besoin de clé physique. Au niveau du postLoad on a ajouté :
// False positive: AuditTool needs a persistent key
if (this.getInstanceName().startsWith("audit_")) {
ObjectField f = getField("mdl_git_id");
f.setFunctId(true);
f.setColumn("mdl_git_id"); // dummy column = not created in local DB
setFunctId(); // rebuild the full user-key
}