Teams & Roles¶
Quantinuum Nexus offers secure and flexible ways of sharing data and managing workflows. To that end we have the following concepts:
Team
: a group of users.Roles
: a named role with specific permissions.
A Role
can be assigned to a Team
or User
to give specific permissions on a particular Project
or resource in Nexus.
These are concepts are related purely to collaboration and permissions, and are not related to metering or quotas.
import qnexus as qnx
from datetime import datetime
# List teams I am a member of
qnx.teams.get_all().df()
# Create a new Team
my_team = qnx.teams.create(name=f"My Team, created on {datetime.now()}")
Assigning a Role to a Team¶
By default when you create a Project, only you will be able to view/manage the contents of that project.
Lets take the team we created and give it a Contributor
role on a new Project.
# Get possible roles in Nexus and render them in a DataFrame
nexus_roles = qnx.roles.get_all()
nexus_roles.df()
my_new_project = qnx.projects.create(name=f"My project with {my_team.name} team")
# Assign a contributor role to the team on my new project
qnx.roles.assign_team(
resource_ref=my_new_project,
team=my_team,
role="Contributor"
)
# View the assigned roles on a particular project or resource
qnx.roles.assignments(resource_ref=my_new_project).df()