diff --git a/doc/todo/BACKEND b/doc/todo/BACKEND new file mode 100644 index 00000000000..6184f066006 --- /dev/null +++ b/doc/todo/BACKEND @@ -0,0 +1,23 @@ +- documentation of various new functions and the new struct _BackendData +- add tests for new behaviour and code +- update existing tests where possible +- separate `KDB_BOOTSTRAP_STORAGE` from `KDB_DEFAULT_STORAGE` + - `KDB_BOOTSTRAP_STORAGE` is used for the hardcoded bootstrap backends at /elektra + - `KDB_DEFAULT_STORAGE` is used for the fallback backends at the namespace roots + - maybe a complete backend plugin should be defined instead of a resolver+storage +- reserve /elektra/... in every namespace + - keys below /elektra should **always** be stored in the bootstrap backend for the respective namespace + - maybe /elektra/mountpoints should use a separate mountpoint so the actual mountpoints are always separate from the rest +- implement user:/elektra/mountpoints and dir:/elektra/mountpoints +- implement cache with new backend logic +- implement notifications with new backend logic +- change `spec` plugin, so it can run twice during kdbSet (for adding metadata to new keys and for removing metadata) +- handle cascading, proc, meta, spec, default keys/mountpoints as described in mountpoints.md +- implement new mount tooling + - The tooling should be able to adapt to different backend plugins. + -> Some of the code must be contributed by the plugin. + - There should be standard kdb mount CLI syntax similar to what we have now. + This syntax should be preferred by backend plugins over a custom solution, if possible. + -> There has to be a library with the implementation of this standard approach. + - Especially for embedded systems, it should be possible to separate the tooling code from the runtime code. + -> Tooling code should live in a separate binary, or at least delegation to a separate binary should be possible.