Auditing of developers actions?

Is it possible to create audit trail of all changes made to an application e.g. creates/deletes/edits of all elements (pages, entities, MFs etc) ? We have the Team Server commit history but that only shows comments and related stories. I’ve looked through the app store and nothing jumped out at me.
3 answers

In theory, all the information is on the Team Server. There are ways to determine the differences between two revisions, but they are really convoluted. It is on our roadmap to improve this dramatically, but that will still take a while. Currently, the history form only shows which documents (page, microflow etc) where modified in certain revisions. That information is stored in Subversion metadata and can be retrieved with other tools as well. You will not be able to go down to the level of an entity; it will only report that the domain model as a whole has changed.

Update: There is no easy way to do this. You would have to write a tool that can inspect the .mpr file which is a SQLite database. The contents of documents (and folders etc) is stored in the Units table in the Contents column in BSON format. A quick check to see whether a document is changed is by looking at the ContentsHash column. You can find documents that are added, deleted and modified. You would then need to do a comparison of the two model trees: the original and the modified version. This is not going to be easy.


Hi Arjan, 

Could you elaborate a little bit extra on the other tools? I know the real solution is on the roadmap, but because this can take a while it might be useful that you point in the right direction for people wanting to track changes in the mendix model. I'm assuming that if it's possible to retrieve the team server commits with the model SDK, it will also be possible to drill down the changes on document level. For example if I want to know what happened in a specific commit, I could lookup the changes per mendix document. AFAIK you need to combine Model SDK, Java API like Ockert van Schalkwyk mentioned and SVN to get all the information and combine it in some way. 



I was looking for nearly same thing and found that there is a "model.mdp" file under my project folder deployment directory which stores my model. I converted it to JSON format and tried to compare its versions before and after making changes on my application. Unfortunately, I was not able to work on that file because it does not fit JSON syntax and it is almost impossible to track changes manually.

Arjan, could you state the other tools to retrieve this information?