保存.fga DSL文件时自动生成OpenFGA json模型

问题描述 投票:0回答:1

我已经使用提供的 docker 容器设置了一个 OpenFGA 项目。我编写了一个简短的

node.js
脚本来在本地初始化存储,设置模型,添加一些测试元组,并添加一些断言,然后测试所有这些。使用 typescript 和
tsx watch
,只要我添加新元组或断言或进行任何代码更改,这些测试就会运行。快乐的日子。

但是,每次编辑

authModel.fga
DSL 文件时,我都需要手动将其转换为 JSON,然后才能重新运行测试。到目前为止,我发现执行此操作的最佳方法是使用 VSCode 扩展命令,然后复制粘贴输出。

理想情况下,我想编写转换脚本,以便在模型文件发生更改时它会自动运行。我希望一切都是独立的,以便其他用户可以检查代码库、引导程序,然后继续。对于所有常用的节点模块,我们使用

docker
docker-compose

我看到有一个用于 OpenFGA CLI 的 docker 容器,但我不知道如何让它转换我的模型并输出到 JSON 文件。

这是我得到的最接近的:

docker run -it openfga/cli model transform "$(cat packages/fga/model/authModel.fga)" > packages/fga/model/authModel.json

...但这似乎用一堆奇怪的字符破坏了输出 JSON,如下所示:

[1m{[22m[m
[m[m  [m[34;1m"[0;22m[34;1mschema_version[0;22m[34;1m"[0;22m[1m:[22m[32m"[0m[32m1.1[0m[32m"[0m[1m,[22m[m
[m[m  [m[34;1m"[0;22m[34;1mtype_definitions[0;22m[34;1m"[0;22m[1m:[22m[m [m[1m[[22m[m
[m[m    [m[1m{[22m[m

有什么想法吗?

node.js docker okta open-fga
1个回答
0
投票

尝试这个脚本

docker run -v $(pwd):/app  -it openfga/cli model transform --file=app/src/main/resources/domain.fga | sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g" > src/main/resources/domain.json

这部分将从输出中删除奇怪的字符

sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g"
© www.soinside.com 2019 - 2024. All rights reserved.