Dataset permissions

Add permissions to a dataset

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")

added = dataset.add_permission(
    "_subscribed_",
    "Read"
)

print(permission.target_id, permission.identity_id, permission.permission_name)

List dataset permissions

List all permissions on a dataset.

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
permission_list = dataset.list_permissions()

for permission in permission_list:
    print(permission.target_id, permission.identity_id, permission.permission_name)

Delete permission on dataset

Delete permission on a dataset.

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
deleted = dataset.delete_permission(
    "_subscribed_", 
    "Read"
)

if deleted:
    print("Permission deleted")

Resource permissions

Permissions can be set on resources, files are the main type of resource. Permissions can be set on individual resources, a list of resources, all resources in a folder, or all resources in a dataset.

Add permissions to a list of resources

Using resource paths:

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID"))

added = dataset.add_permission_to_resources(
    "_subscribed_",
    "Read",
    resource_paths=[
        "/path/to/file/in/folder/file1.csv",
        "/path/to/another/file2.csv",
    ]
)

if added:
    print("Permission applied")

Using Resource/File objects:

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file/in/folder/file1.csv")
file2 = dataset.get_file(path="/path/to/another/file2.csv")

added = dataset.add_permission_to_resources(
    "_subscribed_",
    "Read",
    resource_objects=[file, file2]
)

if added:
    print("Permission applied")

Using resource IDs:

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file/in/folder/file1.csv")
file2 = dataset.get_file(path="/path/to/another/file2.csv")

added = dataset.add_permission_to_resources(
    "_subscribed_",
    "Read",
    resource_ids=[file.id, file2.id]
)

if deleted:
    print("Permission deleted")

Delete permissions from a list of resources

Using resource paths:

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID"))

deleted = dataset.delete_permission_from_resources(
    "_subscribed_",
    "Read",
    resource_paths=[
        "/path/to/file/in/folder/file1.csv",
        "/path/to/another/file2.csv",
    ]
)

if deleted:
    print("Permission deleted")

Using Resource/File objects:

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file/in/folder/file1.csv")
file2 = dataset.get_file(path="/path/to/another/file2.csv")

deleted = dataset.delete_permissions_from_resource(
    "_subscribed_",
    "Read",
    resource_objects=[file, file2]
)

if deleted:
    print("Permission deleted")

Using resource IDs:

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file/in/folder/file1.csv")
file2 = dataset.get_file(path="/path/to/another/file2.csv")

deleted = dataset.delete_permission_from_resources(
    "_subscribed_",
    "Read",
    resource_ids=[filet.id, file2.id]
)

if deleted:
    print("Permission deleted")

Add permissions to folder recursively

Add permissions recursively to all resources in a folder, using a Folder object.

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
folder = dataset.get_folder(path="/some/folder")

added = folder.add_permission(
    "_subscribed_",
    "Read",
    recursive=True
)

if added:
    print("Permission recursively applied to the folder")

Remove permissions from folder recursively

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
folder = dataset.get_folder(path="/some/folder")

deleted = folder.delete_permission(
    "_subscribed_",
    "Read",
    recursive=True
)

if deleted:
    print("Permission recursively deleted from the folder")

Apply permissions to single resource

Add permissions to a single resource, using a File object.

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file.csv")

permission = file.add_permission(
    "_subscribed_",
    "Read"
)

print(permission.target_id, permission.identity_id, permission.permission_name)

List resource permissions

List all permissions on a resource.

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file.csv")
permission_list = file.list_permissions()

for permission in permission_list:
    print(permission.target_id, permission.identity_id, permission.permission_name)

Delete permission on resource

Delete permission on a resource.

from crux import Crux

conn = Crux()

dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file.csv")
deleted = file.delete_permission(
    "_subscribed_", 
    "Read"
)

if deleted:
    print("Permission deleted")