mod-batch-print
- Introduction
- Goals and Objectives
- Requirements
- Technical Design
- Constraints and Assumptions
- Revision History
- Appendix
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