> ## Documentation Index
> Fetch the complete documentation index at: https://anaconda.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing channels and packages

export const Danger = ({children}) => {
  return <div class="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border danger-admonition dark:danger-admonition" data-callout-type="danger">
      <div class="mt-0.5 w-4">
        <svg width="14" height="14" viewBox="0 0 14 14" fill="rgb(239, 68, 68)" xmlns="http://www.w3.org/2000/svg" class="w-4 h-4 text-sky-500" aria-label="Danger">
          <path fill-rule="evenodd" clip-rule="evenodd" d="M7 1.3C10.14 1.3 12.7 3.86 12.7 7C12.7 10.14 10.14 12.7 7 12.7C5.48908 12.6974 4.0408 12.096 2.97241 11.0276C1.90403 9.9592 1.30264 8.51092 1.3 7C1.3 3.86 3.86 1.3 7 1.3ZM7 0C3.14 0 0 3.14 0 7C0 10.86 3.14 14 7 14C10.86 14 14 10.86 14 7C14 3.14 10.86 0 7 0ZM8 3H6V8H8V3ZM8 9H6V11H8V9Z"></path>
        </svg>
      </div>
      <div class="text-sm prose min-w-0 w-full">
        {children}
      </div>
    </div>;
};

Data Science & AI Workbench allows all users to create channels in the internal Workbench repository and allows users with the `ae-uploader` role to upload packages to channels that they have read-write permissions for.

<Note>
  * For more information about assigning user permissions, see [roles](/docs/data-science/latest/admin/user-mgmt/groups#roles).
  * For more information about channel permissions, see [sharing channels](#sharing-channels).
  * For more information about how Workbench manages channels, see [configuring conda in Workbench](./conda-config).
</Note>

As an administrator, it is your responsibility to monitor and maintain the channels and packages that are available in the internal Workbench repository for your users.

<Danger>
  Do not modify the `anaconda-enterprise` channel. Modifications to this channel can cause serious problems for the platform!
</Danger>

## Viewing all channels

As an administrator, you are able to view and manage all channels.

1. Log in to Workbench as a user with administrator permissions.

   <Tip>
     The `anaconda-enterprise` user has the correct permissions.
   </Tip>

2. Open the <Icon icon="circle-user" iconType="light" /> **My Account** dropdown menu and select *Admin Console*.

3. Select <Icon icon="clone" iconType="light" /> **Channels** from the left-hand menu.

   The channels page displays a complete list of channels that exist within the internal Workbench repository. Each channel’s owner and when the channel was last updated is displayed for all channels.

   <Frame>
     <img src="https://mintcdn.com/anaconda-29683c67/9H-5W4tTlP7-Fn32/images/channels_list_2.png?fit=max&auto=format&n=9H-5W4tTlP7-Fn32&q=85&s=23ac606cd7dea2fe154b3207782a488e" alt="" width="3338" height="1122" data-path="images/channels_list_2.png" />
   </Frame>

   <Note>
     Channels that display a <Icon icon="lock" iconType="solid" /> lock beside their name are private. For more information about private channels, see [sharing channels](#sharing-channels).
   </Note>

## Creating a channel

To create a channel in the internal Workbench repository:

1. Log in to Workbench.
2. Select <Icon icon="clone" iconType="light" /> **Channels** from the left-hand menu.
3. Click <Icon icon="plus" iconType="light" /> **Create**  in the upper-right corner.
4. Set the channel to public or private access.
5. Enter a name for the channel, then click **Create**.

## Viewing channel packages

From the channels page, click on a channel name to view its packages.

You can see the supported platforms, latest versions, when each package in the channel was last modified, and the number of times each package has been downloaded.

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/9H-5W4tTlP7-Fn32/images/channel_packages.png?fit=max&auto=format&n=9H-5W4tTlP7-Fn32&q=85&s=4eda48dacb7466726f4d52b209110c12" alt="" width="3342" height="1920" data-path="images/channel_packages.png" />
</Frame>

## Viewing package details

Each package in Workbench presents valuable information pertaining to the package, such as its platform architecture, version, license, number of downloads, and the last time the package was updated. You can also find a command on this page to assist you with installing the package in your environment.

From the channel packages page, select any package to view the package details page.

<Tip>
  You can search <Icon icon="magnifying-glass" iconType="regular" /> for packages by name to locate them more efficiently.
</Tip>

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/9H-5W4tTlP7-Fn32/images/channel_package_details.png?fit=max&auto=format&n=9H-5W4tTlP7-Fn32&q=85&s=1864f54e9ce1efea75bdf214737c7fdd" alt="" width="3342" height="1918" data-path="images/channel_package_details.png" />
</Frame>

## Uploading a package to a channel

To add a package to an existing channel:

1. From the channels page, click on a channel name to view its packages.
2. Click **Upload** <Icon icon="upload" iconType="regular" />.
3. Click **Browse** and locate the package in your file system.
4. Click **Upload**.

   <Note>
     There is a 1GB file size limit for package file uploads.
   </Note>

## Installing a package from a channel

To install a package from an internal Workbench channel:

1. From the channels page, click on a channel name to view its packages.
2. Select any package to view the package details page.
3. Copy the installation command provided.
4. Run the copied command in the environment you want to install the package in.

   <Frame>
     <img src="https://mintcdn.com/anaconda-29683c67/QCWY8EsGZWJYinOU/images/install_package_from_channel.png?fit=max&auto=format&n=QCWY8EsGZWJYinOU&q=85&s=f3be6d5c8b63180a93062ec0686f1449" alt="" width="3342" height="1918" data-path="images/install_package_from_channel.png" />
   </Frame>

## Removing a package from a channel

To remove a package from an internal Workbench channel:

1. From the channels page, click on a channel name to view its packages.
2. Open the package’s actions <Icon icon="ellipsis-vertical" iconType="solid" /> dropdown menu, then select *Delete*.
3. Click **Delete**.

## Sharing channels

There are two types of channels within the internal Workbench repository, public and private. Channels are set to public access by default.

### Sharing public channels

Public channels are accessible by non-authenticated users. In other words, people that do not have access to Workbench can still access packages in the internal Workbench repository channels.

To share a public channel:

1. From the channels page, click on a channel name to view its details.
2. Select <Icon icon="share-nodes" iconType="light" /> **Share** from the left-hand navigation.
3. Copy the channel address and distribute it to individuals who need access to the channel.

### Sharing private channels

Private channels are accessible only to other Workbench users that you have added as collaborators to the channel.

To mark a channel as private:

1. From the channels page, click on a channel name to view its details.
2. Select <Icon icon="share-nodes" iconType="light" /> **Share** from the left-hand navigation.
3. Set the **Sharing** toggle to **Private**.

To share a private channel with other Workbench users:

1. From the channels page, click on a channel name to view its details.
2. Select <Icon icon="share-nodes" iconType="light" /> **Share** from the left-hand navigation.
3. Begin typing a user or group name in the **Add New Collaborator** dropdown to search for matches. Select the correct entry, then click **Add**.

<Note>
  By default, collaborators are granted read-write access to your shared channel. If you want to prevent collaborators from adding or removing packages in your channel, you’ll need to [restrict them to read-only access using the CLI](#managing-channels-using-the-cli).
</Note>

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/9H-5W4tTlP7-Fn32/images/channel_share_2.png?fit=max&auto=format&n=9H-5W4tTlP7-Fn32&q=85&s=e4a4bd99ac2ad52ea9dd705e37a4288c" alt="" width="1922" height="759" data-path="images/channel_share_2.png" />
</Frame>

## Managing channels using the CLI

[Log in to the CLI](/docs/data-science/latest/admin/advanced/ae-cli#logging-in-to-the-cli) before you begin attempting to manage channels.

### Creating a channel

Create a new channel in the internal Workbench repository by running the following command:

```sh theme={null}
# Replace <CHANNEL_NAME> with the name of the channel you want to create
anaconda-enterprise-cli channels create <CHANNEL_NAME>
```

### Uploading a package to a channel

Upload a conda package to a channel by running the following command:

```sh theme={null}
anaconda-enterprise-cli upload --channel <path/to/package>
```

### Listing all channels

Get a list of all the channels on the platform with the `channels list` command:

```sh theme={null}
anaconda-enterprise-cli channels list
```

### Sharing channels

Share and manage permissions for channels with the `share` command:

<Tabs>
  <Tab title="Share with user">
    ```sh theme={null}
    # Replace <CHANNEL_NAME> with the name of the channel you want to share
    # Replace <USERNAME> with the username of the user you want to share the channel with
    anaconda-enterprise-cli channels share --user <USERNAME> <CHANNEL_NAME>
    ```
  </Tab>

  <Tab title="Share with group">
    ```sh theme={null}
     # Replace <CHANNEL_NAME> with the name of the channel you want to share
     # Replace <GROUP_NAME> with the name of group you want to share with
     anaconda-enterprise-cli channels share --group <GROUP_NAME> <CHANNEL_NAME>
    ```
  </Tab>
</Tabs>

<Note>
  By default, sharing a channel with a user or group provides them with read-write access to the channel. Restrict access to the channel to read-only by including `--level r` before the `<CHANNEL_NAME>`.

  For example:

  ```sh theme={null}
  anaconda-enterprise-cli channels share --group <GROUP_NAME> --level r <CHANNEL_NAME>
  ```
</Note>

### Revoking channel access

Revoke a user’s or a group’s access to a channel by running one of the following commands:

<Tabs>
  <Tab title="Revoke user access">
    ```sh theme={null}
     # Replace <CHANNEL_NAME> with the name of the channel you want to revoke access to
     # Replace <USERNAME> with the username of the user whose access you want to revoke
     anaconda-enterprise-cli channels share --user <USERNAME> --remove <CHANNEL_NAME>
    ```
  </Tab>

  <Tab title="Revoke group access">
    ```sh theme={null}
     # Replace <CHANNEL_NAME> with the name of the channel you want to revoke access to
     # Replace <GROUP_NAME> with the name of the group whose access you want to revoke
     anaconda-enterprise-cli channels share --group <GROUP_NAME> --remove <CHANNEL_NAME>
    ```
  </Tab>
</Tabs>

### Setting a default channel

The `default_channel` value is not set when `anaconda-enterprise-cli` is installed. This means every time you run an `upload` command, you need to supply a specific channel name.

If you don’t want to include the `--channel` option with each command, set a default channel by running the following command:

```sh theme={null}
# Replace <CHANNEL_NAME> with the name of the channel you want to upload to by default
anaconda-enterprise-cli config set default_channel <CHANNEL_NAME>
```

View your current default channel by running the following command:

```sh theme={null}
# Replace <CHANNEL_NAME> with the name of the channel you want to upload to by default
anaconda-enterprise-cli config get default_channel '<CHANNEL_NAME>'
```

<Note>
  For more information about actions you can take with channels in the CLI, run the following command:

  ```sh theme={null}
  anaconda-enterprise-cli channels --help
  ```
</Note>
