FOLIO is a new open source, cloud hostable, app-store based library platform, designed to facilitate collaboration between disparate development teams.

This glossary defines some terms to assist developers. Some other relevant documents are: Acronyms, Glossary.

FOLIO Components

Okapi

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.

Stripes

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.

Stripes entities

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.

FOLIO Technologies and Concepts

API

Application programming interfaces (APIs) are well-defined interfaces through which interactions happen.

App Store

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.

AWS/ECS

Amazon Web Services and the Amazon EC2 Container Service is a cloud-based application deployment platform from Amazon. FOLIO is designed to play well in the cloud.

BIBFRAME

Bibliographic Framework Initiative (BIBFRAME).

CQL

Contextual Query Language (CQL). It was previously known as Common Query Language, and that is not to be confused with the OGC language of the same name.

Some starting points are:

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.

Docker

Docker is a platform for managing software containers. FOLIO is well-suited for deployment in a Docker environment.

DRY

Don’t repeat yourself (DRY).

ECMAScript

ECMAScript is the formally standardised version JavaScript. The Stripes Toolkit is written in ES6, a modern variant that introduces several new facilities.

FRBR

Functional Requirements for Bibliographic Records (FRBR).

ILS

Integrated Library System (ILS).

JSON

JavaScript Object Notation (JSON) is an open-standard format that uses human-readable text to transmit data objects consisting of lists, collections and attribute–value pairs.

JWT

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.

LSP

Library Services Platform (LSP).

MARC

MARC (Machine-Readable Cataloging) standards.

Markdown

Markdown is a simple plain text formatting syntax, used for documentation throughout the FOLIO code.

MongoDB

MongoDB is an open source, schemaless document database.

Microservices

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.

Multitenancy

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.

NCIP

NISO Circulation Interchange Protocol (NCIP).

Node.js

Node.js is a JavaScript runtime for deploying JavaScript code.

NPM

The Node.js Node Package Manager - a mechanism for distributing packages of JavaScript code, used by Stripes.

OLE

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

PostgreSQL (often called “Postgres”) is an open source enterprise-level relational database.

PoC

Proof-of-concept (PoC)

RAML

RESTful API Modeling Language - a language for the definition of HTTP-based APIs. Okapi module APIs (including the API of Okapi itself) are defined in RAML files and schemas.

RDA

Resource Description and Access (RDA).

React

React is a JavaScript library for building user interfaces.

Redux

Redux is a state container for JavaScript. Stripes uses React and Redux for building stateful JavaScript web applications.

REST

Representational State Transfer architectural style, and RESTful web services, enable interaction between systems using a well-known set of stateless operations and responses.

Solr

Apache Solr.

SRU

Search/Retrieve via URL (SRU). Version “SRU 2.0” is “searchRetrieve Version 1.0, OASIS Standard”.

Vert.x

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.

Webpack

The Node.js module bundler, used to deploy Stripes modules.

Z39.50

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.