From 2b24db684e3053a9fbb137426953fc9fd5931262 Mon Sep 17 00:00:00 2001 From: Dominik Schulz Date: Mon, 15 Feb 2021 20:40:11 +0100 Subject: [PATCH] Finish first draft of the ARCHITECTURE.md (#1787) RELEASE_NOTES=[ENHANCEMENT] Add ARCHITECTURE.md Fixes #1779 Signed-off-by: Dominik Schulz --- ARCHITECTURE.md | 111 +++++++++++++++++++++++++++++++---- docs/components.dot | 39 ++++++++++++ docs/components.png | Bin 0 -> 104797 bytes internal/store/leaf/write.go | 2 +- internal/tree/root.go | 6 +- 5 files changed, 142 insertions(+), 16 deletions(-) create mode 100644 docs/components.dot create mode 100644 docs/components.png diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 9c7aff48ab..384ad3274f 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -17,6 +17,14 @@ For licensing reasons and security considerations we try to keep the number of external dependencies (libraries) well-arranged. Try to avoid adding new dependencies unless absolutely necessary. +## Generalized control flow + +![](docs/components.png) + +This flow chart shows a high level control flow common to most operations. +It leaves out a lot of details but should give a better understanding how +information flows within the program and where changes might be necessary. + ## Code Map This section talks briefly about the various directories and some data @@ -112,37 +120,116 @@ during lookup. ### `internal/config` -TODO: backwards compat, loading, overrides, ... +The `config` package implements support for a simple YAML-based configuration +format for `gopass`. Most of the code in this package is for backwards +compatibility. Whenever we introduce or remove a config option we need to +introduce a new fallback version that is automatically attempted when loading +a config file. To resolve ambiguities when parsing different config versions +we use a "catch-all" field to catch any unused keys and check that this is +empty after parsing - otherwise we need to try a different config version. + +NOTE: We did support nested configurations for sub-stores but removed this +because the maintenance cost did not justify the benefits of this feature. ### `internal/cui` -TODO: history, issues, outlook +The name `cui` is an abbreviation for `console-user-interface` and contains +several helper functions to interact with humans over a text based interface. -### `internal/editor` +Most of these ask the user to select some item from a selection or provide +some input. -TODO: security +NOTE: We used to support rich terminal UIs with arrow navigation and such. +However all existing libraries that were available without CGO were either +abandoned or buggy on some platforms and we didn't have any capacity to fix +them. So we had to remove support for this feature. ### `internal/queue` -TODO: motivation, usage +The `queue` package implements a FIFO queue that executes +in the background. This allows for certain operations, like a git push, to be +taken out of the critical path wrt. user interactions. The queue will be fully +processed before the process exits. + +### `internal/store/root` -### `internal/store` +The `root store` package implements an internal password store API that (only) +supports mounting `leaf` stores. It will forward (almost) all operations to +its `leaf` stores (moves across stores being a notable exception) and do the +necessary manipulations of the affected path components (e.g. removing/adding +the mount prefix from the secret name as needed). -TODO: everything +This package makes `gopass` multi-store capable. + +### `internal/store/leaf` + +The `leaf store` package implements a password store that is mostly compatible +with any other password store implementation (while aiming for interoperability, +not at 100% feature parity). The low-level operations like filesystem and / or +version control and crypto operations are passed to the configured `storage` +or `crypto` backend. ### `internal/tree` -TODO: why +The `tree` package implements a simple tree structure that prints an output +similar to the output of the Unix tool `tree`. It does support different +`gopass` specific properties (like mounts or templates) not easily implemented +with other tree packages. ### `internal/updater` -TODO: security +The `updater` package implements a secure and anonymous self updater. + +Note: The self updater contacts GitHub. If this is a concern one should use +other sources, e.g. distro packages. + +It retrieves the latest stable release from GitHub, fetches its metadata +and verifies the signature against the built-in release signing keyring. + +It tries to avoid conflicting with any `gopass` binary managed by the OS +and refuse to update these. -### `pkg/...` +### `pkg/` -TODO: everything +The package `pkg/` contains our public API surface, i.e. packages we want or +have to expose externally. Some packages (e.g. `otp`) are only exposed because +they are being used by some of our integrations. Others (e.g. `pinentry` or +`pwgen`) are designed for wider use. We are considering to split some of the +more widely used packages into their own repositories to work better with +Go module and semantic versioning expectations. + +#### `pkg/appdir` + +The `appdir` package contains a set of [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) +compatible implementations with some `gopass` specifics. For testing purposes +we want to honor the setting of `GOPASS_HOMEDIR` before everything else, so our +implementation has to take this into account before following the XDG spec. + +#### `pkg/clipboard` + +The `clipboard` package is a wrapper around a clipboard package that adds +support for clearing the clipboard. + +#### `pkg/ctxutil` + +The `ctxutil` is the pragmatic (read: non-idiomatic) approach to pass very +specific configuration options through multiple layers of abstraction. This is +arguably not the best design, but it works well and avoids bloated interfaces. + +#### `pkg/gopass` + +This package contains **the** gopass API interface. We provide a concrete +implementation that should work with any properly initialized gopass setup +and a mock for tests. + +This package is designed as the main entry point for any integration that wants +to integrate with gopass. ### `tests` -TODO: integration tests +`gopass` comes with a comprehensive set of integration tests, i.e. tests that +are executed by running a newly compiled gopass binary without access to any +kind of internal state. These tests can't be as exhaustive as the unit tests +but they exist to ensure basic functionality aren't broken by a change. + diff --git a/docs/components.dot b/docs/components.dot new file mode 100644 index 0000000000..58b9338e06 --- /dev/null +++ b/docs/components.dot @@ -0,0 +1,39 @@ +digraph G { + gopass [shape=box,style=filled,color=".2 .2 .6",peripheries=2]; + gopass -> action; + action [label="internal/action"]; + action -> root; + root [label="internal/store/root"]; + root -> leaf; + root -> tree; + tree [label="internal/tree"]; + leaf [label="internal/store/leaf"]; + leaf -> gitfs; + gitfs [label="internal/backend/storage/gitfs"]; + gitfs -> gitcli; + gitcli [label="git binary",shape=Mdiamond]; + leaf -> gpg; + gpg [label="internal/backend/crypto/gpg/cli"]; + leaf -> age [style="dotted"]; + age [label="internal/backend/crypto/age"]; + gpg -> gpgcli; + gpgcli [label="gpg/gpg2 binary",shape=Mdiamond]; + leaf -> secret; + secret [label="pkg/gopass/secrets"]; + secret -> root; + jsonapi [label="gopass-jsonapi",shape=box]; + jsonapi -> api; + api [label="pkg/gopass/api"]; + api -> root; + api -> config; + gopass -> config; + config [label="internal/config"]; + summon -> api; + summon [label="gopass-summon-provider",shape=box]; + hibp -> api; + hibp [label="gopass-hibp",shape=box]; + hibp -> pkghibp; + pkghibp [label="pkg/hibp"]; + gitcreds -> api; + gitcreds [label="git-credential-gopass",shape=box]; +} diff --git a/docs/components.png b/docs/components.png new file mode 100644 index 0000000000000000000000000000000000000000..0474b00bcdf32db9766426c60119ae7d8afba6d6 GIT binary patch literal 104797 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 I`;D&sKg_(3A^-pY literal 0 HcmV?d00001 diff --git a/internal/store/leaf/write.go b/internal/store/leaf/write.go index 6f53205562..424a9ad3ac 100644 --- a/internal/store/leaf/write.go +++ b/internal/store/leaf/write.go @@ -60,7 +60,7 @@ func (s *Store) Set(ctx context.Context, name string, sec gopass.Byter) error { } // try to enqueue this task, if the queue is not available - // it will return the task and we will execut it inline + // it will return the task and we will execute it inline t := queue.GetQueue(ctx).Add(func(ctx context.Context) error { return s.gitCommitAndPush(ctx, name) }) diff --git a/internal/tree/root.go b/internal/tree/root.go index e83c16e25f..272b61a42d 100644 --- a/internal/tree/root.go +++ b/internal/tree/root.go @@ -19,9 +19,9 @@ var ( colMount = color.New(color.FgCyan, color.Bold).SprintfFunc() colDir = color.New(color.FgBlue, color.Bold).SprintfFunc() colTpl = color.New(color.FgGreen, color.Bold).SprintfFunc() - //colBin = color.New(color.FgYellow, color.Bold).SprintfFunc() - //colYaml = color.New(color.FgCyan, color.Bold).SprintfFunc() - sep = "/" // this should not be platform-agnostic. this is for the CLI interface + // sep is intentionally NOT platform-agnostic. This is used for the CLI output + // and should always be a regular slash. + sep = "/" ) // Root is the root of a tree