spec
spec copied to clipboard
Roles Table
This proposal is not sacred and naming is always hard. Please do make suggestions / changes as needed :)
Delegator/delegate may be too close visually. We could also use Issuer / Audience.
Delegator/delegate may be too close visually. We could also use Issuer / Audience.
Agreed that delegator and delegate a bit close. To me, these terms more strongly indicate passing capabilities than issuer and audience. Do we want to differentiate on whether capabilities are granted or not?
One case to consider here is establishing an AWAKE session, where a UCAN indicates capability without delegating anything (https://github.com/ucan-wg/awake#33-responder-establishes-point-to-point-session)
In this step, the Responder MUST prove that they have access to the requested resources. This is used to establish trust in the capabilities of the Responder, but MUST NOT actually delegate anything.
In Discord chat, I suggested Authority
and Delegate
as an alternative, but "authority" is an overloaded term and this probably wouldn't work out. Consider the following for example
An authority with root authority grants a subset of capabilities to a delegate.
Not great! 🙅
One other dimension we might consider -- how de we name an agent to evaluates a UCAN before actually using a resource? I'm not sure if Validator fully covers this.
As a practical example, we recently added an endpoint for uploading files to a Fission app. A user registers their DID with the Fission server and delegates to the Fission server when they upload a file. The user can also delegate to another agent to upload on their behalf. Following that, the other agent delegates to the Fission server when they upload a file for the user.
The other agent can check the UCAN is valid and that it grants sufficient capability, but it doesn't know for sure that the Fission app resource exists. Instead, it trusts the UCAN and verification is delayed until it attempts to upload a file.
In this scenario, is the other agent a Validator? Is the server the only Validator? The difference between the two is whether an action is taken with a resource on checking the UCAN.