FOLIO is a new open source, cloud hostable, app-store based library platform, designed to facilitate collaboration between disparate development teams.
The FOLIO middleware and API gateway. Okapi serves as the foundation layer for managing FOLIO apps and services. For more information, see the Okapi Guide and Reference.
The FOLIO UI toolkit. The Stripes toolkit provides a means of building web applications that expose the functionality of underlying Okapi modules. For more information, see the Stripes Core GitHub repository.
The document Stripes entities: packages, modules, apps and more is a summary of terms used in that context, e.g. component, package, module, app, plugin.
Platform, LSP Base, LSP Extended
The “FOLIO Platform” and the “FOLIO LSP Base” and the “FOLIO LSP Extended Apps” are defined.
FOLIO Technologies and Concepts
Application programming interfaces (APIs) are well-defined interfaces through which interactions happen.
An online portal for obtaining and installing software. FOLIO is designed to support the installation of both free and commercial modules and applications through an App Store.
Bibliographic Framework Initiative (BIBFRAME).
Some starting points are:
- A Gentle Introduction to CQL.
- FOLIO CQL to PostgreSQL JSON converter in Java.
- The CQL-1.2 specification and context sets.
- As SRU 2.0 is OASIS searchRetrieve Version 1.0, then CQL is its Part 5.
- The CQL parser in YAZ.
A CQL example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
For other relevant CQL examples see the first two items above, and the API docs, and the debug output for tests in each backend module.
The basic functions of persistent storage: Create, Read, Update, Delete (CRUD).
Docker is a platform for managing software containers. FOLIO is well-suited for deployment in a Docker environment.
Definition of Done (DoD).
Don’t repeat yourself (DRY).
Electronic resource management (ERM).
Functional Requirements for Bibliographic Records (FRBR).
Integrated Library System (ILS).
Vocabularies that define the format of JSON instances.
JSON Web Token is a JSON-based open standard for creating tokens that assert some number of claims. JWTs are authenticated and encrypted, and used by Okapi.
Library Services Platform (LSP).
MARC (Machine-Readable Cataloging) standards.
Markdown is a simple plain text formatting syntax, used for documentation throughout the FOLIO code.
MongoDB is an open source, schemaless document database.
A pattern for building loosely-coupled, highly available, modular applications. Each component of a microservices-based application is a self-contained service, which communicates with other components over the network using a lightweight protocol. The FOLIO LSP is built using a microservices architecture.
A pattern of software architecture in which a single instance of the software is designed to serve multiple tenants, with appropriate security provisions and data separation. FOLIO is designed from the ground up to operate in a multitenant environment.
NISO Circulation Interchange Protocol (NCIP).
See Okapi explained above.
The Open Library Environment is a community of academic and research libraries collaborating to build open source library management tools. OLE has joined the FOLIO community to help with the development of FOLIO.
PostgreSQL (often called “Postgres”) is an open source enterprise-level relational database.
Resource Description and Access (RDA).
Representational State Transfer architectural style, and RESTful web services, enable interaction between systems using a well-known set of stateless operations and responses.
The RAML Module Builder (RMB) framework, is a special FOLIO module that abstracts much functionality and enables the developer to focus on implementing business functions.
FOLIO is a single-page application (SPA).
Vert.x is a toolkit for building scalable, reactive applications on the JVM. Vert.x is particularly suitable for developing applications using the microservices architectural pattern.
The Node.js module bundler, used to deploy Stripes modules.
A generic term for Web Services Application Programming Interface (see API above).
Z39.50 refers to ANSI/NISO standard Z39.50, and ISO standard 23950 “Information Retrieval (Z39.50): Application Service Definition and Protocol Specification”. The Library of Congress is the Z39.50 Maintenance Agency.