@@ -70,7 +70,7 @@ func TestGenerateRoles(t *testing.T) {
70
70
input generateRolesInput
71
71
expect generateRolesOutput
72
72
}{
73
- "generate roles for regular group" : {
73
+ "generate roles for regular group and projects " : {
74
74
input : generateRolesInput {
75
75
groups : []keycloak.Group {
76
76
{
@@ -121,10 +121,98 @@ func TestGenerateRoles(t *testing.T) {
121
121
},
122
122
},
123
123
},
124
+ "p31" : {
125
+ RolePermissions : opensearch.RolePermissions {
126
+ ClusterPermissions : []string {},
127
+ IndexPermissions : []opensearch.IndexPermission {
128
+ {
129
+ AllowedActions : []string {
130
+ "read" ,
131
+ "indices:monitor/settings/get" ,
132
+ },
133
+ IndexPatterns : []string {
134
+ "/^(application|container|lagoon|router)-logs-drupal9-base-_-.+/" ,
135
+ },
136
+ },
137
+ },
138
+ TenantPermissions : []opensearch.TenantPermission {
139
+ {
140
+ AllowedActions : []string {"kibana_all_read" },
141
+ TenantPatterns : []string {"global_tenant" },
142
+ },
143
+ },
144
+ },
145
+ },
146
+ "p34" : {
147
+ RolePermissions : opensearch.RolePermissions {
148
+ ClusterPermissions : []string {},
149
+ IndexPermissions : []opensearch.IndexPermission {
150
+ {
151
+ AllowedActions : []string {
152
+ "read" ,
153
+ "indices:monitor/settings/get" ,
154
+ },
155
+ IndexPatterns : []string {
156
+ "/^(application|container|lagoon|router)-logs-somelongerprojectname-_-.+/" ,
157
+ },
158
+ },
159
+ },
160
+ TenantPermissions : []opensearch.TenantPermission {
161
+ {
162
+ AllowedActions : []string {"kibana_all_read" },
163
+ TenantPatterns : []string {"global_tenant" },
164
+ },
165
+ },
166
+ },
167
+ },
168
+ "p35" : {
169
+ RolePermissions : opensearch.RolePermissions {
170
+ ClusterPermissions : []string {},
171
+ IndexPermissions : []opensearch.IndexPermission {
172
+ {
173
+ AllowedActions : []string {
174
+ "read" ,
175
+ "indices:monitor/settings/get" ,
176
+ },
177
+ IndexPatterns : []string {
178
+ "/^(application|container|lagoon|router)-logs-drupal10-prerelease-_-.+/" ,
179
+ },
180
+ },
181
+ },
182
+ TenantPermissions : []opensearch.TenantPermission {
183
+ {
184
+ AllowedActions : []string {"kibana_all_read" },
185
+ TenantPatterns : []string {"global_tenant" },
186
+ },
187
+ },
188
+ },
189
+ },
190
+ "p36" : {
191
+ RolePermissions : opensearch.RolePermissions {
192
+ ClusterPermissions : []string {},
193
+ IndexPermissions : []opensearch.IndexPermission {
194
+ {
195
+ AllowedActions : []string {
196
+ "read" ,
197
+ "indices:monitor/settings/get" ,
198
+ },
199
+ IndexPatterns : []string {
200
+ "/^(application|container|lagoon|router)-logs-delta-backend-_-.+/" ,
201
+ },
202
+ },
203
+ },
204
+ TenantPermissions : []opensearch.TenantPermission {
205
+ {
206
+ AllowedActions : []string {"kibana_all_read" },
207
+ TenantPatterns : []string {"global_tenant" },
208
+ },
209
+ },
210
+ },
211
+ },
124
212
},
125
213
},
126
214
},
127
- "generate roles for project group" : {
215
+ "generate roles for projects ignoring project group" : {
128
216
input : generateRolesInput {
129
217
groups : []keycloak.Group {
130
218
{
@@ -148,6 +236,28 @@ func TestGenerateRoles(t *testing.T) {
148
236
},
149
237
expect : generateRolesOutput {
150
238
roles : map [string ]opensearch.Role {
239
+ "p26" : {
240
+ RolePermissions : opensearch.RolePermissions {
241
+ ClusterPermissions : []string {},
242
+ IndexPermissions : []opensearch.IndexPermission {
243
+ {
244
+ AllowedActions : []string {
245
+ "read" ,
246
+ "indices:monitor/settings/get" ,
247
+ },
248
+ IndexPatterns : []string {
249
+ "/^(application|container|lagoon|router)-logs-abc-_-.+/" ,
250
+ },
251
+ },
252
+ },
253
+ TenantPermissions : []opensearch.TenantPermission {
254
+ {
255
+ AllowedActions : []string {"kibana_all_read" },
256
+ TenantPatterns : []string {"global_tenant" },
257
+ },
258
+ },
259
+ },
260
+ },
151
261
"p27" : {
152
262
RolePermissions : opensearch.RolePermissions {
153
263
ClusterPermissions : []string {},
@@ -170,6 +280,121 @@ func TestGenerateRoles(t *testing.T) {
170
280
},
171
281
},
172
282
},
283
+ "p48" : {
284
+ RolePermissions : opensearch.RolePermissions {
285
+ ClusterPermissions : []string {},
286
+ IndexPermissions : []opensearch.IndexPermission {
287
+ {
288
+ AllowedActions : []string {
289
+ "read" ,
290
+ "indices:monitor/settings/get" ,
291
+ },
292
+ IndexPatterns : []string {
293
+ "/^(application|container|lagoon|router)-logs-somelongprojectname-_-.+/" ,
294
+ },
295
+ },
296
+ },
297
+ TenantPermissions : []opensearch.TenantPermission {
298
+ {
299
+ AllowedActions : []string {"kibana_all_read" },
300
+ TenantPatterns : []string {"global_tenant" },
301
+ },
302
+ },
303
+ },
304
+ },
305
+ },
306
+ },
307
+ },
308
+ "generate roles for multi-project project group" : {
309
+ input : generateRolesInput {
310
+ groups : []keycloak.Group {
311
+ {
312
+ ID : "3fc60c90-b72d-4704-8a57-80438adac98d" ,
313
+ GroupUpdateRepresentation : keycloak.GroupUpdateRepresentation {
314
+ Name : "project-beta-ui" ,
315
+ Attributes : map [string ][]string {
316
+ "type" : {`project-default-group` },
317
+ },
318
+ },
319
+ },
320
+ },
321
+ projectNames : map [int ]string {
322
+ 26 : "abc" ,
323
+ 27 : "beta-ui" ,
324
+ 48 : "somelongprojectname" ,
325
+ },
326
+ groupProjectsMap : map [string ][]int {
327
+ "3fc60c90-b72d-4704-8a57-80438adac98d" : {48 , 27 , 26 },
328
+ },
329
+ },
330
+ expect : generateRolesOutput {
331
+ roles : map [string ]opensearch.Role {
332
+ "p26" : {
333
+ RolePermissions : opensearch.RolePermissions {
334
+ ClusterPermissions : []string {},
335
+ IndexPermissions : []opensearch.IndexPermission {
336
+ {
337
+ AllowedActions : []string {
338
+ "read" ,
339
+ "indices:monitor/settings/get" ,
340
+ },
341
+ IndexPatterns : []string {
342
+ "/^(application|container|lagoon|router)-logs-abc-_-.+/" ,
343
+ },
344
+ },
345
+ },
346
+ TenantPermissions : []opensearch.TenantPermission {
347
+ {
348
+ AllowedActions : []string {"kibana_all_read" },
349
+ TenantPatterns : []string {"global_tenant" },
350
+ },
351
+ },
352
+ },
353
+ },
354
+ "p27" : {
355
+ RolePermissions : opensearch.RolePermissions {
356
+ ClusterPermissions : []string {},
357
+ IndexPermissions : []opensearch.IndexPermission {
358
+ {
359
+ AllowedActions : []string {
360
+ "read" ,
361
+ "indices:monitor/settings/get" ,
362
+ },
363
+ IndexPatterns : []string {
364
+ "/^(application|container|lagoon|router)-logs-beta-ui-_-.+/" ,
365
+ },
366
+ },
367
+ },
368
+ TenantPermissions : []opensearch.TenantPermission {
369
+ {
370
+ AllowedActions : []string {"kibana_all_read" },
371
+ TenantPatterns : []string {"global_tenant" },
372
+ },
373
+ },
374
+ },
375
+ },
376
+ "p48" : {
377
+ RolePermissions : opensearch.RolePermissions {
378
+ ClusterPermissions : []string {},
379
+ IndexPermissions : []opensearch.IndexPermission {
380
+ {
381
+ AllowedActions : []string {
382
+ "read" ,
383
+ "indices:monitor/settings/get" ,
384
+ },
385
+ IndexPatterns : []string {
386
+ "/^(application|container|lagoon|router)-logs-somelongprojectname-_-.+/" ,
387
+ },
388
+ },
389
+ },
390
+ TenantPermissions : []opensearch.TenantPermission {
391
+ {
392
+ AllowedActions : []string {"kibana_all_read" },
393
+ TenantPatterns : []string {"global_tenant" },
394
+ },
395
+ },
396
+ },
397
+ },
173
398
},
174
399
},
175
400
},
0 commit comments