First-run setup wizard (/setup)

- setup_complete site setting; a fresh admin is steered to /setup until it is
  finished (skippable for the session).
- SetupWizard.vue: Site (facility/base-url/access-domain), Features (plugin
  enable/disable), Floor Map dimensions, Starter Data (seed common vendors),
  Finish. Reuses the settings + plugins APIs.
- setup blueprint: POST /setup/seed-starter (idempotent common vendors) and
  POST /setup/complete. setupState composable drives the router redirect.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-07-10 07:47:01 -04:00
parent ec2de635ed
commit 843b225a47
8 changed files with 379 additions and 8 deletions

View File

@@ -253,6 +253,13 @@ def build_default_settings():
# the shopfloor dashboard. Blank site_base_url falls back to the browsing
# origin so nothing breaks before a site configures it.
sitedefaults = [
{
'key': 'setup_complete',
'value': 'false',
'valuetype': 'boolean',
'category': 'site',
'description': 'Set true once the first-run setup wizard has been finished'
},
{
'key': 'site_base_url',
'value': '',