Configure a Smart Remote Repository

JFrog Artifactory Documentation

Products
JFrog Artifactory
Content Type
User Guide
ft:sourceType
Paligo

To create a Smart Remote repository, set the repository URL to point to a repository in another instance of Artifactory.

Repository URL must be prefixed with api/<type>

The repository URL must be prefixed in the path with api/<type> for several repository types.

For example,

http://<JFrog URL>/artifactory/api/<package type>/<repository key>

When using Artifactory Cloud the URL is:

https://<server name>.jfrog.io/artifactory/api/<package type>/<repository key>

The prefix is required for the following repository types:

Type

Prefix

Bower

api/bower

Chef

api/chef

CocoaPods

api/pods

Conan

api/conan

Docker

api/docker

Go

api/go

Helm OCI

api/oci

NuGet

api/nuget

Npm

api/npm

PHP Composer

api/composer

Puppet

api/puppet

PyPI

See PyPI Settings

RubyGems

api/gems

Swift

api/swift

PyPI Settings

PyPi repositories also require a registry URL, which depends on whether the target is a local or remote repository on the target Artifactory instance. For example:

For a local repository:

URL:http://<JFROG_URL>/artifactory/pypi-local/Registry URL:http://<JFROG_URL>/artifactory/api/pypi/pypi-local/

For a remote repository:

URL:http://<JFROG_URL>/artifactory/pypi-remote/Registry URL:http://<JFROG_URL>/artifactory/api/pypi/pypi-remote/

After you finish entering the URL and move to another field, Artifactory detects automatically that the remote URL is on another instance of Artifactory and displays a banner above the URL.

Smart-Remote-repo-detected_banner.png

The Basic tab of the New Remote Repository screen contains additional fields where you can configure the behavior of your Smart Remote repository.

Smart-Remote-repo_basic-fields.png

Field

Description

Report Statistics

If set, Artifactory will notify the remote instance whenever an artifact in the Smart Remote Repository is downloaded locally so that it can update its download counter.

Note that if this option is not set, there may be a discrepancy between the number of artifacts reported to have been downloaded in the local and remote Artifactory instances.

Sync Properties

If set, properties for artifacts that have been cached in this repository will be updated if they are modified in the artifact hosted at the remote Artifactory instance.

The trigger to synchronize the properties is a download of the artifact from the remote repository cache of the local Artifactory instance.

List Remote Folder Items

If set, enables Remote List Browsing.

Source Absence Detection

If set, Artifactory displays an indication on cached items if they have been deleted from the corresponding repository in the remote Artifactory instance.

Add User Context for Curation

If enabled, Artifactory will include the user's context in requests sent to the configured remote repository. The user's context will be used by Curation for traceability. This context includes the user's email address as well as repository information, such as the repository ID. Please ensure this is compliant with your regulatory and security requirements.

Relevant for users with JFrog Curation.JFrog Curation Overview

Enable Pass-through for Curation Audit

To enable pass-through, first enable Add User Context for Curation. This allows the curation-audit CLI command to download packages from upstream curated remotes. These packages are not cached by the remote repository. Malicious packages are blocked regardless of the pass-through status. For more information, see Configure Curation Pass-Through.Configure Curation Pass-Through

Relevant for users with JFrog Curation.JFrog Curation Overview

You can modify these settings at any time from the Edit Repository screen.

Smart Remote NuGet Repositories

When configuring a Smart Remote NuGet repository, make sure to set Nuget Download Context Path to Download and leave the NuGet Feed Context Path field blank.

REST API

For a repository to be identified as a Smart Remote repository, go to the Repository Configuration JSON and under contentSynchronisation set the enabled flag to true.Repository Configuration JSON