create_permission(permission_name, permission_id)

Used to create a new permission within the RBAC (Role-Based Access Control) system.

ParameterTypeEVMSubstrateDescription
permission_namestrRequiredRequiredName of the permission to be created.
permission_idOptional[str]OptionalOptionalID of the permission (32 characters). If not supplied one will be generated for you.

Create Permission Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

permission_name = "peaq-permission-1"

response = sdk.rbac.create_permission(permission_name=permission_name)

fetch_permission(owner, permission_id)

Used to fetch a permission in the RBAC system by its permission ID.

ParameterTypeEVMSubstrateDescription
ownerstrRequiredRequiredAddress representing the owner of the permission.
permission_idstrRequiredRequiredID of the permission to be fetched.

Fetch Permission Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")
EVM_ADDRESS = os.getenv("EVM_ADDRESS")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

permission_id = "290506fd-b316-4a10-bd33-e8e2e047"

response = sdk.rbac.fetch_permission(
    owner=EVM_ADDRESS,
    permission_id=permission_id
)

fetch_permissions(owner)

Used to fetch all permissions associated with the passed owner address.

ParameterTypeEVMSubstrateDescription
ownerstrRequiredRequiredAddress that represents the owner of all the fetched permissions.

Fetch Permissions Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")
EVM_ADDRESS = os.getenv("EVM_ADDRESS")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

response = sdk.rbac.fetch_permissions(owner=EVM_ADDRESS)

update_permission(permission_id, permission_name)

Updates the name of an existing permission.

ParameterTypeEVMSubstrateDescription
permission_idstrRequiredRequiredID of the permission to update (32 characters).
permission_namestrRequiredRequiredNew name for the permission.

Update Permission Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

permission_id = "307a081a-45e5-4ca3-b2b5-566ceb31"
permission_name = "updated-permission-1"

response = sdk.rbac.update_permission(
    permission_id=permission_id,
    permission_name=permission_name
)

disable_permission(permission_id)

Disables a permission within the RBAC system. A disabled permission cannot be used for new role assignments.

ParameterTypeEVMSubstrateDescription
permission_idstrRequiredRequiredID of the permission to disable (32 characters).

Disable Permission Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

permission_id = "307a081a-45e5-4ca3-b2b5-566ceb31"

response = sdk.rbac.disable_permission(permission_id=permission_id)

assign_permission_to_role(permission_id, role_id)

Assigns a permission to a role, granting the role the capabilities defined by the permission.

ParameterTypeEVMSubstrateDescription
permission_idstrRequiredRequiredID of the permission to assign (32 characters).
role_idstrRequiredRequiredID of the role to assign the permission to (32 characters).

Assign Permission to Role Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

permission_id = "307a081a-45e5-4ca3-b2b5-566ceb31"
role_id = "0bb60413-ebdd-44fb-ab2c-e7e0714f"

response = sdk.rbac.assign_permission_to_role(
    permission_id=permission_id,
    role_id=role_id
)

fetch_role_permissions(owner, role_id)

Fetches all permissions assigned to a role.

ParameterTypeEVMSubstrateDescription
ownerstrRequiredRequiredAddress representing the owner.
role_idstrRequiredRequiredID of the role to fetch permissions for (32 characters).

Fetch Role Permissions Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")
EVM_ADDRESS = os.getenv("EVM_ADDRESS")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

role_id = "afd2ae0e-b1db-42b9-bca1-93e9328b"

response = sdk.rbac.fetch_role_permissions(
    owner=EVM_ADDRESS,
    role_id=role_id
)

unassign_permission_to_role(permission_id, role_id)

Removes a permission from a role, revoking the role’s access to the permission’s capabilities.

ParameterTypeEVMSubstrateDescription
permission_idstrRequiredRequiredID of the permission to unassign (32 characters).
role_idstrRequiredRequiredID of the role to unassign the permission from (32 characters).

Unassign Permission from Role Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM
)

permission_id = "307a081a-45e5-4ca3-b2b5-566ceb31"
role_id = "0bb60413-ebdd-44fb-ab2c-e7e0714f"

response = sdk.rbac.unassign_permission_to_role(
    permission_id=permission_id,
    role_id=role_id
)

fetch_user_permissions(owner, user_id)

Fetches all permissions assigned to a user (via roles).

ParameterTypeEVMSubstrateDescription
ownerstrRequiredRequiredAddress representing the owner.
user_idstrRequiredRequiredID of the user to fetch permissions for (32 characters).

In order to fetch a user permission the following flow must take place:

  1. Assign permission to role
  2. Assign role to user
  3. Fetch user permissions

The following code shows this flow.

Fetch User Permissions Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")
EVM_ADDRESS = os.getenv("EVM_ADDRESS")
EVM_PRIVATE_KEY = os.getenv("EVM_PRIVATE_KEY")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM,
    seed=EVM_PRIVATE_KEY
)

permission_id = "290506fd-b316-4a10-bd33-e8e2e047"
role_id = "afd2ae0e-b1db-42b9-bca1-93e9328b"

sdk.rbac.assign_permission_to_role(permission_id=permission_id, role_id=role_id)

user_id = "9e8c7866-8435-4b76-8683-709a03c9"
sdk.rbac.assign_role_to_user(user_id=user_id, role_id=role_id)

response = sdk.rbac.fetch_user_permissions(
    owner=EVM_ADDRESS,
    user_id=user_id
)

fetch_group_permissions(owner, group_id)

Fetches all permissions assigned to a group (via roles).

ParameterTypeEVMSubstrateDescription
ownerstrRequiredRequiredAddress representing the owner.
group_idstrRequiredRequiredID of the group to fetch permissions for (32 characters).

In order to fetch a group permission the following flow must take place:

  1. Assign permission to role
  2. Assign role to group
  3. Fetch group permissions

The following code shows this flow.

Fetch Group Permissions Code Examples

import os
from dotenv import load_dotenv
from peaq_sdk import Sdk
from peaq_sdk.types import ChainType

load_dotenv()

HTTPS_PEAQ_URL = os.getenv("HTTPS_PEAQ_URL")
EVM_ADDRESS = os.getenv("EVM_ADDRESS")
EVM_PRIVATE_KEY = os.getenv("EVM_PRIVATE_KEY")

sdk = Sdk.create_instance(
    base_url=HTTPS_PEAQ_URL,
    chain_type=ChainType.EVM,
    seed=EVM_PRIVATE_KEY
)

permission_id = "290506fd-b316-4a10-bd33-e8e2e047"
role_id = "afd2ae0e-b1db-42b9-bca1-93e9328b"

sdk.rbac.assign_permission_to_role(permission_id=permission_id, role_id=role_id)

group_id = "38c9ccb3-2346-4b25-ab28-51e1e2e3"
sdk.rbac.assign_role_to_group(group_id=group_id, role_id=role_id)

response = sdk.rbac.fetch_group_permissions(
    owner=EVM_ADDRESS,
    group_id=group_id
)