The Clarive Artifact Repository Manager (ARM) feature is a database repository of file resources (generally called “artifacts”) that are ready to be delivered. The objective of the Clarive ARM is to keep track of all files built and deployed by Clarive as part of a continuous delivery or release pipeline.

Why use an Artifact Repository?

Artifact repositories have become common place in any DevOps toolchain. This was popularized by the “mavenization” of Java application builds back in the early to mid 2000s. In general, this are the key reasons for having an enterprise-wide artifact repository:

  • every application or component built publishes artifacts back into the repository
  • application builds only use external libraries that have been published to repository artifacts
  • repository artifacts can be tagged, obsoleted and searched; they can be secured and automated
  • artifacts from external sources (ie. from vendors, opensource communities or the internet at large) can be proxied, buffered and curated

In short, an artifact repository is a way to securely maintain a component dependency environment in a organization or project. The goal is to have an unified, enterprise-wide location for storing all deployable artifacts for improving auditability and enabling a secure download reference location for dependencies.

Artifact Repositories in Clarive

These are the prerequisites to implement artifact tracking into the repository in Clarive:

  1. Create Artifact repository CIs. These are the storage points that will serve as storage points.
  2. Identify which artifacts, files and components from the that will be deployed
  3. Store selected artifacts into the ARM using the “Publish to Artifact Repository” operation from the palette.

With these 3 steps, the artifact repository will be populated with the artifacts built or transported by Clarive as part of your delivery pipeline jobs.

Once published, an artifact may be used by the build process of any language. Here’s an example in Maven of how to refer to an artifact published in the Clarive ARM:

<project>
    <repositories>
        <repository>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <layout>default</layout>
            <url>http://localhost:8081/nexus/content/repositories/releases</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <name>Maven Plugin Repository</name>
            <url>http://localhost:8081/nexus/content/repositories/releases</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <dependencies>
        <dependency>
            <groupId>com.dropbox.core</groupId>
            <artifactId>dropbox-core-sdk</artifactId>
            <version>LATEST</version>
        </dependency>
    </dependencies>

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>1</version>
</project>

Artifact Tagging, Tracking and Searching

Clarive ARM enables the tagging and searching of repository artifacts. You can tag groups or individual artifacts, or search by name. Artifacts are indexed by filename, path and tags.

Clarive artifact searching, tagging and deprecation

Artifacts can also be deprecated or outright scheduled for deletion. Unhealthy, unlicensed or vulnerable artifacts may be searched for certain keywords too, identifying applications that are affected by a change.

Source Repository Navigation

Not all artifacts deployed need to be stored in an artifact repository. Sometimes, simply using the source code repository or change provider in Clarive is enough for most dependency management tasks.

Searching for artifacts and files inside the Acmebank application

 Other Artifacts: Topic Assets

Topic assests are files that are attached to topics in Clarive. Depending on how a organization is setup, these attachments can be deployed as part of the delivery pipeline. These assets are also stored in Clarive automatically, but not as part of the ARM. They have a different storage structure.

External Repositories

The Clarive ARM is just an easy to use and deploy artifact manager. But the fact that Clarive comes bundled with its own repository it does not rule out the use of external artifact repositories such as Sonatype Nexus or JFrog Artifactory. The Clarive ARM intention is more generic than that of Nexus or Artifactory, and targets simpler use cases that are not language specific (both Nexus and Artifactory are strongly Java/Maven-oriented).