Interoperability of plugins

Describe the problem you would like to solve
Many plugins obtain the same data for a user but store them in different tables in the OJS database, often using also different formats. Furthermore, they often make changes to OJS settings. When enabling multiple plugins, this can lead to a cluttered database and colliding OJS settings which will cause the application to malfunction.

Describe the solution you’d like
I propose to establish key identifiers with fixed formats, that each plugin has to use, to minimise data accumulation and generate more interoperability between different plugins.

Example: ORCID Profile Plugin, OpenID Plugin

These plugins can both obtain authenticated ORCID iDs but they are saved with different identifiers and in different formats:
orcid="https://orcid.org/0000-0001-5727-2427"
vs
openid::orcid="0000-0001-5727-2427"

With the proposed guidelines both plugins would use the same identifier and format orcid="https://orcid.org/0000-0001-5727-2427"

Who will benefit from this feature?

  • plugin developers
  • journal managers
  • all OJS users

Why do we need this feature/guideline?

  • more efficient use of data: data can be collected by one plugin and be used easily by other plugins
  • less cluttered database
  • better functionality and customisability