> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/internal-developer-portal/3.0/use-idp/plugins/available-plugins/image-jfrog.md).

# Container Image Registry for JFrog Artifactory

| Plugin details |                                                                                              |
| -------------- | -------------------------------------------------------------------------------------------- |
| **Created by** | [RedHat](https://redhat.com/)                                                                |
| **Category**   | Image                                                                                        |
| **Source**     | [GitHub](https://github.com/janus-idp/backstage-plugins/tree/main/plugins/jfrog-artifactory) |
| **Type**       | Open-source plugin                                                                           |

### Configuration <a href="#configuration" id="configuration"></a>

#### Application configuration YAML <a href="#application-configuration-yaml" id="application-configuration-yaml"></a>

This plugin requires a backend proxy configuration to make calls to JFrog with authentication.

* Under the **Plugins** tab in **Configure**, go to `app-config.yaml` and **Edit YAML** to configure your JFrog endpoint in the **target** field in the format as shown below.

```yaml
# app-config.yaml <a href="#app-configyaml" id="app-configyaml"></a>
proxy:
  endpoints:
    '/jfrog-artifactory/api':
      target: 'http://<hostname>:8082' # or https://<customer>.jfrog.io
      pathRewrite:
        api/proxy/jfrog-artifactory/api/?: /
      headers:
        Authorization: 'Bearer ${JFROG_TOKEN}'
      # Change to "false" in case of using self hosted artifactory instance with a self-signed certificate
      secure: true
```

#### Secrets <a href="#secrets" id="secrets"></a>

* You need to add the JFROG\_TOKEN as a Harness Secret.
* **Create secret in Harness** to store API token, click on “New Secret Text” and enter values as shown below.

### Layout <a href="#layout" id="layout"></a>

*No action required*

*No action required*

This plugin exports a UI tab that you can use as a new **JFrog** tab for a service or for any other layout page. The following configuration is set by default in **Layout** under **Catalog Entities** for **Service** and you do not need to change anything:

```yaml
- name: JfrogArtifactoryPage
  path: /jfrog-artifactory
  title: Jfrog Artifactory
  contents:
    - component: JfrogArtifactoryPage
```

### Annotations <a href="#annotations" id="annotations"></a>

* Artifact details are correlated to IDP entities using an annotation added in the entity's `catalog-info.yaml` file.

```yaml
metadata:
  annotations:
    'jfrog-artifactory/image-name': '<IMAGE-NAME>'
```

### Support <a href="#support" id="support"></a>

The plugin is owned by RedHat and managed in this [repository](https://github.com/janus-idp/backstage-plugins/tree/main/plugins/jfrog-artifactory) as an open-source project. Create a GitHub issue to report bugs or suggest new features for the plugin.
