What is a software artifact?

Shai Ben-Zvi
2019-05-15 06:45

Subject 

What is a software artifact?

Description

A software build contains not only the developer’s code also includes a range of software artifacts. A DevOps artifact is a by-product produced during the software development process. It may consist of the project source code, dependencies, binaries or resources, and could be represented in different layout depending on the technology. Software artifacts are usually stored in a repository, like JFrog Artifactory, so they can be retrieved on demand and shared across teams.

Why is Software Artifact Metadata Important?

Metadata accumulated about your artifacts is essential for reusing your code and improving your build process. Developers need to share their code and use third-party components, and one of the key enablers to collaboration is the metadata attached to software artifacts. However, the combination of many metadata types issued by multiple providers along the software supply chain, compounded by an abundance of consumers, creates unmanageable complexity in the collaborative process.

Accessing Artifact Data

Artifactory Query Language (AQL) is specially designed to let you uncover any data related to the artifacts. Its syntax offers a simple way to formulate complex queries that specify any number of search criteria, filters, sorting options, and output parameters. AQL is exposed as a RESTful API which uses data streaming to provide output data resulting in extremely fast response times and low memory consumption.

Managing Your Software Artifacts

An artifact repository manager such as Artifactory supports moving, copying and deleting artifacts to keep your repositories consistent and coherent. When an artifact is moved, copied or deleted, Artifactory immediately and automatically updates the corresponding metadata descriptors (such as maven-metadata.xml, RubyGems, Npm and more) to reflect the change.

Searching for Your Application Artifacts

Artifactory supports several Search Types to search for artifacts and provides the following filters:

  • Quick: Search by artifact file name.

  • Package: Search for artifacts according to the criteria specific to the package format.

  • Archive Entries: Search for files that reside within archives (e.g. within a jar file).

  • Property: Search for artifacts based on names and values of properties assigned to them.

  • Checksum: Search for artifacts based on their checksum value.

  • JCenter: Search for artifacts in Bintray's JCenter repository.

  • Trash Can: Search for artifacts in Artifactory's trash can.