eclipse-apoapsis / ort-server

A scalable server implementation of the OSS Review Toolkit.
https://eclipse-apoapsis.github.io/ort-server/
Apache License 2.0
17 stars 8 forks source link

Admin configuration for available ORT plugins #501

Open mnonnenmacher opened 3 months ago

mnonnenmacher commented 3 months ago

Currently, the used ORT plugins like package managers, advisors, scanners, or package curation providers can be freely configured via the API when creating an ORT run. This is problematic because:

The current solution to this issue is the parameter validation script executed by the config worker. This script allows to modify any incoming ORT run requests to set default values or replace or remove values. While this approach is very flexible it has also some downsides:

To improve the situation the API should be changed to allow the server admin to configure the available tools, and to configure which organizations have access to which tools. This would allow to add API endpoints to requests the available tools and also to implement an admin UI for the configuration.

With the example of advisors, this is how it could work:

Currently, the advisors can freely be configured via the advisors and config properties of the AdvisorJobConfiguration. The config property exposes ORT's PluginConfiguration object which can for example allow to configure the URL of an advisor.

Instead, let the admin configure a list of available pre-configured advisors that the users can choose from:

sschuberth commented 3 months ago

Just sharing my thoughts how this should work from a UI perspective: An admin of an ORT server installation should be able to see all e.g. ORT advisor plugins that are available on the classpath in a list, and from this list the admin should be able to select which of these advisors are made available for each organization. The API should support this UI requirement.

mnonnenmacher commented 3 months ago

admin should be able to select which of these advisors are made available for each organization.

In addition to that it should also be possible to configure the plugin options and to have multiple different plugin configurations for the same plugin. This would be required, for example, to configure different FossId instances for different organizations.

An exception to that should be the package managers, here it should still be possible for users to configure them via the .ort.yml file (and probably this is good enough and there is no need to duplicate those configuration options in the API like it is currently the case).