Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Copyright (C) 2018-2023 The Open Library Foundation

This software is distributed under the terms of the Apache License, Version 2.0. See the file "LICENSE" for more information.


The module provides information describing the notification events. The event configuration describes the event name, delivery channels, and contain references to templates for each delivery channel.


Module provides next API:

POST /eventConfig Create new event config in storage
GET /eventConfig Get all event configs or accepted by query
GET /eventConfig/{id} Get event config from storage
PUT /eventConfig/{id} Update event config in storage
DELETE /eventConfig/{id} Delete event config from storage

Pre-populated configuration

Config name Description Required context properites Optional context properties
CREATE_PASSWORD_EVENT Email with link to activate account "user.personal.firstName", "user.username", "link" ""
RESET_PASSWORD_EVENT Email with link to reset password "user.personal.firstName", "link" ""
PASSWORD_CREATED_EVENT Email notification about activated account "user.personal.firstName" ""
PASSWORD_CHANGED_EVENT Email notification about changed password "user.personal.firstName", "dateTime" -
USERNAME_LOCATED_EVENT Email with username "user.personal.firstName", "user.username" ""


   mvn install

See that it says "BUILD SUCCESS" near the end.

Jar Options

For options when running the generated jar file see


Build the docker container with:

  • docker build -t mod-event-config .

Test that it runs with:

  • docker run -t -i -p 8081:8081 mod-event-config

Installing the module

Follow the guide of Deploying Modules sections of the Okapi Guide and Reference, which describe the process in detail.

First of all you need a running Okapi instance. (Note that specifying an explicit 'okapiurl' might be needed.)

   cd .../okapi
   java -jar okapi-core/target/okapi-core-fat.jar dev

We need to declare the module to Okapi:

curl -w '\n' -X POST -D -   \
   -H "Content-type: application/json"   \
   -d @target/ModuleDescriptor.json \

That ModuleDescriptor tells Okapi what the module is called, what services it provides, and how to deploy it.

Deploying the module

Next we need to deploy the module. There is a deployment descriptor in target/DeploymentDescriptor.json. It tells Okapi to start the module on 'localhost'.

Deploy it via Okapi discovery:

curl -w '\n' -D - -s \
  -X POST \
  -H "Content-type: application/json" \
  -d @target/DeploymentDescriptor.json  \

Then we need to enable the module for the tenant:

curl -w '\n' -X POST -D -   \
    -H "Content-type: application/json"   \
    -d @target/TenantModuleDescriptor.json \

Additional information

Issue tracker

See project MODEVENTC at the FOLIO issue tracker.


See the built target/ModuleDescriptor.json for the interfaces that this module requires and provides, the permissions, and the additional module metadata.

API documentation

This module's API documentation.

Code analysis

SonarQube analysis.

Download and configuration

The built artifacts for this module are available. See configuration for repository access, and the Docker image.