{
  "slug": "railway-iac-manages-service-cdn-edge-caching-7f99c2aba009",
  "title": "Railway IaC manages service CDN edge caching",
  "tools": [
    "railway"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-10-15T23:22:24.000Z",
  "announced_at": "2026-10-15T23:22:24.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When the environment config supports `cdn`, add the block to manage a service’s edge caching and reconcile it with the environment. Pull a cached service’s config to see the serialized block; defaults are omitted.",
    "examples": [
      "cdn:\n  enabled: true\n  defaultTtlSeconds: <seconds>\n  htmlCaching: <mode>\n  staleWhileRevalidate: <boolean>\n  purgeOnDeploy: <mode>"
    ],
    "gotchas": [
      "Version: v5.69.0",
      "cdn.enabled: Enables caching; `false` is normalized away like removing the block.",
      "cdn.defaultTtlSeconds: Default edge TTL in seconds; default is `7200` and is omitted when serialized.",
      "cdn.htmlCaching: HTML caching mode; default is `\"auto\"` and is omitted when serialized.",
      "cdn.staleWhileRevalidate: Stale-while-revalidate setting; default is `true` and is omitted when serialized.",
      "cdn.purgeOnDeploy: Purge-on-deploy mode; default is `\"html\"` and is omitted when serialized.",
      "Prerequisite: The environment config must serialize `cdn`; until then, an authored block does not take effect.",
      "CDN settings are serialized only while caching is on.",
      "Only knobs that differ from the edge defaults are serialized; defaults are `defaultTtlSeconds: 7200`, `htmlCaching: \"auto\"`, `staleWhileRevalidate: true`, and `purgeOnDeploy: \"html\"`.",
      "The CDN update has `deployEffect: none`; settings live on the edge and do not reach the container.",
      "Until the environment config serializes `cdn`, an authored block does not take effect."
    ]
  },
  "why_it_matters": "Manage a service’s edge caching settings through a Railway config file and reconcile them with the environment.",
  "sources": [
    "https://github.com/railwayapp/cli/releases/tag/v5.69.0",
    "https://github.com/railwayapp/cli/pull/1276"
  ],
  "rank": 0.9403,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261017-12",
    "verdict_id": "daily-20261017-12:daily-20261017-12-3ef46ec06473bef0-0:gate",
    "evidence_hash": "be19b30ee4a2c05afba1d571edc4e9009a0abc482f761506f30ee7761f901b1c"
  },
  "review": {
    "draft_hash": "d1364dec319a079169913764d6c65e7e5b85cc860bbfa66f5be60ba9946bbb22",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-15T23:22:24.000Z",
    "decision": "daily-20261017-12:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.94 >= 0.9; 2 needed) and Jev gave 0.73 (>= 0.6 needed)."
  }
}
