Адекватная headless CMS
От: rosencrantz США  
Дата: 03.11.21 16:20
Оценка:
Не так, чтобы прям веб программирование, но мне кажется это наиболее подходящий раздел. Компания хочет делать много сайтов с "богатым" контентом: если в терминах таблиц реляционной БД, это скажем 50 таблиц, описывающих некую сравнительно развесистую структуру. Структура конечно заранее неизвестна, компания работает по аджайлу и накручивает схему только по необходимости. Редактировать контент будут минимально обученные джерсийские домохозяйки. Редактировать схему будут программисты. Ну и стоит подчеркнуть, что речь именно про управление контентом, всякие там веб-странички/блоги — это всё не нужно.

Что хочется:

1. Наличие механизма версионирования схем. Чтобы вот у нас v1.0 известная схема, потом v1.1 — тоже известная. Чтобы это всё где-то фиксировалось и можно было историю посмотреть.
2. Наличие механизма миграций контента. Чтобы была возможность в явном виде описать каким образом контент XXX превращается в новой версии в YYY и ZZZ.
3. Наличие механизма версионирования контента. Чтобы было возможность сказать "щас буду делать правки", сделать кучу правок, потом сказать "всё" и получить некий такой идентифицируемый чейнджсет, определяющий разницу между предыдущей версией и текущей.
4. Наличие механизма передачи контента между энвайронтами. В dev поменяли схему, добавили какой-то контент. Посмотрели, вроде нормально. После этого оно как-то переносится в прод. Очень желательно, чтобы это был не убогий "is_draft", что-то вроде "экспортировать content package", "импортировать content package".

Как оно сделано сейчас. Один здоровый XML файл, в котором лежит весь контент (ну и XSD рядом с ним). Версионирование достигается лежанием в гите и применением всех типичных практик программирования: фича бранчи, пул риквесты, теги, и т.д. Миграции делаются "по ситуации". Всегда можно написать какой-то XSLT и из одного XML сделать другой. Передача между энвайронментами достигается в лоб — файл он и есть файл. Минимально обученные джерсийские домохозяйки используют некий хитро настроенный продвинутый XML редактор, который вместо XML показывает формочки. Мне как программисту этот подход (ну, кроме редактора) совершенно нравится. Оно уже год замечательно работает. Джерсийским домохозяйкам не нравится XML редактор и ещё больше не нравится использовать Git. Поэтому я пытаюсь найти какое-то решение, позволяющее "мышкой", но при этом чтоб оставить максимум тех плюсов, которые есть сейчас.

Смотрю например на популярный Strapi: https://strapi.io/

1. Версионирование схем — через гит, ок.
2. Миграции контента — хрен.
3. Версионирование контента — хрен.
3. Передача контента между энвайронментами — хрен.

Как вообще это использовать

Поделитесь опытом если кто решал подобную задачу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.