Skip to content

feat(storyblok-ui): refresh pinned Storyblok cache-version on a TTL#2639

Merged
bramvanderholst merged 2 commits into
canaryfrom
feature/cache-notify-storyblok
Jun 29, 2026
Merged

feat(storyblok-ui): refresh pinned Storyblok cache-version on a TTL#2639
bramvanderholst merged 2 commits into
canaryfrom
feature/cache-notify-storyblok

Conversation

@bramvanderholst

Copy link
Copy Markdown
Contributor

storyblok-js-client pins the space cache-version (cv) per process on the first published request and never refreshes it (cache.clear defaults to 'manual'), so published content stays frozen at the process-start cv until restart. On long-lived servers (multi-pod Kubernetes) published edits never become visible.

Add refreshStoryblokCacheVersion(), which re-fetches cdn/spaces/me at most once per the new storyblok.cacheVersionTtl config (seconds, default 60; 0 refreshes on every read) to advance the pinned cv, and call it before published fetchStory/fetchStories/fetchAllStories reads. Skipped for preview/draft and in dev. Exported so on-demand revalidation can force an immediate refresh.

storyblok-js-client pins the space cache-version (cv) per process on the first
published request and never refreshes it (cache.clear defaults to 'manual'), so
published content stays frozen at the process-start cv until restart. On
long-lived servers (multi-pod Kubernetes) published edits never become visible.

Add refreshStoryblokCacheVersion(), which re-fetches cdn/spaces/me at most once
per the new storyblok.cacheVersionTtl config (seconds, default 60; 0 refreshes
on every read) to advance the pinned cv, and call it before published
fetchStory/fetchStories/fetchAllStories reads. Skipped for preview/draft and in
dev. Exported so on-demand revalidation can force an immediate refresh.
@changeset-bot

changeset-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 780902c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 86 packages
Name Type
@graphcommerce/storyblok-ui Patch
@graphcommerce/magento-storyblok Patch
@graphcommerce/docs Patch
@graphcommerce/browserslist-config-pwa Patch
@graphcommerce/changeset-changelog Patch
@graphcommerce/eslint-config-pwa Patch
@graphcommerce/graphql-codegen-markdown-docs Patch
@graphcommerce/graphql-codegen-near-operation-file Patch
@graphcommerce/graphql-codegen-relay-optimizer-plugin Patch
@graphcommerce/misc Patch
@graphcommerce/next-config Patch
@graphcommerce/prettier-config-pwa Patch
@graphcommerce/typescript-config-pwa Patch
@graphcommerce/address-fields-nl Patch
@graphcommerce/algolia-categories Patch
@graphcommerce/algolia-insights Patch
@graphcommerce/algolia-personalization Patch
@graphcommerce/algolia-products Patch
@graphcommerce/algolia-recommend Patch
@graphcommerce/algolia-search Patch
@graphcommerce/cli Patch
@graphcommerce/demo-magento-graphcommerce Patch
@graphcommerce/ecommerce-ui Patch
@graphcommerce/framer-next-pages Patch
@graphcommerce/framer-scroller Patch
@graphcommerce/framer-utils Patch
@graphcommerce/google-datalayer Patch
@graphcommerce/google-playstore Patch
@graphcommerce/googleanalytics Patch
@graphcommerce/googlerecaptcha Patch
@graphcommerce/googletagmanager Patch
@graphcommerce/graphcms-ui Patch
@graphcommerce/graphql-mesh Patch
@graphcommerce/graphql Patch
@graphcommerce/hygraph-cli Patch
@graphcommerce/hygraph-dynamic-rows-ui Patch
@graphcommerce/hygraph-dynamic-rows Patch
@graphcommerce/hygraph-ui Patch
@graphcommerce/image Patch
@graphcommerce/lingui-next Patch
@graphcommerce/magento-cart-checkout Patch
@graphcommerce/magento-cart-coupon Patch
@graphcommerce/magento-cart-email Patch
@graphcommerce/magento-cart-items Patch
@graphcommerce/magento-cart-payment-method Patch
@graphcommerce/magento-cart-pickup Patch
@graphcommerce/magento-cart-shipping-address Patch
@graphcommerce/magento-cart-shipping-method Patch
@graphcommerce/magento-cart Patch
@graphcommerce/magento-category Patch
@graphcommerce/magento-cms Patch
@graphcommerce/magento-compare Patch
@graphcommerce/magento-customer Patch
@graphcommerce/magento-graphql-rest Patch
@graphcommerce/magento-graphql Patch
@graphcommerce/magento-newsletter Patch
@graphcommerce/magento-payment-adyen Patch
@graphcommerce/magento-payment-afterpay Patch
@graphcommerce/magento-payment-braintree Patch
@graphcommerce/magento-payment-included Patch
@graphcommerce/magento-payment-klarna Patch
@graphcommerce/magento-payment-multisafepay Patch
@graphcommerce/magento-payment-paypal Patch
@graphcommerce/magento-payment-tokens Patch
@graphcommerce/magento-product-bundle Patch
@graphcommerce/magento-product-configurable Patch
@graphcommerce/magento-product-downloadable Patch
@graphcommerce/magento-product-grouped Patch
@graphcommerce/magento-product-simple Patch
@graphcommerce/magento-product-virtual Patch
@graphcommerce/magento-product Patch
@graphcommerce/magento-recently-viewed-products Patch
@graphcommerce/magento-review Patch
@graphcommerce/magento-search-overlay Patch
@graphcommerce/magento-search Patch
@graphcommerce/magento-store Patch
@graphcommerce/magento-wishlist Patch
@graphcommerce/mollie-magento-payment Patch
@graphcommerce/next-ui Patch
@graphcommerce/react-hook-form Patch
@graphcommerce/service-worker Patch
@graphcommerce/framer-next-pages-example Patch
@graphcommerce/framer-scroller-example Patch
@graphcommerce/image-example Patch
@graphcommerce/magento-graphcms Patch
@graphcommerce/magento-open-source Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
graphcommerce-246 Ready Ready Preview Jun 29, 2026 1:16pm
graphcommerce-247 Ready Ready Preview Jun 29, 2026 1:16pm
graphcommerce-hygraph-dynamic-rows-ui Ready Ready Preview Jun 29, 2026 1:16pm
graphcommerce-open-source Ready Ready Preview Jun 29, 2026 1:16pm
graphcommerce-storyblok Ready Ready Preview Jun 29, 2026 1:16pm

Request Review

@tiptap/suggestion (pulled in transitively via @storyblok/react →
@storyblok/richtext) declares @floating-ui/dom as a peerDependency, which Yarn
does not auto-install. Nothing provided it, so production builds failed with
"Module not found: Can't resolve '@floating-ui/dom'". Declare it directly in the
example so it ships with the seed project.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant