create_permission(permission_name, permission_id)
Used to create a new permission within the RBAC (Role-Based Access Control) system.
Parameter | Type | EVM | Substrate | Description |
---|
permission_name | str | Required | Required | Name of the permission to be created. |
permission_id | Optional[str] | Optional | Optional | ID 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.
Parameter | Type | EVM | Substrate | Description |
---|
owner | str | Required | Required | Address representing the owner of the permission. |
permission_id | str | Required | Required | ID 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.
Parameter | Type | EVM | Substrate | Description |
---|
owner | str | Required | Required | Address 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.
Parameter | Type | EVM | Substrate | Description |
---|
permission_id | str | Required | Required | ID of the permission to update (32 characters). |
permission_name | str | Required | Required | New 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.
Parameter | Type | EVM | Substrate | Description |
---|
permission_id | str | Required | Required | ID 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.
Parameter | Type | EVM | Substrate | Description |
---|
permission_id | str | Required | Required | ID of the permission to assign (32 characters). |
role_id | str | Required | Required | ID 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.
Parameter | Type | EVM | Substrate | Description |
---|
owner | str | Required | Required | Address representing the owner. |
role_id | str | Required | Required | ID 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.
Parameter | Type | EVM | Substrate | Description |
---|
permission_id | str | Required | Required | ID of the permission to unassign (32 characters). |
role_id | str | Required | Required | ID 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).
Parameter | Type | EVM | Substrate | Description |
---|
owner | str | Required | Required | Address representing the owner. |
user_id | str | Required | Required | ID of the user to fetch permissions for (32 characters). |
In order to fetch a user permission the following flow must take place:
- Assign permission to role
- Assign role to user
- 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).
Parameter | Type | EVM | Substrate | Description |
---|
owner | str | Required | Required | Address representing the owner. |
group_id | str | Required | Required | ID of the group to fetch permissions for (32 characters). |
In order to fetch a group permission the following flow must take place:
- Assign permission to role
- Assign role to group
- 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
)