/lafs

Least-Authority File Store utils

Primary LanguageRustMIT LicenseMIT

LAFS
====

Prototyping a "porcelain only" (in Git terminology) CLI for Tahoe-LAFS.

The "tahoe" tool that's in the Tahoe-LAFS repository is a mix of
plumbing and porcelain commands.

This repository consists of *only* porcelain / user-facing
commands. It SHOULD use "tahoe *" commands under the hood.

Magic Setup
-----------

Two commands co-operate to form a user-flow for setting up a
client after getting some JSON configuration via magic-wormhole or
just on the command-line.

1. Serve the JSON::

   echo "{}" | lafs serve_config --json -

This prints out a magic-wormhole code on stdout, and then waits for the other end to receive it before exiting.

So, for example, a web-service could provide a "join this Tahoe grid" button. Pushing it would cause the above to be executed, and the wormhole code to be displayed to the user. They then use the command below to complete the configuration.

2. Set up a node::

   lafs setup
   lafs setup --code <wormhole code>
   lafs setup --json path/to/setup.json

These either get json directly (the last one) or ask for (or have via command-line) a magic-wormhole code which is used to receive JSON from the "other side".