Skip to content

6.8.2.2 SyncClient

6.8.2.2.1 Purpose

The farm sync client, as the data side sees it: one stable identity per farm client, with the farm it works for and the feeds it reads. Its software, version and updates are its current installation, like any other application we distribute; reinstalling the software replaces the installation and keeps the client, its feeds, schedules and digests.

6.8.2.2.2 Questions it answers

  • Which farm does this sync client work for?
  • Which feeds does it read, and on which schedule?
  • Which installation runs it now, and which ones ran it before?
  • When did it last synchronise data? (The latest finished sync run of its feeds.)

6.8.2.2.3 Fields

Field Type Cardinality Description
id string (uuid) 1..1 Key.
Issued once and kept when the software is reinstalled.
installation ReleaseInstallation 0..1 Unique.
The installation currently running this client; must be an installation of the sync client application.
Empty between an uninstall and the next setup. Setup re-attaches a reinstalled client with an enrolment code issued to the farm: the new Installation replaces the old one here and feeds, schedules and digests stay.
Previous installations are kept by system_version.
farm Farm 1..1 One client, one farm. If the farm installs it to read another farm's software, that is its responsibility.
status enum 1..1 Values: active, retired. Default: active.
retired: the farm stopped using the client; the validity of its feeds is closed.
system_version SystemVersion 1..1
computer_name string 0..1 The Windows name of the computer the client runs on, as the client last reported it; the Console and the Organization Dashboard show it to tell a farm's computers apart. It is not unique and never an identity: the client is known by its id. The client has no name a person types.
created_at datetime 1..1
updated_at datetime 1..1

6.8.2.2.4 Relationships

References

Referenced by

Uses types

SystemVersion

6.8.2.2.5 Rules & constraints

  • The farm sync client seen from the data side: one stable identity per farm client, which survives reinstalls.
  • Its software, version and updates are its current Installation (ReleaseInstallation), like any other application; the farm it works for, the feeds it reads and its schedules are here.
  • Feeds read by the client: SourceFeed with sync_client = this.id; schedules: SyncSchedule.
  • Last sync: the latest finished SyncRun of its feeds. It is not stored here, because a copy can disagree.
  • Identity: the client acts as a ServiceAccount of the farm's Organization, created at enrolment from the public key the client generated, owned by the person who issued the enrolment code, with the global role Sync Client (farm.sync_runs.write); its tokens last fifteen minutes. Retiring the client disables the account; a reinstallation replaces the credential and keeps the SyncClient.