JFrog Artifactory · Schema
Artifactory Repository Configuration
Configuration schema for JFrog Artifactory repositories including local, remote, virtual, and federated types.
ArtifactsDevOpsCI/CDDocker RegistryMavenPackage ManagementRepository
Properties
| Name | Type | Description |
|---|---|---|
| key | string | Unique repository identifier. Must be lowercase and can contain letters, digits, hyphens, dots, and underscores. |
| rclass | string | Repository class that determines repository behavior. |
| packageType | string | The package type this repository handles. |
| description | string | Human-readable description of the repository. |
| notes | string | Internal notes about the repository (not visible to end users). |
| includesPattern | string | Comma-separated list of artifact path patterns to include. |
| excludesPattern | string | Comma-separated list of artifact path patterns to exclude. |
| repoLayoutRef | string | Repository layout reference name. |
| handleReleases | boolean | Whether this repository handles release artifacts. |
| handleSnapshots | boolean | Whether this repository handles snapshot artifacts. |
| maxUniqueSnapshots | integer | Maximum number of unique snapshots to retain. 0 means unlimited. |
| suppressPomConsistencyChecks | boolean | Whether to suppress POM consistency checks for Maven artifacts. |
| blackedOut | boolean | Whether the repository is blacked out (all access denied). |
| propertySets | array | List of property set names to associate with this repository. |
| archiveBrowsingEnabled | boolean | Whether browsing of archive contents is enabled. |
| xrayIndex | boolean | Whether JFrog Xray indexing is enabled for this repository. |
| environments | array | List of environments this repository is associated with. |
| url | string | URL of the remote repository (only for remote repositories). |
| username | string | Username for authenticating with the remote repository. |
| password | string | Password for authenticating with the remote repository. |
| proxy | string | Proxy key for remote repository connections. |
| remoteRepoChecksumPolicyType | string | Checksum policy for remote repository. |
| unusedArtifactsCleanupPeriodHours | integer | Hours to keep unused artifacts before cleanup. 0 means disabled. |
| assumedOfflinePeriodSecs | integer | Seconds to assume remote is offline after a failure. |
| retrievalCachePeriodSecs | integer | Seconds to cache retrieval results from remote. |
| missedRetrievalCachePeriodSecs | integer | Seconds to cache missed retrieval attempts. |
| repositories | array | List of repository keys resolved by this virtual repository. |
| defaultDeploymentRepo | string | Default deployment repository for virtual repository deployments. |
| dockerApiVersion | string | Docker API version for Docker repositories. |
| forceNugetAuthentication | boolean | Whether to force authentication for NuGet repositories. |
| enableTokenAuthentication | boolean | Whether token authentication is enabled for Docker repositories. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://jfrog.com/schemas/artifactory-repository-configuration.json",
"title": "Artifactory Repository Configuration",
"description": "Configuration schema for JFrog Artifactory repositories including local, remote, virtual, and federated types.",
"type": "object",
"required": ["key", "rclass"],
"properties": {
"key": {
"type": "string",
"description": "Unique repository identifier. Must be lowercase and can contain letters, digits, hyphens, dots, and underscores.",
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]*$",
"examples": ["libs-release-local", "npm-remote", "docker-virtual"]
},
"rclass": {
"type": "string",
"description": "Repository class that determines repository behavior.",
"enum": ["local", "remote", "virtual", "federated"]
},
"packageType": {
"type": "string",
"description": "The package type this repository handles.",
"enum": [
"maven",
"gradle",
"ivy",
"sbt",
"helm",
"cocoapods",
"opkg",
"rpm",
"nuget",
"cran",
"gems",
"npm",
"bower",
"debian",
"composer",
"pypi",
"docker",
"vagrant",
"gitlfs",
"go",
"conan",
"chef",
"puppet",
"generic",
"cargo",
"conda",
"swift",
"terraform"
]
},
"description": {
"type": "string",
"description": "Human-readable description of the repository.",
"maxLength": 1024
},
"notes": {
"type": "string",
"description": "Internal notes about the repository (not visible to end users).",
"maxLength": 1024
},
"includesPattern": {
"type": "string",
"description": "Comma-separated list of artifact path patterns to include.",
"default": "**/*"
},
"excludesPattern": {
"type": "string",
"description": "Comma-separated list of artifact path patterns to exclude.",
"default": ""
},
"repoLayoutRef": {
"type": "string",
"description": "Repository layout reference name.",
"examples": ["maven-2-default", "npm-default", "simple-default"]
},
"handleReleases": {
"type": "boolean",
"description": "Whether this repository handles release artifacts.",
"default": true
},
"handleSnapshots": {
"type": "boolean",
"description": "Whether this repository handles snapshot artifacts.",
"default": false
},
"maxUniqueSnapshots": {
"type": "integer",
"description": "Maximum number of unique snapshots to retain. 0 means unlimited.",
"minimum": 0,
"default": 0
},
"suppressPomConsistencyChecks": {
"type": "boolean",
"description": "Whether to suppress POM consistency checks for Maven artifacts.",
"default": false
},
"blackedOut": {
"type": "boolean",
"description": "Whether the repository is blacked out (all access denied).",
"default": false
},
"propertySets": {
"type": "array",
"description": "List of property set names to associate with this repository.",
"items": {
"type": "string"
}
},
"archiveBrowsingEnabled": {
"type": "boolean",
"description": "Whether browsing of archive contents is enabled.",
"default": false
},
"xrayIndex": {
"type": "boolean",
"description": "Whether JFrog Xray indexing is enabled for this repository.",
"default": false
},
"environments": {
"type": "array",
"description": "List of environments this repository is associated with.",
"items": {
"type": "string"
},
"examples": [["DEV", "PROD"]]
},
"url": {
"type": "string",
"format": "uri",
"description": "URL of the remote repository (only for remote repositories)."
},
"username": {
"type": "string",
"description": "Username for authenticating with the remote repository."
},
"password": {
"type": "string",
"description": "Password for authenticating with the remote repository."
},
"proxy": {
"type": "string",
"description": "Proxy key for remote repository connections."
},
"remoteRepoChecksumPolicyType": {
"type": "string",
"description": "Checksum policy for remote repository.",
"enum": [
"generate-if-absent",
"fail",
"ignore-and-generate",
"pass-thru"
]
},
"unusedArtifactsCleanupPeriodHours": {
"type": "integer",
"description": "Hours to keep unused artifacts before cleanup. 0 means disabled.",
"minimum": 0,
"default": 0
},
"assumedOfflinePeriodSecs": {
"type": "integer",
"description": "Seconds to assume remote is offline after a failure.",
"minimum": 0,
"default": 300
},
"retrievalCachePeriodSecs": {
"type": "integer",
"description": "Seconds to cache retrieval results from remote.",
"minimum": 0,
"default": 7200
},
"missedRetrievalCachePeriodSecs": {
"type": "integer",
"description": "Seconds to cache missed retrieval attempts.",
"minimum": 0,
"default": 1800
},
"repositories": {
"type": "array",
"description": "List of repository keys resolved by this virtual repository.",
"items": {
"type": "string"
}
},
"defaultDeploymentRepo": {
"type": "string",
"description": "Default deployment repository for virtual repository deployments."
},
"dockerApiVersion": {
"type": "string",
"description": "Docker API version for Docker repositories.",
"enum": ["V1", "V2"]
},
"forceNugetAuthentication": {
"type": "boolean",
"description": "Whether to force authentication for NuGet repositories.",
"default": false
},
"enableTokenAuthentication": {
"type": "boolean",
"description": "Whether token authentication is enabled for Docker repositories.",
"default": true
}
},
"allOf": [
{
"if": {
"properties": {
"rclass": { "const": "remote" }
},
"required": ["rclass"]
},
"then": {
"required": ["url"]
}
}
]
}