From 718c10da102d7fe1c0be72bb0f4cbe218b6c984b Mon Sep 17 00:00:00 2001 From: sneak Date: Tue, 10 Nov 2026 22:32:46 +0000 Subject: [PATCH] Point links at the moved documents and config example ARCHITECTURE.md, TODO.md and config.example.yml moved to docs/ and configs/ on next. README.md now links to the new paths. docs/ARCHITECTURE.md and the roadmap in docs/TODO.md link to their sibling documents by file name, as docs/DATAMODEL.md and docs/REPOSTRUCTURE.md already do. The help text and configs/config.example.yml name none of the old paths. Model: fable-5-1 --- README.md | 7 ++++--- docs/ARCHITECTURE.md | 16 +++++++--------- docs/TODO.md | 9 ++++----- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 2a3b26b..37e88a5 100644 --- a/README.md +++ b/README.md @@ -782,7 +782,7 @@ It also says when the binary is a development build, not a release. ## Configuration The config file is YAML. `vaultik config init` writes one to start from, and -[`config.example.yml`](config.example.yml) is a longer example. +[`configs/config.example.yml`](configs/config.example.yml) is a longer example. A command refuses to start when the config does not load. These commands are the exceptions: @@ -1300,7 +1300,8 @@ is a trimmed, encrypted copy of the local index. These documents give the detail: -- [`ARCHITECTURE.md`](ARCHITECTURE.md) describes how the code is organised. +- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) describes how the code is + organised. - [`docs/DATAMODEL.md`](docs/DATAMODEL.md) describes the local index. - [`docs/REPOSTRUCTURE.md`](docs/REPOSTRUCTURE.md) describes the layout of the destination. @@ -1486,7 +1487,7 @@ built reproducibly. ## TODO -Planned work is listed in [`TODO.md`](TODO.md). +Planned work is listed in [`docs/TODO.md`](docs/TODO.md). ## license diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index e5cf4e3..a02a7e2 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -9,8 +9,8 @@ things: Two other documents cover the stored data: -- [`docs/DATAMODEL.md`](docs/DATAMODEL.md) describes the local index. -- [`docs/REPOSTRUCTURE.md`](docs/REPOSTRUCTURE.md) describes the layout of the +- [`DATAMODEL.md`](DATAMODEL.md) describes the local index. +- [`REPOSTRUCTURE.md`](REPOSTRUCTURE.md) describes the layout of the destination. ## Terms @@ -59,9 +59,8 @@ source files - `internal/blobgen`: the writer that hashes, compresses and encrypts a blob, and the reader that reverses it. - `internal/database`: the local index. It holds the schema and the repository - types that read and write the tables. - [`docs/DATAMODEL.md`](docs/DATAMODEL.md#code) says which type serves which - table. + types that read and write the tables. [`DATAMODEL.md`](DATAMODEL.md#code) says + which type serves which table. - `internal/storage`: the `Storer` interface and its three implementations, for S3, a local directory and [rclone](https://rclone.org/). - `internal/s3`: the S3 client that the S3 `Storer` uses. @@ -231,8 +230,7 @@ chunker buffers at most twice the largest chunk size. The blob's name is `hex(SHA256(SHA256(uncompressed contents)))`. It is computed from the chunk data before compression and encryption. -[`docs/REPOSTRUCTURE.md`](docs/REPOSTRUCTURE.md#blobs) says what follows from -that. +[`REPOSTRUCTURE.md`](REPOSTRUCTURE.md#blobs) says what follows from that. When a blob is closed, `Scanner.handleBlobReady` stores it: @@ -362,8 +360,8 @@ of object, once they are older than `prune_grace_period`: in the local index It deletes nothing when any manifest cannot be read. -[`docs/REPOSTRUCTURE.md`](docs/REPOSTRUCTURE.md#pruning) explains why this is -safe, and where it is not. +[`REPOSTRUCTURE.md`](REPOSTRUCTURE.md#pruning) explains why this is safe, and +where it is not. ## The destination diff --git a/docs/TODO.md b/docs/TODO.md index e332a32..9b5892c 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -25,9 +25,9 @@ Work planned after 1.0, loosely ordered by priority. - **Outside security audit.** Before 1.0 the encryption and blob-generation code was reviewed. Every bug the review found was fixed. The risks it accepted are - listed in [Accepted risks](docs/REPOSTRUCTURE.md#accepted-risks). No outside - audit has been done. age, zstd and content-defined chunking are mostly - off-the-shelf pieces. The code that joins them needs an outside read: + listed in [Accepted risks](REPOSTRUCTURE.md#accepted-risks). No outside audit + has been done. age, zstd and content-defined chunking are mostly off-the-shelf + pieces. The code that joins them needs an outside read: - key handling - recipient parsing - manifest trust boundary @@ -74,7 +74,6 @@ Work planned after 1.0, loosely ordered by priority. - **Schema migrations after 1.0.** Migrations are supported, but none are added before 1.0 because there is no installed base yet. After 1.0, each schema change is a new migration, so an existing local index is migrated when - `vaultik` is updated. See - [`docs/DATAMODEL.md`](docs/DATAMODEL.md#schema-migrations). + `vaultik` is updated. See [`DATAMODEL.md`](DATAMODEL.md#schema-migrations). - **Storage backend coverage tests.** S3, `file://` and `rclone://` all share the `Storer` interface, but the rclone path is the least exercised in CI.