Overview
The JFrog Package Registry integration allows Backline to access packages from your JFrog Artifactory instance. This is required for Backline to build and analyze projects that depend on private packages hosted in JFrog.What You Can Do
With the JFrog Package Registry integration, Backline can:- Resolve NPM packages from your JFrog Artifactory
- Resolve Python packages from your JFrog Artifactory
- Resolve Go modules from your JFrog Artifactory
- Build and analyze projects that depend on packages in your JFrog registry
- Provide remediation for vulnerabilities in projects using JFrog as their package source
Supported Package Types
| Package Type | JFrog Repository Format | Example URL |
|---|---|---|
| NPM | npm (local/remote/virtual) | https://company.jfrog.io/artifactory/api/npm/npm-virtual/ |
| PyPI | pypi (local/remote/virtual) | https://company.jfrog.io/artifactory/api/pypi/pypi-virtual/simple |
| Go | go (local/remote/virtual) | https://company.jfrog.io/artifactory/api/go/go-virtual/ |
Prerequisites
Before connecting JFrog Package Registry, ensure you have:- A JFrog Artifactory instance (Cloud or self-hosted)
- An Identity Token or Access Token with read permissions
- Repository URLs for the package types you want to use
Generating a JFrog Token
Navigate to Identity Tokens
Click your username in the top-right corner, then select Edit Profile → Identity Tokens.
Generate Token
Click Generate Token, provide a description (e.g., “Backline Integration”), and click Create.
Finding Your Repository URLs
To find the correct URL for each repository type in JFrog:Repository Type Recommendations
| Repository Type | Recommendation |
|---|---|
| Virtual | Preferred—aggregates multiple repositories (remote + local) |
| Remote | Good for caching packages from public registries |
| Local | For your own private packages only |
Connecting JFrog Package Registry
Configure Repository URLs
Enter the URLs for the package types you want to use:
-
NPM Repository URL: Your JFrog npm repository URL
- Example:
https://company.jfrog.io/artifactory/api/npm/npm-virtual/
- Example:
-
PyPI Repository URL: Your JFrog PyPI repository URL (must end with
/simple)- Example:
https://company.jfrog.io/artifactory/api/pypi/pypi-virtual/simple
- Example:
-
Go Repository URL: Your JFrog Go repository URL
- Example:
https://company.jfrog.io/artifactory/api/go/go-virtual/
- Example:
You only need to configure URLs for the package types your repositories use. At least one URL is required.
After Connection
Once JFrog Package Registry is configured, Backline will:- Use the provided token to authenticate with your JFrog instance
- Access packages from your JFrog repositories during dependency analysis
- Provide remediation for projects that depend on packages in your JFrog registry
Managing the Integration
Updating Configuration
To update the integration settings:- Open the Integration Hub
- Click on the JFrog Package Registry integration
- Update the token or repository URLs as needed
- Click Save
Adding Package Types
To add support for additional package types:- Open the JFrog Package Registry integration settings
- Add the repository URL for the new package type
- Save the changes
Troubleshooting
Authentication Failed
If Backline cannot authenticate with JFrog:- Verify the token hasn’t expired
- Check that the token has read permissions for the configured repositories
- Ensure you’re using an Identity Token or Access Token (not a password)
Repository Not Accessible
If Backline cannot reach the repository:- Verify the repository URL is correct and includes the
/api/path segment - Check network connectivity between Backline and your JFrog instance
- For self-hosted instances, ensure Backline’s IPs can reach your JFrog server
Package Resolution Issues
If specific packages cannot be resolved:- Verify the package exists in your JFrog repository
- Check that the repository type matches the package manager (e.g., npm format for NPM packages)
- For virtual repositories, ensure the component repositories are correctly configured
PyPI URL Format
PyPI repository URLs must end with/simple for pip compatibility:
- Correct:
https://company.jfrog.io/artifactory/api/pypi/pypi-virtual/simple - Incorrect:
https://company.jfrog.io/artifactory/api/pypi/pypi-virtual/