Overview
A Federation is a collection of Federated repositories in up to 10 JFrog Platform Deployments (JPDs) at different sites that are automatically configured for full bi-directional replication. Once you have set up the Federation, changes made to artifacts on one site will be automatically synchronized to the other JPDs in the Federation using bi-directional mirroring.
You can perform the following Federated repository procedures:
Adding Federated Members to an Existing Federation
You are required to run the Federated Repository Full Sync REST API when adding a remote Federated member to an existing Federated repository. This applies also when adding a converted local repository to a Federated repository.
Setup Prerequisites
Artifactory Versions Must be Identical (prior to 7.49.3)
When using a version of Artifactory older than 7.49.3, you must verify that the same Artifactory version is installed in all the Artifactory instances hosting the members to be included in the Federation.
After all instances have been upgraded to Artifactory release 7.49.3, Artifactory includes multi-version support, which enables the members of a Federation to run different versions of Artifactory, even if the version at one site includes configuration features and values that are not supported on the versions running at other sites. Thanks to multi-version support, future upgrades after 7.49.3 can be performed on one site at a time, eliminating the need for simultaneous upgrades across all locations.
For more information, see Multi-Version Support.
JFrog Platform Deployments (JPDs) Clocks Must be Synchronized
If the federated repository artifacts are simultaneously updated on two (or more) member federated repositories, the update that is registered last will overwrite the other update(s). Therefore, to ensure consistent, predictable and trackable behavior of the system as a whole, the server clocks of all the machines running Federated members must be synchronized.
Configure the Custom Base URL in the General System of the Administration module. The Base URL supports detecting member JFrog Deployments (JPDs) in your organization.
Applies to Self-Hosted Deployment
The Custom Base URL is relevant to Self-Hosted deployments and not applicable in SaaS.
Changing the BaseURL in a Federated Repository Environment
You cannot modify the Base URL if you have Federated repositories set up with remote mirroring. Therefore, you will first need to remove the remote members from the Federation and to click Save.
After changing the base URL, proceed to set up the Federated repositories with the original Federated members. For all the remote members to be populated with new settings, it is recommended to wait for a short period of time, between removing the remote members and changing the base URL.
Establish Trust Between the JPDs
You will need to establish trust between the JPDs in your Federated Repository. The options for enabling trust depend on whether you have a Cloud or a Self-hosted deployment.
Cloud Customers
JFrog Enterprise/ Enterprise+ SaaS customers:
Set up a binding token to create bi-directional trust between the JPDs.
Self-hosted Customers
Choose from one of the following options:
Set up bindings between relevant JPDs: Using binding tokens enable admins to create trust between managed JFrog Platform Deployments (JPDs) once the JPDs have been added to the Mission Control instance, thus simplifying the setup across JPDs.
Enable a Circle of Trust: This option is intended for customers who are interested in providing full access to the other JPDs, access which is granted automatically once the Circle of Trust is implemented.
Note
Federated Repositories that use binding tokens (i.e., no Circle of Trust) require an enabled Mission Control microservice in their Artifactory, since the token is created by Mission Control.
Set Up a Federated Repository
Using the UI
From the Administration module, navigate to Repositories | Repositories.
Click Add Repository and select Federated Repository.
Configure the Basic repository settings similarly to configuring a Local Repository.
Note that it is mandatory to assign a Repository Key that will be added as the prefix to the Federated repository and displayed on all the sites.
Configure the Advanced repository settings similarly to configuring a Remote Repository, including defining a proxy (if your organization requires you to go through a proxy to access a Federated repository).
In the Federation tab, proceed to add the repositories located on other JFrog Platform Deployments (JPDs) to the Federation.
Click Add Repository.
In the Add Repositories dialog, add the repositories to the Federation using one of these methods:
Deployments: If you have JFrog Mission Control installed, the repositories on the remote JFrog Platform Deployments will automatically be populated. If the repository with the identical name doesn't exist on the remote JFrog Platform Deployment, proceed to click Create New to duplicate this repository.
URL: Manually add a predefined URL path to the repository. If the repository does not exist on the remote JFrog Platform Deployment, it will be created automatically according to the following syntax.
<BASE_URL>/artifactory/<repository_name> //For example, http://<ip address>:8082/artifactory/fed117
Note
JFrog Platform Deployments will appear only if you have set up bindings or established a Circle of Trust. See Establish Trust Between the JPDs.
Click Save.
You will be routed back to the Basic tab.
Click Create Federated Repository.
Click Save.
Federated Repositories Not Supported for Artifactory Backend Repositories
It is not possible to connect a Terraform Backend repository to a Federated repository. This limitation prevents inconsistencies in the system state, which could lead to unexpected behavior or errors.
Using the REST API
The dedicated Federated Repository Configuration JSON file is application/vnd.org.jfrog.artifactory.repositories.FederatedRepositoryConfiguration+json
The following repository REST APIs support working with Federated repositories:
Pausing/ Resuming Federated Synchronization
You can pause and resume synchronization of the artifacts from your source Federated repository to the other member repositories.
Removing Repositories from the Federation
Admins on any of the federated members can remove themselves and other members from the Federation. Note that you can delete the initial repository and the Federation will continue to function between the remaining federated members.
From the Administration module, click Repositories > Repositories and click the Federated tab to view a list of Federations.
Select the Federation repository from the list and click the Federation tab.
Click the x located on the top right of the repository.
Note
If a remote JFrog Platform Deployment (JPD) is not accessible due to network connectivity issues or if the remote JPD is down, you need to manually make changes on the target JPD to complete the removal of the Federated member.
Converting a Local Repository to a Federated Repository
Using the REST API
You can convert a local repository to a Federated repository using the Convert Local Repository to a Federated Repository REST API.
You can convert an existing local repository to a Federated repository directly from its listing in the Local tab.
In the Administration module, select Repositories > Local.
At the end of the row for the relevant local repository, open the Actions list and select Convert to Federated.