Authorization in the ESP Component Registry
Users can authenticate into the ESP Component Registry using their GitHub account. This allows them to:
Upload and manage components in the registry
Access the registry's API
Manage access and permission settings
Roles are used to control access within the ESP Component Registry. They can be assigned at two levels:
Namespace Level – Grants access and permissions within a specific namespace.
Component Level – Provides more fine-grained control over individual components.
What Is a Namespace?
A namespace in the ESP Component Registry is a logical container for your components. By default, when you first log in with GitHub, a namespace matching your GitHub username is automatically created. For example, if your GitHub username is jdoe, your namespace will be jdoe.
Why use namespaces? Namespaces keep components organized and prevent naming collisions between different users. For instance, if two users create a component called wifi-utilities, namespaces ensure they don't conflict.
How to find or create namespaces? Each user gets a default namespace automatically. Organizations or teams can request additional namespaces (e.g., a my-company namespace). See Namespace Requests for more information.
Namespace Roles
When a user logs into the ESP Component Registry, they automatically gain access to their personal namespace (matching their GitHub username), allowing them to upload and manage components.
To grant access to your namespace to other users (e.g., collaborators), assign them one of the following roles:
owner – Automatically assigned to the creator of the namespace. - Can manage all components in the namespace. - Can upload new versions, yank, or delete components. - Can manage namespace roles for other users (assign, modify or revoke their roles).
member – Can manage components in the namespace: - Can upload new versions, yank, and delete components.
Note
Only a user with the owner role can assign or revoke roles at the namespace level.
Component Roles
While namespace roles apply to all components within a namespace, component roles offer more granular control over individual components. That's where component roles come in. Assigning roles at the component level allows collaboration on specific components without granting broader access.
Available component-level roles:
maintainer – Full control over a single component. - Can upload, yank, or delete versions. - Can manage component roles for other users. - Useful for delegating control over a specific component.
developer – Limited control. - Can upload new versions, yank, and delete existing versions.
Managing Roles in the Permissions Tab
You can manage roles for both namespaces and components using the ESP Component Registry web interface. To access role management:
Open the dropdown menu
Click on the Permissions tab
Here, you can:
Create a request for a new namespace (see Namespace Requests)
View a list of all namespaces you have access to
Clicking a namespace name opens its permissions page, where you can:
View a list of all users with roles in the namespace
Assign or revoke roles for users in the namespace
View a list of all components in the namespace
Click a component name to open its permissions page
On the component permissions page, you can:
View a list of users and their roles for the component
Assign or revoke roles for users at the component level
Namespace Requests
If you need a namespace other than your default (e.g., for an organization), request one by following these steps:
Log in to the ESP Component Registry using your GitHub account.
Go to the Permissions tab.
Fill out the Request a new namespace form with your desired namespace name.