mod-batch-print
Introduction
Jira link: https://issues.folio.org/projects/MODBATPRNT
GitHub link: https://github.com/folio-org/mod-batch-print
mod-batch-print module is created to handle printed notices in batch format. The mod-sender module has a new channel for printed notices which are sent to mod-batch-print using endpoint /mail. Before the working day starts there is a scheduled job which is fetching all current day single notice print entries and creating one batch file.
mod-batch-print module also have CRUD operations for print entry management
When fetching a list of print entries then the content field will be empty to improve performance. If you need content then get a single entry.
Goals and Objectives
Save single print messages in DB for later use
Create one batch file per day for printing all messages at once
Requirements
Functional Requirements
Module must have /mail endpoint which can accept mod-sender messages
There is CRUD functionality of print items
There is scheduler which is creating daily batch file
Module can be deployed in Folio infrastructure
Non-Functional Requirements
Module is using common vert.x library as base
All module endpoints are protected with permissions
Permissions are handled by Okapi
All endpoints are described in ModuleDescriptor-template.json file
Endpoints are documented with OpenAPI
Technical Design
Architecture Overview
In green color are the things we must add for this to work
Need to update mod-circulation module to handle printed notices https://folio-org.atlassian.net/browse/CIRC-1925
Need to add new channel in mod-sender module https://folio-org.atlassian.net/browse/MODSENDER-66
Need to create new module mod-batch-print
Need to add CRUD operations for print entry management
Need to create /mail endpoint for printed notice handling
Need to create schedule for batch file generation
Component Descriptions
Print Service
Create and handle print entries
CRUD operations
Handle mod-sender message with endpoint /mail
Batch Creation Service
Create single batch file daily including all printed notices by scheduler
API Overview
OpenAPI documentation is available: batchPrint.yaml
Data Models
Data model can be viewed here: schemas
Design Considerations
Module is using org.folio.vertx-lib as base to create Vert.x based application available for multiple tenants and with default health endpoints
Module has CRUD functionality available
Security and Compliance
All module endpoints are protected by permissions
Printed notices can contain sensitive data as name and address
Constraints and Assumptions
Batch file creation schedule is set to every day at 06:01 AM assuming all scheduled notices are processed and working day will start later
Revision History
Version 1.0.0 is not yet released
Appendix
Batch files can be viewed in user interface under Settings/Circulation/Patron notice print jobs