2. Turtles Overview

2.1. Turtles Concepts

YAML

A structured data format, like XML or JSON.

YAML configuration object

A YAML object that describes the an entity and its configuration, using a specified vocabulary. A YAML file contains one or more YAML configuration objects.

Plugin set

A code repository containing the source code and unit tests of one or more LOCKSS plugins.

Plugin set builder

A code build process that is used to compile and package the plugins in a plugin set.

Plugin set definition

A YAML configuration object describing a plugin set and its characteristics, including characteristics needed by its builder. See Configuring a Plugin Set, Plugin Set Definition Reference.

Plugin set catalog

A collection of one or more plugin sets.

Plugin set catalog definition

A YAML configuration object describing a plugin set catalog. See Configuring a Plugin Set Catalog, Plugin Set Catalog Definition Reference.

Plugin registry

An on-disk directory tree served by a Web server, to make LOCKSS plugins available to the nodes of a LOCKSS network.

Plugin registry layer

A subdivision of a plugin registry. Some LOCKSS plugin registries have a single layer (traditionally named production), and many have two (traditionally named testing and production, with the former serving for plugin development and/or content processing purposes before the corresponding plugins and/or content are made available to the latter). There can be more layers and they can have arbitrary names.

Plugin registry definition

A YAML configuration object describing a plugin registry and its characteristics, including its layers. See Configuring a Plugin Registry, Plugin Registry Definition Reference.

Plugin registry catalog

A collection of one or more plugin registry definitions.

Plugin registry catalog definition

A YAML configuration object describing a plugin registry catalog.

Plugin signing credentials

Elements needed to cryptographically sign plugins. Currently, this includes a signing keystore and a signer identifier from the keystore.

Plugin signing credentials definition

A YAML configuration object describing a user's plugin signing credentials.

Building plugins

Producing JAR files out of the source code of LOCKSS plugins from a plugin set, and cryptographically signing them with given plugin signing credentials.

Deploying plugins

Putting the JAR files of built LOCKSS plugins in one or more plugin registry layers, making them available to LOCKSS nodes configured to use the corresponding plugin registries.

Releasing plugins

Building then deploying plugins.

2.2. Turtles Operations

Turtles operations fall into three categories:

2.2.1. Turtles Plugin Building Operations

Turtles has two operations that are concerned with building plugins:

Operation

Command Line

API

Build plugins

turtles build-plugin

lockss.turtles.app.TurtlesApp.build_plugin()

Release plugins [1]

turtles release-plugin

lockss.turtles.app.TurtlesApp.release_plugin()

2.2.2. Turtles Plugin Deployment Operations

Turtles has two operations that are concerned with deploying plugins:

Operation

Command Line

API

Deploy plugins

turtles deploy-plugin

lockss.turtles.app.TurtlesApp.deploy_plugin()

Release plugins [1]

turtles release-plugin

lockss.turtles.app.TurtlesApp.release_plugin()

2.2.3. Other Turtles Operations

Other Turtles operations include:

Operation

Command Line

API

Copyright statement

turtles copyright

lockss.turtles.__copyright__

Software license

turtles license

lockss.turtles.__license__

Subcommand tree

turtles tree

n/a

Version number

turtles version

lockss.turtles.__version__


Footnotes