The Translation Index

The Translation Index is the curated PostgreSQL database that turns "what is installed on this CentOS 7 box" into "what to install, and how to configure it, on Rocky 9". It is what the Vrtmv API serves.

What it covers

  • Packages. Canonical packages (a distro-neutral identity, e.g. cpkg:openssh), the native packages that realise them on each release, and per-(source, target) translations.
  • Name normalisation & sub-packages. Rename and split/merge relationships across families.
  • Repository routing. Which repository a package comes from on the target.
  • Config paths. Where a package's configuration moves across a migration (chunk C relocations), including format-incompatible cases surfaced as caveats.
  • Service units. systemd unit differences, including instance templates.
  • Service accounts. The users and groups a package expects to exist.
  • MAC policy. SELinux/AppArmor posture per release.

Conditionals

A translation can carry conditionals: a predicate (from a locked rule vocabulary) plus an effect to apply when the predicate is true on the source. The API resolves each predicate into a full tree and returns it; the client evaluates it locally against the inventory. This is why a translation can adapt to the specific source without the source's state ever leaving the host.

Predicates that a cold image genuinely cannot answer (for example, whether a kernel module is currently loaded) evaluate to unknown and are surfaced as attestation caveats — never silently assumed.

Served, not shipped

The index is never embedded in the client or copied to the customer. It is kept current centrally and served through the authenticated API. This protects the curated asset and is the commercial control point: translations are licensed per account under contract, not distributed as a copyable, drifting local file.