Skip to content
Provider Fix Version

Provider Fix Version

Cloud resources don’t use package-style versioning. There’s no semver string to compare, no registry entry to look up, and no universal version format that applies across providers — even within a single provider. “Version” might be a Lambda runtime string, an RDS engine version, a Kubernetes minor inside a release channel, a container-image SHA, or a platform image creation date.

provider_fix_version is a discriminated object whose structure is determined by the version_type discriminator. Each value defines its own field set and a comparison operator that gives a consumer everything needed to decide whether a deployed resource meets the fix threshold.

Envelope

FieldRequiredDescription
version_typeyesDiscriminator. Determines which additional fields are present.
comparisonyesHow a consumer evaluates whether a deployed resource meets the threshold.
auto_upgradenoWhen false, the provider does not automatically apply this update. When false, existing_deployments_remain_vulnerable MUST be true.
notenoHuman-readable clarification. Required when a fix arrives at different dates across release channels.

Comparison operators

ValueMeaning
gteDeployed version ≥ declared version. Standard for monotonic version strings.
exactDeployed version = declared version. Standard for content-addressed identifiers (image digests).
channel_and_gteDeployed channel matches the declared channel AND deployed version within that channel ≥ declared. Used for staggered-channel rollouts (EKS standard/extended, AKS LTS, etc.).
build_date_gteDeployed build/creation date ≥ declared date. For artefacts without a comparable version string (Cloudflare Workers, Lambda runtime build dates).

Per-provider version_type values

Per the spec dictionary; this list is non-exhaustive — a producer MAY introduce additional values when the spec doesn’t cover a service shape, with a note explaining the discriminator semantics.

AWS

version_typeWhen to use
runtimeLambda + runtime-based services (Lambda layers, App Runner).
engine_versionRDS, ElastiCache, Redshift. auto_upgrade indicates whether RDS auto-minor-version-upgrade is sufficient.
amiEC2 + AMI-backed services.
agent_versionSSM Agent, CodeDeploy Agent, ECS Agent.
kubernetes_versionEKS. Pair with comparison: channel_and_gte for the EKS standard/extended split.
container_imageECS tasks, Fargate. image_digest (SHA256) RECOMMENDED over image_tag — tags are mutable and MUST NOT be the sole verification method.
managed_policy_versionAWS-managed IAM policies.

Azure

version_typeWhen to use
api_versionARM API operations.
kubernetes_versionAKS clusters and node pools. Optional node_image_version for node-pool-level granularity.
extension_versionVM Extensions.
os_image_versionVM Scale Sets.
runtime_versionApp Service, Azure Functions.

GCP

engine_version, kubernetes_version (GKE — channel_and_gte for the GKE Rapid/Regular/Stable split), runtime_version (Cloud Run, Cloud Functions), os_image (Compute Engine images), container_image (Cloud Run, GKE).

Cloudflare

build_date_gte is the dominant pattern — Workers and Pages don’t expose consumer-visible versions, only platform build dates.

Oracle

db_version (Autonomous Database, MySQL HeatWave), engine_version (BaseDB), kubernetes_version (OKE), shape_version (Compute platforms).

Examples

EKS Kubernetes channel + version

{
  "provider_fix_version": {
    "version_type": "kubernetes_version",
    "comparison": "channel_and_gte",
    "channel": "standard",
    "version": "1.28",
    "note": "EKS platform versions released after 2024-02-05 include containerd >= 1.7.13 with runc >= 1.1.12. Node groups must be updated independently."
  }
}

ECS task with image digest

{
  "provider_fix_version": {
    "version_type": "container_image",
    "comparison": "exact",
    "image_digest": "sha256:abc123…",
    "auto_upgrade": false
  }
}

auto_upgrade: false here forces existing_deployments_remain_vulnerable: true per the conformance rule — and the AWS-specific guidance applies: prefer image_digest over image_tag because tags are mutable.

RDS auto-minor-version

{
  "provider_fix_version": {
    "version_type": "engine_version",
    "comparison": "gte",
    "engine": "postgres",
    "version": "14.11",
    "auto_upgrade": true
  }
}

auto_upgrade: true means RDS will lift the database to ≥14.11 during its maintenance window without customer action — existing_ deployments_remain_vulnerable is false.

Conformance

Producers MUST set auto_upgrade: false whenever existing_deployments_remain_vulnerable is true for that record; the two flags are coupled. Consumers MUST prefer image_digest over image_tag for container_image comparison when both are present.