Jellything's Import System

In normal operation, jellything serves all metadata from only the database.

Whenever you want to change this metadata, you initiate a Reimport from the admin panel. This will follow the import instructions in library_path and regenerate that part of the database from scratch.

The Import Procedure

library_path is scanned recursively to locate all files that match *.yaml (YAML import options) or *.jelly (JSON import options). Each of these files contains a key id that specifies which node is primarily affected and an array sources which lists metadata providers. When all these files have been evaluated, each node's children are traversed recursively to generate their paths. The imported libraries structure is a directed acyclic graph (DAG) - nodes can have multiple parents.

The Sources are applied in-order to that node with decreasing priority. This process merges all aquired metadata into single nodes.