@rockcarver/frodo-lib 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/.eslintrc +32 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. package/.github/README.md +121 -0
  5. package/.github/workflows/pipeline.yml +287 -0
  6. package/.prettierrc +6 -0
  7. package/CHANGELOG.md +512 -0
  8. package/CODE_OF_CONDUCT.md +128 -0
  9. package/LICENSE +21 -0
  10. package/README.md +8 -0
  11. package/docs/CONTRIBUTE.md +96 -0
  12. package/docs/PIPELINE.md +169 -0
  13. package/docs/images/npm_versioning_guidelines.png +0 -0
  14. package/docs/images/release_pipeline.png +0 -0
  15. package/jsconfig.json +6 -0
  16. package/package.json +95 -0
  17. package/resources/sampleEntitiesFile.json +8 -0
  18. package/resources/sampleEnvFile.env +2 -0
  19. package/src/api/AuthenticateApi.js +33 -0
  20. package/src/api/BaseApi.js +242 -0
  21. package/src/api/CirclesOfTrustApi.js +87 -0
  22. package/src/api/EmailTemplateApi.js +37 -0
  23. package/src/api/IdmConfigApi.js +88 -0
  24. package/src/api/LogApi.js +45 -0
  25. package/src/api/ManagedObjectApi.js +62 -0
  26. package/src/api/OAuth2ClientApi.js +69 -0
  27. package/src/api/OAuth2OIDCApi.js +73 -0
  28. package/src/api/OAuth2ProviderApi.js +32 -0
  29. package/src/api/RealmApi.js +99 -0
  30. package/src/api/Saml2Api.js +176 -0
  31. package/src/api/ScriptApi.js +84 -0
  32. package/src/api/SecretsApi.js +151 -0
  33. package/src/api/ServerInfoApi.js +41 -0
  34. package/src/api/SocialIdentityProvidersApi.js +114 -0
  35. package/src/api/StartupApi.js +45 -0
  36. package/src/api/ThemeApi.js +181 -0
  37. package/src/api/TreeApi.js +207 -0
  38. package/src/api/VariablesApi.js +104 -0
  39. package/src/api/utils/ApiUtils.js +77 -0
  40. package/src/api/utils/ApiUtils.test.js +96 -0
  41. package/src/api/utils/Base64.js +62 -0
  42. package/src/index.js +32 -0
  43. package/src/index.test.js +13 -0
  44. package/src/ops/AdminOps.js +901 -0
  45. package/src/ops/AuthenticateOps.js +342 -0
  46. package/src/ops/CirclesOfTrustOps.js +350 -0
  47. package/src/ops/ConnectionProfileOps.js +254 -0
  48. package/src/ops/EmailTemplateOps.js +326 -0
  49. package/src/ops/IdmOps.js +227 -0
  50. package/src/ops/IdpOps.js +342 -0
  51. package/src/ops/JourneyOps.js +2026 -0
  52. package/src/ops/LogOps.js +357 -0
  53. package/src/ops/ManagedObjectOps.js +34 -0
  54. package/src/ops/OAuth2ClientOps.js +151 -0
  55. package/src/ops/OrganizationOps.js +85 -0
  56. package/src/ops/RealmOps.js +139 -0
  57. package/src/ops/SamlOps.js +541 -0
  58. package/src/ops/ScriptOps.js +211 -0
  59. package/src/ops/SecretsOps.js +288 -0
  60. package/src/ops/StartupOps.js +114 -0
  61. package/src/ops/ThemeOps.js +379 -0
  62. package/src/ops/VariablesOps.js +185 -0
  63. package/src/ops/templates/OAuth2ClientTemplate.json +270 -0
  64. package/src/ops/templates/OrgModelUserAttributesTemplate.json +149 -0
  65. package/src/ops/templates/cloud/GenericExtensionAttributesTemplate.json +392 -0
  66. package/src/ops/templates/cloud/managed.json +4119 -0
  67. package/src/ops/utils/Console.js +434 -0
  68. package/src/ops/utils/DataProtection.js +92 -0
  69. package/src/ops/utils/DataProtection.test.js +28 -0
  70. package/src/ops/utils/ExportImportUtils.js +146 -0
  71. package/src/ops/utils/ExportImportUtils.test.js +119 -0
  72. package/src/ops/utils/OpsUtils.js +76 -0
  73. package/src/ops/utils/Wordwrap.js +11 -0
  74. package/src/storage/SessionStorage.js +45 -0
  75. package/src/storage/StaticStorage.js +15 -0
  76. package/test/e2e/journey/baseline/ForgottenUsername.journey.json +216 -0
  77. package/test/e2e/journey/baseline/Login.journey.json +205 -0
  78. package/test/e2e/journey/baseline/PasswordGrant.journey.json +139 -0
  79. package/test/e2e/journey/baseline/ProgressiveProfile.journey.json +198 -0
  80. package/test/e2e/journey/baseline/Registration.journey.json +249 -0
  81. package/test/e2e/journey/baseline/ResetPassword.journey.json +268 -0
  82. package/test/e2e/journey/baseline/UpdatePassword.journey.json +323 -0
  83. package/test/e2e/journey/baseline/allAlphaJourneys.journeys.json +1520 -0
  84. package/test/e2e/journey/delete/ForgottenUsername.journey.json +216 -0
  85. package/test/e2e/journey/delete/Login.journey.json +205 -0
  86. package/test/e2e/journey/delete/PasswordGrant.journey.json +139 -0
  87. package/test/e2e/journey/delete/ProgressiveProfile.journey.json +198 -0
  88. package/test/e2e/journey/delete/Registration.journey.json +249 -0
  89. package/test/e2e/journey/delete/ResetPassword.journey.json +268 -0
  90. package/test/e2e/journey/delete/UpdatePassword.journey.json +323 -0
  91. package/test/e2e/journey/delete/deleteMe.journey.json +230 -0
  92. package/test/e2e/journey/list/Disabled.journey.json +43 -0
  93. package/test/e2e/journey/list/ForgottenUsername.journey.json +216 -0
  94. package/test/e2e/journey/list/Login.journey.json +205 -0
  95. package/test/e2e/journey/list/PasswordGrant.journey.json +139 -0
  96. package/test/e2e/journey/list/ProgressiveProfile.journey.json +198 -0
  97. package/test/e2e/journey/list/Registration.journey.json +249 -0
  98. package/test/e2e/journey/list/ResetPassword.journey.json +268 -0
  99. package/test/e2e/journey/list/UpdatePassword.journey.json +323 -0
  100. package/test/e2e/setup.js +107 -0
  101. package/test/e2e/theme/baseline/Contrast.theme.json +95 -0
  102. package/test/e2e/theme/baseline/Highlander.theme.json +95 -0
  103. package/test/e2e/theme/baseline/Robroy.theme.json +95 -0
  104. package/test/e2e/theme/baseline/Starter-Theme.theme.json +94 -0
  105. package/test/e2e/theme/baseline/Zardoz.theme.json +95 -0
  106. package/test/e2e/theme/import/Contrast.theme.json +95 -0
  107. package/test/e2e/theme/import/Highlander.theme.json +95 -0
  108. package/test/e2e/theme/import/Robroy.theme.json +95 -0
  109. package/test/e2e/theme/import/Starter-Theme.theme.json +94 -0
  110. package/test/e2e/theme/import/Zardoz.default.theme.json +95 -0
  111. package/test/fs_tmp/.gitkeep +2 -0
  112. package/test/global/setup.js +65 -0
@@ -0,0 +1,4119 @@
1
+ {
2
+ "objects": [
3
+ {
4
+ "name": "teammembergroup",
5
+ "schema": {
6
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:TeammemberGroup",
7
+ "title": "TeammemberGroup",
8
+ "icon": "fa-users",
9
+ "viewable": true,
10
+ "$schema": "http://json-schema.org/draft-03/schema",
11
+ "order": ["members"],
12
+ "properties": {
13
+ "_id": {
14
+ "description": "Group ID",
15
+ "type": "string",
16
+ "viewable": true,
17
+ "searchable": false,
18
+ "userEditable": false,
19
+ "usageDescription": "",
20
+ "isPersonal": false,
21
+ "policies": [
22
+ {
23
+ "policyId": "cannot-contain-characters",
24
+ "params": {
25
+ "forbiddenChars": ["/"]
26
+ }
27
+ }
28
+ ]
29
+ },
30
+ "members": {
31
+ "description": "Group Members",
32
+ "title": "Group Members",
33
+ "viewable": true,
34
+ "type": "array",
35
+ "returnByDefault": true,
36
+ "items": {
37
+ "type": "string",
38
+ "title": "Group Members Items"
39
+ }
40
+ }
41
+ },
42
+ "type": "object"
43
+ }
44
+ },
45
+ {
46
+ "name": "teammember",
47
+ "actions": {
48
+ "resetPassword": {
49
+ "type": "text/javascript",
50
+ "source": "require('resetPassword').sendMail(object);"
51
+ },
52
+ "unbind": {
53
+ "type": "text/javascript",
54
+ "file": "ui/unBindBehavior.js",
55
+ "apiDescriptor": {
56
+ "parameters": [
57
+ {
58
+ "name": "provider",
59
+ "type": "string",
60
+ "required": true
61
+ }
62
+ ]
63
+ }
64
+ },
65
+ "bind": {
66
+ "type": "text/javascript",
67
+ "file": "ui/bindBehavior.js",
68
+ "apiDescriptor": {
69
+ "parameters": [
70
+ {
71
+ "name": "provider",
72
+ "type": "string",
73
+ "required": true
74
+ }
75
+ ]
76
+ }
77
+ }
78
+ },
79
+ "onCreate": {
80
+ "type": "text/javascript",
81
+ "source": "require('teammember').onboardingChecks(object);"
82
+ },
83
+ "onUpdate": {
84
+ "type": "text/javascript",
85
+ "source": "require('teammember').onboardingChecks(object, oldObject);"
86
+ },
87
+ "postCreate": {
88
+ "type": "text/javascript",
89
+ "source": "require('teammember').ensureMembership(object, true);"
90
+ },
91
+ "postUpdate": {
92
+ "type": "text/javascript",
93
+ "source": "require('teammember').postUpdate(object, oldObject);"
94
+ },
95
+ "postDelete": {
96
+ "type": "text/javascript",
97
+ "source": "require('teammember').ensureMembership(oldObject, false);"
98
+ },
99
+ "schema": {
100
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Teammember",
101
+ "title": "Admins",
102
+ "icon": "fa-user",
103
+ "viewable": true,
104
+ "$schema": "http://json-schema.org/draft-03/schema",
105
+ "order": [
106
+ "_id",
107
+ "userName",
108
+ "password",
109
+ "givenName",
110
+ "sn",
111
+ "mail",
112
+ "cn",
113
+ "authzRoles",
114
+ "inviteDate",
115
+ "onboardDate",
116
+ "jurisdiction",
117
+ "accountStatus"
118
+ ],
119
+ "properties": {
120
+ "authzRoles": {
121
+ "description": "Authorization Roles",
122
+ "title": "Authorization Roles",
123
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:authzRoles",
124
+ "viewable": true,
125
+ "type": "array",
126
+ "userEditable": false,
127
+ "returnByDefault": false,
128
+ "usageDescription": "",
129
+ "isPersonal": false,
130
+ "items": {
131
+ "type": "relationship",
132
+ "title": "Authorization Roles Items",
133
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:authzRoles:items",
134
+ "reverseRelationship": true,
135
+ "reversePropertyName": "authzMembers",
136
+ "validate": true,
137
+ "properties": {
138
+ "_ref": {
139
+ "description": "References a relationship from a managed object",
140
+ "type": "string"
141
+ },
142
+ "_refProperties": {
143
+ "description": "Supports metadata within the relationship",
144
+ "type": "object",
145
+ "title": "Authorization Roles Items _refProperties",
146
+ "properties": {
147
+ "_id": {
148
+ "description": "_refProperties object ID",
149
+ "type": "string"
150
+ }
151
+ }
152
+ }
153
+ },
154
+ "resourceCollection": [
155
+ {
156
+ "path": "internal/role",
157
+ "label": "Internal Role",
158
+ "conditionalAssociationField": "condition",
159
+ "query": {
160
+ "queryFilter": "true",
161
+ "fields": ["_id", "description"]
162
+ }
163
+ },
164
+ {
165
+ "path": "managed/alpha_role",
166
+ "label": "Role",
167
+ "conditionalAssociationField": "condition",
168
+ "query": {
169
+ "queryFilter": "true",
170
+ "fields": ["name"]
171
+ }
172
+ }
173
+ ]
174
+ }
175
+ },
176
+ "_id": {
177
+ "description": "User ID",
178
+ "type": "string",
179
+ "viewable": false,
180
+ "searchable": false,
181
+ "userEditable": false,
182
+ "usageDescription": "",
183
+ "isPersonal": false,
184
+ "policies": [
185
+ {
186
+ "policyId": "cannot-contain-characters",
187
+ "params": {
188
+ "forbiddenChars": ["/"]
189
+ }
190
+ }
191
+ ]
192
+ },
193
+ "password": {
194
+ "title": "Password",
195
+ "description": "Password",
196
+ "type": "string",
197
+ "viewable": true,
198
+ "searchable": false,
199
+ "userEditable": true,
200
+ "scope": "private",
201
+ "isProtected": true,
202
+ "usageDescription": "",
203
+ "isPersonal": false,
204
+ "policies": [
205
+ {
206
+ "policyId": "minimum-length",
207
+ "params": {
208
+ "minLength": 8
209
+ }
210
+ },
211
+ {
212
+ "policyId": "maximum-length",
213
+ "params": {
214
+ "maxLength": 64
215
+ }
216
+ },
217
+ {
218
+ "policyId": "at-least-X-capitals",
219
+ "params": {
220
+ "numCaps": 1
221
+ }
222
+ },
223
+ {
224
+ "policyId": "at-least-X-numbers",
225
+ "params": {
226
+ "numNums": 1
227
+ }
228
+ },
229
+ {
230
+ "policyId": "regexpMatches",
231
+ "params": {
232
+ "regexp": "[abcdefghijklmnopqrstuvwxyz]+"
233
+ }
234
+ },
235
+ {
236
+ "policyId": "regexpMatches",
237
+ "params": {
238
+ "regexp": "[\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\_\\=\\+\\[\\]\\{\\}\\|\\;\\:\\,\\.\\<\\>\\/\\?\\\"\\'\\`\\\\]+"
239
+ }
240
+ },
241
+ {
242
+ "policyId": "cannot-contain-others",
243
+ "params": {
244
+ "disallowedFields": ["givenName", "mail", "sn", "userName"]
245
+ }
246
+ }
247
+ ]
248
+ },
249
+ "mail": {
250
+ "title": "Email Address",
251
+ "description": "Email Address",
252
+ "viewable": true,
253
+ "type": "string",
254
+ "searchable": true,
255
+ "userEditable": true,
256
+ "usageDescription": "",
257
+ "isPersonal": true,
258
+ "policies": [
259
+ {
260
+ "policyId": "valid-email-address-format"
261
+ }
262
+ ]
263
+ },
264
+ "sn": {
265
+ "title": "Last Name",
266
+ "description": "Last Name",
267
+ "viewable": true,
268
+ "type": "string",
269
+ "searchable": true,
270
+ "userEditable": true,
271
+ "usageDescription": "",
272
+ "isPersonal": true
273
+ },
274
+ "givenName": {
275
+ "title": "First Name",
276
+ "description": "First Name",
277
+ "viewable": true,
278
+ "type": "string",
279
+ "searchable": true,
280
+ "userEditable": true,
281
+ "usageDescription": "",
282
+ "isPersonal": true
283
+ },
284
+ "country": {
285
+ "type": "string",
286
+ "title": "Country",
287
+ "description": "Country",
288
+ "viewable": true,
289
+ "userEditable": true,
290
+ "usageDescription": "",
291
+ "isPersonal": false
292
+ },
293
+ "userName": {
294
+ "title": "Username",
295
+ "description": "Username",
296
+ "viewable": true,
297
+ "type": "string",
298
+ "searchable": true,
299
+ "userEditable": true,
300
+ "minLength": 1,
301
+ "usageDescription": "",
302
+ "isPersonal": true,
303
+ "policies": [
304
+ {
305
+ "policyId": "unique"
306
+ },
307
+ {
308
+ "policyId": "cannot-contain-characters",
309
+ "params": {
310
+ "forbiddenChars": ["/"]
311
+ }
312
+ }
313
+ ]
314
+ },
315
+ "cn": {
316
+ "description": "Common Name",
317
+ "type": "string",
318
+ "viewable": false,
319
+ "searchable": false,
320
+ "userEditable": false,
321
+ "scope": "private",
322
+ "isPersonal": true,
323
+ "isVirtual": true,
324
+ "onStore": {
325
+ "type": "text/javascript",
326
+ "source": "object.cn || (object.givenName + ' ' + object.sn)"
327
+ }
328
+ },
329
+ "accountStatus": {
330
+ "description": "Status",
331
+ "isPersonal": false,
332
+ "isVirtual": false,
333
+ "returnByDefault": true,
334
+ "searchable": true,
335
+ "title": "Status",
336
+ "type": "string",
337
+ "usageDescription": "Account status",
338
+ "userEditable": true,
339
+ "viewable": true
340
+ },
341
+ "inviteDate": {
342
+ "title": "Date Invited",
343
+ "description": "Date Invited",
344
+ "viewable": true,
345
+ "type": "string",
346
+ "searchable": false,
347
+ "userEditable": true,
348
+ "usageDescription": "",
349
+ "isPersonal": false
350
+ },
351
+ "jurisdiction": {
352
+ "title": "Jurisdiction",
353
+ "description": "Jurisdiction",
354
+ "viewable": true,
355
+ "type": "string",
356
+ "searchable": true,
357
+ "userEditable": true,
358
+ "usageDescription": "",
359
+ "isPersonal": false
360
+ },
361
+ "onboardDate": {
362
+ "title": "Date Onboarded",
363
+ "description": "Date Onboarded",
364
+ "viewable": true,
365
+ "type": "string",
366
+ "searchable": false,
367
+ "userEditable": true,
368
+ "usageDescription": "",
369
+ "isPersonal": false
370
+ }
371
+ },
372
+ "type": "object",
373
+ "required": ["givenName", "inviteDate", "mail", "sn", "userName"]
374
+ },
375
+ "meta": {
376
+ "property": "_meta",
377
+ "resourceCollection": "managed/teammembermeta",
378
+ "trackedProperties": ["createDate", "lastChanged"]
379
+ },
380
+ "notifications": {}
381
+ },
382
+ {
383
+ "name": "alpha_user",
384
+ "onCreate": {
385
+ "type": "text/javascript",
386
+ "source": "require('onCreateUser').setDefaultFields(object);"
387
+ },
388
+ "onUpdate": {
389
+ "type": "text/javascript",
390
+ "source": "require('onUpdateUser').preserveLastSync(object, oldObject, request);"
391
+ },
392
+ "schema": {
393
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User",
394
+ "title": "Alpha realm - User",
395
+ "icon": "fa-user",
396
+ "mat-icon": "people",
397
+ "viewable": true,
398
+ "$schema": "http://json-schema.org/draft-03/schema",
399
+ "order": [
400
+ "_id",
401
+ "userName",
402
+ "password",
403
+ "givenName",
404
+ "cn",
405
+ "sn",
406
+ "mail",
407
+ "description",
408
+ "accountStatus",
409
+ "telephoneNumber",
410
+ "postalAddress",
411
+ "city",
412
+ "postalCode",
413
+ "country",
414
+ "stateProvince",
415
+ "roles",
416
+ "manager",
417
+ "authzRoles",
418
+ "reports",
419
+ "effectiveRoles",
420
+ "effectiveAssignments",
421
+ "lastSync",
422
+ "kbaInfo",
423
+ "preferences",
424
+ "consentedMappings",
425
+ "ownerOfOrg",
426
+ "adminOfOrg",
427
+ "memberOfOrg",
428
+ "memberOfOrgIDs",
429
+ "frIndexedString1",
430
+ "frIndexedString2",
431
+ "frIndexedString3",
432
+ "frIndexedString4",
433
+ "frIndexedString5",
434
+ "frUnindexedString1",
435
+ "frUnindexedString2",
436
+ "frUnindexedString3",
437
+ "frUnindexedString4",
438
+ "frUnindexedString5",
439
+ "frIndexedMultivalued1",
440
+ "frIndexedMultivalued2",
441
+ "frIndexedMultivalued3",
442
+ "frIndexedMultivalued4",
443
+ "frIndexedMultivalued5",
444
+ "frUnindexedMultivalued1",
445
+ "frUnindexedMultivalued2",
446
+ "frUnindexedMultivalued3",
447
+ "frUnindexedMultivalued4",
448
+ "frUnindexedMultivalued5",
449
+ "frIndexedDate1",
450
+ "frIndexedDate2",
451
+ "frIndexedDate3",
452
+ "frIndexedDate4",
453
+ "frIndexedDate5",
454
+ "frUnindexedDate1",
455
+ "frUnindexedDate2",
456
+ "frUnindexedDate3",
457
+ "frUnindexedDate4",
458
+ "frUnindexedDate5",
459
+ "frIndexedInteger1",
460
+ "frIndexedInteger2",
461
+ "frIndexedInteger3",
462
+ "frIndexedInteger4",
463
+ "frIndexedInteger5",
464
+ "frUnindexedInteger1",
465
+ "frUnindexedInteger2",
466
+ "frUnindexedInteger3",
467
+ "frUnindexedInteger4",
468
+ "frUnindexedInteger5"
469
+ ],
470
+ "properties": {
471
+ "_id": {
472
+ "description": "User ID",
473
+ "type": "string",
474
+ "viewable": false,
475
+ "searchable": false,
476
+ "userEditable": false,
477
+ "usageDescription": "",
478
+ "isPersonal": false,
479
+ "policies": [
480
+ {
481
+ "policyId": "cannot-contain-characters",
482
+ "params": {
483
+ "forbiddenChars": ["/"]
484
+ }
485
+ }
486
+ ]
487
+ },
488
+ "password": {
489
+ "title": "Password",
490
+ "description": "Password",
491
+ "type": "string",
492
+ "viewable": false,
493
+ "searchable": false,
494
+ "userEditable": true,
495
+ "scope": "private",
496
+ "isProtected": true,
497
+ "usageDescription": "",
498
+ "isPersonal": false
499
+ },
500
+ "cn": {
501
+ "title": "Common Name",
502
+ "description": "Common Name",
503
+ "type": "string",
504
+ "viewable": false,
505
+ "searchable": false,
506
+ "userEditable": false,
507
+ "scope": "private",
508
+ "isPersonal": true,
509
+ "isVirtual": true,
510
+ "onStore": {
511
+ "type": "text/javascript",
512
+ "source": "object.cn || (object.givenName + ' ' + object.sn)"
513
+ }
514
+ },
515
+ "kbaInfo": {
516
+ "description": "KBA Info",
517
+ "type": "array",
518
+ "userEditable": true,
519
+ "viewable": false,
520
+ "usageDescription": "",
521
+ "isPersonal": true,
522
+ "items": {
523
+ "type": "object",
524
+ "title": "KBA Info Items",
525
+ "properties": {
526
+ "answer": {
527
+ "description": "Answer",
528
+ "type": "string"
529
+ },
530
+ "customQuestion": {
531
+ "description": "Custom question",
532
+ "type": "string"
533
+ },
534
+ "questionId": {
535
+ "description": "Question ID",
536
+ "type": "string"
537
+ }
538
+ },
539
+ "order": ["answer", "customQuestion", "questionId"],
540
+ "required": []
541
+ }
542
+ },
543
+ "preferences": {
544
+ "title": "Preferences",
545
+ "description": "Preferences",
546
+ "viewable": true,
547
+ "searchable": false,
548
+ "userEditable": true,
549
+ "type": "object",
550
+ "usageDescription": "",
551
+ "isPersonal": false,
552
+ "properties": {
553
+ "updates": {
554
+ "description": "Send me news and updates",
555
+ "type": "boolean"
556
+ },
557
+ "marketing": {
558
+ "description": "Send me special offers and services",
559
+ "type": "boolean"
560
+ }
561
+ },
562
+ "order": ["updates", "marketing"],
563
+ "required": []
564
+ },
565
+ "mail": {
566
+ "title": "Email Address",
567
+ "description": "Email Address",
568
+ "viewable": true,
569
+ "type": "string",
570
+ "searchable": true,
571
+ "userEditable": true,
572
+ "usageDescription": "",
573
+ "isPersonal": true,
574
+ "policies": [
575
+ {
576
+ "policyId": "valid-email-address-format"
577
+ }
578
+ ]
579
+ },
580
+ "sn": {
581
+ "title": "Last Name",
582
+ "description": "Last Name",
583
+ "viewable": true,
584
+ "type": "string",
585
+ "searchable": true,
586
+ "userEditable": true,
587
+ "usageDescription": "",
588
+ "isPersonal": true
589
+ },
590
+ "description": {
591
+ "title": "Description",
592
+ "description": "Description",
593
+ "viewable": true,
594
+ "type": "string",
595
+ "searchable": true,
596
+ "userEditable": true,
597
+ "usageDescription": "",
598
+ "isPersonal": false
599
+ },
600
+ "givenName": {
601
+ "title": "First Name",
602
+ "description": "First Name",
603
+ "viewable": true,
604
+ "type": "string",
605
+ "searchable": true,
606
+ "userEditable": true,
607
+ "usageDescription": "",
608
+ "isPersonal": true
609
+ },
610
+ "city": {
611
+ "type": "string",
612
+ "title": "City",
613
+ "description": "City",
614
+ "viewable": true,
615
+ "userEditable": true,
616
+ "usageDescription": "",
617
+ "isPersonal": false
618
+ },
619
+ "country": {
620
+ "type": "string",
621
+ "title": "Country",
622
+ "description": "Country",
623
+ "viewable": true,
624
+ "userEditable": true,
625
+ "usageDescription": "",
626
+ "isPersonal": false
627
+ },
628
+ "postalCode": {
629
+ "type": "string",
630
+ "title": "Postal Code",
631
+ "description": "Postal Code",
632
+ "viewable": true,
633
+ "userEditable": true,
634
+ "usageDescription": "",
635
+ "isPersonal": false
636
+ },
637
+ "frIndexedString1": {
638
+ "type": "string",
639
+ "title": "Generic Indexed String 1",
640
+ "description": "Generic Indexed String 1",
641
+ "viewable": true,
642
+ "userEditable": true,
643
+ "usageDescription": "",
644
+ "isPersonal": false
645
+ },
646
+ "frIndexedString2": {
647
+ "type": "string",
648
+ "title": "Generic Indexed String 2",
649
+ "description": "Generic Indexed String 2",
650
+ "viewable": true,
651
+ "userEditable": true,
652
+ "usageDescription": "",
653
+ "isPersonal": false
654
+ },
655
+ "frIndexedString3": {
656
+ "type": "string",
657
+ "title": "Generic Indexed String 3",
658
+ "description": "Generic Indexed String 3",
659
+ "viewable": true,
660
+ "userEditable": true,
661
+ "usageDescription": "",
662
+ "isPersonal": false
663
+ },
664
+ "frIndexedString4": {
665
+ "type": "string",
666
+ "title": "Generic Indexed String 4",
667
+ "description": "Generic Indexed String 4",
668
+ "viewable": true,
669
+ "userEditable": true,
670
+ "usageDescription": "",
671
+ "isPersonal": false
672
+ },
673
+ "frIndexedString5": {
674
+ "type": "string",
675
+ "title": "Generic Indexed String 5",
676
+ "description": "Generic Indexed String 5",
677
+ "viewable": true,
678
+ "userEditable": true,
679
+ "usageDescription": "",
680
+ "isPersonal": false
681
+ },
682
+ "frUnindexedString1": {
683
+ "type": "string",
684
+ "title": "Generic Unindexed String 1",
685
+ "description": "Generic Unindexed String 1",
686
+ "viewable": true,
687
+ "userEditable": true,
688
+ "usageDescription": "",
689
+ "isPersonal": false
690
+ },
691
+ "frUnindexedString2": {
692
+ "type": "string",
693
+ "title": "Generic Unindexed String 2",
694
+ "description": "Generic Unindexed String 2",
695
+ "viewable": true,
696
+ "userEditable": true,
697
+ "usageDescription": "",
698
+ "isPersonal": false
699
+ },
700
+ "frUnindexedString3": {
701
+ "type": "string",
702
+ "title": "Generic Unindexed String 3",
703
+ "description": "Generic Unindexed String 3",
704
+ "viewable": true,
705
+ "userEditable": true,
706
+ "usageDescription": "",
707
+ "isPersonal": false
708
+ },
709
+ "frUnindexedString4": {
710
+ "type": "string",
711
+ "title": "Generic Unindexed String 4",
712
+ "description": "Generic Unindexed String 4",
713
+ "viewable": true,
714
+ "userEditable": true,
715
+ "usageDescription": "",
716
+ "isPersonal": false
717
+ },
718
+ "frUnindexedString5": {
719
+ "type": "string",
720
+ "title": "Generic Unindexed String 5",
721
+ "description": "Generic Unindexed String 5",
722
+ "viewable": true,
723
+ "userEditable": true,
724
+ "usageDescription": "",
725
+ "isPersonal": false
726
+ },
727
+ "frIndexedMultivalued1": {
728
+ "type": "array",
729
+ "items": {
730
+ "type": "string"
731
+ },
732
+ "title": "Generic Indexed Multivalue 1",
733
+ "description": "Generic Indexed Multivalue 1",
734
+ "viewable": true,
735
+ "userEditable": true,
736
+ "usageDescription": "",
737
+ "isPersonal": false
738
+ },
739
+ "frIndexedMultivalued2": {
740
+ "type": "array",
741
+ "items": {
742
+ "type": "string"
743
+ },
744
+ "title": "Generic Indexed Multivalue 2",
745
+ "description": "Generic Indexed Multivalue 2",
746
+ "viewable": true,
747
+ "userEditable": true,
748
+ "usageDescription": "",
749
+ "isPersonal": false
750
+ },
751
+ "frIndexedMultivalued3": {
752
+ "type": "array",
753
+ "items": {
754
+ "type": "string"
755
+ },
756
+ "title": "Generic Indexed Multivalue 3",
757
+ "description": "Generic Indexed Multivalue 3",
758
+ "viewable": true,
759
+ "userEditable": true,
760
+ "usageDescription": "",
761
+ "isPersonal": false
762
+ },
763
+ "frIndexedMultivalued4": {
764
+ "type": "array",
765
+ "items": {
766
+ "type": "string"
767
+ },
768
+ "title": "Generic Indexed Multivalue 4",
769
+ "description": "Generic Indexed Multivalue 4",
770
+ "viewable": true,
771
+ "userEditable": true,
772
+ "usageDescription": "",
773
+ "isPersonal": false
774
+ },
775
+ "frIndexedMultivalued5": {
776
+ "type": "array",
777
+ "items": {
778
+ "type": "string"
779
+ },
780
+ "title": "Generic Indexed Multivalue 5",
781
+ "description": "Generic Indexed Multivalue 5",
782
+ "viewable": true,
783
+ "userEditable": true,
784
+ "usageDescription": "",
785
+ "isPersonal": false
786
+ },
787
+ "frUnindexedMultivalued1": {
788
+ "type": "array",
789
+ "items": {
790
+ "type": "string"
791
+ },
792
+ "title": "Generic Unindexed Multivalue 1",
793
+ "description": "Generic Unindexed Multivalue 1",
794
+ "viewable": true,
795
+ "userEditable": true,
796
+ "usageDescription": "",
797
+ "isPersonal": false
798
+ },
799
+ "frUnindexedMultivalued2": {
800
+ "type": "array",
801
+ "items": {
802
+ "type": "string"
803
+ },
804
+ "title": "Generic Unindexed Multivalue 2",
805
+ "description": "Generic Unindexed Multivalue 2",
806
+ "viewable": true,
807
+ "userEditable": true,
808
+ "usageDescription": "",
809
+ "isPersonal": false
810
+ },
811
+ "frUnindexedMultivalued3": {
812
+ "type": "array",
813
+ "items": {
814
+ "type": "string"
815
+ },
816
+ "title": "Generic Unindexed Multivalue 3",
817
+ "description": "Generic Unindexed Multivalue 3",
818
+ "viewable": true,
819
+ "userEditable": true,
820
+ "usageDescription": "",
821
+ "isPersonal": false
822
+ },
823
+ "frUnindexedMultivalued4": {
824
+ "type": "array",
825
+ "items": {
826
+ "type": "string"
827
+ },
828
+ "title": "Generic Unindexed Multivalue 4",
829
+ "description": "Generic Unindexed Multivalue 4",
830
+ "viewable": true,
831
+ "userEditable": true,
832
+ "usageDescription": "",
833
+ "isPersonal": false
834
+ },
835
+ "frUnindexedMultivalued5": {
836
+ "type": "array",
837
+ "items": {
838
+ "type": "string"
839
+ },
840
+ "title": "Generic Unindexed Multivalue 5",
841
+ "description": "Generic Unindexed Multivalue 5",
842
+ "viewable": true,
843
+ "userEditable": true,
844
+ "usageDescription": "",
845
+ "isPersonal": false
846
+ },
847
+ "frIndexedDate1": {
848
+ "type": "string",
849
+ "title": "Generic Indexed Date 1",
850
+ "description": "Generic Indexed Date 1",
851
+ "viewable": true,
852
+ "userEditable": true,
853
+ "usageDescription": "",
854
+ "isPersonal": false
855
+ },
856
+ "frIndexedDate2": {
857
+ "type": "string",
858
+ "title": "Generic Indexed Date 2",
859
+ "description": "Generic Indexed Date 2",
860
+ "viewable": true,
861
+ "userEditable": true,
862
+ "usageDescription": "",
863
+ "isPersonal": false
864
+ },
865
+ "frIndexedDate3": {
866
+ "type": "string",
867
+ "title": "Generic Indexed Date 3",
868
+ "description": "Generic Indexed Date 3",
869
+ "viewable": true,
870
+ "userEditable": true,
871
+ "usageDescription": "",
872
+ "isPersonal": false
873
+ },
874
+ "frIndexedDate4": {
875
+ "type": "string",
876
+ "title": "Generic Indexed Date 4",
877
+ "description": "Generic Indexed Date 4",
878
+ "viewable": true,
879
+ "userEditable": true,
880
+ "usageDescription": "",
881
+ "isPersonal": false
882
+ },
883
+ "frIndexedDate5": {
884
+ "type": "string",
885
+ "title": "Generic Indexed Date 5",
886
+ "description": "Generic Indexed Date 5",
887
+ "viewable": true,
888
+ "userEditable": true,
889
+ "usageDescription": "",
890
+ "isPersonal": false
891
+ },
892
+ "frUnindexedDate1": {
893
+ "type": "string",
894
+ "title": "Generic Unindexed Date 1",
895
+ "description": "Generic Unindexed Date 1",
896
+ "viewable": true,
897
+ "userEditable": true,
898
+ "usageDescription": "",
899
+ "isPersonal": false
900
+ },
901
+ "frUnindexedDate2": {
902
+ "type": "string",
903
+ "title": "Generic Unindexed Date 2",
904
+ "description": "Generic Unindexed Date 2",
905
+ "viewable": true,
906
+ "userEditable": true,
907
+ "usageDescription": "",
908
+ "isPersonal": false
909
+ },
910
+ "frUnindexedDate3": {
911
+ "type": "string",
912
+ "title": "Generic Unindexed Date 3",
913
+ "description": "Generic Unindexed Date 3",
914
+ "viewable": true,
915
+ "userEditable": true,
916
+ "usageDescription": "",
917
+ "isPersonal": false
918
+ },
919
+ "frUnindexedDate4": {
920
+ "type": "string",
921
+ "title": "Generic Unindexed Date 4",
922
+ "description": "Generic Unindexed Date 4",
923
+ "viewable": true,
924
+ "userEditable": true,
925
+ "usageDescription": "",
926
+ "isPersonal": false
927
+ },
928
+ "frUnindexedDate5": {
929
+ "type": "string",
930
+ "title": "Generic Unindexed Date 5",
931
+ "description": "Generic Unindexed Date 5",
932
+ "viewable": true,
933
+ "userEditable": true,
934
+ "usageDescription": "",
935
+ "isPersonal": false
936
+ },
937
+ "frIndexedInteger1": {
938
+ "type": "number",
939
+ "title": "Generic Indexed Integer 1",
940
+ "description": "Generic Indexed Integer 1",
941
+ "viewable": true,
942
+ "userEditable": true,
943
+ "usageDescription": "",
944
+ "isPersonal": false
945
+ },
946
+ "frIndexedInteger2": {
947
+ "type": "number",
948
+ "title": "Generic Indexed Integer 2",
949
+ "description": "Generic Indexed Integer 2",
950
+ "viewable": true,
951
+ "userEditable": true,
952
+ "usageDescription": "",
953
+ "isPersonal": false
954
+ },
955
+ "frIndexedInteger3": {
956
+ "type": "number",
957
+ "title": "Generic Indexed Integer 3",
958
+ "description": "Generic Indexed Integer 3",
959
+ "viewable": true,
960
+ "userEditable": true,
961
+ "usageDescription": "",
962
+ "isPersonal": false
963
+ },
964
+ "frIndexedInteger4": {
965
+ "type": "number",
966
+ "title": "Generic Indexed Integer 4",
967
+ "description": "Generic Indexed Integer 4",
968
+ "viewable": true,
969
+ "userEditable": true,
970
+ "usageDescription": "",
971
+ "isPersonal": false
972
+ },
973
+ "frIndexedInteger5": {
974
+ "type": "number",
975
+ "title": "Generic Indexed Integer 5",
976
+ "description": "Generic Indexed Integer 5",
977
+ "viewable": true,
978
+ "userEditable": true,
979
+ "usageDescription": "",
980
+ "isPersonal": false
981
+ },
982
+ "frUnindexedInteger1": {
983
+ "type": "number",
984
+ "title": "Generic Unindexed Integer 1",
985
+ "description": "Generic Unindexed Integer 1",
986
+ "viewable": true,
987
+ "userEditable": true,
988
+ "usageDescription": "",
989
+ "isPersonal": false
990
+ },
991
+ "frUnindexedInteger2": {
992
+ "type": "number",
993
+ "title": "Generic Unindexed Integer 2",
994
+ "description": "Generic Unindexed Integer 2",
995
+ "viewable": true,
996
+ "userEditable": true,
997
+ "usageDescription": "",
998
+ "isPersonal": false
999
+ },
1000
+ "frUnindexedInteger3": {
1001
+ "type": "number",
1002
+ "title": "Generic Unindexed Integer 3",
1003
+ "description": "Generic Unindexed Integer 3",
1004
+ "viewable": true,
1005
+ "userEditable": true,
1006
+ "usageDescription": "",
1007
+ "isPersonal": false
1008
+ },
1009
+ "frUnindexedInteger4": {
1010
+ "type": "number",
1011
+ "title": "Generic Unindexed Integer 4",
1012
+ "description": "Generic Unindexed Integer 4",
1013
+ "viewable": true,
1014
+ "userEditable": true,
1015
+ "usageDescription": "",
1016
+ "isPersonal": false
1017
+ },
1018
+ "frUnindexedInteger5": {
1019
+ "type": "number",
1020
+ "title": "Generic Unindexed Integer 5",
1021
+ "description": "Generic Unindexed Integer 5",
1022
+ "viewable": true,
1023
+ "userEditable": true,
1024
+ "usageDescription": "",
1025
+ "isPersonal": false
1026
+ },
1027
+ "accountStatus": {
1028
+ "title": "Status",
1029
+ "description": "Status",
1030
+ "viewable": true,
1031
+ "type": "string",
1032
+ "searchable": true,
1033
+ "userEditable": false,
1034
+ "usageDescription": "",
1035
+ "isPersonal": false
1036
+ },
1037
+ "roles": {
1038
+ "description": "Provisioning Roles",
1039
+ "title": "Provisioning Roles",
1040
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:roles",
1041
+ "viewable": true,
1042
+ "userEditable": false,
1043
+ "returnByDefault": false,
1044
+ "usageDescription": "",
1045
+ "isPersonal": false,
1046
+ "type": "array",
1047
+ "relationshipGrantTemporalConstraintsEnforced": true,
1048
+ "items": {
1049
+ "type": "relationship",
1050
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:roles:items",
1051
+ "title": "Provisioning Roles Items",
1052
+ "reverseRelationship": true,
1053
+ "reversePropertyName": "members",
1054
+ "notifySelf": true,
1055
+ "validate": true,
1056
+ "properties": {
1057
+ "_ref": {
1058
+ "description": "References a relationship from a managed object",
1059
+ "type": "string"
1060
+ },
1061
+ "_refProperties": {
1062
+ "description": "Supports metadata within the relationship",
1063
+ "type": "object",
1064
+ "title": "Provisioning Roles Items _refProperties",
1065
+ "properties": {
1066
+ "_id": {
1067
+ "description": "_refProperties object ID",
1068
+ "type": "string"
1069
+ },
1070
+ "_grantType": {
1071
+ "description": "Grant Type",
1072
+ "type": "string",
1073
+ "label": "Grant Type"
1074
+ }
1075
+ }
1076
+ }
1077
+ },
1078
+ "resourceCollection": [
1079
+ {
1080
+ "path": "managed/alpha_role",
1081
+ "label": "Role",
1082
+ "conditionalAssociationField": "condition",
1083
+ "query": {
1084
+ "queryFilter": "true",
1085
+ "fields": ["name"]
1086
+ }
1087
+ }
1088
+ ]
1089
+ }
1090
+ },
1091
+ "authzRoles": {
1092
+ "description": "Authorization Roles",
1093
+ "title": "Authorization Roles",
1094
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:authzRoles",
1095
+ "viewable": true,
1096
+ "type": "array",
1097
+ "userEditable": false,
1098
+ "returnByDefault": false,
1099
+ "usageDescription": "",
1100
+ "isPersonal": false,
1101
+ "items": {
1102
+ "type": "relationship",
1103
+ "title": "Authorization Roles Items",
1104
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:authzRoles:items",
1105
+ "reverseRelationship": true,
1106
+ "reversePropertyName": "authzMembers",
1107
+ "validate": true,
1108
+ "properties": {
1109
+ "_ref": {
1110
+ "description": "References a relationship from a managed object",
1111
+ "type": "string"
1112
+ },
1113
+ "_refProperties": {
1114
+ "description": "Supports metadata within the relationship",
1115
+ "type": "object",
1116
+ "title": "Authorization Roles Items _refProperties",
1117
+ "properties": {
1118
+ "_id": {
1119
+ "description": "_refProperties object ID",
1120
+ "type": "string"
1121
+ }
1122
+ }
1123
+ }
1124
+ },
1125
+ "resourceCollection": [
1126
+ {
1127
+ "path": "internal/role",
1128
+ "label": "Internal Role",
1129
+ "conditionalAssociationField": "condition",
1130
+ "query": {
1131
+ "queryFilter": "true",
1132
+ "fields": ["name"]
1133
+ }
1134
+ }
1135
+ ]
1136
+ }
1137
+ },
1138
+ "reports": {
1139
+ "description": "Direct Reports",
1140
+ "title": "Direct Reports",
1141
+ "viewable": true,
1142
+ "userEditable": false,
1143
+ "type": "array",
1144
+ "returnByDefault": false,
1145
+ "usageDescription": "",
1146
+ "isPersonal": false,
1147
+ "items": {
1148
+ "type": "relationship",
1149
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:reports:items",
1150
+ "title": "Direct Reports Items",
1151
+ "reverseRelationship": true,
1152
+ "reversePropertyName": "manager",
1153
+ "validate": true,
1154
+ "properties": {
1155
+ "_ref": {
1156
+ "description": "References a relationship from a managed object",
1157
+ "type": "string"
1158
+ },
1159
+ "_refProperties": {
1160
+ "description": "Supports metadata within the relationship",
1161
+ "type": "object",
1162
+ "title": "Direct Reports Items _refProperties",
1163
+ "properties": {
1164
+ "_id": {
1165
+ "description": "_refProperties object ID",
1166
+ "type": "string"
1167
+ }
1168
+ }
1169
+ }
1170
+ },
1171
+ "resourceCollection": [
1172
+ {
1173
+ "path": "managed/alpha_user",
1174
+ "label": "User",
1175
+ "query": {
1176
+ "queryFilter": "true",
1177
+ "fields": ["userName", "givenName", "sn"]
1178
+ }
1179
+ }
1180
+ ]
1181
+ }
1182
+ },
1183
+ "effectiveRoles": {
1184
+ "type": "array",
1185
+ "title": "Effective Roles",
1186
+ "description": "Effective Roles",
1187
+ "viewable": false,
1188
+ "returnByDefault": true,
1189
+ "isVirtual": true,
1190
+ "queryConfig": {
1191
+ "referencedRelationshipFields": ["roles"]
1192
+ },
1193
+ "usageDescription": "",
1194
+ "isPersonal": false,
1195
+ "items": {
1196
+ "type": "object",
1197
+ "title": "Effective Roles Items"
1198
+ }
1199
+ },
1200
+ "effectiveAssignments": {
1201
+ "type": "array",
1202
+ "title": "Effective Assignments",
1203
+ "description": "Effective Assignments",
1204
+ "viewable": false,
1205
+ "returnByDefault": true,
1206
+ "isVirtual": true,
1207
+ "queryConfig": {
1208
+ "referencedRelationshipFields": ["roles", "assignments"],
1209
+ "referencedObjectFields": ["*"]
1210
+ },
1211
+ "usageDescription": "",
1212
+ "isPersonal": false,
1213
+ "items": {
1214
+ "type": "object",
1215
+ "title": "Effective Assignments Items"
1216
+ }
1217
+ },
1218
+ "telephoneNumber": {
1219
+ "type": "string",
1220
+ "title": "Telephone Number",
1221
+ "description": "Telephone Number",
1222
+ "viewable": true,
1223
+ "userEditable": true,
1224
+ "pattern": "^\\+?([0-9\\- \\(\\)])*$",
1225
+ "usageDescription": "",
1226
+ "isPersonal": true
1227
+ },
1228
+ "stateProvince": {
1229
+ "type": "string",
1230
+ "title": "State/Province",
1231
+ "description": "State/Province",
1232
+ "viewable": true,
1233
+ "userEditable": true,
1234
+ "usageDescription": "",
1235
+ "isPersonal": false
1236
+ },
1237
+ "postalAddress": {
1238
+ "type": "string",
1239
+ "title": "Address 1",
1240
+ "description": "Address 1",
1241
+ "viewable": true,
1242
+ "userEditable": true,
1243
+ "usageDescription": "",
1244
+ "isPersonal": true
1245
+ },
1246
+ "userName": {
1247
+ "title": "Username",
1248
+ "description": "Username",
1249
+ "viewable": true,
1250
+ "type": "string",
1251
+ "searchable": true,
1252
+ "userEditable": true,
1253
+ "minLength": 1,
1254
+ "usageDescription": "",
1255
+ "isPersonal": true,
1256
+ "policies": [
1257
+ {
1258
+ "policyId": "valid-username"
1259
+ },
1260
+ {
1261
+ "policyId": "cannot-contain-characters",
1262
+ "params": {
1263
+ "forbiddenChars": ["/"]
1264
+ }
1265
+ },
1266
+ {
1267
+ "policyId": "minimum-length",
1268
+ "params": {
1269
+ "minLength": 1
1270
+ }
1271
+ },
1272
+ {
1273
+ "policyId": "maximum-length",
1274
+ "params": {
1275
+ "maxLength": 255
1276
+ }
1277
+ }
1278
+ ]
1279
+ },
1280
+ "manager": {
1281
+ "type": "relationship",
1282
+ "validate": true,
1283
+ "reverseRelationship": true,
1284
+ "reversePropertyName": "reports",
1285
+ "description": "Manager",
1286
+ "title": "Manager",
1287
+ "viewable": true,
1288
+ "searchable": false,
1289
+ "usageDescription": "",
1290
+ "isPersonal": false,
1291
+ "properties": {
1292
+ "_ref": {
1293
+ "description": "References a relationship from a managed object",
1294
+ "type": "string"
1295
+ },
1296
+ "_refProperties": {
1297
+ "description": "Supports metadata within the relationship",
1298
+ "type": "object",
1299
+ "title": "Manager _refProperties",
1300
+ "properties": {
1301
+ "_id": {
1302
+ "description": "_refProperties object ID",
1303
+ "type": "string"
1304
+ }
1305
+ }
1306
+ }
1307
+ },
1308
+ "resourceCollection": [
1309
+ {
1310
+ "path": "managed/alpha_user",
1311
+ "label": "User",
1312
+ "query": {
1313
+ "queryFilter": "true",
1314
+ "fields": ["userName", "givenName", "sn"]
1315
+ }
1316
+ }
1317
+ ],
1318
+ "userEditable": false
1319
+ },
1320
+ "lastSync": {
1321
+ "description": "Last Sync timestamp",
1322
+ "title": "Last Sync timestamp",
1323
+ "type": "object",
1324
+ "scope": "private",
1325
+ "viewable": false,
1326
+ "searchable": false,
1327
+ "usageDescription": "",
1328
+ "isPersonal": false,
1329
+ "properties": {
1330
+ "effectiveAssignments": {
1331
+ "description": "Effective Assignments",
1332
+ "title": "Effective Assignments",
1333
+ "type": "array",
1334
+ "items": {
1335
+ "type": "object",
1336
+ "title": "Effective Assignments Items"
1337
+ }
1338
+ },
1339
+ "timestamp": {
1340
+ "description": "Timestamp",
1341
+ "type": "string"
1342
+ }
1343
+ },
1344
+ "order": ["effectiveAssignments", "timestamp"],
1345
+ "required": []
1346
+ },
1347
+ "consentedMappings": {
1348
+ "title": "Consented Mappings",
1349
+ "description": "Consented Mappings",
1350
+ "type": "array",
1351
+ "viewable": false,
1352
+ "searchable": false,
1353
+ "userEditable": true,
1354
+ "usageDescription": "",
1355
+ "isPersonal": false,
1356
+ "items": {
1357
+ "type": "array",
1358
+ "title": "Consented Mappings Items",
1359
+ "items": {
1360
+ "type": "object",
1361
+ "title": "Consented Mappings Item",
1362
+ "properties": {
1363
+ "mapping": {
1364
+ "title": "Mapping",
1365
+ "description": "Mapping",
1366
+ "type": "string",
1367
+ "viewable": true,
1368
+ "searchable": true,
1369
+ "userEditable": true
1370
+ },
1371
+ "consentDate": {
1372
+ "title": "Consent Date",
1373
+ "description": "Consent Date",
1374
+ "type": "string",
1375
+ "viewable": true,
1376
+ "searchable": true,
1377
+ "userEditable": true
1378
+ }
1379
+ },
1380
+ "order": ["mapping", "consentDate"],
1381
+ "required": ["mapping", "consentDate"]
1382
+ }
1383
+ },
1384
+ "returnByDefault": false,
1385
+ "isVirtual": false
1386
+ },
1387
+ "aliasList": {
1388
+ "title": "User Alias Names List",
1389
+ "description": "List of identity aliases used primarily to record social IdP subjects for this user",
1390
+ "type": "array",
1391
+ "items": {
1392
+ "type": "string",
1393
+ "title": "User Alias Names Items"
1394
+ },
1395
+ "viewable": false,
1396
+ "searchable": false,
1397
+ "userEditable": true,
1398
+ "returnByDefault": false,
1399
+ "isVirtual": false
1400
+ },
1401
+ "ownerOfOrg": {
1402
+ "title": "Organizations I Own",
1403
+ "viewable": true,
1404
+ "searchable": false,
1405
+ "userEditable": false,
1406
+ "policies": [],
1407
+ "returnByDefault": false,
1408
+ "type": "array",
1409
+ "items": {
1410
+ "type": "relationship",
1411
+ "notifySelf": false,
1412
+ "reverseRelationship": true,
1413
+ "reversePropertyName": "owners",
1414
+ "validate": true,
1415
+ "properties": {
1416
+ "_ref": {
1417
+ "type": "string"
1418
+ },
1419
+ "_refProperties": {
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "_id": {
1423
+ "type": "string",
1424
+ "required": false,
1425
+ "propName": "_id"
1426
+ }
1427
+ }
1428
+ }
1429
+ },
1430
+ "resourceCollection": [
1431
+ {
1432
+ "notify": true,
1433
+ "path": "managed/alpha_organization",
1434
+ "label": "Organization",
1435
+ "query": {
1436
+ "queryFilter": "true",
1437
+ "fields": ["name"],
1438
+ "sortKeys": []
1439
+ }
1440
+ }
1441
+ ]
1442
+ }
1443
+ },
1444
+ "adminOfOrg": {
1445
+ "title": "Organizations I Administer",
1446
+ "viewable": true,
1447
+ "searchable": false,
1448
+ "userEditable": false,
1449
+ "policies": [],
1450
+ "returnByDefault": false,
1451
+ "type": "array",
1452
+ "items": {
1453
+ "type": "relationship",
1454
+ "notifySelf": false,
1455
+ "reverseRelationship": true,
1456
+ "reversePropertyName": "admins",
1457
+ "validate": true,
1458
+ "properties": {
1459
+ "_ref": {
1460
+ "type": "string"
1461
+ },
1462
+ "_refProperties": {
1463
+ "type": "object",
1464
+ "properties": {
1465
+ "_id": {
1466
+ "type": "string",
1467
+ "required": false,
1468
+ "propName": "_id"
1469
+ }
1470
+ }
1471
+ }
1472
+ },
1473
+ "resourceCollection": [
1474
+ {
1475
+ "notify": true,
1476
+ "path": "managed/alpha_organization",
1477
+ "label": "Organization",
1478
+ "query": {
1479
+ "queryFilter": "true",
1480
+ "fields": ["name"],
1481
+ "sortKeys": []
1482
+ }
1483
+ }
1484
+ ]
1485
+ }
1486
+ },
1487
+ "memberOfOrg": {
1488
+ "title": "Organizations to which I Belong",
1489
+ "viewable": true,
1490
+ "searchable": false,
1491
+ "userEditable": false,
1492
+ "policies": [],
1493
+ "returnByDefault": false,
1494
+ "type": "array",
1495
+ "items": {
1496
+ "type": "relationship",
1497
+ "notifySelf": true,
1498
+ "reverseRelationship": true,
1499
+ "reversePropertyName": "members",
1500
+ "validate": true,
1501
+ "properties": {
1502
+ "_ref": {
1503
+ "type": "string"
1504
+ },
1505
+ "_refProperties": {
1506
+ "type": "object",
1507
+ "properties": {
1508
+ "_id": {
1509
+ "type": "string",
1510
+ "required": false,
1511
+ "propName": "_id"
1512
+ }
1513
+ }
1514
+ }
1515
+ },
1516
+ "resourceCollection": [
1517
+ {
1518
+ "notify": false,
1519
+ "path": "managed/alpha_organization",
1520
+ "label": "Organization",
1521
+ "query": {
1522
+ "queryFilter": "true",
1523
+ "fields": ["name"],
1524
+ "sortKeys": []
1525
+ }
1526
+ }
1527
+ ]
1528
+ }
1529
+ },
1530
+ "memberOfOrgIDs": {
1531
+ "title": "MemberOfOrgIDs",
1532
+ "type": "array",
1533
+ "viewable": false,
1534
+ "searchable": false,
1535
+ "userEditable": false,
1536
+ "isVirtual": true,
1537
+ "returnByDefault": true,
1538
+ "queryConfig": {
1539
+ "referencedRelationshipFields": ["memberOfOrg"],
1540
+ "referencedObjectFields": ["_id", "parentIDs"],
1541
+ "flattenProperties": true
1542
+ },
1543
+ "items": {
1544
+ "type": "string",
1545
+ "title": "org identifiers"
1546
+ }
1547
+ }
1548
+ },
1549
+ "type": "object",
1550
+ "required": ["userName", "givenName", "sn", "mail"]
1551
+ },
1552
+ "meta": {
1553
+ "property": "_meta",
1554
+ "resourceCollection": "managed/alpha_usermeta",
1555
+ "trackedProperties": ["createDate", "lastChanged"]
1556
+ },
1557
+ "notifications": {}
1558
+ },
1559
+ {
1560
+ "name": "bravo_user",
1561
+ "onCreate": {
1562
+ "type": "text/javascript",
1563
+ "source": "require('onCreateUser').setDefaultFields(object);"
1564
+ },
1565
+ "onUpdate": {
1566
+ "type": "text/javascript",
1567
+ "source": "require('onUpdateUser').preserveLastSync(object, oldObject, request);"
1568
+ },
1569
+ "schema": {
1570
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User",
1571
+ "title": "Bravo realm - User",
1572
+ "icon": "fa-user",
1573
+ "mat-icon": "people",
1574
+ "viewable": true,
1575
+ "$schema": "http://json-schema.org/draft-03/schema",
1576
+ "order": [
1577
+ "_id",
1578
+ "userName",
1579
+ "password",
1580
+ "givenName",
1581
+ "cn",
1582
+ "sn",
1583
+ "mail",
1584
+ "description",
1585
+ "accountStatus",
1586
+ "telephoneNumber",
1587
+ "postalAddress",
1588
+ "city",
1589
+ "postalCode",
1590
+ "country",
1591
+ "stateProvince",
1592
+ "roles",
1593
+ "manager",
1594
+ "authzRoles",
1595
+ "reports",
1596
+ "effectiveRoles",
1597
+ "effectiveAssignments",
1598
+ "lastSync",
1599
+ "kbaInfo",
1600
+ "preferences",
1601
+ "consentedMappings",
1602
+ "ownerOfOrg",
1603
+ "adminOfOrg",
1604
+ "memberOfOrg",
1605
+ "memberOfOrgIDs",
1606
+ "frIndexedString1",
1607
+ "frIndexedString2",
1608
+ "frIndexedString3",
1609
+ "frIndexedString4",
1610
+ "frIndexedString5",
1611
+ "frUnindexedString1",
1612
+ "frUnindexedString2",
1613
+ "frUnindexedString3",
1614
+ "frUnindexedString4",
1615
+ "frUnindexedString5",
1616
+ "frIndexedMultivalued1",
1617
+ "frIndexedMultivalued2",
1618
+ "frIndexedMultivalued3",
1619
+ "frIndexedMultivalued4",
1620
+ "frIndexedMultivalued5",
1621
+ "frUnindexedMultivalued1",
1622
+ "frUnindexedMultivalued2",
1623
+ "frUnindexedMultivalued3",
1624
+ "frUnindexedMultivalued4",
1625
+ "frUnindexedMultivalued5",
1626
+ "frIndexedDate1",
1627
+ "frIndexedDate2",
1628
+ "frIndexedDate3",
1629
+ "frIndexedDate4",
1630
+ "frIndexedDate5",
1631
+ "frUnindexedDate1",
1632
+ "frUnindexedDate2",
1633
+ "frUnindexedDate3",
1634
+ "frUnindexedDate4",
1635
+ "frUnindexedDate5",
1636
+ "frIndexedInteger1",
1637
+ "frIndexedInteger2",
1638
+ "frIndexedInteger3",
1639
+ "frIndexedInteger4",
1640
+ "frIndexedInteger5",
1641
+ "frUnindexedInteger1",
1642
+ "frUnindexedInteger2",
1643
+ "frUnindexedInteger3",
1644
+ "frUnindexedInteger4",
1645
+ "frUnindexedInteger5"
1646
+ ],
1647
+ "properties": {
1648
+ "_id": {
1649
+ "description": "User ID",
1650
+ "type": "string",
1651
+ "viewable": false,
1652
+ "searchable": false,
1653
+ "userEditable": false,
1654
+ "usageDescription": "",
1655
+ "isPersonal": false,
1656
+ "policies": [
1657
+ {
1658
+ "policyId": "cannot-contain-characters",
1659
+ "params": {
1660
+ "forbiddenChars": ["/"]
1661
+ }
1662
+ }
1663
+ ]
1664
+ },
1665
+ "password": {
1666
+ "title": "Password",
1667
+ "description": "Password",
1668
+ "type": "string",
1669
+ "viewable": false,
1670
+ "searchable": false,
1671
+ "userEditable": true,
1672
+ "scope": "private",
1673
+ "isProtected": true,
1674
+ "usageDescription": "",
1675
+ "isPersonal": false
1676
+ },
1677
+ "cn": {
1678
+ "title": "Common Name",
1679
+ "description": "Common Name",
1680
+ "type": "string",
1681
+ "viewable": false,
1682
+ "searchable": false,
1683
+ "userEditable": false,
1684
+ "scope": "private",
1685
+ "isPersonal": true,
1686
+ "isVirtual": true,
1687
+ "onStore": {
1688
+ "type": "text/javascript",
1689
+ "source": "object.cn || (object.givenName + ' ' + object.sn)"
1690
+ }
1691
+ },
1692
+ "kbaInfo": {
1693
+ "description": "KBA Info",
1694
+ "type": "array",
1695
+ "userEditable": true,
1696
+ "viewable": false,
1697
+ "usageDescription": "",
1698
+ "isPersonal": true,
1699
+ "items": {
1700
+ "type": "object",
1701
+ "title": "KBA Info Items",
1702
+ "properties": {
1703
+ "answer": {
1704
+ "description": "Answer",
1705
+ "type": "string"
1706
+ },
1707
+ "customQuestion": {
1708
+ "description": "Custom question",
1709
+ "type": "string"
1710
+ },
1711
+ "questionId": {
1712
+ "description": "Question ID",
1713
+ "type": "string"
1714
+ }
1715
+ },
1716
+ "order": ["answer", "customQuestion", "questionId"],
1717
+ "required": []
1718
+ }
1719
+ },
1720
+ "preferences": {
1721
+ "title": "Preferences",
1722
+ "description": "Preferences",
1723
+ "viewable": true,
1724
+ "searchable": false,
1725
+ "userEditable": true,
1726
+ "type": "object",
1727
+ "usageDescription": "",
1728
+ "isPersonal": false,
1729
+ "properties": {
1730
+ "updates": {
1731
+ "description": "Send me news and updates",
1732
+ "type": "boolean"
1733
+ },
1734
+ "marketing": {
1735
+ "description": "Send me special offers and services",
1736
+ "type": "boolean"
1737
+ }
1738
+ },
1739
+ "order": ["updates", "marketing"],
1740
+ "required": []
1741
+ },
1742
+ "mail": {
1743
+ "title": "Email Address",
1744
+ "description": "Email Address",
1745
+ "viewable": true,
1746
+ "type": "string",
1747
+ "searchable": true,
1748
+ "userEditable": true,
1749
+ "usageDescription": "",
1750
+ "isPersonal": true,
1751
+ "policies": [
1752
+ {
1753
+ "policyId": "valid-email-address-format"
1754
+ }
1755
+ ]
1756
+ },
1757
+ "sn": {
1758
+ "title": "Last Name",
1759
+ "description": "Last Name",
1760
+ "viewable": true,
1761
+ "type": "string",
1762
+ "searchable": true,
1763
+ "userEditable": true,
1764
+ "usageDescription": "",
1765
+ "isPersonal": true
1766
+ },
1767
+ "description": {
1768
+ "title": "Description",
1769
+ "description": "Description",
1770
+ "viewable": true,
1771
+ "type": "string",
1772
+ "searchable": true,
1773
+ "userEditable": true,
1774
+ "usageDescription": "",
1775
+ "isPersonal": false
1776
+ },
1777
+ "givenName": {
1778
+ "title": "First Name",
1779
+ "description": "First Name",
1780
+ "viewable": true,
1781
+ "type": "string",
1782
+ "searchable": true,
1783
+ "userEditable": true,
1784
+ "usageDescription": "",
1785
+ "isPersonal": true
1786
+ },
1787
+ "city": {
1788
+ "type": "string",
1789
+ "title": "City",
1790
+ "description": "City",
1791
+ "viewable": true,
1792
+ "userEditable": true,
1793
+ "usageDescription": "",
1794
+ "isPersonal": false
1795
+ },
1796
+ "country": {
1797
+ "type": "string",
1798
+ "title": "Country",
1799
+ "description": "Country",
1800
+ "viewable": true,
1801
+ "userEditable": true,
1802
+ "usageDescription": "",
1803
+ "isPersonal": false
1804
+ },
1805
+ "postalCode": {
1806
+ "type": "string",
1807
+ "title": "Postal Code",
1808
+ "description": "Postal Code",
1809
+ "viewable": true,
1810
+ "userEditable": true,
1811
+ "usageDescription": "",
1812
+ "isPersonal": false
1813
+ },
1814
+ "frIndexedString1": {
1815
+ "type": "string",
1816
+ "title": "Generic Indexed String 1",
1817
+ "description": "Generic Indexed String 1",
1818
+ "viewable": true,
1819
+ "userEditable": true,
1820
+ "usageDescription": "",
1821
+ "isPersonal": false
1822
+ },
1823
+ "frIndexedString2": {
1824
+ "type": "string",
1825
+ "title": "Generic Indexed String 2",
1826
+ "description": "Generic Indexed String 2",
1827
+ "viewable": true,
1828
+ "userEditable": true,
1829
+ "usageDescription": "",
1830
+ "isPersonal": false
1831
+ },
1832
+ "frIndexedString3": {
1833
+ "type": "string",
1834
+ "title": "Generic Indexed String 3",
1835
+ "description": "Generic Indexed String 3",
1836
+ "viewable": true,
1837
+ "userEditable": true,
1838
+ "usageDescription": "",
1839
+ "isPersonal": false
1840
+ },
1841
+ "frIndexedString4": {
1842
+ "type": "string",
1843
+ "title": "Generic Indexed String 4",
1844
+ "description": "Generic Indexed String 4",
1845
+ "viewable": true,
1846
+ "userEditable": true,
1847
+ "usageDescription": "",
1848
+ "isPersonal": false
1849
+ },
1850
+ "frIndexedString5": {
1851
+ "type": "string",
1852
+ "title": "Generic Indexed String 5",
1853
+ "description": "Generic Indexed String 5",
1854
+ "viewable": true,
1855
+ "userEditable": true,
1856
+ "usageDescription": "",
1857
+ "isPersonal": false
1858
+ },
1859
+ "frUnindexedString1": {
1860
+ "type": "string",
1861
+ "title": "Generic Unindexed String 1",
1862
+ "description": "Generic Unindexed String 1",
1863
+ "viewable": true,
1864
+ "userEditable": true,
1865
+ "usageDescription": "",
1866
+ "isPersonal": false
1867
+ },
1868
+ "frUnindexedString2": {
1869
+ "type": "string",
1870
+ "title": "Generic Unindexed String 2",
1871
+ "description": "Generic Unindexed String 2",
1872
+ "viewable": true,
1873
+ "userEditable": true,
1874
+ "usageDescription": "",
1875
+ "isPersonal": false
1876
+ },
1877
+ "frUnindexedString3": {
1878
+ "type": "string",
1879
+ "title": "Generic Unindexed String 3",
1880
+ "description": "Generic Unindexed String 3",
1881
+ "viewable": true,
1882
+ "userEditable": true,
1883
+ "usageDescription": "",
1884
+ "isPersonal": false
1885
+ },
1886
+ "frUnindexedString4": {
1887
+ "type": "string",
1888
+ "title": "Generic Unindexed String 4",
1889
+ "description": "Generic Unindexed String 4",
1890
+ "viewable": true,
1891
+ "userEditable": true,
1892
+ "usageDescription": "",
1893
+ "isPersonal": false
1894
+ },
1895
+ "frUnindexedString5": {
1896
+ "type": "string",
1897
+ "title": "Generic Unindexed String 5",
1898
+ "description": "Generic Unindexed String 5",
1899
+ "viewable": true,
1900
+ "userEditable": true,
1901
+ "usageDescription": "",
1902
+ "isPersonal": false
1903
+ },
1904
+ "frIndexedMultivalued1": {
1905
+ "type": "array",
1906
+ "items": {
1907
+ "type": "string"
1908
+ },
1909
+ "title": "Generic Indexed Multivalue 1",
1910
+ "description": "Generic Indexed Multivalue 1",
1911
+ "viewable": true,
1912
+ "userEditable": true,
1913
+ "usageDescription": "",
1914
+ "isPersonal": false
1915
+ },
1916
+ "frIndexedMultivalued2": {
1917
+ "type": "array",
1918
+ "items": {
1919
+ "type": "string"
1920
+ },
1921
+ "title": "Generic Indexed Multivalue 2",
1922
+ "description": "Generic Indexed Multivalue 2",
1923
+ "viewable": true,
1924
+ "userEditable": true,
1925
+ "usageDescription": "",
1926
+ "isPersonal": false
1927
+ },
1928
+ "frIndexedMultivalued3": {
1929
+ "type": "array",
1930
+ "items": {
1931
+ "type": "string"
1932
+ },
1933
+ "title": "Generic Indexed Multivalue 3",
1934
+ "description": "Generic Indexed Multivalue 3",
1935
+ "viewable": true,
1936
+ "userEditable": true,
1937
+ "usageDescription": "",
1938
+ "isPersonal": false
1939
+ },
1940
+ "frIndexedMultivalued4": {
1941
+ "type": "array",
1942
+ "items": {
1943
+ "type": "string"
1944
+ },
1945
+ "title": "Generic Indexed Multivalue 4",
1946
+ "description": "Generic Indexed Multivalue 4",
1947
+ "viewable": true,
1948
+ "userEditable": true,
1949
+ "usageDescription": "",
1950
+ "isPersonal": false
1951
+ },
1952
+ "frIndexedMultivalued5": {
1953
+ "type": "array",
1954
+ "items": {
1955
+ "type": "string"
1956
+ },
1957
+ "title": "Generic Indexed Multivalue 5",
1958
+ "description": "Generic Indexed Multivalue 5",
1959
+ "viewable": true,
1960
+ "userEditable": true,
1961
+ "usageDescription": "",
1962
+ "isPersonal": false
1963
+ },
1964
+ "frUnindexedMultivalued1": {
1965
+ "type": "array",
1966
+ "items": {
1967
+ "type": "string"
1968
+ },
1969
+ "title": "Generic Unindexed Multivalue 1",
1970
+ "description": "Generic Unindexed Multivalue 1",
1971
+ "viewable": true,
1972
+ "userEditable": true,
1973
+ "usageDescription": "",
1974
+ "isPersonal": false
1975
+ },
1976
+ "frUnindexedMultivalued2": {
1977
+ "type": "array",
1978
+ "items": {
1979
+ "type": "string"
1980
+ },
1981
+ "title": "Generic Unindexed Multivalue 2",
1982
+ "description": "Generic Unindexed Multivalue 2",
1983
+ "viewable": true,
1984
+ "userEditable": true,
1985
+ "usageDescription": "",
1986
+ "isPersonal": false
1987
+ },
1988
+ "frUnindexedMultivalued3": {
1989
+ "type": "array",
1990
+ "items": {
1991
+ "type": "string"
1992
+ },
1993
+ "title": "Generic Unindexed Multivalue 3",
1994
+ "description": "Generic Unindexed Multivalue 3",
1995
+ "viewable": true,
1996
+ "userEditable": true,
1997
+ "usageDescription": "",
1998
+ "isPersonal": false
1999
+ },
2000
+ "frUnindexedMultivalued4": {
2001
+ "type": "array",
2002
+ "items": {
2003
+ "type": "string"
2004
+ },
2005
+ "title": "Generic Unindexed Multivalue 4",
2006
+ "description": "Generic Unindexed Multivalue 4",
2007
+ "viewable": true,
2008
+ "userEditable": true,
2009
+ "usageDescription": "",
2010
+ "isPersonal": false
2011
+ },
2012
+ "frUnindexedMultivalued5": {
2013
+ "type": "array",
2014
+ "items": {
2015
+ "type": "string"
2016
+ },
2017
+ "title": "Generic Unindexed Multivalue 5",
2018
+ "description": "Generic Unindexed Multivalue 5",
2019
+ "viewable": true,
2020
+ "userEditable": true,
2021
+ "usageDescription": "",
2022
+ "isPersonal": false
2023
+ },
2024
+ "frIndexedDate1": {
2025
+ "type": "string",
2026
+ "title": "Generic Indexed Date 1",
2027
+ "description": "Generic Indexed Date 1",
2028
+ "viewable": true,
2029
+ "userEditable": true,
2030
+ "usageDescription": "",
2031
+ "isPersonal": false
2032
+ },
2033
+ "frIndexedDate2": {
2034
+ "type": "string",
2035
+ "title": "Generic Indexed Date 2",
2036
+ "description": "Generic Indexed Date 2",
2037
+ "viewable": true,
2038
+ "userEditable": true,
2039
+ "usageDescription": "",
2040
+ "isPersonal": false
2041
+ },
2042
+ "frIndexedDate3": {
2043
+ "type": "string",
2044
+ "title": "Generic Indexed Date 3",
2045
+ "description": "Generic Indexed Date 3",
2046
+ "viewable": true,
2047
+ "userEditable": true,
2048
+ "usageDescription": "",
2049
+ "isPersonal": false
2050
+ },
2051
+ "frIndexedDate4": {
2052
+ "type": "string",
2053
+ "title": "Generic Indexed Date 4",
2054
+ "description": "Generic Indexed Date 4",
2055
+ "viewable": true,
2056
+ "userEditable": true,
2057
+ "usageDescription": "",
2058
+ "isPersonal": false
2059
+ },
2060
+ "frIndexedDate5": {
2061
+ "type": "string",
2062
+ "title": "Generic Indexed Date 5",
2063
+ "description": "Generic Indexed Date 5",
2064
+ "viewable": true,
2065
+ "userEditable": true,
2066
+ "usageDescription": "",
2067
+ "isPersonal": false
2068
+ },
2069
+ "frUnindexedDate1": {
2070
+ "type": "string",
2071
+ "title": "Generic Unindexed Date 1",
2072
+ "description": "Generic Unindexed Date 1",
2073
+ "viewable": true,
2074
+ "userEditable": true,
2075
+ "usageDescription": "",
2076
+ "isPersonal": false
2077
+ },
2078
+ "frUnindexedDate2": {
2079
+ "type": "string",
2080
+ "title": "Generic Unindexed Date 2",
2081
+ "description": "Generic Unindexed Date 2",
2082
+ "viewable": true,
2083
+ "userEditable": true,
2084
+ "usageDescription": "",
2085
+ "isPersonal": false
2086
+ },
2087
+ "frUnindexedDate3": {
2088
+ "type": "string",
2089
+ "title": "Generic Unindexed Date 3",
2090
+ "description": "Generic Unindexed Date 3",
2091
+ "viewable": true,
2092
+ "userEditable": true,
2093
+ "usageDescription": "",
2094
+ "isPersonal": false
2095
+ },
2096
+ "frUnindexedDate4": {
2097
+ "type": "string",
2098
+ "title": "Generic Unindexed Date 4",
2099
+ "description": "Generic Unindexed Date 4",
2100
+ "viewable": true,
2101
+ "userEditable": true,
2102
+ "usageDescription": "",
2103
+ "isPersonal": false
2104
+ },
2105
+ "frUnindexedDate5": {
2106
+ "type": "string",
2107
+ "title": "Generic Unindexed Date 5",
2108
+ "description": "Generic Unindexed Date 5",
2109
+ "viewable": true,
2110
+ "userEditable": true,
2111
+ "usageDescription": "",
2112
+ "isPersonal": false
2113
+ },
2114
+ "frIndexedInteger1": {
2115
+ "type": "number",
2116
+ "title": "Generic Indexed Integer 1",
2117
+ "description": "Generic Indexed Integer 1",
2118
+ "viewable": true,
2119
+ "userEditable": true,
2120
+ "usageDescription": "",
2121
+ "isPersonal": false
2122
+ },
2123
+ "frIndexedInteger2": {
2124
+ "type": "number",
2125
+ "title": "Generic Indexed Integer 2",
2126
+ "description": "Generic Indexed Integer 2",
2127
+ "viewable": true,
2128
+ "userEditable": true,
2129
+ "usageDescription": "",
2130
+ "isPersonal": false
2131
+ },
2132
+ "frIndexedInteger3": {
2133
+ "type": "number",
2134
+ "title": "Generic Indexed Integer 3",
2135
+ "description": "Generic Indexed Integer 3",
2136
+ "viewable": true,
2137
+ "userEditable": true,
2138
+ "usageDescription": "",
2139
+ "isPersonal": false
2140
+ },
2141
+ "frIndexedInteger4": {
2142
+ "type": "number",
2143
+ "title": "Generic Indexed Integer 4",
2144
+ "description": "Generic Indexed Integer 4",
2145
+ "viewable": true,
2146
+ "userEditable": true,
2147
+ "usageDescription": "",
2148
+ "isPersonal": false
2149
+ },
2150
+ "frIndexedInteger5": {
2151
+ "type": "number",
2152
+ "title": "Generic Indexed Integer 5",
2153
+ "description": "Generic Indexed Integer 5",
2154
+ "viewable": true,
2155
+ "userEditable": true,
2156
+ "usageDescription": "",
2157
+ "isPersonal": false
2158
+ },
2159
+ "frUnindexedInteger1": {
2160
+ "type": "number",
2161
+ "title": "Generic Unindexed Integer 1",
2162
+ "description": "Generic Unindexed Integer 1",
2163
+ "viewable": true,
2164
+ "userEditable": true,
2165
+ "usageDescription": "",
2166
+ "isPersonal": false
2167
+ },
2168
+ "frUnindexedInteger2": {
2169
+ "type": "number",
2170
+ "title": "Generic Unindexed Integer 2",
2171
+ "description": "Generic Unindexed Integer 2",
2172
+ "viewable": true,
2173
+ "userEditable": true,
2174
+ "usageDescription": "",
2175
+ "isPersonal": false
2176
+ },
2177
+ "frUnindexedInteger3": {
2178
+ "type": "number",
2179
+ "title": "Generic Unindexed Integer 3",
2180
+ "description": "Generic Unindexed Integer 3",
2181
+ "viewable": true,
2182
+ "userEditable": true,
2183
+ "usageDescription": "",
2184
+ "isPersonal": false
2185
+ },
2186
+ "frUnindexedInteger4": {
2187
+ "type": "number",
2188
+ "title": "Generic Unindexed Integer 4",
2189
+ "description": "Generic Unindexed Integer 4",
2190
+ "viewable": true,
2191
+ "userEditable": true,
2192
+ "usageDescription": "",
2193
+ "isPersonal": false
2194
+ },
2195
+ "frUnindexedInteger5": {
2196
+ "type": "number",
2197
+ "title": "Generic Unindexed Integer 5",
2198
+ "description": "Generic Unindexed Integer 5",
2199
+ "viewable": true,
2200
+ "userEditable": true,
2201
+ "usageDescription": "",
2202
+ "isPersonal": false
2203
+ },
2204
+ "accountStatus": {
2205
+ "title": "Status",
2206
+ "description": "Status",
2207
+ "viewable": true,
2208
+ "type": "string",
2209
+ "searchable": true,
2210
+ "userEditable": false,
2211
+ "usageDescription": "",
2212
+ "isPersonal": false
2213
+ },
2214
+ "roles": {
2215
+ "description": "Provisioning Roles",
2216
+ "title": "Provisioning Roles",
2217
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:roles",
2218
+ "viewable": true,
2219
+ "userEditable": false,
2220
+ "returnByDefault": false,
2221
+ "usageDescription": "",
2222
+ "isPersonal": false,
2223
+ "type": "array",
2224
+ "relationshipGrantTemporalConstraintsEnforced": true,
2225
+ "items": {
2226
+ "type": "relationship",
2227
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:roles:items",
2228
+ "title": "Provisioning Roles Items",
2229
+ "reverseRelationship": true,
2230
+ "reversePropertyName": "members",
2231
+ "notifySelf": true,
2232
+ "validate": true,
2233
+ "properties": {
2234
+ "_ref": {
2235
+ "description": "References a relationship from a managed object",
2236
+ "type": "string"
2237
+ },
2238
+ "_refProperties": {
2239
+ "description": "Supports metadata within the relationship",
2240
+ "type": "object",
2241
+ "title": "Provisioning Roles Items _refProperties",
2242
+ "properties": {
2243
+ "_id": {
2244
+ "description": "_refProperties object ID",
2245
+ "type": "string"
2246
+ },
2247
+ "_grantType": {
2248
+ "description": "Grant Type",
2249
+ "type": "string",
2250
+ "label": "Grant Type"
2251
+ }
2252
+ }
2253
+ }
2254
+ },
2255
+ "resourceCollection": [
2256
+ {
2257
+ "path": "managed/bravo_role",
2258
+ "label": "Role",
2259
+ "conditionalAssociationField": "condition",
2260
+ "query": {
2261
+ "queryFilter": "true",
2262
+ "fields": ["name"]
2263
+ }
2264
+ }
2265
+ ]
2266
+ }
2267
+ },
2268
+ "authzRoles": {
2269
+ "description": "Authorization Roles",
2270
+ "title": "Authorization Roles",
2271
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:authzRoles",
2272
+ "viewable": true,
2273
+ "type": "array",
2274
+ "userEditable": false,
2275
+ "returnByDefault": false,
2276
+ "usageDescription": "",
2277
+ "isPersonal": false,
2278
+ "items": {
2279
+ "type": "relationship",
2280
+ "title": "Authorization Roles Items",
2281
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:authzRoles:items",
2282
+ "reverseRelationship": true,
2283
+ "reversePropertyName": "authzMembers",
2284
+ "validate": true,
2285
+ "properties": {
2286
+ "_ref": {
2287
+ "description": "References a relationship from a managed object",
2288
+ "type": "string"
2289
+ },
2290
+ "_refProperties": {
2291
+ "description": "Supports metadata within the relationship",
2292
+ "type": "object",
2293
+ "title": "Authorization Roles Items _refProperties",
2294
+ "properties": {
2295
+ "_id": {
2296
+ "description": "_refProperties object ID",
2297
+ "type": "string"
2298
+ }
2299
+ }
2300
+ }
2301
+ },
2302
+ "resourceCollection": [
2303
+ {
2304
+ "path": "internal/role",
2305
+ "label": "Internal Role",
2306
+ "conditionalAssociationField": "condition",
2307
+ "query": {
2308
+ "queryFilter": "true",
2309
+ "fields": ["name"]
2310
+ }
2311
+ }
2312
+ ]
2313
+ }
2314
+ },
2315
+ "reports": {
2316
+ "description": "Direct Reports",
2317
+ "title": "Direct Reports",
2318
+ "viewable": true,
2319
+ "userEditable": false,
2320
+ "type": "array",
2321
+ "returnByDefault": false,
2322
+ "usageDescription": "",
2323
+ "isPersonal": false,
2324
+ "items": {
2325
+ "type": "relationship",
2326
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:User:reports:items",
2327
+ "title": "Direct Reports Items",
2328
+ "reverseRelationship": true,
2329
+ "reversePropertyName": "manager",
2330
+ "validate": true,
2331
+ "properties": {
2332
+ "_ref": {
2333
+ "description": "References a relationship from a managed object",
2334
+ "type": "string"
2335
+ },
2336
+ "_refProperties": {
2337
+ "description": "Supports metadata within the relationship",
2338
+ "type": "object",
2339
+ "title": "Direct Reports Items _refProperties",
2340
+ "properties": {
2341
+ "_id": {
2342
+ "description": "_refProperties object ID",
2343
+ "type": "string"
2344
+ }
2345
+ }
2346
+ }
2347
+ },
2348
+ "resourceCollection": [
2349
+ {
2350
+ "path": "managed/bravo_user",
2351
+ "label": "User",
2352
+ "query": {
2353
+ "queryFilter": "true",
2354
+ "fields": ["userName", "givenName", "sn"]
2355
+ }
2356
+ }
2357
+ ]
2358
+ }
2359
+ },
2360
+ "effectiveRoles": {
2361
+ "type": "array",
2362
+ "title": "Effective Roles",
2363
+ "description": "Effective Roles",
2364
+ "viewable": false,
2365
+ "returnByDefault": true,
2366
+ "isVirtual": true,
2367
+ "queryConfig": {
2368
+ "referencedRelationshipFields": ["roles"]
2369
+ },
2370
+ "usageDescription": "",
2371
+ "isPersonal": false,
2372
+ "items": {
2373
+ "type": "object",
2374
+ "title": "Effective Roles Items"
2375
+ }
2376
+ },
2377
+ "effectiveAssignments": {
2378
+ "type": "array",
2379
+ "title": "Effective Assignments",
2380
+ "description": "Effective Assignments",
2381
+ "viewable": false,
2382
+ "returnByDefault": true,
2383
+ "isVirtual": true,
2384
+ "queryConfig": {
2385
+ "referencedRelationshipFields": ["roles", "assignments"],
2386
+ "referencedObjectFields": ["*"]
2387
+ },
2388
+ "usageDescription": "",
2389
+ "isPersonal": false,
2390
+ "items": {
2391
+ "type": "object",
2392
+ "title": "Effective Assignments Items"
2393
+ }
2394
+ },
2395
+ "telephoneNumber": {
2396
+ "type": "string",
2397
+ "title": "Telephone Number",
2398
+ "description": "Telephone Number",
2399
+ "viewable": true,
2400
+ "userEditable": true,
2401
+ "pattern": "^\\+?([0-9\\- \\(\\)])*$",
2402
+ "usageDescription": "",
2403
+ "isPersonal": true
2404
+ },
2405
+ "stateProvince": {
2406
+ "type": "string",
2407
+ "title": "State/Province",
2408
+ "description": "State/Province",
2409
+ "viewable": true,
2410
+ "userEditable": true,
2411
+ "usageDescription": "",
2412
+ "isPersonal": false
2413
+ },
2414
+ "postalAddress": {
2415
+ "type": "string",
2416
+ "title": "Address 1",
2417
+ "description": "Address 1",
2418
+ "viewable": true,
2419
+ "userEditable": true,
2420
+ "usageDescription": "",
2421
+ "isPersonal": true
2422
+ },
2423
+ "userName": {
2424
+ "title": "Username",
2425
+ "description": "Username",
2426
+ "viewable": true,
2427
+ "type": "string",
2428
+ "searchable": true,
2429
+ "userEditable": true,
2430
+ "minLength": 1,
2431
+ "usageDescription": "",
2432
+ "isPersonal": true,
2433
+ "policies": [
2434
+ {
2435
+ "policyId": "valid-username"
2436
+ },
2437
+ {
2438
+ "policyId": "cannot-contain-characters",
2439
+ "params": {
2440
+ "forbiddenChars": ["/"]
2441
+ }
2442
+ },
2443
+ {
2444
+ "policyId": "minimum-length",
2445
+ "params": {
2446
+ "minLength": 1
2447
+ }
2448
+ },
2449
+ {
2450
+ "policyId": "maximum-length",
2451
+ "params": {
2452
+ "maxLength": 255
2453
+ }
2454
+ }
2455
+ ]
2456
+ },
2457
+ "manager": {
2458
+ "type": "relationship",
2459
+ "validate": true,
2460
+ "reverseRelationship": true,
2461
+ "reversePropertyName": "reports",
2462
+ "description": "Manager",
2463
+ "title": "Manager",
2464
+ "viewable": true,
2465
+ "searchable": false,
2466
+ "usageDescription": "",
2467
+ "isPersonal": false,
2468
+ "properties": {
2469
+ "_ref": {
2470
+ "description": "References a relationship from a managed object",
2471
+ "type": "string"
2472
+ },
2473
+ "_refProperties": {
2474
+ "description": "Supports metadata within the relationship",
2475
+ "type": "object",
2476
+ "title": "Manager _refProperties",
2477
+ "properties": {
2478
+ "_id": {
2479
+ "description": "_refProperties object ID",
2480
+ "type": "string"
2481
+ }
2482
+ }
2483
+ }
2484
+ },
2485
+ "resourceCollection": [
2486
+ {
2487
+ "path": "managed/bravo_user",
2488
+ "label": "User",
2489
+ "query": {
2490
+ "queryFilter": "true",
2491
+ "fields": ["userName", "givenName", "sn"]
2492
+ }
2493
+ }
2494
+ ],
2495
+ "userEditable": false
2496
+ },
2497
+ "lastSync": {
2498
+ "description": "Last Sync timestamp",
2499
+ "title": "Last Sync timestamp",
2500
+ "type": "object",
2501
+ "scope": "private",
2502
+ "viewable": false,
2503
+ "searchable": false,
2504
+ "usageDescription": "",
2505
+ "isPersonal": false,
2506
+ "properties": {
2507
+ "effectiveAssignments": {
2508
+ "description": "Effective Assignments",
2509
+ "title": "Effective Assignments",
2510
+ "type": "array",
2511
+ "items": {
2512
+ "type": "object",
2513
+ "title": "Effective Assignments Items"
2514
+ }
2515
+ },
2516
+ "timestamp": {
2517
+ "description": "Timestamp",
2518
+ "type": "string"
2519
+ }
2520
+ },
2521
+ "order": ["effectiveAssignments", "timestamp"],
2522
+ "required": []
2523
+ },
2524
+ "consentedMappings": {
2525
+ "title": "Consented Mappings",
2526
+ "description": "Consented Mappings",
2527
+ "type": "array",
2528
+ "viewable": false,
2529
+ "searchable": false,
2530
+ "userEditable": true,
2531
+ "usageDescription": "",
2532
+ "isPersonal": false,
2533
+ "items": {
2534
+ "type": "array",
2535
+ "title": "Consented Mappings Items",
2536
+ "items": {
2537
+ "type": "object",
2538
+ "title": "Consented Mappings Item",
2539
+ "properties": {
2540
+ "mapping": {
2541
+ "title": "Mapping",
2542
+ "description": "Mapping",
2543
+ "type": "string",
2544
+ "viewable": true,
2545
+ "searchable": true,
2546
+ "userEditable": true
2547
+ },
2548
+ "consentDate": {
2549
+ "title": "Consent Date",
2550
+ "description": "Consent Date",
2551
+ "type": "string",
2552
+ "viewable": true,
2553
+ "searchable": true,
2554
+ "userEditable": true
2555
+ }
2556
+ },
2557
+ "order": ["mapping", "consentDate"],
2558
+ "required": ["mapping", "consentDate"]
2559
+ }
2560
+ },
2561
+ "returnByDefault": false,
2562
+ "isVirtual": false
2563
+ },
2564
+ "aliasList": {
2565
+ "title": "User Alias Names List",
2566
+ "description": "List of identity aliases used primarily to record social IdP subjects for this user",
2567
+ "type": "array",
2568
+ "items": {
2569
+ "type": "string",
2570
+ "title": "User Alias Names Items"
2571
+ },
2572
+ "viewable": false,
2573
+ "searchable": false,
2574
+ "userEditable": true,
2575
+ "returnByDefault": false,
2576
+ "isVirtual": false
2577
+ },
2578
+ "ownerOfOrg": {
2579
+ "title": "Organizations I Own",
2580
+ "viewable": true,
2581
+ "searchable": false,
2582
+ "userEditable": false,
2583
+ "policies": [],
2584
+ "returnByDefault": false,
2585
+ "type": "array",
2586
+ "items": {
2587
+ "type": "relationship",
2588
+ "notifySelf": false,
2589
+ "reverseRelationship": true,
2590
+ "reversePropertyName": "owners",
2591
+ "validate": true,
2592
+ "properties": {
2593
+ "_ref": {
2594
+ "type": "string"
2595
+ },
2596
+ "_refProperties": {
2597
+ "type": "object",
2598
+ "properties": {
2599
+ "_id": {
2600
+ "type": "string",
2601
+ "required": false,
2602
+ "propName": "_id"
2603
+ }
2604
+ }
2605
+ }
2606
+ },
2607
+ "resourceCollection": [
2608
+ {
2609
+ "notify": true,
2610
+ "path": "managed/bravo_organization",
2611
+ "label": "Organization",
2612
+ "query": {
2613
+ "queryFilter": "true",
2614
+ "fields": ["name"],
2615
+ "sortKeys": []
2616
+ }
2617
+ }
2618
+ ]
2619
+ }
2620
+ },
2621
+ "adminOfOrg": {
2622
+ "title": "Organizations I Administer",
2623
+ "viewable": true,
2624
+ "searchable": false,
2625
+ "userEditable": false,
2626
+ "policies": [],
2627
+ "returnByDefault": false,
2628
+ "type": "array",
2629
+ "items": {
2630
+ "type": "relationship",
2631
+ "notifySelf": false,
2632
+ "reverseRelationship": true,
2633
+ "reversePropertyName": "admins",
2634
+ "validate": true,
2635
+ "properties": {
2636
+ "_ref": {
2637
+ "type": "string"
2638
+ },
2639
+ "_refProperties": {
2640
+ "type": "object",
2641
+ "properties": {
2642
+ "_id": {
2643
+ "type": "string",
2644
+ "required": false,
2645
+ "propName": "_id"
2646
+ }
2647
+ }
2648
+ }
2649
+ },
2650
+ "resourceCollection": [
2651
+ {
2652
+ "notify": true,
2653
+ "path": "managed/bravo_organization",
2654
+ "label": "Organization",
2655
+ "query": {
2656
+ "queryFilter": "true",
2657
+ "fields": ["name"],
2658
+ "sortKeys": []
2659
+ }
2660
+ }
2661
+ ]
2662
+ }
2663
+ },
2664
+ "memberOfOrg": {
2665
+ "title": "Organizations to which I Belong",
2666
+ "viewable": true,
2667
+ "searchable": false,
2668
+ "userEditable": false,
2669
+ "policies": [],
2670
+ "returnByDefault": false,
2671
+ "type": "array",
2672
+ "items": {
2673
+ "type": "relationship",
2674
+ "notifySelf": true,
2675
+ "reverseRelationship": true,
2676
+ "reversePropertyName": "members",
2677
+ "validate": true,
2678
+ "properties": {
2679
+ "_ref": {
2680
+ "type": "string"
2681
+ },
2682
+ "_refProperties": {
2683
+ "type": "object",
2684
+ "properties": {
2685
+ "_id": {
2686
+ "type": "string",
2687
+ "required": false,
2688
+ "propName": "_id"
2689
+ }
2690
+ }
2691
+ }
2692
+ },
2693
+ "resourceCollection": [
2694
+ {
2695
+ "notify": false,
2696
+ "path": "managed/bravo_organization",
2697
+ "label": "Organization",
2698
+ "query": {
2699
+ "queryFilter": "true",
2700
+ "fields": ["name"],
2701
+ "sortKeys": []
2702
+ }
2703
+ }
2704
+ ]
2705
+ }
2706
+ },
2707
+ "memberOfOrgIDs": {
2708
+ "title": "MemberOfOrgIDs",
2709
+ "type": "array",
2710
+ "viewable": false,
2711
+ "searchable": false,
2712
+ "userEditable": false,
2713
+ "isVirtual": true,
2714
+ "returnByDefault": true,
2715
+ "queryConfig": {
2716
+ "referencedRelationshipFields": ["memberOfOrg"],
2717
+ "referencedObjectFields": ["_id", "parentIDs"],
2718
+ "flattenProperties": true
2719
+ },
2720
+ "items": {
2721
+ "type": "string",
2722
+ "title": "org identifiers"
2723
+ }
2724
+ }
2725
+ },
2726
+ "type": "object",
2727
+ "required": ["userName", "givenName", "sn", "mail"]
2728
+ },
2729
+ "meta": {
2730
+ "property": "_meta",
2731
+ "resourceCollection": "managed/bravo_usermeta",
2732
+ "trackedProperties": ["createDate", "lastChanged"]
2733
+ },
2734
+ "notifications": {}
2735
+ },
2736
+ {
2737
+ "name": "alpha_usermeta",
2738
+ "schema": {
2739
+ "icon": "fa-database",
2740
+ "mat-icon": null,
2741
+ "title": "Alpha realm - metadata for user",
2742
+ "description": null,
2743
+ "properties": {}
2744
+ }
2745
+ },
2746
+ {
2747
+ "name": "bravo_usermeta",
2748
+ "schema": {
2749
+ "icon": "fa-database",
2750
+ "mat-icon": null,
2751
+ "title": "Bravo realm - metadata for user",
2752
+ "description": null,
2753
+ "properties": {}
2754
+ }
2755
+ },
2756
+ {
2757
+ "name": "teammembermeta",
2758
+ "schema": {
2759
+ "icon": "fa-database",
2760
+ "mat-icon": null,
2761
+ "title": "teammember - metadata for user",
2762
+ "description": null,
2763
+ "properties": {}
2764
+ }
2765
+ },
2766
+ {
2767
+ "name": "alpha_role",
2768
+ "onDelete": {
2769
+ "type": "text/javascript",
2770
+ "file": "roles/onDelete-roles.js"
2771
+ },
2772
+ "postCreate": {
2773
+ "type": "text/javascript",
2774
+ "source": "require('roles/postOperation-roles').manageTemporalConstraints(resourceName);"
2775
+ },
2776
+ "postUpdate": {
2777
+ "type": "text/javascript",
2778
+ "source": "require('roles/postOperation-roles').manageTemporalConstraints(resourceName);"
2779
+ },
2780
+ "postDelete": {
2781
+ "type": "text/javascript",
2782
+ "source": "require('roles/postOperation-roles').manageTemporalConstraints(resourceName);"
2783
+ },
2784
+ "schema": {
2785
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Role",
2786
+ "$schema": "http://forgerock.org/json-schema#",
2787
+ "type": "object",
2788
+ "title": "Alpha realm - Role",
2789
+ "icon": "fa-check-square-o",
2790
+ "mat-icon": "assignment_ind",
2791
+ "description": "",
2792
+ "properties": {
2793
+ "_id": {
2794
+ "description": "Role ID",
2795
+ "title": "Name",
2796
+ "viewable": false,
2797
+ "searchable": false,
2798
+ "type": "string"
2799
+ },
2800
+ "name": {
2801
+ "description": "The role name, used for display purposes.",
2802
+ "title": "Name",
2803
+ "viewable": true,
2804
+ "searchable": true,
2805
+ "type": "string"
2806
+ },
2807
+ "description": {
2808
+ "description": "The role description, used for display purposes.",
2809
+ "title": "Description",
2810
+ "viewable": true,
2811
+ "searchable": true,
2812
+ "type": "string"
2813
+ },
2814
+ "members": {
2815
+ "description": "Role Members",
2816
+ "title": "Role Members",
2817
+ "viewable": true,
2818
+ "type": "array",
2819
+ "returnByDefault": false,
2820
+ "relationshipGrantTemporalConstraintsEnforced": true,
2821
+ "items": {
2822
+ "type": "relationship",
2823
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Role:members:items",
2824
+ "title": "Role Members Items",
2825
+ "reverseRelationship": true,
2826
+ "reversePropertyName": "roles",
2827
+ "validate": true,
2828
+ "properties": {
2829
+ "_ref": {
2830
+ "description": "References a relationship from a managed object",
2831
+ "type": "string"
2832
+ },
2833
+ "_refProperties": {
2834
+ "description": "Supports metadata within the relationship",
2835
+ "type": "object",
2836
+ "title": "Role Members Items _refProperties",
2837
+ "properties": {
2838
+ "_id": {
2839
+ "description": "_refProperties object ID",
2840
+ "type": "string"
2841
+ },
2842
+ "_grantType": {
2843
+ "description": "Grant Type",
2844
+ "type": "string",
2845
+ "label": "Grant Type"
2846
+ }
2847
+ }
2848
+ }
2849
+ },
2850
+ "resourceCollection": [
2851
+ {
2852
+ "notify": true,
2853
+ "conditionalAssociation": true,
2854
+ "path": "managed/alpha_user",
2855
+ "label": "User",
2856
+ "query": {
2857
+ "queryFilter": "true",
2858
+ "fields": ["userName", "givenName", "sn"]
2859
+ }
2860
+ }
2861
+ ]
2862
+ }
2863
+ },
2864
+ "assignments": {
2865
+ "description": "Managed Assignments",
2866
+ "title": "Managed Assignments",
2867
+ "viewable": true,
2868
+ "returnByDefault": false,
2869
+ "type": "array",
2870
+ "items": {
2871
+ "type": "relationship",
2872
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Role:assignments:items",
2873
+ "title": "Managed Assignments Items",
2874
+ "reverseRelationship": true,
2875
+ "reversePropertyName": "roles",
2876
+ "notifySelf": true,
2877
+ "validate": true,
2878
+ "properties": {
2879
+ "_ref": {
2880
+ "description": "References a relationship from a managed object",
2881
+ "type": "string"
2882
+ },
2883
+ "_refProperties": {
2884
+ "description": "Supports metadata within the relationship",
2885
+ "title": "Managed Assignments Items _refProperties",
2886
+ "type": "object",
2887
+ "properties": {
2888
+ "_id": {
2889
+ "description": "_refProperties object ID",
2890
+ "type": "string"
2891
+ }
2892
+ }
2893
+ }
2894
+ },
2895
+ "resourceCollection": [
2896
+ {
2897
+ "path": "managed/alpha_assignment",
2898
+ "label": "Assignment",
2899
+ "query": {
2900
+ "queryFilter": "true",
2901
+ "fields": ["name"]
2902
+ }
2903
+ }
2904
+ ]
2905
+ },
2906
+ "notifyRelationships": ["members"]
2907
+ },
2908
+ "condition": {
2909
+ "description": "A conditional filter for this role",
2910
+ "title": "Condition",
2911
+ "viewable": false,
2912
+ "searchable": false,
2913
+ "isConditional": true,
2914
+ "type": "string"
2915
+ },
2916
+ "temporalConstraints": {
2917
+ "description": "An array of temporal constraints for a role",
2918
+ "title": "Temporal Constraints",
2919
+ "viewable": false,
2920
+ "returnByDefault": true,
2921
+ "isTemporalConstraint": true,
2922
+ "type": "array",
2923
+ "items": {
2924
+ "type": "object",
2925
+ "title": "Temporal Constraints Items",
2926
+ "properties": {
2927
+ "duration": {
2928
+ "description": "Duration",
2929
+ "type": "string"
2930
+ }
2931
+ },
2932
+ "required": ["duration"],
2933
+ "order": ["duration"]
2934
+ },
2935
+ "notifyRelationships": ["members"]
2936
+ }
2937
+ },
2938
+ "required": ["name"],
2939
+ "order": [
2940
+ "_id",
2941
+ "name",
2942
+ "description",
2943
+ "members",
2944
+ "assignments",
2945
+ "condition",
2946
+ "temporalConstraints"
2947
+ ]
2948
+ }
2949
+ },
2950
+ {
2951
+ "name": "bravo_role",
2952
+ "onDelete": {
2953
+ "type": "text/javascript",
2954
+ "file": "roles/onDelete-roles.js"
2955
+ },
2956
+ "postCreate": {
2957
+ "type": "text/javascript",
2958
+ "source": "require('roles/postOperation-roles').manageTemporalConstraints(resourceName);"
2959
+ },
2960
+ "postUpdate": {
2961
+ "type": "text/javascript",
2962
+ "source": "require('roles/postOperation-roles').manageTemporalConstraints(resourceName);"
2963
+ },
2964
+ "postDelete": {
2965
+ "type": "text/javascript",
2966
+ "source": "require('roles/postOperation-roles').manageTemporalConstraints(resourceName);"
2967
+ },
2968
+ "schema": {
2969
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Role",
2970
+ "$schema": "http://forgerock.org/json-schema#",
2971
+ "type": "object",
2972
+ "title": "Bravo realm - Role",
2973
+ "icon": "fa-check-square-o",
2974
+ "mat-icon": "assignment_ind",
2975
+ "description": "",
2976
+ "properties": {
2977
+ "_id": {
2978
+ "description": "Role ID",
2979
+ "title": "Name",
2980
+ "viewable": false,
2981
+ "searchable": false,
2982
+ "type": "string"
2983
+ },
2984
+ "name": {
2985
+ "description": "The role name, used for display purposes.",
2986
+ "title": "Name",
2987
+ "viewable": true,
2988
+ "searchable": true,
2989
+ "type": "string"
2990
+ },
2991
+ "description": {
2992
+ "description": "The role description, used for display purposes.",
2993
+ "title": "Description",
2994
+ "viewable": true,
2995
+ "searchable": true,
2996
+ "type": "string"
2997
+ },
2998
+ "members": {
2999
+ "description": "Role Members",
3000
+ "title": "Role Members",
3001
+ "viewable": true,
3002
+ "type": "array",
3003
+ "returnByDefault": false,
3004
+ "relationshipGrantTemporalConstraintsEnforced": true,
3005
+ "items": {
3006
+ "type": "relationship",
3007
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Role:members:items",
3008
+ "title": "Role Members Items",
3009
+ "reverseRelationship": true,
3010
+ "reversePropertyName": "roles",
3011
+ "validate": true,
3012
+ "properties": {
3013
+ "_ref": {
3014
+ "description": "References a relationship from a managed object",
3015
+ "type": "string"
3016
+ },
3017
+ "_refProperties": {
3018
+ "description": "Supports metadata within the relationship",
3019
+ "type": "object",
3020
+ "title": "Role Members Items _refProperties",
3021
+ "properties": {
3022
+ "_id": {
3023
+ "description": "_refProperties object ID",
3024
+ "type": "string"
3025
+ },
3026
+ "_grantType": {
3027
+ "description": "Grant Type",
3028
+ "type": "string",
3029
+ "label": "Grant Type"
3030
+ }
3031
+ }
3032
+ }
3033
+ },
3034
+ "resourceCollection": [
3035
+ {
3036
+ "notify": true,
3037
+ "conditionalAssociation": true,
3038
+ "path": "managed/bravo_user",
3039
+ "label": "User",
3040
+ "query": {
3041
+ "queryFilter": "true",
3042
+ "fields": ["userName", "givenName", "sn"]
3043
+ }
3044
+ }
3045
+ ]
3046
+ }
3047
+ },
3048
+ "assignments": {
3049
+ "description": "Managed Assignments",
3050
+ "title": "Managed Assignments",
3051
+ "viewable": true,
3052
+ "returnByDefault": false,
3053
+ "type": "array",
3054
+ "items": {
3055
+ "type": "relationship",
3056
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Role:assignments:items",
3057
+ "title": "Managed Assignments Items",
3058
+ "reverseRelationship": true,
3059
+ "reversePropertyName": "roles",
3060
+ "notifySelf": true,
3061
+ "validate": true,
3062
+ "properties": {
3063
+ "_ref": {
3064
+ "description": "References a relationship from a managed object",
3065
+ "type": "string"
3066
+ },
3067
+ "_refProperties": {
3068
+ "description": "Supports metadata within the relationship",
3069
+ "title": "Managed Assignments Items _refProperties",
3070
+ "type": "object",
3071
+ "properties": {
3072
+ "_id": {
3073
+ "description": "_refProperties object ID",
3074
+ "type": "string"
3075
+ }
3076
+ }
3077
+ }
3078
+ },
3079
+ "resourceCollection": [
3080
+ {
3081
+ "path": "managed/bravo_assignment",
3082
+ "label": "Assignment",
3083
+ "query": {
3084
+ "queryFilter": "true",
3085
+ "fields": ["name"]
3086
+ }
3087
+ }
3088
+ ]
3089
+ },
3090
+ "notifyRelationships": ["members"]
3091
+ },
3092
+ "condition": {
3093
+ "description": "A conditional filter for this role",
3094
+ "title": "Condition",
3095
+ "viewable": false,
3096
+ "searchable": false,
3097
+ "isConditional": true,
3098
+ "type": "string"
3099
+ },
3100
+ "temporalConstraints": {
3101
+ "description": "An array of temporal constraints for a role",
3102
+ "title": "Temporal Constraints",
3103
+ "viewable": false,
3104
+ "returnByDefault": true,
3105
+ "isTemporalConstraint": true,
3106
+ "type": "array",
3107
+ "items": {
3108
+ "type": "object",
3109
+ "title": "Temporal Constraints Items",
3110
+ "properties": {
3111
+ "duration": {
3112
+ "description": "Duration",
3113
+ "type": "string"
3114
+ }
3115
+ },
3116
+ "required": ["duration"],
3117
+ "order": ["duration"]
3118
+ },
3119
+ "notifyRelationships": ["members"]
3120
+ }
3121
+ },
3122
+ "required": ["name"],
3123
+ "order": [
3124
+ "_id",
3125
+ "name",
3126
+ "description",
3127
+ "members",
3128
+ "assignments",
3129
+ "condition",
3130
+ "temporalConstraints"
3131
+ ]
3132
+ }
3133
+ },
3134
+ {
3135
+ "name": "alpha_assignment",
3136
+ "schema": {
3137
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Assignment",
3138
+ "$schema": "http://forgerock.org/json-schema#",
3139
+ "type": "object",
3140
+ "title": "Alpha realm - Assignment",
3141
+ "icon": "fa-key",
3142
+ "mat-icon": "vpn_key",
3143
+ "description": "A role assignment",
3144
+ "properties": {
3145
+ "_id": {
3146
+ "description": "The assignment ID",
3147
+ "title": "Name",
3148
+ "viewable": false,
3149
+ "searchable": false,
3150
+ "type": "string"
3151
+ },
3152
+ "name": {
3153
+ "description": "The assignment name, used for display purposes.",
3154
+ "title": "Name",
3155
+ "viewable": true,
3156
+ "searchable": true,
3157
+ "type": "string"
3158
+ },
3159
+ "description": {
3160
+ "description": "The assignment description, used for display purposes.",
3161
+ "title": "Description",
3162
+ "viewable": true,
3163
+ "searchable": true,
3164
+ "type": "string"
3165
+ },
3166
+ "mapping": {
3167
+ "description": "The name of the mapping this assignment applies to",
3168
+ "title": "Mapping",
3169
+ "viewable": true,
3170
+ "searchable": true,
3171
+ "type": "string",
3172
+ "policies": [
3173
+ {
3174
+ "policyId": "mapping-exists"
3175
+ }
3176
+ ]
3177
+ },
3178
+ "attributes": {
3179
+ "description": "The attributes operated on by this assignment.",
3180
+ "title": "Assignment Attributes",
3181
+ "viewable": true,
3182
+ "type": "array",
3183
+ "items": {
3184
+ "type": "object",
3185
+ "title": "Assignment Attributes Items",
3186
+ "properties": {
3187
+ "assignmentOperation": {
3188
+ "description": "Assignment operation",
3189
+ "type": "string"
3190
+ },
3191
+ "unassignmentOperation": {
3192
+ "description": "Unassignment operation",
3193
+ "type": "string"
3194
+ },
3195
+ "name": {
3196
+ "description": "Name",
3197
+ "type": "string"
3198
+ },
3199
+ "value": {
3200
+ "description": "Value",
3201
+ "type": "string"
3202
+ }
3203
+ },
3204
+ "order": [
3205
+ "assignmentOperation",
3206
+ "unassignmentOperation",
3207
+ "name",
3208
+ "value"
3209
+ ],
3210
+ "required": []
3211
+ },
3212
+ "notifyRelationships": ["roles"]
3213
+ },
3214
+ "linkQualifiers": {
3215
+ "description": "Conditional link qualifiers to restrict this assignment to.",
3216
+ "title": "Link Qualifiers",
3217
+ "viewable": true,
3218
+ "type": "array",
3219
+ "items": {
3220
+ "type": "string",
3221
+ "title": "Link Qualifiers Items"
3222
+ }
3223
+ },
3224
+ "roles": {
3225
+ "description": "Managed Roles",
3226
+ "title": "Managed Roles",
3227
+ "viewable": true,
3228
+ "userEditable": false,
3229
+ "type": "array",
3230
+ "returnByDefault": false,
3231
+ "items": {
3232
+ "type": "relationship",
3233
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Assignment:roles:items",
3234
+ "title": "Managed Roles Items",
3235
+ "reverseRelationship": true,
3236
+ "reversePropertyName": "assignments",
3237
+ "validate": true,
3238
+ "properties": {
3239
+ "_ref": {
3240
+ "description": "References a relationship from a managed object",
3241
+ "type": "string"
3242
+ },
3243
+ "_refProperties": {
3244
+ "description": "Supports metadata within the relationship",
3245
+ "type": "object",
3246
+ "title": "Managed Roles Items _refProperties",
3247
+ "properties": {
3248
+ "_id": {
3249
+ "description": "_refProperties object ID",
3250
+ "type": "string"
3251
+ }
3252
+ }
3253
+ }
3254
+ },
3255
+ "resourceCollection": [
3256
+ {
3257
+ "notify": true,
3258
+ "path": "managed/alpha_role",
3259
+ "label": "Role",
3260
+ "query": {
3261
+ "queryFilter": "true",
3262
+ "fields": ["name"]
3263
+ }
3264
+ }
3265
+ ]
3266
+ }
3267
+ }
3268
+ },
3269
+ "required": ["name", "description", "mapping"],
3270
+ "order": [
3271
+ "_id",
3272
+ "name",
3273
+ "description",
3274
+ "mapping",
3275
+ "attributes",
3276
+ "linkQualifiers",
3277
+ "roles"
3278
+ ]
3279
+ }
3280
+ },
3281
+ {
3282
+ "name": "bravo_assignment",
3283
+ "schema": {
3284
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Assignment",
3285
+ "$schema": "http://forgerock.org/json-schema#",
3286
+ "type": "object",
3287
+ "title": "Bravo realm - Assignment",
3288
+ "icon": "fa-key",
3289
+ "mat-icon": "vpn_key",
3290
+ "description": "A role assignment",
3291
+ "properties": {
3292
+ "_id": {
3293
+ "description": "The assignment ID",
3294
+ "title": "Name",
3295
+ "viewable": false,
3296
+ "searchable": false,
3297
+ "type": "string"
3298
+ },
3299
+ "name": {
3300
+ "description": "The assignment name, used for display purposes.",
3301
+ "title": "Name",
3302
+ "viewable": true,
3303
+ "searchable": true,
3304
+ "type": "string"
3305
+ },
3306
+ "description": {
3307
+ "description": "The assignment description, used for display purposes.",
3308
+ "title": "Description",
3309
+ "viewable": true,
3310
+ "searchable": true,
3311
+ "type": "string"
3312
+ },
3313
+ "mapping": {
3314
+ "description": "The name of the mapping this assignment applies to",
3315
+ "title": "Mapping",
3316
+ "viewable": true,
3317
+ "searchable": true,
3318
+ "type": "string",
3319
+ "policies": [
3320
+ {
3321
+ "policyId": "mapping-exists"
3322
+ }
3323
+ ]
3324
+ },
3325
+ "attributes": {
3326
+ "description": "The attributes operated on by this assignment.",
3327
+ "title": "Assignment Attributes",
3328
+ "viewable": true,
3329
+ "type": "array",
3330
+ "items": {
3331
+ "type": "object",
3332
+ "title": "Assignment Attributes Items",
3333
+ "properties": {
3334
+ "assignmentOperation": {
3335
+ "description": "Assignment operation",
3336
+ "type": "string"
3337
+ },
3338
+ "unassignmentOperation": {
3339
+ "description": "Unassignment operation",
3340
+ "type": "string"
3341
+ },
3342
+ "name": {
3343
+ "description": "Name",
3344
+ "type": "string"
3345
+ },
3346
+ "value": {
3347
+ "description": "Value",
3348
+ "type": "string"
3349
+ }
3350
+ },
3351
+ "order": [
3352
+ "assignmentOperation",
3353
+ "unassignmentOperation",
3354
+ "name",
3355
+ "value"
3356
+ ],
3357
+ "required": []
3358
+ },
3359
+ "notifyRelationships": ["roles"]
3360
+ },
3361
+ "linkQualifiers": {
3362
+ "description": "Conditional link qualifiers to restrict this assignment to.",
3363
+ "title": "Link Qualifiers",
3364
+ "viewable": true,
3365
+ "type": "array",
3366
+ "items": {
3367
+ "type": "string",
3368
+ "title": "Link Qualifiers Items"
3369
+ }
3370
+ },
3371
+ "roles": {
3372
+ "description": "Managed Roles",
3373
+ "title": "Managed Roles",
3374
+ "viewable": true,
3375
+ "userEditable": false,
3376
+ "type": "array",
3377
+ "returnByDefault": false,
3378
+ "items": {
3379
+ "type": "relationship",
3380
+ "id": "urn:jsonschema:org:forgerock:openidm:managed:api:Assignment:roles:items",
3381
+ "title": "Managed Roles Items",
3382
+ "reverseRelationship": true,
3383
+ "reversePropertyName": "assignments",
3384
+ "validate": true,
3385
+ "properties": {
3386
+ "_ref": {
3387
+ "description": "References a relationship from a managed object",
3388
+ "type": "string"
3389
+ },
3390
+ "_refProperties": {
3391
+ "description": "Supports metadata within the relationship",
3392
+ "type": "object",
3393
+ "title": "Managed Roles Items _refProperties",
3394
+ "properties": {
3395
+ "_id": {
3396
+ "description": "_refProperties object ID",
3397
+ "type": "string"
3398
+ }
3399
+ }
3400
+ }
3401
+ },
3402
+ "resourceCollection": [
3403
+ {
3404
+ "notify": true,
3405
+ "path": "managed/bravo_role",
3406
+ "label": "Role",
3407
+ "query": {
3408
+ "queryFilter": "true",
3409
+ "fields": ["name"]
3410
+ }
3411
+ }
3412
+ ]
3413
+ }
3414
+ }
3415
+ },
3416
+ "required": ["name", "description", "mapping"],
3417
+ "order": [
3418
+ "_id",
3419
+ "name",
3420
+ "description",
3421
+ "mapping",
3422
+ "attributes",
3423
+ "linkQualifiers",
3424
+ "roles"
3425
+ ]
3426
+ }
3427
+ },
3428
+ {
3429
+ "name": "alpha_organization",
3430
+ "schema": {
3431
+ "$schema": "http://forgerock.org/json-schema#",
3432
+ "type": "object",
3433
+ "title": "Alpha realm - Organization",
3434
+ "description": "An organization or tenant, whose resources are managed by organizational admins.",
3435
+ "icon": "fa-building",
3436
+ "mat-icon": "domain",
3437
+ "properties": {
3438
+ "name": {
3439
+ "title": "Name",
3440
+ "type": "string",
3441
+ "viewable": true,
3442
+ "searchable": true,
3443
+ "userEditable": true
3444
+ },
3445
+ "description": {
3446
+ "title": "Description",
3447
+ "type": "string",
3448
+ "viewable": true,
3449
+ "searchable": true,
3450
+ "userEditable": true
3451
+ },
3452
+ "owners": {
3453
+ "title": "Owner",
3454
+ "viewable": true,
3455
+ "searchable": false,
3456
+ "userEditable": false,
3457
+ "returnByDefault": false,
3458
+ "type": "array",
3459
+ "items": {
3460
+ "type": "relationship",
3461
+ "notifySelf": true,
3462
+ "reverseRelationship": true,
3463
+ "reversePropertyName": "ownerOfOrg",
3464
+ "validate": true,
3465
+ "properties": {
3466
+ "_ref": {
3467
+ "type": "string"
3468
+ },
3469
+ "_refProperties": {
3470
+ "type": "object",
3471
+ "properties": {
3472
+ "_id": {
3473
+ "type": "string",
3474
+ "required": false,
3475
+ "propName": "_id"
3476
+ }
3477
+ }
3478
+ }
3479
+ },
3480
+ "resourceCollection": [
3481
+ {
3482
+ "notify": false,
3483
+ "path": "managed/alpha_user",
3484
+ "label": "User",
3485
+ "query": {
3486
+ "queryFilter": "true",
3487
+ "fields": ["userName", "givenName", "sn"],
3488
+ "sortKeys": []
3489
+ }
3490
+ }
3491
+ ]
3492
+ },
3493
+ "notifyRelationships": ["children"]
3494
+ },
3495
+ "admins": {
3496
+ "title": "Administrators",
3497
+ "viewable": true,
3498
+ "searchable": false,
3499
+ "userEditable": false,
3500
+ "returnByDefault": false,
3501
+ "type": "array",
3502
+ "items": {
3503
+ "type": "relationship",
3504
+ "notifySelf": true,
3505
+ "reverseRelationship": true,
3506
+ "reversePropertyName": "adminOfOrg",
3507
+ "validate": true,
3508
+ "properties": {
3509
+ "_ref": {
3510
+ "type": "string"
3511
+ },
3512
+ "_refProperties": {
3513
+ "type": "object",
3514
+ "properties": {
3515
+ "_id": {
3516
+ "type": "string",
3517
+ "required": false,
3518
+ "propName": "_id"
3519
+ }
3520
+ }
3521
+ }
3522
+ },
3523
+ "resourceCollection": [
3524
+ {
3525
+ "notify": false,
3526
+ "path": "managed/alpha_user",
3527
+ "label": "User",
3528
+ "query": {
3529
+ "queryFilter": "true",
3530
+ "fields": ["userName", "givenName", "sn"],
3531
+ "sortKeys": []
3532
+ }
3533
+ }
3534
+ ]
3535
+ },
3536
+ "notifyRelationships": ["children"]
3537
+ },
3538
+ "members": {
3539
+ "title": "Members",
3540
+ "viewable": true,
3541
+ "searchable": false,
3542
+ "userEditable": false,
3543
+ "returnByDefault": false,
3544
+ "type": "array",
3545
+ "items": {
3546
+ "type": "relationship",
3547
+ "notifySelf": false,
3548
+ "reverseRelationship": true,
3549
+ "reversePropertyName": "memberOfOrg",
3550
+ "validate": true,
3551
+ "properties": {
3552
+ "_ref": {
3553
+ "type": "string"
3554
+ },
3555
+ "_refProperties": {
3556
+ "type": "object",
3557
+ "properties": {
3558
+ "_id": {
3559
+ "type": "string",
3560
+ "required": false,
3561
+ "propName": "_id"
3562
+ }
3563
+ }
3564
+ }
3565
+ },
3566
+ "resourceCollection": [
3567
+ {
3568
+ "notify": true,
3569
+ "path": "managed/alpha_user",
3570
+ "label": "User",
3571
+ "query": {
3572
+ "queryFilter": "true",
3573
+ "fields": ["userName", "givenName", "sn"],
3574
+ "sortKeys": []
3575
+ }
3576
+ }
3577
+ ]
3578
+ }
3579
+ },
3580
+ "parent": {
3581
+ "title": "Parent Organization",
3582
+ "description": "Parent Organization",
3583
+ "type": "relationship",
3584
+ "notifySelf": true,
3585
+ "viewable": true,
3586
+ "searchable": false,
3587
+ "userEditable": false,
3588
+ "returnByDefault": false,
3589
+ "reverseRelationship": true,
3590
+ "reversePropertyName": "children",
3591
+ "validate": true,
3592
+ "properties": {
3593
+ "_ref": {
3594
+ "type": "string"
3595
+ },
3596
+ "_refProperties": {
3597
+ "type": "object",
3598
+ "properties": {
3599
+ "_id": {
3600
+ "type": "string",
3601
+ "required": false,
3602
+ "propName": "_id"
3603
+ }
3604
+ }
3605
+ }
3606
+ },
3607
+ "resourceCollection": [
3608
+ {
3609
+ "path": "managed/alpha_organization",
3610
+ "notify": false,
3611
+ "label": "Organization",
3612
+ "query": {
3613
+ "queryFilter": "true",
3614
+ "fields": ["name", "description"],
3615
+ "sortKeys": []
3616
+ }
3617
+ }
3618
+ ],
3619
+ "notifyRelationships": ["children", "members"]
3620
+ },
3621
+ "children": {
3622
+ "description": "Child Organizations",
3623
+ "title": "Child Organizations",
3624
+ "viewable": false,
3625
+ "searchable": false,
3626
+ "userEditable": false,
3627
+ "policies": [],
3628
+ "returnByDefault": false,
3629
+ "type": "array",
3630
+ "items": {
3631
+ "type": "relationship",
3632
+ "reverseRelationship": true,
3633
+ "reversePropertyName": "parent",
3634
+ "validate": true,
3635
+ "notifySelf": true,
3636
+ "properties": {
3637
+ "_ref": {
3638
+ "type": "string"
3639
+ },
3640
+ "_refProperties": {
3641
+ "type": "object",
3642
+ "properties": {
3643
+ "_id": {
3644
+ "type": "string",
3645
+ "required": false,
3646
+ "propName": "_id"
3647
+ }
3648
+ }
3649
+ }
3650
+ },
3651
+ "resourceCollection": [
3652
+ {
3653
+ "path": "managed/alpha_organization",
3654
+ "notify": true,
3655
+ "label": "Organization",
3656
+ "query": {
3657
+ "queryFilter": "true",
3658
+ "fields": ["name", "description"],
3659
+ "sortKeys": []
3660
+ }
3661
+ }
3662
+ ]
3663
+ }
3664
+ },
3665
+ "adminIDs": {
3666
+ "title": "Admin user ids",
3667
+ "type": "array",
3668
+ "viewable": false,
3669
+ "searchable": false,
3670
+ "userEditable": false,
3671
+ "isVirtual": true,
3672
+ "returnByDefault": true,
3673
+ "queryConfig": {
3674
+ "referencedRelationshipFields": ["admins"],
3675
+ "referencedObjectFields": ["_id"],
3676
+ "flattenProperties": true
3677
+ },
3678
+ "items": {
3679
+ "type": "string",
3680
+ "title": "admin ids"
3681
+ }
3682
+ },
3683
+ "ownerIDs": {
3684
+ "title": "Owner user ids",
3685
+ "type": "array",
3686
+ "viewable": false,
3687
+ "searchable": false,
3688
+ "userEditable": false,
3689
+ "isVirtual": true,
3690
+ "returnByDefault": true,
3691
+ "queryConfig": {
3692
+ "referencedRelationshipFields": ["owners"],
3693
+ "referencedObjectFields": ["_id"],
3694
+ "flattenProperties": true
3695
+ },
3696
+ "items": {
3697
+ "type": "string",
3698
+ "title": "owner ids"
3699
+ }
3700
+ },
3701
+ "parentAdminIDs": {
3702
+ "title": "user ids of parent admins",
3703
+ "type": "array",
3704
+ "viewable": false,
3705
+ "searchable": false,
3706
+ "userEditable": false,
3707
+ "isVirtual": true,
3708
+ "returnByDefault": true,
3709
+ "queryConfig": {
3710
+ "referencedRelationshipFields": ["parent"],
3711
+ "referencedObjectFields": ["adminIDs", "parentAdminIDs"],
3712
+ "flattenProperties": true
3713
+ },
3714
+ "items": {
3715
+ "type": "string",
3716
+ "title": "user ids of parent admins"
3717
+ }
3718
+ },
3719
+ "parentOwnerIDs": {
3720
+ "title": "user ids of parent owners",
3721
+ "type": "array",
3722
+ "viewable": false,
3723
+ "searchable": false,
3724
+ "userEditable": false,
3725
+ "isVirtual": true,
3726
+ "returnByDefault": true,
3727
+ "queryConfig": {
3728
+ "referencedRelationshipFields": ["parent"],
3729
+ "referencedObjectFields": ["ownerIDs", "parentOwnerIDs"],
3730
+ "flattenProperties": true
3731
+ },
3732
+ "items": {
3733
+ "type": "string",
3734
+ "title": "user ids of parent owners"
3735
+ }
3736
+ },
3737
+ "parentIDs": {
3738
+ "title": "parent org ids",
3739
+ "type": "array",
3740
+ "viewable": false,
3741
+ "searchable": false,
3742
+ "userEditable": false,
3743
+ "isVirtual": true,
3744
+ "returnByDefault": true,
3745
+ "queryConfig": {
3746
+ "referencedRelationshipFields": ["parent"],
3747
+ "referencedObjectFields": ["_id", "parentIDs"],
3748
+ "flattenProperties": true
3749
+ },
3750
+ "items": {
3751
+ "type": "string",
3752
+ "title": "parent org ids"
3753
+ }
3754
+ }
3755
+ },
3756
+ "order": [
3757
+ "name",
3758
+ "description",
3759
+ "owners",
3760
+ "admins",
3761
+ "members",
3762
+ "parent",
3763
+ "children",
3764
+ "adminIDs",
3765
+ "ownerIDs",
3766
+ "parentAdminIDs",
3767
+ "parentOwnerIDs",
3768
+ "parentIDs"
3769
+ ],
3770
+ "required": ["name"]
3771
+ }
3772
+ },
3773
+ {
3774
+ "name": "bravo_organization",
3775
+ "schema": {
3776
+ "$schema": "http://forgerock.org/json-schema#",
3777
+ "type": "object",
3778
+ "title": "Bravo realm - Organization",
3779
+ "description": "An organization or tenant, whose resources are managed by organizational admins.",
3780
+ "icon": "fa-building",
3781
+ "mat-icon": "domain",
3782
+ "properties": {
3783
+ "name": {
3784
+ "title": "Name",
3785
+ "type": "string",
3786
+ "viewable": true,
3787
+ "searchable": true,
3788
+ "userEditable": true
3789
+ },
3790
+ "description": {
3791
+ "title": "Description",
3792
+ "type": "string",
3793
+ "viewable": true,
3794
+ "searchable": true,
3795
+ "userEditable": true
3796
+ },
3797
+ "owners": {
3798
+ "title": "Owner",
3799
+ "viewable": true,
3800
+ "searchable": false,
3801
+ "userEditable": false,
3802
+ "returnByDefault": false,
3803
+ "type": "array",
3804
+ "items": {
3805
+ "type": "relationship",
3806
+ "notifySelf": true,
3807
+ "reverseRelationship": true,
3808
+ "reversePropertyName": "ownerOfOrg",
3809
+ "validate": true,
3810
+ "properties": {
3811
+ "_ref": {
3812
+ "type": "string"
3813
+ },
3814
+ "_refProperties": {
3815
+ "type": "object",
3816
+ "properties": {
3817
+ "_id": {
3818
+ "type": "string",
3819
+ "required": false,
3820
+ "propName": "_id"
3821
+ }
3822
+ }
3823
+ }
3824
+ },
3825
+ "resourceCollection": [
3826
+ {
3827
+ "notify": false,
3828
+ "path": "managed/bravo_user",
3829
+ "label": "User",
3830
+ "query": {
3831
+ "queryFilter": "true",
3832
+ "fields": ["userName", "givenName", "sn"],
3833
+ "sortKeys": []
3834
+ }
3835
+ }
3836
+ ]
3837
+ },
3838
+ "notifyRelationships": ["children"]
3839
+ },
3840
+ "admins": {
3841
+ "title": "Administrators",
3842
+ "viewable": true,
3843
+ "searchable": false,
3844
+ "userEditable": false,
3845
+ "returnByDefault": false,
3846
+ "type": "array",
3847
+ "items": {
3848
+ "type": "relationship",
3849
+ "notifySelf": true,
3850
+ "reverseRelationship": true,
3851
+ "reversePropertyName": "adminOfOrg",
3852
+ "validate": true,
3853
+ "properties": {
3854
+ "_ref": {
3855
+ "type": "string"
3856
+ },
3857
+ "_refProperties": {
3858
+ "type": "object",
3859
+ "properties": {
3860
+ "_id": {
3861
+ "type": "string",
3862
+ "required": false,
3863
+ "propName": "_id"
3864
+ }
3865
+ }
3866
+ }
3867
+ },
3868
+ "resourceCollection": [
3869
+ {
3870
+ "notify": false,
3871
+ "path": "managed/bravo_user",
3872
+ "label": "User",
3873
+ "query": {
3874
+ "queryFilter": "true",
3875
+ "fields": ["userName", "givenName", "sn"],
3876
+ "sortKeys": []
3877
+ }
3878
+ }
3879
+ ]
3880
+ },
3881
+ "notifyRelationships": ["children"]
3882
+ },
3883
+ "members": {
3884
+ "title": "Members",
3885
+ "viewable": true,
3886
+ "searchable": false,
3887
+ "userEditable": false,
3888
+ "returnByDefault": false,
3889
+ "type": "array",
3890
+ "items": {
3891
+ "type": "relationship",
3892
+ "notifySelf": false,
3893
+ "reverseRelationship": true,
3894
+ "reversePropertyName": "memberOfOrg",
3895
+ "validate": true,
3896
+ "properties": {
3897
+ "_ref": {
3898
+ "type": "string"
3899
+ },
3900
+ "_refProperties": {
3901
+ "type": "object",
3902
+ "properties": {
3903
+ "_id": {
3904
+ "type": "string",
3905
+ "required": false,
3906
+ "propName": "_id"
3907
+ }
3908
+ }
3909
+ }
3910
+ },
3911
+ "resourceCollection": [
3912
+ {
3913
+ "notify": true,
3914
+ "path": "managed/bravo_user",
3915
+ "label": "User",
3916
+ "query": {
3917
+ "queryFilter": "true",
3918
+ "fields": ["userName", "givenName", "sn"],
3919
+ "sortKeys": []
3920
+ }
3921
+ }
3922
+ ]
3923
+ }
3924
+ },
3925
+ "parent": {
3926
+ "title": "Parent Organization",
3927
+ "description": "Parent Organization",
3928
+ "type": "relationship",
3929
+ "notifySelf": true,
3930
+ "viewable": true,
3931
+ "searchable": false,
3932
+ "userEditable": false,
3933
+ "returnByDefault": false,
3934
+ "reverseRelationship": true,
3935
+ "reversePropertyName": "children",
3936
+ "validate": true,
3937
+ "properties": {
3938
+ "_ref": {
3939
+ "type": "string"
3940
+ },
3941
+ "_refProperties": {
3942
+ "type": "object",
3943
+ "properties": {
3944
+ "_id": {
3945
+ "type": "string",
3946
+ "required": false,
3947
+ "propName": "_id"
3948
+ }
3949
+ }
3950
+ }
3951
+ },
3952
+ "resourceCollection": [
3953
+ {
3954
+ "path": "managed/bravo_organization",
3955
+ "notify": false,
3956
+ "label": "Organization",
3957
+ "query": {
3958
+ "queryFilter": "true",
3959
+ "fields": ["name", "description"],
3960
+ "sortKeys": []
3961
+ }
3962
+ }
3963
+ ],
3964
+ "notifyRelationships": ["children", "members"]
3965
+ },
3966
+ "children": {
3967
+ "description": "Child Organizations",
3968
+ "title": "Child Organizations",
3969
+ "viewable": false,
3970
+ "searchable": false,
3971
+ "userEditable": false,
3972
+ "policies": [],
3973
+ "returnByDefault": false,
3974
+ "type": "array",
3975
+ "items": {
3976
+ "type": "relationship",
3977
+ "reverseRelationship": true,
3978
+ "reversePropertyName": "parent",
3979
+ "validate": true,
3980
+ "notifySelf": true,
3981
+ "properties": {
3982
+ "_ref": {
3983
+ "type": "string"
3984
+ },
3985
+ "_refProperties": {
3986
+ "type": "object",
3987
+ "properties": {
3988
+ "_id": {
3989
+ "type": "string",
3990
+ "required": false,
3991
+ "propName": "_id"
3992
+ }
3993
+ }
3994
+ }
3995
+ },
3996
+ "resourceCollection": [
3997
+ {
3998
+ "path": "managed/bravo_organization",
3999
+ "notify": true,
4000
+ "label": "Organization",
4001
+ "query": {
4002
+ "queryFilter": "true",
4003
+ "fields": ["name", "description"],
4004
+ "sortKeys": []
4005
+ }
4006
+ }
4007
+ ]
4008
+ }
4009
+ },
4010
+ "adminIDs": {
4011
+ "title": "Admin user ids",
4012
+ "type": "array",
4013
+ "viewable": false,
4014
+ "searchable": false,
4015
+ "userEditable": false,
4016
+ "isVirtual": true,
4017
+ "returnByDefault": true,
4018
+ "queryConfig": {
4019
+ "referencedRelationshipFields": ["admins"],
4020
+ "referencedObjectFields": ["_id"],
4021
+ "flattenProperties": true
4022
+ },
4023
+ "items": {
4024
+ "type": "string",
4025
+ "title": "admin ids"
4026
+ }
4027
+ },
4028
+ "ownerIDs": {
4029
+ "title": "Owner user ids",
4030
+ "type": "array",
4031
+ "viewable": false,
4032
+ "searchable": false,
4033
+ "userEditable": false,
4034
+ "isVirtual": true,
4035
+ "returnByDefault": true,
4036
+ "queryConfig": {
4037
+ "referencedRelationshipFields": ["owners"],
4038
+ "referencedObjectFields": ["_id"],
4039
+ "flattenProperties": true
4040
+ },
4041
+ "items": {
4042
+ "type": "string",
4043
+ "title": "owner ids"
4044
+ }
4045
+ },
4046
+ "parentAdminIDs": {
4047
+ "title": "user ids of parent admins",
4048
+ "type": "array",
4049
+ "viewable": false,
4050
+ "searchable": false,
4051
+ "userEditable": false,
4052
+ "isVirtual": true,
4053
+ "returnByDefault": true,
4054
+ "queryConfig": {
4055
+ "referencedRelationshipFields": ["parent"],
4056
+ "referencedObjectFields": ["adminIDs", "parentAdminIDs"],
4057
+ "flattenProperties": true
4058
+ },
4059
+ "items": {
4060
+ "type": "string",
4061
+ "title": "user ids of parent admins"
4062
+ }
4063
+ },
4064
+ "parentOwnerIDs": {
4065
+ "title": "user ids of parent owners",
4066
+ "type": "array",
4067
+ "viewable": false,
4068
+ "searchable": false,
4069
+ "userEditable": false,
4070
+ "isVirtual": true,
4071
+ "returnByDefault": true,
4072
+ "queryConfig": {
4073
+ "referencedRelationshipFields": ["parent"],
4074
+ "referencedObjectFields": ["ownerIDs", "parentOwnerIDs"],
4075
+ "flattenProperties": true
4076
+ },
4077
+ "items": {
4078
+ "type": "string",
4079
+ "title": "user ids of parent owners"
4080
+ }
4081
+ },
4082
+ "parentIDs": {
4083
+ "title": "parent org ids",
4084
+ "type": "array",
4085
+ "viewable": false,
4086
+ "searchable": false,
4087
+ "userEditable": false,
4088
+ "isVirtual": true,
4089
+ "returnByDefault": true,
4090
+ "queryConfig": {
4091
+ "referencedRelationshipFields": ["parent"],
4092
+ "referencedObjectFields": ["_id", "parentIDs"],
4093
+ "flattenProperties": true
4094
+ },
4095
+ "items": {
4096
+ "type": "string",
4097
+ "title": "parent org ids"
4098
+ }
4099
+ }
4100
+ },
4101
+ "order": [
4102
+ "name",
4103
+ "description",
4104
+ "owners",
4105
+ "admins",
4106
+ "members",
4107
+ "parent",
4108
+ "children",
4109
+ "adminIDs",
4110
+ "ownerIDs",
4111
+ "parentAdminIDs",
4112
+ "parentOwnerIDs",
4113
+ "parentIDs"
4114
+ ],
4115
+ "required": ["name"]
4116
+ }
4117
+ }
4118
+ ]
4119
+ }