This is a first-class DWN protocol for managing permission grants of a given DWN.

Constructors

Properties

definition: ProtocolDefinition = ...

The definition of the Permissions protocol.

grantPath: "grant" = 'grant'

The protocol path of the grant record.

requestPath: "request" = 'request'

The protocol path of the request record.

revocationPath: "grant/revocation" = 'grant/revocation'

The protocol path of the revocation record.

uri: "https://tbd.website/dwn/permissions" = 'https://tbd.website/dwn/permissions'

The URI of the DWN Permissions protocol.

Methods

  • Convenience method to create a permission grant.

    Parameters

    • options: PermissionGrantCreateOptions

    Returns Promise<{
        dataEncodedMessage: DataEncodedRecordsWriteMessage;
        permissionGrantBytes: Uint8Array;
        permissionGrantData: PermissionGrantData;
        recordsWrite: RecordsWrite;
    }>

  • Convenience method to create a permission request.

    Parameters

    • options: PermissionRequestCreateOptions

    Returns Promise<{
        permissionRequestBytes: Uint8Array;
        permissionRequestData: PermissionRequestData;
        recordsWrite: RecordsWrite;
    }>

  • Convenience method to create a permission revocation.

    Parameters

    • options: PermissionRevocationCreateOptions

    Returns Promise<{
        permissionRevocationBytes: Uint8Array;
        permissionRevocationData: PermissionRevocationData;
        recordsWrite: RecordsWrite;
    }>

  • Fetches PermissionGrant with the specified recordID.

    Parameters

    • tenant: string
    • messageStore: MessageStore
    • permissionGrantId: string

    Returns Promise<PermissionGrant>

    the PermissionGrant matching the recordId specified.

    Throws

    if PermissionGrant does not exist

  • Parameters

    • base64UrlEncodedRequest: string

    Returns PermissionRequestData

  • Validates the given Permissions protocol RecordsWrite. It can be a request, grant, or revocation.

    Parameters

    Returns void