Introduction

Cordra is a highly configurable software system for managing information as digital objects. One primary way to use Cordra is to customize it to meet your feature requirements, and then directly expose it to your API users.

Cordra offers a unified programmable interface across your storage system and indexing system, and manages information logically as digital objects. Digital objects are typed, and Cordra enforces schemas on user-supplied JSON information. It applies different validation and enrichment rules at various stages of a digital object lifecycle using hooks. In addition to JSON, it stores and indexes arbitrary information in the form of payloads. It allots identifiers to digital objects that can be resolved by consumers to learn the location of digital objects wherever the Cordra instances that manage those digital objects are deployed. It authenticates users and enforces access controls via its ACL component that manages users as well as groups as digital objects. You may want to allow your potential users to self-register their accounts in Cordra, or want to provide them personalized recommendations.

Cordra allows users to take snapshots of digital objects. It also allows hashing that could be used for linking between digital objects, not just in a linear order, but also as graphs of objects of defined types.

If you prefer to use Cordra for managing complex applications, and the combination of provided APIs, configurations, and lifecycle hooks are not adequate for enabling desired capabilities, additional operations can be added on the server-side environment so your clients can remain simple.

The aforementioned capabilities can be configured to the most part using types, the Design object, and startup files. By default, Cordra is configured to behave as a Document Repository, but it can be customized to support complex application needs. A glimpse of its customization power is shown in this Medical Records Application. In some cases, instead of directly exposing Cordra’s APIs to your users, you may desire to deploy applications that rely on Cordra, a simple example of which is a OAI-PMH API that librarians rely on for gathering metadata from managed information.

Cordra can be deployed on a single machine or as a distributed system. In a distributed system mode, off-the-shelf load balancers can be used to redirect traffic to the cluster of Cordra nodes. Access and error logs can also be coherently managed.

Management of complex infrastructure requires tools and tutorials related to keys management, distributed sessions management, logs management, user management, administrative interface, storage import and export, and environment migration.

Cordra software is continuously maintained and is offered to the public in open source form.