Skip to content

Commit 8369382

Browse files
authored
Fix broken links & JSON typos(#43)
1 parent 9c5abc0 commit 8369382

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

‎README.md‎

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# UCAN Invocation Specification
2-
## Version 1.0.0-rc. 1
2+
## Version 1.0.0-rc.1
33

44
## Editors
55
[Editors]: #editors
@@ -39,7 +39,7 @@ UCAN Invocation defines a format for expressing the intention to execute delegat
3939
4040
> When authorization is communicated without such context, it's like receiving a key in the mail with no hint about what to do with it [...] After an object receives this message, she can invoke arg if she chooses, but why would she ever choose to do so?
4141
>
42-
> [Mark Miller], [E-lang Mailing List, 2000 Oct 18]
42+
> [Mark Miller], E-lang Mailing List, 2000 Oct 18
4343
4444
UCAN is a chained-capability format. A UCAN contains all of the information that one would need to perform some task, and the provable authority to do so. This begs the question: can UCAN be used directly as an RPC language?
4545

@@ -123,10 +123,11 @@ A core part of UCAN's design is interacting with the wider, non-UCAN world. Many
123123

124124
Task adds two new roles to UCAN: invoker and executor. The existing UCAN delegator and delegate principals MUST persist to the invocation.
125125

126-
| UCAN Field | Delegation | Invocation |
127-
|------------|----------------------------------------|---------------------------------|
128-
| `iss` | Delegator: transfer authority (active) | Invoker: request task (active) |
129-
| `aud` | Delegate: gain authority (passive) | Executor: perform task (active) |
126+
| UCAN Field | Delegation | Invocation |
127+
|------------|----------------------------------------|-----------------------------------------------------|
128+
| `iss` | Delegator: transfer authority (active) | Invoker: request task (active) |
129+
| `sub` | — | Executor: perform task (default) |
130+
| `aud` | Delegate: gain authority (passive) | Executor: perform task (if different from [Subject]) |
130131

131132
### Invoker
132133
[Invoker]: #invoker
@@ -179,7 +180,7 @@ flowchart TD
179180
subgraph InvocationPayload ["Invocation Payload"]
180181
iss
181182
sub
182-
do
183+
cmd
183184
args
184185
prf
185186
cause["cause (optional)"]
@@ -379,7 +380,7 @@ flowchart RL
379380
subgraph inv [Invocation]
380381
invIss(iss: Dan)
381382
args("args: [Storage, crud/update, (key, value)]")
382-
invSub(aud: Alice)
383+
invSub(sub: Alice)
383384
prf("proofs")
384385
end
385386
@@ -403,8 +404,9 @@ flowchart RL
403404
{"/": {"bytes": "bdNVZn+uTrQ8bgq5LocO2y3gqIyuEtvYWRUH9YT+SRK6v/SX8bjt+VZ9JIPVTdxkWb6nhVKBt6JGpgnjABpOCA"}},
404405
{
405406
"h": {"/": {"bytes": "NAHtAe0BE3E"}},
406-
"ucan/i/1.0.0-rc.1": {
407+
"ucan/inv@1.0.0-rc.1": {
407408
"iss": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
409+
"aud": "did:key:z6MkrZ1r5XBFZjBU34qyD8fueMbMRkKw17BZaq2ivKFjnz2z",
408410
"sub": "did:key:z6MkrZ1r5XBFZjBU34qyD8fueMbMRkKw17BZaq2ivKFjnz2z",
409411
"cmd": "/crud/create",
410412
"args": {
@@ -424,7 +426,7 @@ flowchart RL
424426
"env": "development",
425427
"tags": ["blog", "post", "pr#123"]
426428
},
427-
"exp": 1697409438
429+
"exp": 1697409438,
428430
"prf": [
429431
{"/": "zdpuAzx4sBrBCabrZZqXgvK3NDzh7Mf5mKbG11aBkkMCdLtCp"},
430432
{"/": "zdpuApTCXfoKh2sB1KaUaVSGofCBNPUnXoBb6WiCeitXEibZy"},
@@ -444,7 +446,7 @@ flowchart RL
444446
{"/": {"bytes": "bdNVZn+uTrQ8bgq5LocO2y3gqIyuEtvYWRUH9YT+SRK6v/SX8bjt+VZ9JIPVTdxkWb6nhVKBt6JGpgnjABpOCA"}},
445447
{
446448
"h": {"/": {"bytes": "NAHtAe0BE3E"}},
447-
"ucan/i/1.0.0-rc.1": {
449+
"ucan/inv@1.0.0-rc.1": {
448450
"iss": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
449451
"aud": "did:key:z6MkrZ1r5XBFZjBU34qyD8fueMbMRkKw17BZaq2ivKFjnz2z",
450452
"sub": "did:key:z6MkrZ1r5XBFZjBU34qyD8fueMbMRkKw17BZaq2ivKFjnz2z",
@@ -470,7 +472,7 @@ flowchart RL
470472
{"/": {"bytes": "bdNVZn+uTrQ8bgq5LocO2y3gqIyuEtvYWRUH9YT+SRK6v/SX8bjt+VZ9JIPVTdxkWb6nhVKBt6JGpgnjABpOCA"}},
471473
{
472474
"h": {"/": {"bytes": "NAHtAe0BE3E"}},
473-
"ucan/i/1.0.0-rc.1": {
475+
"ucan/inv@1.0.0-rc.1": {
474476
"iss": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
475477
"aud": "did:key:z6MkrZ1r5XBFZjBU34qyD8fueMbMRkKw17BZaq2ivKFjnz2z",
476478
"sub": "did:key:z6MkrZ1r5XBFZjBU34qyD8fueMbMRkKw17BZaq2ivKFjnz2z",
@@ -500,7 +502,7 @@ The Object Capability Network ([OCapN]) protocol extends [CapTP] with a generali
500502

501503
[Cap 'n Proto RPC] is an influential RPC framework based on concepts from [CapTP].
502504

503-
# 7 Acknowledgements
505+
# Acknowledgements
504506
[Acknowledgements]: #acknowledgements
505507

506508
Many thanks to [Mark Miller] for his [trail blazing work][eRights] on [capability systems].
@@ -570,6 +572,7 @@ Many thanks to [Juan Caballero] for his detailed questions and comments to help
570572
[`magnet`]: https://en.wikipedia.org/wiki/Magnet_URI_scheme
571573
[capability systems]: https://en.wikipedia.org/wiki/Capability-based_security
572574
[designation with authorization]: https://srl.cs.jhu.edu/pubs/SRL2003-02.pdf
575+
[enqueue]: https://github.com/ucan-wg/receipt
573576
[distributed promise pipelines]: http://erights.org/elib/distrib/pipeline.html
574577
[eRights]: https://erights.org
575578
[payload tag]: https://github.com/ucan-wg/spec/blob/main/README.md#envelope

0 commit comments

Comments
 (0)