stash
This commit is contained in:
parent
2bb6624d50
commit
7276750c66
15 changed files with 552 additions and 169 deletions
|
|
@ -80,15 +80,17 @@ is first trusted for that handle. Currently only exists between users; groups ha
|
|||
groups befriending groups, are proposed extensions of the same mechanism, not a new one.
|
||||
*See: [federation.md](federation.md#cryptography), [groups.md](design-in-progress/groups.md#should-a-group-be-able-to-grant-read-access-to-non-members-group-friends)*
|
||||
|
||||
**Group** (Proposed)
|
||||
**Group** (Implemented)
|
||||
A second kind of [actor](#actor), modeling collective ownership (a club, workshop, or company)
|
||||
rather than any one person owning something. All members hold equal edit rights over what the group
|
||||
owns; membership itself is the privilege, there's no separate owner/member distinction within a
|
||||
group. Backed by a [membership list](#membership-list) rather than a [keypair](#keypair-private-key-public-key),
|
||||
and identified by a [group handle](#group-handle).
|
||||
and identified by a [group handle](#group-handle). Groups can own items and storage locations today
|
||||
(`owner_group` on both); a group having its own friends, or befriending another group, is not
|
||||
implemented, so a group is not yet a full [actor](#actor) in every sense of that entry.
|
||||
*See: [groups.md](design-in-progress/groups.md#what-a-group-is)*
|
||||
|
||||
**Group handle** (Proposed)
|
||||
**Group handle** (Implemented)
|
||||
A [group](#group)'s handle: a name and [domain](#domain) written like a [user handle](#user-handle)
|
||||
but prefixed with `#`, e.g. `#groupname@toolsheddomain.tld`. The prefix keeps groups and users in
|
||||
disjoint namespaces on the same domain (no squatting collision between a user and a group wanting
|
||||
|
|
@ -114,11 +116,16 @@ signatures. Only user handles carry a keypair, not groups, classification handle
|
|||
User-Qualified IDs.
|
||||
*See: [federation.md](federation.md#cryptography)*
|
||||
|
||||
**Membership list** (Proposed)
|
||||
The record of which [user handles](#user-handle) currently belong to a [group](#group), maintained
|
||||
by whichever backend is authoritative for the group's handle. What backs a group's identity in
|
||||
place of a keypair: a request "as the group" is a normal signed request from a current member, plus
|
||||
a check against this list, not a request signed by some shared group key.
|
||||
**Membership list** (Implemented)
|
||||
The authoritative record of which [user handles](#user-handle) currently belong to a
|
||||
[group](#group), maintained by whichever backend is authoritative for the group's handle
|
||||
(`Group.members` in `authentication/models.py`). What backs a group's identity in place of a
|
||||
keypair: a request "as the group" is a normal signed request from a current member, plus a check
|
||||
against this list, not a request signed by some shared group key. Distinct from
|
||||
`authentication.models.GroupMembership`, a second, member-side record kept on a *member's own* home
|
||||
backend mirroring the bare fact of belonging (analogous to how a friendship is independently
|
||||
recorded on both sides) — that pointer is not itself authoritative, it exists so a member's own
|
||||
backend can list groups it believes the member belongs to without querying every other backend.
|
||||
*See: [groups.md](design-in-progress/groups.md#does-a-group-need-its-own-keypair)*
|
||||
|
||||
**Signature / Signing** (Implemented)
|
||||
|
|
@ -195,10 +202,11 @@ server or a domain, it can equally be a shared reference dataset (like the files
|
|||
*See: [federation.md](federation.md#tags-properties-and-categories)*
|
||||
|
||||
**Tag / Property / Category** (Implemented)
|
||||
The three kinds of classification entity an item can reference, each identified by a
|
||||
[classification handle](#classification-handle). A property additionally carries unit metadata
|
||||
(`unit_symbol`/`unit_name`), though property *values* on an item are plain, undeclared-type
|
||||
strings today.
|
||||
The three kinds of classification entity an item can reference, collectively called a
|
||||
**classifier**, each identified by a [classification handle](#classification-handle). A property
|
||||
additionally carries unit metadata (`unit_symbol`/`unit_name`), though property *values* on an item
|
||||
are plain, undeclared-type strings today. A single [origin](#origin) (e.g. one
|
||||
`backend/shared_data/*.json` file) typically defines many classifiers at once.
|
||||
*See: [federation.md](federation.md#tags-properties-and-categories), [tags.md](design-in-progress/tags.md)*
|
||||
|
||||
## Items & Physical Labels
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue