Как мне управлять состоянием узла в Gentics Mesh? - PullRequest
0 голосов
/ 21 сентября 2019

Я использую внешний BPM для утверждения контента в Gentics Mesh, и узел контента может находиться в одном из нескольких состояний.

Требуется запросить все узлы содержимого, которые не имеют состояния или имеют определенное состояние.
Поскольку у нас нет разрешения на уровне поля для узла, я не хочу определять 'поле 'state' в схеме содержимого.

Я думал о сохранении состояния в качестве дочернего узла элемента содержимого, используя схему, в которой только система имеет разрешения на создание.

Это хороший подход?

В противном случае я думаю, что я бы использовал внешнюю базу данных для управления состоянием, но это сделало бы систему более сложной.

- Обновление -

Подробнее о сценарии использования:
У нас есть авторы контента, которые будут загружать медиа.Содержание должно быть просмотрено редактором и будет либо принято, либо отклонено с комментариями.
Пока это простой рабочий процесс, но требования могут измениться, поэтому мы хотим использовать полный BPM.[и у нас есть другие рабочие процессы BPM].
Таким образом, данные о состоянии будут содержать идентификатор статуса + комментарии +, возможно, другие произвольные данные в будущем.

Мы создаем плагин Mesh, который будет потреблять / производитьСообщения Кафки для взаимодействия с внешними системами, такими как BPM.

Нам также нужно управлять уведомлениями, где редактор будет видеть значок, показывающий количество непрочитанных уведомлений, и иметь «входящие» для просмотра исторических уведомлений [звучит похоже на «must-read-plugin»]
У нас есть схема 'user_profile', и я рассматриваю возможность добавления уведомлений в качестве узлов.

1 Ответ

1 голос
/ 22 сентября 2019

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

Подробнее см. https://github.com/gentics/mesh-incubator/issues/187.

В большинстве других случаев, когда необходимо смоделировать такое состояние, мы создаем плагины, которые отслеживают это состояние.В этих случаях данные для состояния сохранялись в дополнительных узлах, которыми управлял плагин.

Один из примеров, который приходит на ум, - это плагин must-read, который хранит «узел был прочитан пользователем xyz»." государство.Это создаст выделенные узлы, которые будут хранить эту информацию в папке, которая управляется плагином (/must-read/:nodeUuid-:userUuid). Эти узлы будут иметь значение urlField, которое может быть загружено очень быстро, и, следовательно, проверки могут выполняться очень эффективно.

Не могли бы вы описать ваш фактический вариант использования в упомянутом билете.Я думаю, что это поможет нам в планировании функции рабочего процесса.Спасибо.

...