ARTIFACTORY: Why Package-Specific Properties Do Not Federate or Replicate

AuthorFullName__c
Sara Ngo
articleNumber
000007091
FirstPublishedDate
2026-07-29T06:14:51Z
lastModifiedDate
2026-07-29

ARTIFACTORY: Why Package-Specific Properties Do Not Federate or Replicate

Introduction
When you upload packages (like npm, NuGet, or Composer) and manually add version properties to your upload command (e.g., npm.version=1.0.0), they appear correctly on the source repository. However, you will notice these specific properties do not sync to your federated or replicated target repositories.
This article explains why this happens and how to ensure your metadata syncs correctly.


Resolution
The Cause
Artifactory views properties like npm.version, composer.version or nuget.id as internal system metadata. To avoid database conflicts, Artifactory intentionally filters these specific properties out of the replication and federation syncs. Instead, the system expects the target repository to receive the physical file, read it, and generate its own metadata locally.
You will notice that these package-specific properties fail to propagate or sync to target federated repositories or replication destinations. This article explains the underlying architectural reasons for this behavior and offers step-by-step instructions to ensure your metadata is accurately reflected across all target nodes.


Step-by-Step Instructions
To ensure your package properties appear on the target repositories, use one of these two methods:
Method 1: Put metadata inside the package (Recommended)
The best way to ensure metadata syncs perfectly is to embed it directly into the package structure before uploading.
  1. Make sure your package's native metadata file (such as package.json for npm, composer.json for Composer, or .nuspec for NuGet) lists the correct version.
  2. Upload the package.
  3. When the physical file is replicated, the target repository will automatically open it, read the internal file, and generate the correct properties locally.
Method 2: Update the target manually
If you must upload files without internal metadata, you have to manage the target repository directly.
  1. Upload your package with your manual properties.
  2. Wait for the file to replicate to the target repository.
  3. Go to the target repository and manually add the properties to the file, via UI or REST API, then trigger a "Recalculate Index" on the target so it processes the file.


Conclusion
In short, Artifactory's sync engines ignore manually added package properties because target repositories are designed to calculate their own metadata. By ensuring your version details are saved inside the package's internal manifest file before uploading, you allow Artifactory to automatically generate the correct properties across all your connected repositories.