Have a question? Want to report an issue? Contact JFrog support

Skip to end of metadata
Go to start of metadata

Overview

JFrog Artifactory Edge (an "Edge node") is an edition of JFrog Artifactory whose available features have been customized to serve the primary purpose of distributing software to a runtime such as a data center, a point-of-sale or even a mobile device. All packages hosted in an Edge node are part of a release bundle which is a secure and immutable collection of software packages that make up a release to be provisioned.

Edge Node Capabilities

An Artifactory Edge node is customized to only provide functionality needed for the distribution of packages specified in release bundles. The following table summarizes what an Edge node can and cannot do compared to a full Artifactory instance:

 ArtifactoryEdge Node
Uploading files
  • Upload from a source Artifactory instance during a Distribution transaction

  • Direct file upload through UI or REST API

 

(tick)

(tick)

 

(tick)

(error)

Downloading files
(tick)(tick)
Repositories
  • Local

  • Remote

  • Virtual

(tick)

(tick)

(tick)

(tick)

(error)


(tick)

Storage

All forms of storage including cloud storage providers such as S3, GCP and Azure

 

(tick)

 

(tick)

Sharding
(tick)(tick)
User plugins
(tick)(tick)
Replication
(tick)

(warning)

Can only receive data specified in a distribution bundle via the replicator

Builds
(tick)(error)
Xray integration
(tick)

(error)

Any analysis of components should be done on the fully featured source Artifactory instance.

High Availability
(tick)(tick)

Page Contents

The Distribution Flow

The high-level distribution flow has two main steps:

  1. Creating a Release Bundle
    A REST API call on JFrog Distribution specifies a variety of parameters including the files comprising the release bundle, and different properties associated with it. 

  2. Distributing a Release Bundle
    The distribution is itself split into three steps:
    1. Start a distribution transaction - query JFrog Mission Control for details on the distribution target nodes, and provide the target nodes with information about distributed files such as their checksum.
    2. Transfer files with smart replication - JFrog Distribution invokes the Replicator which distributes files by replicating them from the source Artifactory instance over to the target node.
    3. End a distribution transaction - JFrog Distribution notifies the Edge node that the transaction is complete. In turn, the Edge node validates the integrity of the transferred files through their checksum and hosts them in the correct place as specified in the release bundle.


Installing an Edge Node

The process of installing an Edge node is identical to installing any other Artifactory instance. For details, please refer to Installing Artifactory.

Make sure to activate the Replicator

The primary purpose of an Edge node is to receive release bundles for deployment to a runtime which requires the use of the Replicator. Therefore, once your Edge node is installed, you need to ensure its Replicator has been activated and is ready for use as described in Installation and Activation


Setting a PGP Key

To enable a secure distribution flow, an Edge node must be able to validate the contents of any Release Bundles that it receives. This is done by furnishing the Edge node with the PGP signing key of any Distribution service that will be uploading Release Bundles as a one-time action before any Distribution flows are invoked. 

Updating PGP Keys

 Note that if you change the PGP signing keys on any Distribution service that is uploading Release Bundles to an Edge node, the Edge node must be updated with the new public key.

 

To upload the PGP key of a Distribution service to an Edge node, use the following REST API endpoint:

Set Distribution Public Key

Description: Sets the public PGP key of a JFrog Distribution service that needs to upload Release Bundles to an Edge node
Security: Requires a valid admin user
Usage: POST /api/security/keys/trusted
Consumes: application/json
Since: Enterprise+ Beta
Sample Usage:

API URL: http://<EdgeNode>:<Port>/artifactory/api/security/keys/trusted
 Method : POST
 Content-Type: application/json
 Authorization : Basic XXXXXXXXX
 Body : {
 "alias" : "distribution key 1.0.0"
 "public_key" : "-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG C# v1.6.1.0
 
mQENBFpDamEBCACrrAoudjlwnrRqqjdrCgPwEPyHqYddXPLDHViOVZfiREp9ENkq
2PIThlj79Cj+60ePaE4Kxaze+uH1ckTxhCNIblHWiGUluKxH8Cpy7huCBdwqkD/y


...


x4w+26u0BNxE+4xlWaJ3NUb4CWtXLERfr8aKdkf1RXdMF3c96EXCBtGzLJbhrw==
=D24P
-----END PGP PUBLIC KEY BLOCK-----"
} 
  
Expected Response:{
 "kid": "46635b",
 "fingerprint": "f5:80:6a:1b:08:35:e7:8c:fa:a8:a0:fc:b4:fd:30:87:93:7d:19:22",
 "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG C# 1.6.1.0\n\nmQENBFpDamEBCACrrAoudjlwnrRqqjdrCgPwEPyHqYddXPLDHViOVZfiREp9ENkq
2PIThlj79Cj+60ePaE4Kxaze+uH1ckTxhCNIblHWiGUluKxH8Cpy7huCBdwqkD/y
 
... 
 
x4w+26u0BNxE+4xlWaJ3NUb4CWtXLERfr8aKdkf1RXdMF3c96EXCBtGzLJbhrw==
=D24P
-----END PGP PUBLIC KEY BLOCK-----",
 "issued_on": "2017-12-27T09:39:45.000Z",
 "issued_by": "alen@alen.com",
 "valid_until": "1970-01-01T00:00:00.000Z"
} 

 


NGINX Configuration

As part of the distribution flow, Artifactory needs to interact with JFrog Distribution which relies on HTTP/1.1 protocol functionalities, such as chunked transfer encoding. To support these functionalities, you need to add the following settings  to your NGINX configuration:

proxy_http_version 1.1;
chunked_transfer_encoding on;

 


Release Bundles

A release bundle plays a central role in the distribution flow. It specifies the different files and packages that comprise a release, along with their metadata, and is created and stored on JFrog Distribution. Since all the files specified in a release bundle are required to keep the release coherent, a release bundle is immutable. Effectively, this means that once a file has been included in a release bundle, it cannot be deleted from the Edge node where it is hosted. 

For more details on release bundles, please refer to Release Bundles in the JFrog Distribution User Guide. 

To view release bundles in Artifactory Edge, select the Bundles module.

Release Bundles

Click the name of a release bundle to drill down and view its details.

The Release Bundles Details screen is divided into four panels.

The Versions panel displays all versions of the selected release bundle that have been replicated over to the Edge node. 

The horizontal panel along the top displays basic information about the selected veresion

The List of artifacts panel displays the full list of files included in the selected release bundle version.

Select a file to see its details in the panel on the right.

AQL Search for Release Bundles

To search for release bundles in an Artifactory Edge node, you can use the release and release_artifact domains introduced to AQL in Artifactory 6.0. For details, please refer to Entities and Fields.

  • No labels