Storage Backends
The service supports multiple storage backends. A backend can be configured
per collection in the configuration file. If no backend is defined for a
collection, record_dir+stl is used by default.
Available Backends
record_dirStores records as YAML files in a directory structure defined by Dump Things Storage v0. Reads the backend configuration from a record collection configuration file as described in the same specification.
record_dir+stl(default)Same as
record_dir, but adds a schema-type layer (STL):schema_typeattributes are stripped from the top-level mapping of a record before it is stored.When a record is read back, a
schema_typeattribute is re-inserted using the schema to determine the correct class URI.
This is useful when endpoints return records of multiple classes, because clients can determine the class of each record from the
schema_typeattribute.sqliteStores records in a SQLite database. One database file named
__sqlite-records.dbis created per curated/incoming area.sqlite-backends have the advantage that they support search patterns to limit the size of a result on the server.sqlite+stlSame as
sqlite, but with the same schema-type layer asrecord_dir+stl.
Note
record_dir and sqlite backends can co-exist independently in the same
directory. There are no file-name collisions between backends, as long as no
class name starts with . or __.
Configuring a Backend
Specify the backend in the collection configuration with the backend key:
collections:
my_collection:
schema: https://example.org/schema.yaml
default_token: anon_read
curated: my_collection/curated
backend:
type: record_dir+stl # explicit default
collections:
another_collection:
schema: https://example.org/schema.yaml
default_token: anon_read
curated: another_collection/curated
backend:
type: sqlite