#14660·spree

Telemetry and Update Check

Author: damianlegawiecCreated Sep 16, 2026Updated Sep 16, 2026

Spree 5.x told admins when a newer release existed: Spree::Admin::Updater asked spreecloud.io once a day, and the Rails admin showed a banner. That class left with the spree_admin engine, and nothing in 6.0 replaces it. This plan brings the update check back as an Admin API endpoint (GET /api/v3/admin/updates) the React dashboard renders a banner from, and turns the same daily request into an anonymous usage heartbeat (Spree gems and versions in use, stack, order-of-magnitude size buckets). A second, independent channel reports CLI command usage from @spree/cli and create-spree-app. Both channels are on by default, honour SPREE_TELEMETRY_DISABLED=1 / DO_NOT_TRACK=1 (and SPREE_UPDATE_CHECK_DISABLED=1 to stop the request entirely), send nothing that identifies a person, and are documented field by field.

Status: Design finalized — nothing built yet Depends on: 6.0-admin-spa, 6.0-beta-release

Migration path

  1. Core: Spree::UpdateCheck, Spree::UpdateCheckJob, two Spree::Config switches, payload buckets.
  2. Admin API: UpdatesController, Spree::UpdateStatus, serializer, SDK method, OpenAPI.
  3. Dashboard: useUpdateStatus, <UpdateNotice>, AppShell banner slot, locales, Playwright spec.
  4. CLI: telemetry module in @spree/cli and create-spree-app, spree telemetry subcommand, first-run notice.
  5. Docs (developer/deployment/usage-data), upgrade guide entry, spreecloud.io backend changes.

Plan: https://github.com/spree/spree/blob/main/docs/plans/6.0-telemetry-and-update-check.md

Tracked in Linear as V-3650