-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
We have discussed this in side channel, but I wanted to capture in the issue so it's available for others to followup on.
I have proposed that we replace await/ok, await/error, await/* custom promise pipelining operators with combination of general ucan/await that can work with jq like selectors that are been introduces into UCAN spec here ucan-wg/delegation#5
Expectation is that selectors will behave as described in the table, if task selector result in output marked as ⛔️ (per table in the linked issue) failure supposed to propagate. Otherwise arguments supposed to substituted with the output of the selector.
Here is a proposed syntax for invocation spec
type Await union {
AwaitOperand "ucan/await"
} representation keyed
type AwaitOperand struct {
selector String
source Any
} representation tuple
here is example from the spec
{
"bafy...getMailingList": {
"sub": "did:key:zAlice",
"cmd": "crud/read",
"args": {
"url": "https://exmaple.com/mailinglist"
}
},
"bafy...sendEmail": {
"sub": "did:key:zAlice",
"cmd": "msg/send",
"args": {
"email": "[email protected]",
"to": { "ucan/await": [".out.ok.email", { "/": "bafy...getMailingList" }] }
"title": "hello",
"body": "world"
}
}
}vasco-santos
Metadata
Metadata
Assignees
Labels
No labels