Helsinki 2022 Sprint Notes Released: Distributed Configuration Settings for OJS/OMP/OPS Plugins
In June 2022, The Federation of Finnish Learned Societies hosted a PKP software sprint in Helsinki, Finland. During this sprint, PKP community members gathered to form several groups, with each group tackling a specific task. This is a summary of one such group’s work.
- Dulip Withanage: TIB Hannover and Public Knowledge Project
- Tom Granroth: The Federation of Finnish Learned Societies
- Antti-Jussi Nygård: The Federation of Finnish Learned Societies
- Nate Wright: Public Knowledge Project
This group analyzed the drawbacks of the current configuration scheme for Open Journal Systems (OJS). We conducted an analysis of the requirements, considering plugin extensions and general usability. During the sprint, we looked at other software configuration systems, proposed libraries and strategies that could provide a long-term solution, and prepared a work plan.
This group’s goal was to prepare a technical inventory and a set of proposals for a decentralized system of environmental variable management for PKP products, decoupling it from the current config.inc.php file. To explore the available possibilities and make proposals, we researched existing configuration concepts, PHP libraries and expert interviews.
All file-based custom Open Journal Systems (OJS) configurations are located in the config.inc.php file as key-value pairs. Currently, when upgrading or moving installations using automation tools or scripts, these variables must be replaced with regular expressions or with an older version of config.inc.php.
Replacing config.inc.php may remove new configuration options and ignore newly introduced variables. Providing plugin configuration settings for testing, such as test credentials for a third-party service, is cumbersome because the configuration is centralized.
Currently PKP software stores plugin configuration in a database table. This may serve as the basis for further refinements and extensions to simplify plugin configuration.
A requirement analysis was conducted to understand the implications of the proposed changes, considering security, authorization, compatibility, maintainability and synchronization. The results of this analysis were compiled and shared in the relevant GitHub discussion, to be evaluated further by the development team.
The goal of this work was to lay the foundation for an expertly-suggested and community-approved strategy. The following steps remain before adopting a solution.
- Get feedback from the PKP technical committee.
- Allow OJS software developers and hosting system specialists to comment and provide feedback.
- Get community experts to review and comment on the GitHub discussion.
- Identify stakeholders who can contribute to this development by offering feedback, writing code, performing tests or providing documentation.
- If needed, create a special interest group (SIG).
- Schedule the development work for a future software release.
Our thanks to the Federation of Finnish Learned Societies for hosting the sprint, and to the PKP community, both in attendance at the sprint and elsewhere, for their valuable guidance.
The Distributed Configuration Settings sprint group generated the ideas contained in this blog post, and the post itself was written by Dulip Withanage and edited by Nate Wright and Famira Racy although credit goes out to everyone in the group including Tom Granroth, Antti-Jussi Nygård.
Below: photo taken in Helsinki by PKP’s own Jason Nugent.