Cleanup Supported Packages

JFrog Platform Administration Documentation

Content Type
Administration / Platform

This topic outlines the supported packages with cleanup. It includes the policy conditions that apply to each package type.

Package Type

Supported Release Version

Lead Artifact

Age (Packages Older Than)

Usage (Packages Not Downloaded Since)

Version (Number of Latest Versions to Keep)

Docker

7.98.2

manifest.json

Note

Supported from V 7.115.1

Maven

.pom

npm

.tgz

Gradle

.pom

Generic

-

RPM | YUM

.rpm

Conan

conanfile.py

NuGet

.nupkg

PyPI

tar.gz, tgz, gz, whl, egg, bz2

Helm

.tgz

Go

.mod

Debian

.deb, .ddeb

Gems

7.96.3

.gem

HuggingFaceML

7.100.0

.jfrog_huggingface_model_info.json, .jfrog_huggingface_dataset_info

CocoaPods

7.99.1

.tar.gz, .tgz

Terraform

.zip

Terraform BE

7.103.0

.json

Machine Learning

7.104.2

model-manifest.json

Ansible

tar.gz

Cargo (Rust)

7.102.0

.crate

OCI

manifest.json

Note

Supported from V 7.115.1

Helm OCI

Note

Supported from V 7.115.1

Conda

7.105.2

tar.bz2

SBT

7.108

.pom, .xml

Alpine

7.111.0

.tar.gz, .apk

Hex

-

Vagrant

-

Chef

7.112

-

Puppet

-

Swift

7.114.1

Composer

7.116

Note

Some package types include multiple artifacts the package-level cleanup mechanism relies on the lead artifact statistics.

Docker Cleanup Method

Docker images can have multiple tags and use list.manifests to support different architectures. Each list.manifest points to several specific manifests for various systems.

Learn how the policy executes for the following conditions:

  • Time-based Condition: Time-based condition delete images and tags that have not been used within a certain period. This helps keep the connections between tags intact and ensures the stability of multi-architecture references. We recommend using the Packages Not Downloaded Since condition to prevent the deletion of images that are currently in use.

  • Version-based Condition: From Artifactory V 7.115.1, we support Version-based policy condition for Docker. It allows you to keep a specified number of image versions in the Docker repository, which considers the structure of Docker images when deciding what to delete. If a Docker image is a list.manifest, it will either be deleted with all of its related sub-manifests or not deleted at all. This approach maintains the relationships between images. This provides greater control over image management and helps maintain tag relationships and multi-architecture references.

    On the other hand, time-based condition treat each manifest and list.manifest separately, without considering their hierarchical structure. Each one is evaluated independently based on its status.

    Note

    • Tag Retention LogicUse Tag Retention: When this logic is enabled, previous tag revisions (tag retentions) will be removed only when the most recent revision of a tag is deleted.

    • Max Unique Tags Logic: When this logic is enabled, the Last N Versions policy will take precedence.Use Max Unique Tags

      Example: With Last N Versions set to 2 and Max Unique Tags set to 5, retains only 2 versions/tags of the same image after the policy is executed.

    Avoid Policies with Conflicting Criteria

    We recommend to avoid configuring two different policies with conflicting criteria (For example, Last N Versions and Not Downloaded Since) for the same Docker, OCI, or Helm OCI repository.