Thomas Dupont fa78bc6856 feat: add a process-/thread-safe file-based ResourceLocker
test: unit test succeeds

fix: not quiting loop when releasing unexisting lock

refactor: pull wait() function into TimerUtils

feat: store all locks inside a single lock folder

feat: use md5 hashing for filepath hashes

test: coverage back to 100%

fix: store locks in proper .internal/locks folder
feat: reworked tryfn

test: coverage back to 100%

buidl: package json types next to lib

style: linting

dos: add more documentation to Locker classes

refactor: SingleThreadedResourceLocker -> MemoryResourceLocker

refactor: MultiThreadedResourceLocker -> FileSystemResourceLocker

feat: update all file-based backend configs to use the new FileSystemResourceLocker

feat: add warning on starting the MemoryResourceLocker in a worker process

test: coverage back to 100%

fix: finalizer of file.json was configured wrong

docs: updated release notes for 5.0.0

refactor: incorporated changes so far

refactor: retryFunctions are less complex now

test: jitter fix
2022-04-28 14:12:30 +02:00

2.0 KiB

Util

Various utility related options.

Auxiliary

Exports an object that contains a list of all auxiliary resources that need to be supported. In case you create a new auxiliary strategy you can just add it to this list.

  • acl: Default list with only support for acl auxiliary resources.
  • no-acl: An empty list which can be added to.

Identifiers

How identifiers should be interpreted. This is mostly relevant when creating pods and/or using a file-based backend.

  • subdomain: New pod identifier would be http://alice.test.com/. File path of http://alice.test.com/foo would be /alice/foo.
  • suffix: New pod identifier would be http://test.com/alice. Requests to subdomain identifiers would be rejected.

Index

This can be used to provide different behaviour for index files. This is mostly relevant for user interfaces.

  • default: No special support.
  • example: An example of how this could be configured. If this is needed the best solution is usually to not import anything here and have the index setup in the root config.

Logging

Which logger to use.

  • no-logging: Disables all logging.
  • winston: Uses the winston logger.

Representation-conversion

Used for converting from one content type to another when needed. When a new content type needs to be supported, this can be done by adding a corresponding converter to the ChainedConverter list.

  • default: The default conversion setup which supports most RDF formats.

Resource-locker

Which locking mechanism to use to for example prevent 2 write simultaneous write requests.

  • debug-void: No locking mechanism, does not prevent simultaneous read/writes.
  • file: Uses a file-system based locking mechanism (process-safe/thread-safe).
  • memory: Uses an in-memory locking mechanism.
  • redis: Uses a Redis store for locking that supports threadsafe read-write locking (process-safe/thread-safe).

Variables

Various variables used by other options. These can usually be set through CLI parameters.

  • default: The default list of variables.