Private channels are distinct from private packages, a legacy feature of Anaconda.org that restricts access to individual packages using tokens. Instead, private channels restrict access to an entire channel using a collaborator-based sharing model.
Known limitations
Known limitations
The following limitations apply during the beta:
- Channel namespaces must start with a lowercase letter and use only lowercase letters, numbers, underscores, and hyphens (up to 63 characters). To distribute packages from an account whose username does not match these rules, create the channel under an organization instead.
- The number of private channels allowed per organization depends on your subscription plan: one for Free, three for Starter, and ten for Business.
- Only organization admins can create private channels.
- Creating a private channel in a personal namespace is available through the CLI only. On Anaconda.org, you can create private channels under an organization only.
- Uploading packages to and deleting packages from a channel are available through the CLI only. The Anaconda.org interface is read-only for channels.
- The declared package type must match the uploaded file’s format. If the
--package-type <TYPE>value does not match the file’s actual format, the upload fails with a genericRepoCoreError: Something went wrongmessage. Before uploading, verify that the declared type matches the file. See theanaconda channel uploadreference.
Before you begin
-
Install or update
anaconda-clientto version 1.15.0 or later: -
Log in to Anaconda:
Creating a private channel
Private channels live under an organization namespace. If you use your username as the namespace in the CLI, an organization is created for you automatically. On Anaconda.org, you must select an existing organization. See Known limitations for additional restrictions.
- CLI
- Anaconda.org
To create a private channel, run:For the full list of options, see the
anaconda channel create reference.Uploading packages
To upload packages to your private channel, run:anaconda channel upload reference.
Sharing a channel
Access to a private channel is not automatic. Organization membership alone does not grant channel access. You must explicitly share the channel with each collaborator.During the beta, channel sharing is available through the CLI only and only two additional collaborators are allowed per private channel. See Known limitations for additional restrictions.
--role option:
Revoking access
To revoke a user’s access to a channel, use the--unshare flag:
Roles
For the full list of options, see theanaconda channel share reference.
Managing channels
Listing your channels
You can view your channels from the CLI or on Anaconda.org.During the beta, the Anaconda.org view is read-only and does not support filtering. See Known limitations for additional restrictions.
- CLI
- Anaconda.org
To see all channels you own or have access to, run:This displays both public and private channels across Anaconda.org and Anaconda.com. To view only your Anaconda.org channels, filter by source:For the full list of options, see the
anaconda channel list reference.Viewing channel details
The CLI provides the most complete channel information during the beta. The Anaconda.org overview page shows basic details only.- CLI
- Anaconda.org
To display information about a specific channel, including its privacy setting, artifact count, and download count, run:For the full list of options, see the
anaconda channel show reference.Changing channel privacy
To switch a channel between public and private, run:anaconda channel modify reference.
Removing a channel
To permanently remove a channel and all of its packages, run:anaconda channel remove reference.
Installing packages from a private channel
Before you can install packages from a private channel, you must be logged in to Anaconda and have been granted access to the channel:Configuring conda for private channels
During the beta, you must add the following to your.condarc file to enable authentication for private channels:
Installing a package
To install a package from your private channel, run:main) and you want to force installation from the private channel, add the --override-channels flag:
--override-channels flag is not necessary when installing custom packages that only exist in a private channel.