Skip to main content

RoleHandle

@iota/audit-trails API documentation


Class: RoleHandle

Role-scoped access-control API.

Remarks​

Identifies one role name inside the trail's access-control state and builds transactions that act on that role.

Properties​

name​

readonly name: string

Returns the role name represented by this handle.

Returns​

The role name bound to this handle.

Methods​

toJSON()​

toJSON(): Object

  • Return copy of self without private attributes.

Returns​

Object


toString()​

toString(): string

Return stringified version of self.

Returns​

string


create()​

create(permissions, role_tags?): TransactionBuilder<CreateRole>

Builds a role-creation transaction.

Parameters​

permissions​

PermissionSet

PermissionSet granted by the new role.

role_tags?​

RoleTags | null

Returns​

TransactionBuilder<CreateRole>

A TransactionBuilder wrapping the CreateRole transaction.

Remarks​

Creates this role with permissions and the optional roleTags allowlist. Each tag referenced by roleTags must already exist in the trail-owned tag registry; the on-chain call aborts otherwise and bumps that tag's usage counter on success.

Requires the Permission.AddRoles permission.

Throws​

When the wrapper was created from a read-only client.

Emits a RoleCreated event on success.


delete()​

delete(): TransactionBuilder<DeleteRole>

Builds a role-deletion transaction for this role.

Returns​

TransactionBuilder<DeleteRole>

A TransactionBuilder wrapping the DeleteRole transaction.

Remarks​

Decrements the usage count of every tag the role's roleTags referenced. The reserved initial-admin role cannot be deleted.

Requires the Permission.DeleteRoles permission.

Throws​

When the wrapper was created from a read-only client.

Emits a RoleDeleted event on success.


issueCapability()​

issueCapability(options): TransactionBuilder<IssueCapability>

Builds a capability-issuance transaction for this role.

Parameters​

options​

CapabilityIssueOptions

CapabilityIssueOptions configuring recipient and validity window.

Returns​

TransactionBuilder<IssueCapability>

A TransactionBuilder wrapping the IssueCapability transaction.

Remarks​

The resulting capability always targets this trail and grants exactly this role. Only options.issuedTo, options.validFromMs, and options.validUntilMs configure restrictions on the issued object; enforcement happens on-chain when the capability is later presented for authorization. The capability is transferred to options.issuedTo if set, otherwise to the caller.

Requires the Permission.AddCapabilities permission.

Throws​

When the wrapper was created from a read-only client.

Emits a CapabilityIssued event on success.


updatePermissions()​

updatePermissions(permissions, role_tags?): TransactionBuilder<UpdateRole>

Builds a role-update transaction for this role.

Parameters​

permissions​

PermissionSet

Replacement PermissionSet for the role.

role_tags?​

RoleTags | null

Returns​

TransactionBuilder<UpdateRole>

A TransactionBuilder wrapping the UpdateRole transaction.

Remarks​

Replaces both the role's permission set and its roleTags allowlist. Any newly supplied tag must already exist in the trail's record-tag registry; tag usage counters are adjusted to reflect the difference between the old and the new role-tag sets. Updating the initial-admin role with permissions that do not include every permission configured in the trail's role- and capability-admin permission sets aborts on-chain.

Requires the Permission.UpdateRoles permission.

Throws​

When the wrapper was created from a read-only client.

Emits a RoleUpdated event on success.