Application Configuration Reference

app_mode

Application mode.

One of prod, test or dev. prod is normal running mode. ‘test’ is used for running test suites. dev is similar to normal mode but with reload and debug enabled.

data_dir

Base data directory.

This contains both volatile files such as PID files, and persistent ones, such as resource data. LDP-NRs will be stored under <basedir>/ldpnr_store` and LDP-RSs under ``<basedir>/ldprs_store.

If different data files need to be running on different storage hardware, the individual subdirectories can be mounted on different file systems.

If unset, it will default to <lakesuperior package root>/data.

uuid

Configuration for binary path and fixity check generation. The hash is a checksumn of the contents of the file.

algo

Algorithm used to calculate the hash that generates the content path.

This can be any one of the Python hashlib functions: https://docs.python.org/3/library/hashlib.html

This needs to be sha1 if a compatibility with the Fedora4 file layout is needed, however in security-sensitive environments it is strongly advised to use a stronger algorithm, since SHA1 is known to be vulnerable to counterfeiting: see https://shattered.io/

blake2b is a strong, fast cryptographic alternative to SHA2/3: https://blake2.net/

store

Data store configuration.

ldp_rs

The semantic store used for persisting LDP-RS (RDF Source) resources.

MUST support SPARQL 1.1 query and update.

layout

Store layout.

At the moment, only rsrc_centric_layout is supported.

referential_integrity

Enable referential integrity checks.

Whether to check if the object of a client-provided triple is the uri of a repository-managed resource and veify if that exists. if set to false, properties are allowed to point to resources in the repositoy that do not exist. also, if a resource is deleted, inbound relationships may not be cleaned up. this can be one of False, lenient or strict. False does not check for referential integrity. lenient quietly drops a user-provided triple if its object violates referential integrity. strict raises an exception.

Changes to this parameter require a full migration.

ldp_nr

The path used to persist LDP-NR (bitstreams).

This is for now a POSIX filesystem. Other solutions such as HDFS may be possible in the future.

layout

See store.ldp_rs.layout.

pairtree_branch_length

How to split the balanced pairtree to generate a path.

The hash string is defined by the uuid.algo parameter value. This parameter defines how many characters are in each branch. 2-4 is the recommended setting. NOTE: a value of 2 will generate up to 256 sub-folders in a folder; 3 will generate max. 4096 and 4 will generate max. 65536. Check your filesystem capabilities before setting this to a non-default value.

Changes to this parameter require a full migration.

pairtree_branches

Max. number of branches to generate.

0 will split the string until it reaches the end.

E.g. if the hash value is 0123456789abcdef01234565789abcdef and the branch length value is 2, and the branch number is 4, the path will be 01/23/45/67/89abcdef01234565789abcdef. For a value of 0 it will be 01/23/45/67/89/ab/cd/ef/01/23/45/67/89/ab/cd/ef. Be aware that deeply nested directory structures may tax some of the operating system’s services that scan for files, such as updatedb. Check your system capabilities for maximum nested directories before changing the default.

Changes to this parameter require a full migration.

messaging

Messaging configuration.

routes

List of channels to send messages to.

Each channel must define the endpoint and the level parameters.

handler

Output handler. Currently only StompHandler is supported.

active

Activate this route.

If False, no messages will be emitted for this route.

protocol

Protocol version. One of 10, 11 or 12.

host

Host IP address.

port

Host port.

username

User name for authentication.

Credentials are optional.

password

Password for authentication.

destination

Message topic.

formatter

Message format: at the moment the following are supported:

  • ASResourceFormatter: Sends information about a resource being created, updated or deleted, by who and when, with no further information about what changed.
  • ASDeltaFormatter: Sends the same information as ASResourceFormatter with the addition of the triples that were added and the ones that were removed in the request. This may be used to send rich provenance data to a preservation system.