问题标签 [gentics-mesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
65 浏览

gentics-mesh - 如何在 Gentics Mesh 中播种模式

我正在与一个开发团队合作,我们需要能够在任何人的笔记本电脑上建立一个具有所有预定义模式的 Mesh 实例。

如果模式不存在,我希望能够基于 JSON 文件的集合创建模式。

我已经启动了一个 Gentics Mesh 插件,它将查找模式文件,然后通过 MeshRestClient 添加它们。

这是一个好方法吗?

我在这里按照 HelloWorld 示例开始 -
https://github.com/gentics/mesh-plugin-examples/blob/master/hello-world-plugin/

0 投票
2 回答
38 浏览

java - How can I send a JsonObject request, and recieve a NodeResponse in the MeshRestClient?

In my Gentics Mesh plugin, I'm creating Nodes from json files.

I've created a scripting process that replaces variable placeholders in a json file, with actual values [for example, from a previous node creation event].

This works great if I have a strongly typed object added to the variable resolver...

Because the variable resolver uses reflection to find the property names on a variable value, and does the replacement in json. But if the variable added to the resolver is a JsonObject, the properties I need are not available.

Examples:

I set a variable called 'project' in the resolver, from the output of this method. [projectResponse.rootNode]

Json Files -

First json file works because I added the project NodeReference to the variable resolver -

The response of that creation is a JsonObject, which I then pass into the variable resolver.
Then I create a second node.
Note I'm using the generic post method [I don't know how to create a NodeCreateRequest from a json string, which could also solve this]

Second json file doesn't work because node1 is a JsonObject, and doesn't have a uuid property -

I can't automatically map the JsonObject to a NodeResponse - And a FieldMap has many different implementations, so I don't know if I could add a Mapper module to fix this.

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance ofcom.gentics.mesh.core.rest.node.FieldMap(no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: com.gentics.mesh.core.rest.node.NodeResponse["fields"])

I think I've solved a similar use case by wrapping a Map in another class, then when the reflection occurs, I return my own property values based on the keys in the Map... but that was C#... and a long time ago.

0 投票
1 回答
53 浏览

orientdb - Gentics Mesh Schema创建后找不到

我能够使用 MeshRestClient 创建一个新模式,并获得成功的响应。

虽然,在那之后,我尝试使用架构创建一个节点,但我得到一个关于缺少引用架构的异常。

创建模式的日志输出 -

然后在使用该架构引用创建新节点时 -

我尝试在 NodeCreateRequest 中设置架构名称和架构引用,但都抱怨。

在它可用之前我需要等待一段时间吗?还是有其他想法?

谢谢!

0 投票
1 回答
57 浏览

java - 在 JWT 用户映射期间创建 Gentics Mesh 用户配置文件节点 - 导致失败

我正在开发一个身份验证插件,该插件使用 JWT 解析来获取详细信息并更新 Mesh 中的用户。
我还想创建一个新节点并将其附加到网格中的用户,使用user.setNodeReference()// 这是我如何将用户关联到节点吗?

问题是当我返回映射结果时,如果我创建用户配置文件节点,我会看到mapToken()使用与以前相同的标记再次调用的方法,就像它在循环一样。我发现这是由于路由器中的“重试”功能

如果我没有将节点附加到,user.nodeReference()那么它会按预期进行。

想法?

更新

我检查了 jti & iat - 令牌包含两者。
我想也许如果我订阅 USER_CREATED 事件,我可以在创建用户后添加一个配置文件节点。
但我没有看到这曾经被执行过。我可能错误地订阅了本地事件总线。

另外,我不需要设置user.setNodeReference()来重现错误,我只需要尝试在mapToken方法中创建一个新节点。它将重试创建用户 10 倍,然后以 http 500 出错。
我将打开日志以查看是否可以获得更多详细信息。

更新 我发现如果我首先在mapToken函数中创建用户,然后为配置文件创建一个节点,我可以将它添加到user.setNodeReference()但我从未在内容浏览器中看到该节点 [我在 `{project}/ profile/{userProfileNode}],我在检索用户时看不到节点引用。

但是日志显示该节点已成功创建。

0 投票
1 回答
78 浏览

graphql - 带有休息客户端的 Gentics Mesh 中的无效 graphql 请求

使用 MeshRestClient 执行图形查询时出现错误 -

尽管相同的请求在 Postman 中运行良好。

更新:我意识到客户端在使用客户端时正在执行请求/api/v1
如果我/api/v1在 Postman 中发布相同的查询,我可以重现该错误。

我想如果我可以强制其他客户端使用/api/v2,它应该可以工作..

0 投票
1 回答
62 浏览

gentics-mesh - 如何在 Gentics Mesh 中设置新节点的默认权限?

我希望匿名用户对特定节点下的所有新创建的节点具有“读取已发布”权限。

我可以在创建节点后授予节点权限,但是有没有办法在创建时指定权限?或者有没有办法让新节点默认继承其父节点权限?

我在节点 API 文档中看不到选项,但很好奇是否有未记录的功能,或者我找错了地方。

https://getmesh.io/docs/api/#project__nodes__post

0 投票
1 回答
56 浏览

gentics-mesh - 如何指定要从 Gentics Mesh 查询的模式(或索引)(无 graphQL API)

所以我使用 Gentics Mesh 和一个“中间件”。从这个中间件,我向meshAPI 发出请求,将请求转发到elasticSearch. 目前我不想使用 GraphQL API,这就是我使用/rawSearch. 问题在于,在这样的查询中,它将查询所有索引,我想决定它查询哪个索引,就像这样elasticSearch做一样,例如,/index1,index2/_search.是否可以将搜索限制为特定索引,或者我是否被迫使用 GraphQL?

0 投票
1 回答
34 浏览

gentics-mesh - 如何在模式属性中检索完整节点:节点

这是我正在创建的架构的一部分,比如说架构 A。

当我检索模式 A 的对象时,主题属性是 {"uuid": "string"} 对象的数组。

是否有可能获得完整的对象(否则我需要进行额外的查询以从这些对象中获取元数据)。

我知道微模式可以做到这一点,但我想要存储的对象是主题模式中的对象。

BR

0 投票
1 回答
162 浏览

gentics-mesh - Gentics Mesh - 从一个实例导入/导出项目到另一个实例

Gentics Mesh 版本:v1.4.8

问题 :

是否可以导出一个包含与其关联的所有模式/微模式定义的特定项目,并且所有节点都来自 Gentics 网格的一个实例并导入到另一个?

我想要实现的是将项目及其数据从 Gentics Mesh 实例 A (dev) 导出到另一个 Gentics Mesh 实例 B (prod)。

我试过的:

我尝试使用描述的 API(导出/导入)导出/导入。实例 A 的导出似乎很好,生成了这个 gzip json 文件。我将此文件放入位于 /data/export 的实例 B 中并启动导入。日志似乎还可以。但是,一旦我访问该界面,我就会不断收到无限循环的弹出错误消息(因为 404s)。

如果我没有弄错,导出功能是导出graphDB的所有内容吗?有没有办法只导出一部分?就像一个特定的项目。如果此功能不存在,我应该如何自定义实现此功能?

0 投票
1 回答
84 浏览

headless-cms - Gentics Mesh - 多语言支持 - 节点列表中的跨语言 - GraphQL 查询

Gentics Mesh 版本:v1.5.1

介绍:

假设我们的模式A具有类型字段:列表和列表类型:节点和允许的模式:B。(见(1))。

  • 已在语言en中创建了B节点的实例( b1-EN ),在de中创建了( b1-DE ) 。
  • 已使用en语言创建了B节点的实例( b2-EN ) 。
  • 已使用de语言创建了A节点的实例( a1-DE ),并将b1-DEb2-EN添加到a1的节点列表 ( Bs ) 中。

结果,当在 Gentics Mesh CMS 中选择de语言时,节点a1-DE ( de ) 具有 2 个节点b1-DEb2-EN的列表。

当应用以下 GraphQL 查询时:

结果是:

问题:

为什么结果没有在节点列表中显示 b2-EN 节点?查询错了吗?我想得到的结果是节点的默认语言版本(b2-EN),因为b2-DE尚未贡献。所以预期的结果:

在文档 (2) 中:

如果未找到其他匹配内容,将应用回退到配置的默认语言。如果这也失败,将返回 Null。

有人可以启发我吗?

(1):架构

(2) https://getmesh.io/docs/graphql/#_multilanguage_support