Feature Wiki

Information about planned and released features

Tabs

Setup - Add status Command

1 Initial Problem

The command-line version of the setup currently is missing means to query the status of an installation, as currently provided by the web based setup. Having such a query is important when updating or monitoring an ILIAS installation, as well as a building block to create further automations for ILIAS installations.

2 Conceptual Summary

The setup gets a new command status that outputs information about the installations status regarding concerns of the setup:

  • Did the installation process run?
  • Are there any database updates to be performed?
    • Which global update step has been performed?
    • Which hotfix update step has been performed?
    • Which custom update step has been performed?
    • Which plugin update steps have been performed?
  • Which configuration is currently used for various components and plugins?
  • and possibly more (see below)
The information is printed in a format that is readable to humans and machines alike: YAML.

The infrastructure for the stats is build similar to the infrastructure for the agents and configurations. That means, that this feature will be open for extension by components and plugins. E.g.: If a migrate command is accepted and implemented it will use the status command to display the status of the available migrations steps. Like the configuration, the information will use the component as the primary c

The output of the command will look as such:

setup:
  is_installed: true
database:
  update_required: false
  update_step: 1337
  hotfix_step: 42
  custom_step: 23

3 User Interface Modifications

3.1 List of Affected Views

If the webbased GUI is improved the migrate command will, by design of the new webbased GUI, be available via the web interface.

3.2 User Interface Details

The webbased GUI will acquire a new item in the Main Bar.

3.3 New User Interface Concepts

-

4 Technical Information

We are looking into the possibility to create a common programmatic interface that allows components and plugins of ILIAS to output status information via this command. This could e.g. be helpful to monitor the connection to the database or lucene.

5 Privacy Information

No new personal information will be stored when implementing this feature. Still, there might be some privacy impact when the status command is hooked to monitoring systems. With the first implementation, the status command outputs a contacts lastname, firstname and email in the `system_folder` section of the output. This might be picked up by some other system and then be stored there. Since the implementation of the command is open for changes in the components or via plugin, there might be similar data provided by other system components. Responsible persons should inspect the output of the `status` command for their installation for further insights.

6 Security Implications

This feature is designed to output central information about an installation on the CLI (and possibly the web based setup as well). This could well contain security relevant information, such as the status of updates on the database. Since there is a go-to location available via this feature to retrieve said information, the implementation of this feature will allow an attacker to easily retrieve relevant information. This is similar to the current situation in the web based setup, where according information is provided. On the other hand, this feature will improve the possibility to automatically monitor the state of an installation, which has the potential to improve the security of an installation.

7 Contact

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

9 Discussion

Schmid, Fabian [fschmid] 2020-08-03: I like and support this idea very much and would like to make just two comments:

  • as far as i understand it, the status information is collected ad-hoc when the command is called. this means that the collection of status information in the components should be as lightweight as possible so that the overall query does not have a big impact on the performance of ILIAS.
  • we would like to discuss if a keyword that is common for all components could e.g. display the status of the component or give a hint that the component needs attention. this could facilitate the integration into monitoring systems.

JourFixe, ILIAS [jourfixe], 03 AUG 2020 : We highly appreciate this suggestion and schedule the feature for ILIAS 7.

10 Implementation

The feature is implemented as described and available for use in all interested components.

Test Cases

Test cases completed at 2020-10-28 by Klees, Richard [rklees]:

  • C42273 : `status`-Kommando vor Installation ausführen
  • C42274 : `status`-Kommando nach Installation ausführen
  • C42274 : `status`-Kommando nach Code-Update ausführen

Approval

Approved at 2020-10-28 by Klees, Richard [rklees]

Last edited: 23. Nov 2020, 13:19, Klees, Richard [rklees]