docs: ce qu'un NURI transporte, et les quatre besoins d'un lien
Une discussion de conception a calé plusieurs fois sur une séparation supposée entre « un NURI » et « un lien ». Elle n'existe pas, et l'avoir crue est ce qui a fait livrer un `linkTo` faux sur trois points à la fois. `NuriV0` porte exactement ce qu'un lien porte — `target`, `overlay`, `access: Vec<NgAccessV0>`, `locator` — et `NgLinkV0` en est la forme structurée. La vraie question n'est donc pas « NURI ou lien » mais ce qu'on met dans `access` et `locator`. Nuance qui compte pour tout ce qui s'imprime : le TYPE a tous les emplacements, la GRAMMAIRE de chaîne ne les expose pas tous. `access` est une LISTE de formes d'accès (`ReadCap | Token | ExtRequest | Key | Inbox | Topic`), donc une liste VIDE est un état légitime et courant : la référence NOMME sa cible et n'accorde rien. D'où les quatre besoins, chacun avec ce que la référence doit porter : nommer (access vide), donner à lire (+ ReadCap, irréversible), faire trouver un document public (overlay/locator, aucune clé), joindre depuis ailleurs (locator, sans quoi un inconnu n'ouvre rien). Trois confusions nommées parce que chacune a été faite ici : « sans clé » ne veut pas dire « public » ; nommer n'est pas lire et c'est l'acte PAR DÉFAUT (ce que notre test central prouve déjà) ; rien n'est vérifié à l'accès, donc une référence ne peut pas être neutre en droits — ce qu'on y met EST l'autorisation, et un lien diffusé ne se révoque pas. Et la divergence la plus lourde, qui n'était consignée nulle part : publier signifie ICI distribuer une clé, alors qu'en amont un document public est lisible parce que son STORE l'est et que les brokers le servent. L'émulation est trop stricte, pas inversée — elle sous-accorde — mais un consommateur ne doit pas en conclure que publier est un acte de distribution de clé, ni attendre quoi que ce soit de per-lecteur sur un document public.
This commit is contained in:
@@ -108,6 +108,12 @@ stores.
|
||||
|
||||
## Capability sharing / NURI
|
||||
|
||||
**What a NURI transports, and the four things one may want from a link, are in
|
||||
[`readcap-and-nuri-model.md`](./readcap-and-nuri-model.md) §4sexies** — including why a
|
||||
key-less reference is the ordinary case rather than a degenerate one, and why nothing is
|
||||
checked at access time. The analysis of what exists vs what is merely declared is in
|
||||
[`document-links.md`](./document-links.md).
|
||||
|
||||
Sharing transmits a **NURI** embedding the crypto capability (read and/or write).
|
||||
No central ACL: holding the NURI *is* the right. *"adding permissions can be done
|
||||
offline"*; *"removing permissions … requires a SyncSignature"* (synchronous).
|
||||
|
||||
Reference in New Issue
Block a user