Project governance with JFrog Artifactory

Wipro Tech Blogs
6 min readFeb 14, 2025

--

Organizing projects in Artifactory using Single-site or Multi-site artifactory

Dr. Magesh Kasthuri, Distinguished Member of Technical Staff, Wipro Limited

Jayashree Arunkumar, Enterprise Architect, Wipro Limited

Dharanidharan Murugesan, Technical Lead, Wipro Limited

Introduction

JFrog Artifactory is a universal binary repository manager that supports various package managers, CI servers, and DevOps tools. It plays a crucial role in managing artifacts throughout the software development lifecycle, ensuring efficient storage, security, and sharing of binaries. This whitepaper explores how enterprises can leverage JFrog Artifactory efficiently, organize artifacts, implement security measures, share artifacts for integration architecture, and follow best practices.

Organizing Artifacts

Efficient organization of artifacts in JFrog Artifactory is essential for streamlined development processes. Here are some best practices:

  1. Repository Naming Conventions: Use a four-part naming structure that includes the project name, technology, package maturity level, and physical topology of artifacts. For example, <team/projectKey>-<technology>-<maturity>-<locator>.
  2. Repository Types: Utilize local, remote, virtual, and federated repositories appropriately. Local repositories store your own artifacts, remote repositories proxy external repositories, virtual repositories aggregate multiple repositories, and federated repositories support artifacts distribution across multiple JFrog instances(geographically distributed).
  3. Metadata and Properties: Apply metadata and properties to artifacts for better management and tracking. This helps in categorizing and searching for artifacts efficiently.

Security Measures

Security is paramount when managing artifacts. JFrog platform provides extensive security capabilities:

  1. Access Control: Implement fine-grained access control using users, groups, permissions, and permission targets. Restrict access to repositories and artifacts based on roles and responsibilities.
  2. Authentication: Integrate with LDAP, OAuth SSO, SAML SSO & SCIM ( with Azure Entra) for user authentication
  3. Vulnerability Scanning: Use JFrog Xray to scan artifacts for vulnerabilities and ensure compliance with security policies.

Unified solution (Organizing Artifacts + Securing Artifacts):

Diagram below illustrates the integration between Artifactory and Xray:

Figure: Example for Single Site and Multi-site artifactory

Usecase example — Single Site artifactory

If the enterprise decides to go with one JFrog platform instance, and if there is a java repository (eg: recruit app) that creates a jar file :

1.Create a mvn remote repository that will download the artifacts from mvn registry. While setting up the repository , ensure the repository is indexed for Xray

2. Create a dev local repository ( as per the naming convention outlined earlier). The artifact built ( for dev environment) will be made available in dev local repository. This repository needs to be indexed for Xray.

3. Create a qa local repository ( as per the naming convention outlined earlier). The artifact built (for qa environment) will be made available in qa local repository. This repository also needs to be indexed for Xray

4. Create a virtual repository and include the local and remote repositories that are applicable . This allows a single entry point to the multiple repositories.

Use Case : Multi-site artifactory

If the enterprise has multiple JFrog instances hosted in different regions, then the artifacts creation in the respective regions can be federated by the authorized admin.

JFrog Platform UI screenshot for a Java application:

Security Policies & watches will need to be provisioned in Xray such that high, critical vulnerabilities when identified will stop the download on the IDE, fail the build and send notifications to the stakeholders. Please refer the policy definition and build failure snapshots below.

Sharing Secured Artifacts for Continuous Integration & Deployment Architecture

Sharing artifacts efficiently is crucial for integration architecture. Here are some strategies:

  1. CI/CD Integration: Integrate JFrog Artifactory with CI/CD pipelines to automate the storage and deployment of artifacts. Use REST APIs, JFrog CLI, and native integrations with CI servers.
  2. Artifact Promotion: Implement artifact promotion processes to move artifacts through different stages of the development lifecycle, such as development, staging, and production.
  3. Repository Replication: Use repository replication to share artifacts across geographically distributed teams and ensure high availability.

4. Federated Repositories: Use federated repositories to connect multiple JFrog platform deployments (JPDs) or JFrog Artifactory instances. This enables automatic, bi-directional mirroring of artifacts, ensuring that geographically distributed teams have consistent and up-to-date access to all artifacts.

Figure: Federated Repositories

The diagram below indicates how JFrog is infused in the continuous integration and deployment architecture. Unless the opensource libraries, binary artifacts are gated from both security and license compliance perspective, the next stage in the software development lifecycle will not move .

Figure: Infusing JFrog in Continuous Integration and Deployment flow

Comparison of JFrog Artifactory with Other Artifact Management Tools

JFrog Artifactory stands out as a universal binary repository manager, supporting a wide range of package formats and build tools. It is often compared with other tools like Docker Trusted Registry, Nexus v2, Nexus v3, Quay, Amazon ECR, and Google Container Registry. Here are some key points of comparison:

  • Universal Solution: Unlike some tools that are technology-specific, JFrog Artifactory supports all major package formats, including Maven, Gradle, Docker, Vagrant, Debian, YUM, and more.
  • Build Integration: Artifactory integrates seamlessly with all major build tools and CI servers, such as Jenkins, TeamCity, Bamboo, and TFS.
  • End-to-End Artifact Management: JFrog offers a comprehensive suite of products, including JFrog Xray for artifact analysis, JFrog Artifactory for centralized repository management and distribution.
  • Enterprise Ready: Artifactory provides high availability, scalability, and robust security features, making it suitable for enterprise environments.

Comparison of JFrog Artifactory with other artifact management tools

Do’s and Don’ts in Implementing JFrog Artifactory

Implementing JFrog Artifactory requires careful planning and execution. Here are some do’s and don’ts:

Do’s:

  • Plan Repository Structure: Plan your repository type , structure and naming conventions before implementation to avoid confusion and redundancy.
  • Automate Processes: Automate artifact management processes using JFrog CLI, REST APIs, and CI/CD integrations.
  • Monitor and Audit: Regularly monitor and audit repository usage and access to ensure compliance with security policies.

Don’ts:

  • Avoid Overcomplicating: Avoid overcomplicating repository structures and naming conventions. Keep them simple and intuitive.
  • Neglect Security: Do not neglect security measures. Ensure that all artifacts are scanned for vulnerabilities and access controls are in place.
  • Ignore Documentation: Do not ignore documentation and training for your team. Ensure that all team members are familiar with JFrog Artifactory’s features and best practices.

Best Practices

Following best practices ensures the efficient use of JFrog Artifactory:

  1. Role based access control: RBAC definition needs to be clearly configured such that no policies are compromised by the engineers
  2. Single Source of Truth : Make sure all the artifacts are provisioned only in JFrog Artifactory. Recurring governance by enterprise architects and security architects will ensure all the artifacts are centrally managed.
  3. Artifact Cleanup: Implement artifact cleanup policies to remove outdated and unused artifacts, freeing up storage space.
  4. High Availability: Deploy JFrog Artifactory in a high-availability configuration to ensure uninterrupted access to artifacts.

--

--

No responses yet