Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-77605

Allow core and plugins to declare services dependencies and report on them




      There is a large number of dependencies of services in moodle, and they change depending on configuration and the plugins installed. Some are very minor like the geoip lookup service which can be done either by installing the GeoLite2 maxmind file locally, or by using an online service. Each service would also declare if it is a client side or server side dependency.

      Each service can also come and go completely depending on config, such as an auth plugin being enabled or not. There might also be some relationship between a service and one or more status checks for that service using the Check API.

      The idea here is to make it really easy to audit the complete list of all services, and show whether the service is satisfied locally / offline or if it was a dependency on a 3rd party domain and if so to show those domains. This metadata can be leveraged in many ways:

      1. Help with documentation and architecture and security compliance
      2. Audit services to see which ones can be swapped out to make the whole system more resilient or scalable, and to reduce its external dependencies
      3. To monitor if the dependencies have changed unexpectedly
      4. Leverage the dependencies to auto configure monitoring of the connection (via the check api)

      A rough collection of the services (WIP)

      • Outgoing Email, and potentially incoming
      • GeoIP lookup service
      • Map rendering service (client side)
      • Moodle HQ updates service
      • Moodle Plugin update service
      • Moodle AMOS language service
      • LTI services
      • H5P service
      • Plagiarism services
      • Repository services
      • Theme stuff, Fonts, icons (client side)
      • Mathjax rendering (client side)
      • Latex
      • Anti virus services
      • Document conversion services (can be internal or remote like google docs)
      • Password strength services
      • Auth plugins, eg ldap, saml




            Unassigned Unassigned
            brendanheywood Brendan Heywood
            1 Vote for this issue
            3 Start watching this issue