Name the optional key that settles an ambiguous match, and how the ask shows the accounts (ADR 0317)
This commit is contained in:
@@ -117,7 +117,11 @@ profile in use:
|
||||
|---|---|
|
||||
| once, in an account that is not Owl's | adopts it: takes its existing keys under its ownership, records them per node in its own directory, and places the declared values over them, which changes only those that differ (the apply names each by preference name) |
|
||||
| nowhere | creates the account under its own `mesh_<name>` keys, as above |
|
||||
| twice or more, or in Owl's account | refuses that account, writes nothing for it, and says the remedy: remove the duplicate in Betterbird, or name in that node's layer the account key to adopt |
|
||||
| twice or more, or in Owl's account | refuses that account, writes nothing for it, and says the remedy: remove the duplicate in Betterbird, or give the account's optional `key` in that node's layer |
|
||||
|
||||
The optional `key` is the one field ADR 0317 adds to an entry of `accounts`: the account key to adopt on that
|
||||
node, used only to settle an ambiguous match, and refused unless that key is in the list, has the declared
|
||||
address and is not Owl's.
|
||||
|
||||
An adopted account keeps its mail, its folder, filter and cache preferences, and its kept sign-in: the module
|
||||
writes only the fields the setting names. When it leaves the setting, its keys are released: dropped from the
|
||||
@@ -126,8 +130,10 @@ removed from the list.
|
||||
|
||||
**The value is derived, not retyped.** The tool `betterbird_accounts` reads the accounts of the profile in use
|
||||
and, with `propose`, builds the `accounts` value from every account but Owl's, without any credential, and
|
||||
proposes it for the operator's Approve (ADR 0277). Its answer to the caller gives counts and kinds only; the
|
||||
addresses and hosts reach the operator in the ask that shows the change.
|
||||
proposes it for the operator's Approve (ADR 0277). Its answer to the caller gives counts and kinds only. The ask
|
||||
shows the accounts in shape, with ‹address› in place of each address and host, beside the layer's fingerprint;
|
||||
the operator reads the whole value at their own desk by the proposal's id and checks the fingerprint before
|
||||
approving.
|
||||
|
||||
**The order.** The value is derived on a node whose profile already holds the accounts and set for every
|
||||
desktop node. A node that holds the same accounts adopts them by address; a fresh node creates them, each
|
||||
@@ -180,7 +186,7 @@ module needs.
|
||||
their order, and is refused while Betterbird runs; the count of declared accounts without a kept sign-in is
|
||||
taken from the login store's server names, which are kept in the clear, without decrypting anything.
|
||||
- **The adoption's tests, on profile fixtures:** an address held once is adopted under its existing keys with the
|
||||
list unchanged; an absent one is created; a duplicate or Owl's is refused with the remedy; a release leaves the
|
||||
list unchanged; an absent one is created; a duplicate or Owl's is refused with the remedy, and a `key` settles a duplicate; a release leaves the
|
||||
profile as it was; `betterbird_accounts` builds a value without Owl's account or a credential and answers counts
|
||||
only.
|
||||
- **The builder's tests:** an upstream file whose download does not match its sha256 fails the build.
|
||||
|
||||
Reference in New Issue
Block a user