Goal

Today I'll plan a road map for opening the Obnam 3 project up for contributions from others. I'll also change obnam store init to create at least one credential chunk, which is a big step forward to being able to using encryption for chunks in a convenient way.

Plan

  • Make a road map for opening up the project.
  • Change obnam store init to optionally create a credential chunk.

Notes

  • Made a road map. Merged into main. I will try to include it in these blog notes in the future.

roadmap

  • The configuration file specifies the credentials the user has. The store init command should take an option to specify a credential for which to create a credential chunk. I don't want to, at this stage, require creating a credential chunk. Also at this stage, I'm OK with just one credential. More can be added later.
  • obnam client init needs to be able to init a store, create a client chunk, generate a client key, and create a credential. This code exists in other subcommands, but needs to be abstracted into a convienience layer that can be used for any subcommand. This would avoid the need to duplicate code all over the code base. More importantly, it'll make the subcommand code easier to understand.
  • Other than that, code changes are fairly straighforward.
  • Adding test scenarios for convenient use of obnam, however, runs into problems. Nothing major, just had to debug things. Turns out my obnam chunk encrypt command line interface isn't natural for me to use. May need to change that.

Summary

Spent much more time on Obnam today than the three hours I normally allocate. On the one hand, went out to look at a medieval knight event near where I live, and on the other hand, I'm experimenting with the Helix editor and the lazygit Git terminal interface. These tools seem nice, but I'm at the beginning of learning them, so using them is slow.

However, I took a big step towards making Obnam convenient to use. When initializing a client, obnam now creates a credential chunk, and that credential is used when encrypting and decrypting chunks. There's still much to do to make obnam truly convenient, but today was important.

Comments?

If you have feedback on this development session, please use the following fediverse thread: https://toot.liw.fi/@liw/115163107363824431.