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:

  1. Namespace Level – Grants access and permissions within a specific namespace.

  2. 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:

  1. Open the dropdown menu

  2. 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:

  1. Log in to the ESP Component Registry using your GitHub account.

  2. Go to the Permissions tab.

  3. Fill out the Request a new namespace form with your desired namespace name.