Replacing a brochure behind the same long-lived URL can leave visitors seeing an older file. Before a new release, agree a versioned asset address or a reviewed revalidation/invalidation strategy. Do not describe a file upload as proof that every intermediary and device has the new bytes.
Who should use this acceptance brief
Businesses updating public catalogues and brand assets. Use this as a scoped website handover task. Where real system evidence is required, teaching examples are not a substitute.
Source-bound platform fact
HTTP caching guidance describes versioned URLs for cache busting and freshness/revalidation mechanisms. Changing a URL does not prove that every page now links to it. MDN: HTTP caching · Checked 16 October 2026.
Filled teaching example
Synthetic example, not a client case. Finite inputs, expected decisions and counterexamples follow; no live integration is claimed.
On narrow screens, scroll to read the complete table.
| Input / case | Check basis | Expected decision |
|---|---|---|
| oldURL=v1, newURL=v2; hash changes | new identity | versioned candidate |
| same URL; hash changes | identity reused | review cache strategy |
| new URL; same hash | same content | no content delta |
Run the acceptance exercise
- Record approved old/new file hashes, public URLs and cache-policy intent.
- Test an ordinary repeat visit and verify actual response bytes, not just the filename.
- Verify all authorised new release entry points and document recovery without deleting old evidence.
Interpret the result and retain evidence
The fixture compares supplied identities and hashes; it never purges a CDN. A new identity is a release strategy candidate, not a guarantee of instant propagation. Keep actual headers and retrieved hashes as acceptance evidence. Private-account storage policy is a different problem from this public asset freshness contract.
Limits before implementation
No old asset URLs, cache headers or site dependencies are changed. Excludes service-worker update logic and automatic invalidation.
Replay the finite example
Save both files in one folder and run with Node22.13 or newer. The example sends no network requests and changes no account or site. Filled inputs and expected outputs · Inspectable functions
node decision-check.mjs public-asset-version-contract.json