Skip to main content

Connect Directly to Your Curated Catalog

This guide covers how to connect your package manager directly to your ActiveState Curated Catalog, with no intermediary artifact manager (JFrog Artifactory, Cloudsmith, etc.) in between. Your package manager authenticates straight to repo.activestate.com using a token issued from the ActiveState Portal.

If you'd rather front the catalog with a repository manager for local caching and centralized access control across your organization, see JFrog Artifactory instead.

note

Direct connection is not covered by ActiveState support - see Can I use pip directly without a repository manager? for why a repository manager is recommended. Availability can also vary by organization and by language; confirm with your ActiveState representative that it's enabled for your catalog.

note

repo.activestate.com rate-limits by IP address (roughly 2000 requests per 5 minutes overall, 1000 per 5 minutes for generic/binaries paths). Without a repository manager in front to share a local cache, a team or CI fleet sharing one outbound IP can hit this during normal use - it shows up as a 403, which looks like a credential problem rather than a rate limit. If you see unexplained 403s under load, this is the first thing to check.

Prerequisites​

  • An ActiveState Curated Catalog, with permission to issue access tokens at portal.activestate.com.
  • The package manager for your language already installed (pip, npm, cpanm, R, Cargo, Conan, Maven, or the .NET SDK).

Get your access token​

  1. Log in to portal.activestate.com.
  2. From the Curated Catalogs home page, click Setup Instructions next to the catalog you want to use, or open the catalog's page and click the same button there.
  3. Click Issue Access Token if this is your first time creating one, or Deactivate & Issue New Token if you need to rotate it.
  4. Save the token shown - it's only displayed once. The same token authenticates against every catalog (language) in your organization, so you only need to do this once per organization, not once per language.

The portal also shows a ready-made config snippet for your catalog's language. The steps below cover the same setup in more detail.

Configure your package manager​

Every language follows the same shape: point your package manager's own config file or command directly at the catalog, using the token from the previous step. Select your language below for the full walkthrough.

Configure pip (pip.conf)​

Create or edit a pip.conf (pip.ini on Windows) in one of the following locations:

  • User-specific: $HOME/.config/pip/pip.conf (Linux/macOS) or %APPDATA%\pip\pip.ini (Windows)
  • Per-project (virtual environment): <venv>/pip.conf
[global]
index-url = https://__token__:<your-access-token>@repo.activestate.com/<org-id>/pypi/simple/

__token__ is a literal string, not a placeholder. pip authenticates with HTTP Basic Auth using __token__ as the username and your access token as the password.

Test package access​

python3 -m venv .venv
source .venv/bin/activate
pip install requests
python3 -c "import requests; print(requests.__version__)"

Fetch the Python interpreter​

The Python interpreter and its native libraries (OpenSSL, SQLite, zlib, etc.) are served from the catalog's generic binaries path, using the same token:

curl -fsSL -u "activestate-repos:<your-access-token>" \
"https://repo.activestate.com/<org-id>/generic/binaries/python-3.12.12-linux-x86_64.tar.gz" \
-o python-3.12.12.tar.gz
tar -xzf python-3.12.12.tar.gz

This is an example file name - list the directory first to confirm what's in your catalog (see the Shared Dependencies tab).

Support​

As noted above, ActiveState support does not cover a direct, repository-manager-free setup. If you run into a catalog issue that isn't specific to this connection method (a missing package, an entitlement problem), contact ActiveState support with:

  • Package name experiencing the issue.
  • Catalog/token configuration, with a screenshot and credentials redacted.
  • Error messages from your package manager's output.