Skip to content
FreeNew

Demo mode

No summary provided by the publisher yet.

Publisher
webresto
Latest
3.3.0
Updated
10/22/2026
Releases
8

Install

Run this from your platform root. The registry resolves the newest main build unless you pass a version or channel.

msc install --appId=demo-mode

Channels published for this extension: staging main — append --channel=<name> to install one of them.

What this extension does

Demo Mode API

A demo mode module for RestoApp website with GraphQL support.

Abstract

The demo-mode module provides functionality for demo environments in RestoApp. It integrates with GraphQL APIs, offering features for demonstration purposes.

What it does

This module enables your application to:

  • Provide demo data for testing and demonstration
  • Manage demo configurations through GraphQL
  • Simulate real application behavior in demo mode

Key Features

  • GraphQL Integration: Provides queries for demo data
  • Data Simulation: Generates fake data for demonstrations
  • Configuration Management: Handles demo mode settings

Changelog

demo-mode

3.4.0 (2026-09-21)

Install step (installSteps/step_demo.ts, views/installSteps/step_demo.ejs):

  • The step is marked as done only when the set is really imported. DEMO_INSTALL_SKIP used to be set in a finally block, so a failed download or import still hid the step from the wizard and there was no way left to install the set. Now a failure keeps the flag unset, returns the step to the unprocessed state and shows the reason at the top of the step.
  • The archive download got a socket timeout (60 s of inactivity), 3 attempts with a pause between them, and removal of the partially downloaded file: a 28 MB download from GitHub releases used to be able to hang forever, and a truncated archive used to go into tar as is. A response shorter than content-length and a connection dropped mid-body are now errors, not a silent success.
  • Download progress is logged by time (once per 5 s) instead of on every chunk — that was thousands of lines in docker logs per install.
  • Sets are identified by slugs (world-cuisine) instead of array positions. The array boundary was checked as <= and the "is something selected" check relied on "0" being a non-empty string: the first set would have become "do not install" as soon as ids became numbers, and the last set of a two-set list would have resolved to undefined. An unknown id is now rejected with an error.
  • The step says that installing a set deletes all dishes and groups of the concept, and asks for an explicit confirmation; "Next" stays disabled until a set is picked and the replacement confirmed. The list also has an explicit "Do not install demo data" choice.
  • The set list lives only in step_demo.ts and reaches the template through the step payload — it used to be duplicated in the .ejs file.
  • The "World cuisine" set was rebuilt as world-cuisine-1.1.0.tar in webresto/restoapp-demo (release demos) and the step now points at that versioned asset instead of the moving world-cuisine.tar, so a rebuild of the set no longer silently changes what an already-tagged install pulls in. demoData[].version and the version shown next to the set name in the wizard come from the same value. The new build adds dishes with modifiers (a required single-choice group, an optional multi-choice group, and a modifier with maxAmount > 1), boundary cases the old set had none of (balance: 0, a finite balance, visible: false, a dish without a picture), drops the dead groupId field from every dish, and carries its own fixtureVersion/builtAt instead of the Node version of the server that exported it.

Release history

8 releases
VersionChannelStatus
3.4.0stagingLatest on staging
3.3.0mainLatest stable
3.2.0stagingArchived
3.1.1mainArchived
3.1.0mainArchived
3.0.0mainArchived
2.0.16mainArchived
2.0.14mainArchived

Support

Issues with the extension itself go to the publisher. Anything about the registry goes to us.