xp
xp copied to clipboard
No-code schema builder and underlying functionality
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:
Subtasks
- [x] #9530
for PoC we
- store descriptors under /schemas
- CS must show those as available and be able to create content, etc.
- Default rendering returns 418
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.
Work continues in #9687