Migrate to the Artifactory Federation Service
Run the JFrog CLI migration plugin to move repository Federations from the legacy service to the standalone RTFS.
Migrate your repository Federations (including configuration, states, and events) from the legacy Federation service in Artifactory to the standalone Artifactory Federation Service (RTFS) using the JFrog CLI.
This topic covers the following tasks:
Who can perform this task: Platform Administrators (self-managed)
Warning
Migration to the Artifactory Federation Service (RTFS) is supported for self-managed environments. Certificate handling depends on your Artifactory version:
- Artifactory versions earlier than 7.133.x require certificates signed by a trusted CA.
- Artifactory 7.133.x and later support self-signed certificates.
- For Kubernetes/Helm deployments, ensure the RTFS trust store includes the certificates your environment requires before migrating.
Prerequisites:
- All items in the Migration Readiness Checklist are confirmed
- The Artifactory Federation Service is installed and activated
- No Full Sync operations are in progress (verify using the following commands)
jf rt curl api/federation/status/stateSummary
jf rt curl "api/federation/status/stateList?status=FULL_SYNC_RUNNING,FULL_SYNC_PREPARING,PENDING_FS"Warning
Verify that no Full Sync operations are running during the migration. Confirm that none are in progress before you start. Do not start Full Sync until migration has finished and you have confirmed success.
When RTFS is active, or you are about to migrate, use the RTFS monitoring APIs above. Do not use the legacy Get Federation Sync State API, which is unsupported under the standalone Artifactory Federation Service. For API details, see Get Federation State Summaries and Get Federation State Details. For status meanings, see RTFS State Machine / Member State Reference.
Install the Migration Plugin
Before you can migrate, install the JFrog CLI federation-migrator plugin, which installs the jar of the migration tool and performs all required migration operations with one command.
To install the migration plugin:
-
Run the following command to install the migration plugin from the official registry of JFrog CLI plugins:
jf plugin install federation-migrator
Note
If a previous installation of the plugin exists, remove or uninstall it before running the plugin installer. On rare occasions, the previous installation can cause the plugin installer to fail.
Large Environments and Behavior During Migration
Use the following guidance when planning migration for large federated footprints (for example, thousands of Federated repositories and tens of millions of artifacts):
- Federation during migration: Federation continues to work while migration runs. Artifactory does not fully move processing to RTFS until migration completes. Artifactory remains available, but avoid high-volume uploads and other heavy Federation tasks until migration completes.
- Do not run Full Sync during migration: Running Full Sync during migration can interfere with the migration flow. Verify that none are in progress before you start using the commands shown in the Prerequisites section.
- Mixed Legacy Federation and RTFS across JPDs: You can run a topology where one instance or site uses Legacy Federation (for example, Artifactory 7.104.x) and another uses RTFS (for example, 7.133.x). This is consistent with hybrid coexistence during transition, as described in the Migration Overview and Decision Guide.
- How long migration takes: JFrog does not publish a fixed duration or a universal ETA. Actual time depends on topology, current lag, network behavior, queued Federation events, and configuration size. It does not depend only on the number of Federated repositories or total artifact storage. For very large environments, plan the window with JFrog Support.
- Kubernetes CPU and memory: Increasing pod-level CPU or memory for Artifactory or RTFS isn't generally required solely as a precaution for migration. Use sizing that matches your normal production load. Scale resources only if monitoring indicates sustained pressure or backlog growth.
- JFrog does not define a special migration limit for repository count or total artifact volume. Migration focuses on Federation metadata, states, and events rather than moving binary data payloads.
Enable or Disable RTFS in an HA Cluster
In an HA cluster, the Artifactory node that handles your request applies the RTFS change first, then notifies the other nodes. If notification fails (for example, during a rolling upgrade), that node keeps the new state. Artifactory does not roll it back. The API or migration tool (jf federation-migrator) may return an error, and Federation can run slower than usual until every node is aligned.
Look for these messages in artifactory-service-federation.log on the node that handled the request. They appear only on that node.
ERROR - Error occurred during the propagation of initial federation client, current node with regarding RTFS state is: <true|false>Migrating to RTFS (rtfsEnabled = true):
WARN - Some nodes failed to migrate to RTFS, federation-health-check-job will try to re-enable RTFS on those nodes during the coming 80 secondsThis WARN can appear in the log, but the Federation health-check job doesn't enable RTFS on lagging HA nodes. The job, which has a default interval of 80 seconds (see artifactory.federation.health.check.job.sec in Recovery and Auto-Healing), auto-reconnects a broken RTFS gRPC client and re-registers the Federation queue when migration has at least started. If other nodes remain out of alignment after the health-check interval, remediate those nodes manually (for example, retry the migration or restart the lagging nodes), then confirm RTFS is healthy.
Disabling RTFS or returning to legacy Federation (rtfsEnabled = false):
WARN - Current node disabled RTFS, A manual restart is needed for the other nodes to align them as wellManually restart every other HA node. This means all instances except the one that already disabled RTFS. Lagging nodes do not receive Federation events while RTFS is disabled, so Federation can stay slow until you restart them. If a node still fails to align after restart, the issue is likely with that node itself.
For recovery steps if this persists, see Troubleshooting Federated Repositories.
Run the Migration
After installing the plugin, run the migration command to transfer your Federation configurations, states, and events to RTFS.
To run the migration:
-
Run the following command:
jf federation-migrator migrate_rtfs <base url without /artifactory> <scoped token>Where:
<base url without /artifactory>is the base URL of your Artifactory instance<scoped token>is a scoped access token. For details, see Generate Scoped Tokens.
For example:
jf federation-migrator migrate_rtfs mycompany.jfrog.io <scoped token>
Command Options
The following table describes the available command options.
| Option | Type | Description | Default |
|---|---|---|---|
-f, --force | boolean | Forces migration without processing all queued events | false |
-p, --parallel | boolean | Enables parallel mode for faster queue migration | false |
-bs, --batch-size | integer | Batch size for RTFS import operations. Warning Increasing the default may cause performance issues. | 250 |
-sr, --stateful-run | boolean | Enables robust migration for repositories not processed during previous runs due to unexpected errors. Requires Artifactory 7.117.1+. | true |
-rlcp, --rtfs-legacy-context-path | boolean | Uses the legacy context path for RTFS, including the /artifactory/service prefix. Required when migrating from Artifactory before 7.111.12 or 7.117.5. See the Breaking Change for Artifactory Federation Service release note. | false |
-hst, --http-socket-timeout-ms | integer | Socket timeout in milliseconds | 1800000 (30 minutes) |
-htc, --http-max-total-connections | integer | Maximum total HTTP client connections | 200 |
-hcr, --http-max-connections-per-route | integer | Maximum HTTP client connections per route | 200 |
-hpt, --http-connection-pool-ttl-sec | integer | HTTP client connection pool TTL in seconds | 60 |
-hrc, --http-retry-count | integer | HTTP client retry count | 5 |
-hvm, --http-verbose-mode | boolean | Enables verbose HTTP client mode | false |
-etm, --executor-timeout-min | integer | Executor timeout in minutes | 120 |
-et, --executor-threads | integer | Number of executor threads | 200 |
Note
The operation can take anywhere from a few seconds to several minutes to complete. You do not need to restart Artifactory after performing the migration.
Verify Migration Status
After running the migration, confirm that it completed successfully.
To verify migration status:
-
Check the migration status:
curl -X GET -uadmin:password "http://{{artifactory_url}}/artifactory/api/federation/migration/status"If the service has been enabled, this API returns one of the following statuses:
MIGRATION_STARTEDMIGRATING_EVENTS_TO_RTFSMIGRATION_COMPLETEDCOMPLETED_WITH_ERRORS
If the service has not been enabled, this API returns:
Status not configured -
Confirm migration completion:
curl -X GET -uadmin:password "http://{{platform_url}}/artifactory/api/federation/rtfs"The API returns
trueif migration has completed successfully. -
Verify the Federation dashboard. The new Federation monitoring dashboard should be available in the platform UI. In the Administration module, go to Platform Monitoring > Federation Status.
Tip
For additional information, add
--helpafter each command:
jf federation-migrator --helpjf federation-migrator migrate_rtfs --helpjf federation-migrator migrate_rt --help
Observability When Migrating to RTFS
Migrating to the standalone Artifactory Federation Service (RTFS) changes how you monitor Federation through REST APIs, Open Metrics, and logs. Plan updates to observability tools (for example, New Relic, Sumo Logic, Datadog, or a custom Prometheus exporter) before production cutover.
| Area | Legacy Federation | After RTFS |
|---|---|---|
| REST APIs | Legacy monitoring APIs (for example, Get Federated Repository Status, Get Federation Mirror Lag Time) | RTFS monitoring APIs. When RTFS is active, legacy Federation monitoring APIs are not supported. |
| Metrics endpoint | Artifactory Open Metrics (jfrt_federation_* series) | GET https://<JPD_URL>/rtfs/api/v1/metrics (jfrtfs_* series). See Open Metrics Reference. |
| Metric prefixes | jfrt / jfrt_federation_* on Artifactory's metrics scrape | jfrtfs_* on the RTFS metrics endpoint. RTFS exposes more metrics than legacy Federation. |
| Custom exporter names | Names such as artifactory.federation.mirror.lag in third-party tools are often renamed or derived by your exporter, not native Artifactory series names. | Update poller mappings to RTFS series. Native lag examples: legacy jfrt_federation_member_lag_total versus RTFS jfrtfs_worker_lag_seconds and jfrtfs_worker_repo_lag_seconds. |
| Logs | Primarily Artifactory logs | Also include artifactory-federation (RTFS) service logs, for example, /opt/jfrog/federation/var/log/artifactory-federation-service.log on native installations. |
Legacy to RTFS metric mapping, selected examples:
| Legacy (Artifactory Open Metrics) | RTFS equivalent |
|---|---|
jfrt_federation_member_lag_total | jfrtfs_worker_lag_seconds, jfrtfs_worker_repo_lag_seconds |
jfrt_federation_num_members_disabled_total | jfrtfs_disabled_members |
jfrt_federation_num_repos_status_total | jfrtfs_members_in_status |
| Get Federation Mirror Lag Time API | Get Federation State Details API and Get Federation Connection Details API |
Tip
Validate RTFS in a non-production environment first. Update metric scrapers, log pipelines, and dashboards before migrating production federations.
Next Steps
Frequently Asked Questions
This section provides answers to frequently asked questions.
FAQs
Q: How do I install the JFrog CLI federation-migrator plugin?
A: Run jf plugin install federation-migrator to install it from the official registry of JFrog CLI plugins. See Install the Migration Plugin for details.
Q: How long does migration to RTFS take?
A: JFrog doesn't publish a fixed duration — actual time depends on topology, current lag, network behavior, queued Federation events, and configuration size. For very large environments, plan the migration window with JFrog Support.
Q: Can Federation continue to work while migration to RTFS is running?
A: Yes. Federation continues to work during migration, though you should avoid high-volume uploads and other heavy Federation tasks until migration completes.
Q: What should I check before I start the migration?
A: Confirm the Migration Readiness Checklist is complete, that the Artifactory Federation Service is installed and activated, and that no Full Sync operations are in progress.
Q: How do I verify that migration to RTFS completed successfully?
A: Check the migration status API for a MIGRATION_COMPLETED response, confirm the RTFS status API returns true, and verify the Federation dashboard in Platform Monitoring. See Verify Migration Status for the full steps.
Related Topics
Updated about 7 hours ago
