Closed miparnisari closed 1 year ago
[11/09/23 6:36:38] ~/GitHub/cli (main) $ cat /Users/mparnisari/Desktop/demo/model.fga model schema 1.1 type user type group relations # groups have users define member: [user] type folder relations # folders can be nested define parent: [folder] # if you can view the parent folder, you can view the folder define viewer: [user,user:*,group#member] or viewer from parent type document relations # documents live within folders define parent: [folder] # if you can view the parent folder, you can view the document define viewer: [user,user:*,group#member] or viewer from parent% [11/09/23 6:36:40] ~/GitHub/cli (main) $ cat /Users/mparnisari/Desktop/demo/model.json { "type_definitions": [ { "type": "user", "relations": {} }, { "type": "group", "relations": { "member": { "this": {} } }, "metadata": { "relations": { "member": { "directly_related_user_types": [ { "type": "user" } ] } } } }, { "type": "folder", "relations": { "parent": { "this": {} }, "viewer": { "union": { "child": [ { "this": {} }, { "tupleToUserset": { "tupleset": { "object": "", "relation": "parent" }, "computedUserset": { "object": "", "relation": "viewer" } } } ] } } }, "metadata": { "relations": { "parent": { "directly_related_user_types": [ { "type": "folder" } ] }, "viewer": { "directly_related_user_types": [ { "type": "user" }, { "type": "user", "wildcard": {} }, { "type": "group", "relation": "member" } ] } } } }, { "type": "document", "relations": { "parent": { "this": {} }, "viewer": { "union": { "child": [ { "this": {} }, { "tupleToUserset": { "tupleset": { "object": "", "relation": "parent" }, "computedUserset": { "object": "", "relation": "viewer" } } } ] } } }, "metadata": { "relations": { "parent": { "directly_related_user_types": [ { "type": "folder" } ] }, "viewer": { "directly_related_user_types": [ { "type": "user" }, { "type": "user", "wildcard": {} }, { "type": "group", "relation": "member" } ] } } } } ], "schema_version": "1.1" }% [11/09/23 6:36:42] ~/GitHub/cli (main) $ ./dist/fga model validate --file /Users/mparnisari/Desktop/demo/model.json { "is_valid":true } [11/09/23 6:36:45] ~/GitHub/cli (main) $ ./dist/fga model validate --file /Users/mparnisari/Desktop/demo/model.fga panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0xb0 pc=0x15ef378] goroutine 1 [running]: github.com/openfga/language/pkg/go/transformer.(*openFgaDslListener).ExitRelationDeclaration(0xc00011c680, 0x1aab0e0?) /Users/mparnisari/go/pkg/mod/github.com/openfga/language/pkg/go@v0.0.0-20230907010412-f60426300a18/transformer/dsltojson.go:77 +0xd8 github.com/openfga/language/pkg/go/gen.(*RelationDeclarationContext).ExitRule(0xc0005e39d0?, {0x1aab0e0?, 0xc00011c680?}) /Users/mparnisari/go/pkg/mod/github.com/openfga/language/pkg/go@v0.0.0-20230907010412-f60426300a18/gen/openfga_parser.go:1705 +0x3f github.com/antlr4-go/antlr/v4.(*ParseTreeWalker).ExitRule(0xc000420200?, {0x1aab0e0, 0xc00011c680}, {0x4a53b148?, 0xc000420580?}) /Users/mparnisari/go/pkg/mod/github.com/antlr4-go/antlr/v4@v4.13.0/tree.go:241 +0x62 github.com/antlr4-go/antlr/v4.(*ParseTreeWalker).Walk(0xc00011cb80?, {0x1aab0e0, 0xc00011c680}, {0x1aae9a0?, 0xc000420580}) /Users/mparnisari/go/pkg/mod/github.com/antlr4-go/antlr/v4@v4.13.0/tree.go:225 +0x179 github.com/antlr4-go/antlr/v4.(*ParseTreeWalker).Walk(0xc00011c700?, {0x1aab0e0, 0xc00011c680}, {0x1aae9e8?, 0xc000420200}) /Users/mparnisari/go/pkg/mod/github.com/antlr4-go/antlr/v4@v4.13.0/tree.go:223 +0x125 github.com/antlr4-go/antlr/v4.(*ParseTreeWalker).Walk(0x20e6ae0?, {0x1aab0e0, 0xc00011c680}, {0x1aaea30?, 0xc00011cb80}) /Users/mparnisari/go/pkg/mod/github.com/antlr4-go/antlr/v4@v4.13.0/tree.go:223 +0x125 github.com/antlr4-go/antlr/v4.(*ParseTreeWalker).Walk(0xc000078590?, {0x1aab0e0, 0xc00011c680}, {0x1aaeb08?, 0xc00011c700}) /Users/mparnisari/go/pkg/mod/github.com/antlr4-go/antlr/v4@v4.13.0/tree.go:223 +0x125 github.com/openfga/language/pkg/go/transformer.TransformDslToJSON({0xc0002e46c0?, 0x15f5279?}) /Users/mparnisari/go/pkg/mod/github.com/openfga/language/pkg/go@v0.0.0-20230907010412-f60426300a18/transformer/dsltojson.go:236 +0x37e github.com/openfga/cli/internal/authorizationmodel.(*AuthzModel).ReadFromDSLString(0xc0005e3ca8, {0xc0002e46c0?, 0xc0001443c0?}) /Users/mparnisari/GitHub/cli/internal/authorizationmodel/model.go:145 +0x27 github.com/openfga/cli/cmd/model.glob..func5(0xc00057e500?, {0xc0001443c0?, 0x4?, 0x197028c?}) /Users/mparnisari/GitHub/cli/cmd/model/validate.go:115 +0xbb github.com/spf13/cobra.(*Command).execute(0x20d5760, {0xc0001443a0, 0x2, 0x2}) /Users/mparnisari/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:940 +0x87c github.com/spf13/cobra.(*Command).ExecuteC(0x20d4060) /Users/mparnisari/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x3a5 github.com/spf13/cobra.(*Command).Execute(...) /Users/mparnisari/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992 github.com/openfga/cli/cmd.Execute() /Users/mparnisari/GitHub/cli/cmd/root.go:47 +0x1a main.main() /Users/mparnisari/GitHub/cli/main.go:21 +0xf [11/09/23 6:36:48] ~/GitHub/cli (main) $