Skip to content

6.4.2.9 AdapterMapping

6.4.2.9.1 Purpose

Which adapter reads which detected source version, chosen by staff in the Console instead of built into the client. When a product ships a new version that an existing strategy already reads, as SiAlleva 3.0.2 after 3.0.1, staff map the version, or a range, to that strategy, and the clients receive the mapping with their sync configuration: no client update is needed. A mapping can apply to everyone, to one Organization or to one feed, to try a strategy on one farm first, and the most specific one wins. Only a strategy that does not exist yet needs a new client release, which the mapping then names so that older clients update themselves.

6.4.2.9.2 Questions it answers

  • Which adapter reads this product at this detected version, for this farm?
  • Who mapped a version, when and why?
  • Which strategy read a past run?

6.4.2.9.3 Fields

Field Type Cardinality Description
id string (uuid) 1..1 Key.
side enum 1..1 Values: client, parser, puller.
source_channel SourceChannel 1..1 The product, e.g. the ManagementSoftwareChannel SiAlleva.
A puller mapping names a ThirdPartyPlatformChannel, the only kind of channel a puller reads; farm refuses any other with 422. Client and parser mappings name any channel.
version_range string 1..1 Detected versions it covers, in the channel's own version scheme: one version ("3.0.2") or a range ("≥3.0.1, <3.1").
adapter SourceAdapter 1..1 The strategy and its version, of the same channel and side.
scope enum 1..1 Values: global, organization, feed. Default: global.
organization Organization 0..1 Set when scope = organization.
source_feed SourceFeed 0..1 Set when scope = feed: to try a strategy on one farm before mapping it for everyone.
status enum 1..1 Values: active, retired. Default: active.
note string 0..1 Why, e.g. "3.0.2 changed only the installer; tested on two farms".
created_by MoonitoringUser 1..1
system_version SystemVersion 1..1
created_at datetime 1..1
updated_at datetime 1..1

6.4.2.9.4 Relationships

References

Referenced by

Uses types

SystemVersion

6.4.2.9.5 Rules & constraints

  • Which adapter reads which detected source version, chosen by staff in the Console: e.g. SiAlleva 3.0.2 ships, and staff map it, or a range such as "≥3.0.1, <3.1", to the adapter sialleva.export@1.4.0 that already reads 3.0.1. The mapping reaches the clients with their sync configuration, so no client update is needed; only a strategy that does not exist yet needs a new release (Release).
  • For a detection the most specific active mapping wins: feed, then organization, then global. Within one side, channel and scope, the ranges of active mappings must not overlap, so a detected version maps to one adapter or none.
  • No mapping: the run fails with unsupported_source and records an IntegrationGapOccurrence; staff resolve the gap by mapping the version to an existing adapter, or by releasing a new one and mapping it.
  • A mapping to a client adapter that the client's installed build does not carry is delivered with the lowest build number that carries it (SourceAdapter.build_number): the client refuses the run with unsupported_source, reports the gap and updates itself through its release channel (ReleaseChannel).
  • Every change is a PlatformAuditEvent and keeps its previous image in system_version, so which strategy read any past run is known; the SyncRun also records the adapter it used (SyncRun.adapter).