自0.17.2
中继支持
Rover 持久查询命令
将持久查询清单发布到您的持久查询列表中
使用GraphOS 企业版,您可以通过维护 图表's security by maintaining a 持久查询列表(PQL)为您的 自助路由器。 GraphOS 路由器检查传入请求与 PQL,并可配置为拒绝列表中未注册的操作。
将操作注册到 PQL 有两个步骤:
- 使用客户端特定的工具生成 持久查询清单(PQMs)
- 使用 Rover 发布 PQMs 到 PQL
本文详细介绍了后者。有关 PQM 生成和其他实现步骤的更多信息,请参阅 GraphOS 持久查询文档。
发布 PQM
持久查询发布
此命令需要 使用 GraphOS 验证 Rover。
您可以使用 Rover 来为任何客户端发布任何 PQM。 现有PQL。
执行下面的 persisted-queries publish
命令:
rover persisted-queries publish my-graph@my-variant \--manifest ./persisted-query-manifest.json
- 参数
my-graph@my-variant
是与PQL关联的任何变体的图形引用
。- 图形引用的格式为
graph-id@variant-name
。
- 图形引用的格式为
- 使用
--manifest
选项提供要发布的清单文件路径。
您可以根据需要使用 --graph-id
和 --list-id
选项来指定要发布的PQL,而不是使用 my-graph@my-variant
:
rover persisted-queries publish \--graph-id my_graph --list-id dc4b4040-30fc-4bd1-94a3-5fc1c722acc9 \--manifest ./persisted-query-manifest.json
- 使用
--graph-id
提供图'的ID - 使用
--list-id
提供PQL的UUID
persisted-queries publish
命令执行以下操作
将提供清单文件中的所有操作发布到与指定变体关联的PQL,或发布到指定的PQL。
- 将清单发布到PQL是累加的。PQL中任何现有的条目都会保留。
- 如果您尝试发布一个操作,其ID与现有PQL中的条目相同,但细节不同,则整个发布命令将因错误而失败。
更新变体,以便与其关联的路由器可以获取其更新的PQL。
与生成清单一样,最好在本地的CI/CD管道中执行此命令,将新的操作作为应用程序发布流程的一部分进行发布。此命令需要您的API密钥拥有图管理员或持久查询发布者角色;持久查询发布者是一个专门设计用于与该命令一起使用、不向API密钥的用户透露有关您的图的无关信息的角色。
中继支持自0.19.0
如果想要使用由Relay编译器生成的持久查询,则rover persisted-queries命令支持发布这些持久查询。
- 根据它们的相关文档,将Relay编译器配置为输出到指定位置的JSON操作清单。
- 使用persisted-queries publish命令出版清单到Apollo GraphOS。命令的用法与发布由Apollo生成的清单时相同,但您必须包括--manifest-format relay 参数:
rover persisted-queries publish my-graph@my-variant \--manifest ./persisted-queries.json \--manifest-format relay