Skip to content

Commit 44802a0

Browse files
committed
Updates for AuthZ v1 (GEA-13602)
Renamed "namespace" to "type" and changed endpoint paths to `/v1/`.
1 parent 31fbeb0 commit 44802a0

File tree

4 files changed

+161
-166
lines changed

4 files changed

+161
-166
lines changed

examples/authz/authz_cycle.go

+57-57
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ import (
1212
)
1313

1414
const (
15-
namespaceFolder = "folder"
16-
namespaceUser = "user"
17-
relationOwner = "owner"
18-
relationEditor = "editor"
19-
relationReader = "reader"
15+
typeFolder = "folder"
16+
typeUser = "user"
17+
relationOwner = "owner"
18+
relationEditor = "editor"
19+
relationReader = "reader"
2020
)
2121

2222
func main() {
@@ -52,134 +52,134 @@ func main() {
5252
fmt.Println("Creating tuples...")
5353
_, err := client.TupleCreate(ctx, &authz.TupleCreateRequest{
5454
Tuples: []authz.Tuple{
55-
authz.Tuple{
55+
{
5656
Resource: authz.Resource{
57-
Namespace: namespaceFolder,
58-
ID: folder1,
57+
Type: typeFolder,
58+
ID: folder1,
5959
},
6060
Relation: relationReader,
6161
Subject: authz.Subject{
62-
Namespace: namespaceUser,
63-
ID: user1,
62+
Type: typeUser,
63+
ID: user1,
6464
},
6565
},
66-
authz.Tuple{
66+
{
6767
Resource: authz.Resource{
68-
Namespace: namespaceFolder,
69-
ID: folder1,
68+
Type: typeFolder,
69+
ID: folder1,
7070
},
7171
Relation: relationEditor,
7272
Subject: authz.Subject{
73-
Namespace: namespaceUser,
74-
ID: user2,
73+
Type: typeUser,
74+
ID: user2,
7575
},
7676
},
77-
authz.Tuple{
77+
{
7878
Resource: authz.Resource{
79-
Namespace: namespaceFolder,
80-
ID: folder2,
79+
Type: typeFolder,
80+
ID: folder2,
8181
},
8282
Relation: relationEditor,
8383
Subject: authz.Subject{
84-
Namespace: namespaceUser,
85-
ID: user1,
84+
Type: typeUser,
85+
ID: user1,
8686
},
8787
},
88-
authz.Tuple{
88+
{
8989
Resource: authz.Resource{
90-
Namespace: namespaceFolder,
91-
ID: folder2,
90+
Type: typeFolder,
91+
ID: folder2,
9292
},
9393
Relation: relationOwner,
9494
Subject: authz.Subject{
95-
Namespace: namespaceUser,
96-
ID: user2,
95+
Type: typeUser,
96+
ID: user2,
9797
},
9898
},
9999
},
100100
})
101101
if err != nil {
102-
log.Fatalf("Unexpected error.", err)
102+
log.Fatal("Unexpected error.", err)
103103
}
104104
fmt.Println("Tuples created.")
105105

106106
// Tuple list with resource
107107
fmt.Println("Listing tuples with resource...")
108108
filter := authz.NewFilterUserList()
109-
filter.ResourceNamespace().Set(pangea.String(namespaceFolder))
109+
filter.ResourceType().Set(pangea.String(typeFolder))
110110
filter.ResourceID().Set(pangea.String(folder1))
111111

112112
rListWithResource, err := client.TupleList(ctx, &authz.TupleListRequest{
113113
Filter: filter.Filter(),
114114
})
115115
if err != nil {
116-
log.Fatalf("Unexpected error.", err)
116+
log.Fatal("Unexpected error.", err)
117117
}
118118

119119
fmt.Printf("Got %d tuples.\n", rListWithResource.Result.Count)
120120
for i, tuple := range rListWithResource.Result.Tuples {
121121
fmt.Printf("Tuple #%d\n", i)
122-
fmt.Printf("\tNamespace: %s\n", tuple.Subject.Namespace)
122+
fmt.Printf("\tType: %s\n", tuple.Subject.Type)
123123
fmt.Printf("\tID: %s\n", tuple.Subject.ID)
124124
}
125125

126126
// Tuple list with subject
127127
filter = authz.NewFilterUserList()
128128
fmt.Println("Listing tuples with subject...")
129-
filter.SubjectNamespace().Set(pangea.String(namespaceUser))
129+
filter.SubjectType().Set(pangea.String(typeUser))
130130
filter.SubjectID().Set(pangea.String(user1))
131131

132132
rListWithSubject, err := client.TupleList(ctx, &authz.TupleListRequest{
133133
Filter: filter.Filter(),
134134
})
135135
if err != nil {
136-
log.Fatalf("Unexpected error.", err)
136+
log.Fatal("Unexpected error.", err)
137137
}
138138

139139
fmt.Printf("Got %d tuples.\n", rListWithSubject.Result.Count)
140140
for i, tuple := range rListWithResource.Result.Tuples {
141141
fmt.Printf("Tuple #%d\n", i)
142-
fmt.Printf("\tNamespace: %s\n", tuple.Subject.Namespace)
142+
fmt.Printf("\tType: %s\n", tuple.Subject.Type)
143143
fmt.Printf("\tID: %s\n", tuple.Subject.ID)
144144
}
145145

146146
// Tuple delete
147147
fmt.Println("Deleting tuples...")
148148
_, err = client.TupleDelete(ctx, &authz.TupleDeleteRequest{
149149
Tuples: []authz.Tuple{
150-
authz.Tuple{
150+
{
151151
Resource: authz.Resource{
152-
Namespace: namespaceFolder,
153-
ID: folder1,
152+
Type: typeFolder,
153+
ID: folder1,
154154
},
155155
Relation: relationReader,
156156
Subject: authz.Subject{
157-
Namespace: namespaceUser,
158-
ID: user1,
157+
Type: typeUser,
158+
ID: user1,
159159
},
160160
},
161161
},
162162
})
163163
if err != nil {
164-
log.Fatalf("Unexpected error.", err)
164+
log.Fatal("Unexpected error.", err)
165165
}
166166
fmt.Println("Delete success.")
167167

168168
// Check no debug
169169
fmt.Println("Checking tuple...")
170170
rCheck, err := client.Check(ctx, &authz.CheckRequest{
171171
Resource: authz.Resource{
172-
Namespace: namespaceFolder,
173-
ID: folder1,
172+
Type: typeFolder,
173+
ID: folder1,
174174
},
175175
Action: "reader",
176176
Subject: authz.Subject{
177-
Namespace: namespaceUser,
178-
ID: user2,
177+
Type: typeUser,
178+
ID: user2,
179179
},
180180
})
181181
if err != nil {
182-
log.Fatalf("Unexpected error.", err)
182+
log.Fatal("Unexpected error.", err)
183183
}
184184

185185
if rCheck.Result.Allowed {
@@ -192,18 +192,18 @@ func main() {
192192
fmt.Println("Checking tuple with debug enabled...")
193193
rCheck, err = client.Check(ctx, &authz.CheckRequest{
194194
Resource: authz.Resource{
195-
Namespace: namespaceFolder,
196-
ID: folder1,
195+
Type: typeFolder,
196+
ID: folder1,
197197
},
198198
Action: "editor",
199199
Subject: authz.Subject{
200-
Namespace: namespaceUser,
201-
ID: user2,
200+
Type: typeUser,
201+
ID: user2,
202202
},
203203
Debug: pangea.Bool(true),
204204
})
205205
if err != nil {
206-
log.Fatalf("Unexpected error.", err)
206+
log.Fatal("Unexpected error.", err)
207207
}
208208

209209
if rCheck.Result.Allowed {
@@ -218,15 +218,15 @@ func main() {
218218
// List resources
219219
fmt.Println("Listing resources...")
220220
rListResources, err := client.ListResources(ctx, &authz.ListResourcesRequest{
221-
Namespace: namespaceFolder,
222-
Action: relationEditor,
221+
Type: typeFolder,
222+
Action: relationEditor,
223223
Subject: authz.Subject{
224-
Namespace: namespaceUser,
225-
ID: user2,
224+
Type: typeUser,
225+
ID: user2,
226226
},
227227
})
228228
if err != nil {
229-
log.Fatalf("Unexpected error.", err)
229+
log.Fatal("Unexpected error.", err)
230230
}
231231

232232
fmt.Printf("Got %d resources.\n", len(rListResources.Result.IDs))
@@ -238,19 +238,19 @@ func main() {
238238
fmt.Println("Listing subjects...")
239239
rListSubjects, err := client.ListSubjects(ctx, &authz.ListSubjectsRequest{
240240
Resource: authz.Resource{
241-
Namespace: namespaceFolder,
242-
ID: folder2,
241+
Type: typeFolder,
242+
ID: folder2,
243243
},
244244
Action: relationEditor,
245245
})
246246
if err != nil {
247-
log.Fatalf("Unexpected error.", err)
247+
log.Fatal("Unexpected error.", err)
248248
}
249249

250250
fmt.Printf("Got %d subjects.\n", len(rListSubjects.Result.Subjects))
251251
for i, subject := range rListSubjects.Result.Subjects {
252252
fmt.Printf("Tuple #%d\n", i)
253-
fmt.Printf("\tNamespace: %s\n", subject.Namespace)
253+
fmt.Printf("\tType: %s\n", subject.Type)
254254
fmt.Printf("\tID: %s\n", subject.ID)
255255
}
256256

go.work

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ go 1.18
33
use (
44
./examples/audit
55
./examples/authn
6+
./examples/authz
67
./examples/embargo
78
./examples/file_scan
89
./examples/intel

0 commit comments

Comments
 (0)