Hi Shane,
I think this is a valid question. From what I know, there are a few options available. The first thing that comes to mind is using the Platform SDK and building a ‘module scanner’ for all your applications. If your company uses the SDK already, this could be a relatively small investment.
https://docs.mendix.com/apidocs-mxsdk/mxsdk/
Alternatively, a few paid alternatives can do something like this. For example, ACR is able to provide an overview of the existing modules in your application, including the version they are on and if this is the latest available version in the Marketplace.
https://marketplace.mendix.com/link/component/114669
Potentially, there are more existing solutions out there. Hopefully, this helps!
I'm at a client with around a hundred Mendix apps. Like Jeroen says, we created an SDK script to get this information.
This seems to be the relevant part of the script, where we get all modules and their app store version and create a JSON structure for it (note: you will still need to write a bit of code to provide a model to this function).
var output = '';
async function getModules(model) {
output = '\n{\n"appname": "' + model.workingCopy.metaData.name +
'",\n"appid": "' + model.workingCopy.metaData.projectId +
'",\n"modules":\n[';
model.allModules()
.filter(module => module.fromAppStore === true)
.forEach(module => output +=
'\n{\n"name": "' + module.name +
'",\n"appStoreVersion": "' + module.appStoreVersion +
'",\n"appStoreGuid": "' + module.appStoreGuid + '"\n},');
output = output.slice(0, -1);
output += ']}';
console.log('Done scanning ' + model.workingCopy.metaData.name);
}