Understanding JFrog Artifactory: Features, Advantages, and Best Practices for Artifact Management
This article introduces JFrog Artifactory, explains its role as a universal artifact repository, outlines its key advantages such as multi‑format support, CI/CD integration, powerful search, lifecycle management, and provides practical guidance on repository naming, permissions, retention policies, and workflow best practices.
What is Artifactory
Artifactory is a universal artifact repository that stores binary artifacts and supports a wide range of package formats, making it a powerful tool for managing build outputs across many languages and technologies.
Advantages of Artifactory
Advantage 1: Universal Repository
It supports all major package formats, allowing teams to store binaries and dependencies in a single location.
Advantage 2: Better CI Integration
Artifactory integrates with all mainstream CI tools, captures detailed build environment information, and provides a rich REST API so that any GUI operation can be scripted, facilitating full CI/CD pipelines.
Advantage 3: Powerful Search
Search can be performed by name with regular expressions, by checksum, or by custom properties, enabling rapid location of artifacts.
Example 1: Search by name
To find a build with commit hash a422912 , enter *a422912* and press Enter.
Example 2: Search by property
To locate artifacts where the property release.status equals released , use the property‑based search UI.
Example 3: Search by checksum
Calculate the SHA‑1 checksum with $ sha1sum test.zip and search using the resulting value.
Advantage 4: Lifecycle Management
Define repositories with different maturity levels (dev, int, stage, release) and use the Promote function to move artifacts through the lifecycle, adding metadata to control retention and access.
Artifactory Home Overview
The home page shows the total number of stored artifacts, the current version, and quick access to search, documentation, and recent builds.
Top Section
Displays artifact count, version information, and latest releases.
Middle Section
Search bar with advanced filters.
"Set Me Up" panel to select and explore repositories.
List of most downloaded artifacts (e.g., download count 95 ).
Bottom Section
Links to integration tools and official documentation for quick reference.
Practical Workflow
Repository Watching
Users can star favorite repositories to filter the view to only those they care about.
Repository Permissions and Retention Policies
Repository
Maturity
Retention
Personal Account
Service Account
Admin
dev
Usually not cleaned
read/write
read/write
all
int
One week or a few days
read
read/write
all
stage
Clean after release
read
read/write
all
release
Never clean
read
read/write
all
The table illustrates typical permission and retention settings for each repository maturity level.
Repository Naming Convention
JFrog recommends the pattern <team>-<technology>-<maturity>-<locator> , e.g., team1-generic-int-den . The four parts are team (anonymized), technology (generic, Docker, Maven, etc.), maturity (dev, int, stage, release), and locator (region or data‑center identifier).
Build to Release Workflow
Artifacts flow from dev (development) to int (integration), then to stage (pre‑release) after successful tests, and finally to release after final approval. Promotion is performed with the Promote command.
1. Branch Naming Convention
Use a clear pattern such as feature/ART-1234 . In Jenkins, set the repository path with environment variables:
environment {
INT_REPO_PATH = "team1-generic-int-den/ART/${BRANCH_NAME}/${BUILD_NUMBER}/"
}Each build creates a directory under the appropriate repository, making artifact locations predictable.
2. Adding Stage‑Specific Properties
After passing quality gates, add properties like unit.test.status=passed , automated.test.status=passed , sonarqube.scan.status=passed , and manual.test.status=passed . These properties can be used to filter artifacts for promotion.
When all required properties are present, promote the artifact from int to stage , then after testing, promote from stage to release and set release.status=released .
Conclusion
By using Artifactory to manage artifact storage, search, and lifecycle, teams create a single source of truth that supports reliable, secure, and repeatable software delivery pipelines.
References
JFrog Artifactory naming best practices: https://jfrog.com/whitepaper/best-practices-structuring-naming-artifactory-repositories/
Git commit and branch naming guidelines: https://shenxianpeng.github.io/2020/09/commit-messages-specification/
DevOps Engineer
DevOps engineer, Pythonista and FOSS contributor. Created cpp-linter, commit-check, etc.; contributed to PyPA.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.