n8n/docs
Bernhard Wittmann 6fbdfcecdd
feat(core): Add Apps — a top-level App/Page entity with a first UI
Day 1 scaffold for the Webpage Node / App-concept Hackweek project: a
project-scoped App entity and its Page tree, decoupled from the
workflow canvas, plus enough editor UI to build one end-to-end.

Backend (packages/cli/src/modules/apps, packages/@n8n/db migration):
- App entity (namespace, theme JSON) and Page entity, pages forming a
  tree via a self-referencing parentPageId. A page's route can be a
  static slug, a dynamic :param segment (e.g. :id), or empty (meaning
  it's the index/home page for its level).
- Business rules enforced server-side: a namespace is unique per
  project; a page's route is unique among its siblings; an index page
  (empty route) can't have children, since it contributes no path
  segment of its own and a child would collide with a sibling's URL.
- New app:* scopes, an appId branch in userHasScopes, an opt-in
  backend module (apps) enabled by default alongside data-table.

Frontend (packages/frontend/editor-ui/src/features/apps):
- Apps list, App detail (page tree), and Page detail views, reachable
  both from the project view and the home overview tab bar.
- Create App / Create Page via modals (matching Data Table's pattern),
  not inline forms.
- Page hierarchy shown as a flat card grid per level with drill-down
  navigation (mirrors n8n's own Folders feature) instead of a fully
  expanded indented tree.
- AppBreadcrumbs: App > ancestor pages > current page/app, each a link
  back up except the current one.
- The App's and each Page's full served URL shown as a copyable field,
  live as the route is edited.
- Delete (with confirmation) on Apps and Pages throughout.

Goal package: goals/webpage-node/ (facts.md, plan.md, plan-week.md).
2026-09-07 14:46:51 +02:00
..
generated feat(core): Add Apps — a top-level App/Page entity with a first UI 2026-09-07 14:46:51 +02:00
db.md feat(core): Add auto-generated database schema documentation (no-changelog) (#32069) 2026-06-12 07:44:01 +00:00