xp icon indicating copy to clipboard operation
xp copied to clipboard

No-code schema builder and underlying functionality

Open sigdestad opened this issue 3 years ago • 2 comments

In the lack of a better location, I'm placing the "big Epic" here, in XP. It will likely affect both XP, content studio (and possibly more).

We shall provide front-end developers with a UI-based, no-coding, no-apps and deployments approach to building their own schemas - and using these within content projects. This means that we need to implement and support the following:

Virtual apps

  • [x] Dynamically create "virtual applications" that are persisted and loaded from XP storage
  • [x] ~Virtual apps should (at least for now) use the name of their contextual cms project i.e. cms.project.myproject~ Virtual apps names are no different from normal apps.
  • [x] Virtual apps must initially support the standard schemas (content type, part, layout, page, xdata, mixin, site.xml), but plan for other things also in the future
  • [x] Virtual apps can override descriptors of of deplyed apps with the same name.
  • [x] Changes to a virtual app must instantly be "installed" in the cluster, i.e. changing, and saving a content type
  • [x] Figure out how apps are connected to a specific project, and what about layers? ANSWER: projects can have apps assigned similar to sites. Since content is inherited in child layers, assigned apps are transitively visible in layers, too.
  • [ ] How does this relate to other apps like GA, SEO etc

App/ UI

  • [x] ~A user interface, integated in content studio via a tab (contextual to the project)~ A new app instead https://github.com/enonic/app-modelstudio
  • [x] Browse, CRUD etc for the various schemas in the "virtual project app"
  • [x] Plan to support read-only functionality, by listing and copuing schemas from other installed apps as well. https://github.com/enonic/app-modelstudio/issues/34
  • [ ] Small tour of how "schema builder" works
  • [x] Provide an API / back-end that persists schemas + virtual apps

We should start off by prototyping this, using Brunos CTY editor in combination with a list mode - then evaluate how to proceed.

Attached are some initial thought on what a vision of the UI might look like: Screenshot 2022-01-31 at 11 41 32 Screenshot 2022-01-31 at 11 41 42

Subtasks

  • [x] #9530

sigdestad avatar Jan 31 '22 10:01 sigdestad

for PoC we

  • store descriptors under /schemas
  • CS must show those as available and be able to create content, etc.
  • Default rendering returns 418

rymsha avatar Feb 02 '22 13:02 rymsha

Second PoC will use "Augmented Apps" concept:

  • Every app (even non-existing) gets its own node in a special repository (working title system.apps ). Node name is equal to app name.
  • Descriptor Services lookup for xml descriptor files not only in jars, but also in system.apps nodes under respective node.

rymsha avatar Feb 16 '22 12:02 rymsha

Work continues in #9687

rymsha avatar Sep 15 '22 09:09 rymsha