Skip FOLIO Project Navigation

Introduction

When the initial development of a new front-end (client-side) module is established, and snapshot artifacts are being generated by the continuous integration, then it is able to be added to the “snapshot” branch of a relevant Stripes Platform, e.g. platform-complete.

The procedure explained below will install the new frontend module to the platform, and make it available in the folio-snapshot reference environments.

There is a separate procedure to install a new back-end module.

(After the new module has been operating in snapshot reference environments, and an initial release is ready to be made, then instead follow the release procedures.)

Require backend only when ready

The normal process is that a UI module will require interfaces that are provided by back-end modules (declared in the “okapiInterfaces” section of their package.json file). With this, the relevant back-end modules are automatically included.

A UI module could be added, and deliberately not yet require the interfaces of its companion backend module.

However do not later require those interfaces, until that backend module has completed their addition to reference environments.

Otherwise the addition of the frontend module will automatically pull in the backend module before it is ready, and disrupt the daily reference environment builds.

Verify MD and required interfaces

Ensure that this new module’s ModuleDescriptor is deployed to the FOLIO Module Registry.

Then verify that all required interfaces are available. (The Jenkins build of your Platform branch will do this anyway.)

For example, consider the ui-users module. Obtain its MD and extract the “requires” section:

curl -s -S -w'\n' \
  'https://folio-registry.dev.folio.org/_/proxy/modules?filter=folio_users&latest=1&full=true' \
  | jq '.[].requires'

That shows that it requires various interfaces, including users 15.0

Now ensure that each needed interface version is available. One method is to visit the https://folio-snapshot.dev.folio.org/settings/about page.

Another way is to conduct a curl query for each of the required interfaces. (Example ‘curl’ of course needs token and tenant headers.)

curl -s -S -w'\n' \
  'https://folio-snapshot-okapi.dev.folio.org/_/proxy/tenants/diku/modules?latest=1&provide=users%3D15.0'

If there is a non-empty result for each of the required interfaces, then ready to proceed. If not, then investigate further and consult the relevant back-end module developers.

Declare new module

Prepare the Jira ticket to guide the process.

Prepare a new git branch of the platform, based on its “snapshot” branch.

Add the definition of the new module to both package.json and stripes.config.js files.

Push the new branch and ensure that it builds. Send pull request against “snapshot” branch.

Verify deployment

After merge, await the scheduled build of the folio-snapshot reference environments.

Visit the Software versions page of each to verify that the new module is present.