Skip to content

Reload and restart

A save to an App’s files reloads it in place; a change to what it grants, where its data comes from or how it signs people in waits for a restart.

Terminal window
npx tablewalk --config tablewalk.json --app . # watches the App directory
# edit views.ts → reloaded
# edit tablewalk.json → stop, then start again
  • app.ts and every module it imports, pages/, features/, and the modules and stylesheets of its custom components. The whole module graph is read again, so an import’s edit is never stale.
  • A save that does not load (a typo, a refused view) keeps the last good App serving; the log and the App’s issues say why.
  • Saves are debounced: one burst of writes is one reload.
Change While it waits
What the App grants: resources’ access, fields, delete, roles, public reads, command grants, ui.connect Every App request answers 503 until a restart; neither the old nor the new authority is served.
Its sources or connection The same: bindings are authority.
Its sign-in: providers, sign-up, default role, the session store, the App’s id The same.
tablewalk.json: connections, writable, apps and their env Unseen until a restart: the file is read once, at start.
--commands, --jobs, --policy modules Handlers keep the code they started with.
A row-policy or tenant App’s files Data requests stop until a restart.

With --api-reads the App API is restart-only: a save retires its reads until the server restarts. An App with an authority.lock starts only when the lock agrees with what it grants, so accept a reviewed change with tablewalk --app <dir> --check-app --write-authority before restarting.

A tablewalk build output is served as built: nothing is watched.