Enterprise Auditing of Modules?

1
Is there a way to query all of the applications in our company to find out which marketplace modules are in use in each of them? We got an email from Mendix about the pending deprecation of the "Email Module with Templates" and we have a number of applications built by a number of developers. I'm trying to figure out a way to figure out which of our apps are actually affected by this. Any help would be appreciated! Thanks!
asked
2 answers
0

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!

answered
0

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);
}

 

answered