我如何管理 Gentics Mesh 中节点的状态?

How do I manage state of a node in Gentics Mesh?

我在 Gentics Mesh 中使用外部 BPM 进行内容审批,内容节点可能处于多种状态之一。

一个需求是查询所有没有状态,或者有特定状态的内容节点。
由于我们在节点上没有字段级权限,因此我不想在内容模式中定义 'state' 字段。

我正在考虑将状态存储为内容项的子节点,使用 仅系统 具有 'create' 权限的模式。

这是一个好方法吗?

否则我想我会使用外部数据库进行状态管理,但这会使系统更加复杂。

-- 更新 --

有关用例的更多信息:
我们有内容贡献者将上传媒体。内容需要编辑审核,将被接受或拒绝并发表评论。
目前这是一个简单的工作流程,但需求可能会发生变化,因此我们希望利用完整的 BPM。 [我们还有其他 BPM 工作流]。
因此,状态数据将包含状态标识符 + 注释 + 将来可能包含其他任意数据。

我们正在构建一个 Mesh 插件,它将 consume/produce Kafka 消息与外部系统(如 BPM)进行交互。

我们还需要管理通知,其中编辑器会看到一个显示未读通知数量的图标,并有一个 'inbox' 来查看历史通知[听起来类似于 'must-read-plugin']
我们有一个 'user_profile' 架构,我正在考虑将通知作为节点添加到那里。

您可以使用标签来模拟节点的状态。然而,标签不会是特定于语言、版本或分支的。除此之外,我认为这可能是产品增强的一个有效点。

详情见https://github.com/gentics/mesh-incubator/issues/187

在大多数其他需要对此类状态进行建模的情况下,我们会构建跟踪状态的插件。在这些情况下,状态数据保存在由插件管理的额外节点中。

我想到的一个例子是必须阅读的插件,它存储了 "node has been read by user xyz" 状态。它将创建专用节点,将此信息存储在由插件管理的文件夹中 (/must-read/:nodeUuid-:userUuid)。这些节点将具有可以非常快速加载的 urlField 值,因此可以非常有效地完成检查。

您能否在上述问题单中描述您的实际用例。我认为这将有助于我们规划工作流功能。谢谢。