Feed Replication (v6 and Earlier)
  • 24 Mar 2022
  • 2 Minutes to read
  • Dark
    Light
  • PDF

Feed Replication (v6 and Earlier)

  • Dark
    Light
  • PDF

ProGet v2022's Replication Feature has an updated User Experience, and is available as a preview feature in ProGet v6.0.11+. The concepts are mostly the same in earlier versions, and this documentation will clarify those differences.

In ProGet v6 and earlier, feed replication is configured on a per-feed basis on the Feed Management page and requires the Manage Feed permission. A feed may be configured for incoming replication requests, outgoing repliation requests, or in more advanced scenarios, as both.

Source URL:

The source URL is the endpoint exposed by feeds configured for outgoing replication, and must be specified in the incoming replication configuration.

Sync Tokens:

Configuring a feed for incoming replication will require a sync token to be added/generated which outgoing replication configurations must supply along with the source URL. The sync token should be treated as a secret, as it then allows outgoing replication to connect to the feed.

Outgoing Replication

An outgoing replication feed is a ProGet feed configured to connect to incoming replication feed in another ProGet instance. Outgoing replication feeds are able to:

  • Pull - the local feed will bring changes (e.g. newly-pushed packages, deleted packages, etc.) in from a replication server feed
  • Push - the local feed will issue changes to an incoming replication feed
  • Mirror - the local feed will both push to AND pull from a incoming replication feed

Options:

  • Disabled - the feed will not query any incoming replication feeds for changes
  • Only apply external changes to local feed (pull-only) - the feed will query a incoming replication feed for changes, and only pull changes without affecting the incoming replication feed
  • Only apply local changes to external feed (push-only)- the feed will query a incoming replication feed for changes, and only push changes to it without affecting the local feed
  • Mirror external feed - the feed will query a incoming replication feed for changes, apply the changes locally, then push any local changes to the incoming replication feed resulting in identical feeds in both

Note: Prior to ProGet v5.2, the equivalent setting for a replication client was "Replicate from external feed".

Incoming Replication

An incoming replication feed is a ProGet feed configured to allow outgoing replication feeds to connect to it and respond with a feed state. Once the feed state is processed by the outgoing replication feed, packages may be downloaded, installed, or deleted from the incoming replication feed depending on configuration.

Options:

  • Disabled - outgoing replication feeds are not permitted to connect to the feed
  • Allow external feeds to replicate from this feed (read-only)- outgoing replication feeds may connect to the feed, pull changes, but not push changes back
  • Allow local feeds to be changed by external feeds (read/write)- outgoing replication feeds may connect to the feed, pull changes, and push changes to it

Note: Prior to ProGet v5.2, the equivalent setting for a replication server was "Allow other feeds to replicate with this one".

Valid Configurations

The following table describes the possible configurations (outgoing replication configuration is per column, incoming replication configuration per row):

Disabled Pull-only Push-only Mirror
Disabled - Invalid Invalid Invalid
Read-only - Valid Invalid Warning
Read/Write - Valid Valid Valid

Invalid configurations will be logged by the outgoing replication feed in the corresponding execution logs, and by the incoming replication feed in the Diagnostic Center.


Was this article helpful?