[{"data":1,"prerenderedAt":1151},["ShallowReactive",2],{"navigation":3,"\u002Fauth\u002Froles-and-permissions":189,"\u002Fauth\u002Froles-and-permissions-surround":1146},[4,34,60,116,137,153],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":33},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,18,23,28],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":5,"path":16,"stem":17,"icon":6},"\u002Fgetting-started\u002Fgetting-started","1.getting-started\u002F2.getting-started",{"title":19,"path":20,"stem":21,"icon":22},"Choosing a Preset","\u002Fgetting-started\u002Fchoosing-a-preset","1.getting-started\u002F3.choosing-a-preset","i-lucide-git-branch",{"title":24,"path":25,"stem":26,"icon":27},"Deployment","\u002Fgetting-started\u002Fdeployment","1.getting-started\u002F4.deployment","i-lucide-cloud",{"title":29,"path":30,"stem":31,"icon":32},"Background Maintenance","\u002Fgetting-started\u002Fbackground-maintenance","1.getting-started\u002F5.background-maintenance","i-lucide-timer-reset",false,{"title":35,"icon":36,"path":37,"stem":38,"children":39,"page":33},"Build","i-lucide-wrench","\u002Fbuild","2.build",[40,45,50,55],{"title":41,"path":42,"stem":43,"icon":44},"Routers & Prefixes","\u002Fbuild\u002Frouters-and-prefixes","2.build\u002F1.routers-and-prefixes","i-lucide-route",{"title":46,"path":47,"stem":48,"icon":49},"Configuration","\u002Fbuild\u002Fconfiguration","2.build\u002F2.configuration","i-lucide-settings",{"title":51,"path":52,"stem":53,"icon":54},"Authorization Dependencies","\u002Fbuild\u002Fauthorization-dependencies","2.build\u002F3.authorization-dependencies","i-lucide-shield-check",{"title":56,"path":57,"stem":58,"icon":59},"Command Line","\u002Fbuild\u002Fcli","2.build\u002F4.cli","i-lucide-terminal",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":33},"Auth","i-lucide-lock","\u002Fauth","3.auth",[66,71,76,81,86,91,96,101,106,111],{"title":67,"path":68,"stem":69,"icon":70},"OAuth & Social Login","\u002Fauth\u002Foauth-and-social-login","3.auth\u002F1.oauth-and-social-login","i-lucide-log-in",{"title":72,"path":73,"stem":74,"icon":75},"Multi-Frontend Support","\u002Fauth\u002Fmulti-frontend","3.auth\u002F10.multi-frontend","i-lucide-layout-grid",{"title":77,"path":78,"stem":79,"icon":80},"Sessions & Audit","\u002Fauth\u002Fsessions-and-audit","3.auth\u002F2.sessions-and-audit","i-lucide-monitor-smartphone",{"title":82,"path":83,"stem":84,"icon":85},"Passwordless & Messaging","\u002Fauth\u002Fpasswordless-and-messaging","3.auth\u002F3.passwordless-and-messaging","i-lucide-mail",{"title":87,"path":88,"stem":89,"icon":90},"JWT Tokens","\u002Fauth\u002Fjwt-tokens","3.auth\u002F4.jwt-tokens","i-lucide-key-round",{"title":92,"path":93,"stem":94,"icon":95},"User Management API","\u002Fauth\u002Fuser-management-api","3.auth\u002F5.user-management-api","i-lucide-users",{"title":97,"path":98,"stem":99,"icon":100},"User Invitations","\u002Fauth\u002Fuser-invitations","3.auth\u002F6.user-invitations","i-lucide-send",{"title":102,"path":103,"stem":104,"icon":105},"Roles & Permissions","\u002Fauth\u002Froles-and-permissions","3.auth\u002F7.roles-and-permissions","i-lucide-shield",{"title":107,"path":108,"stem":109,"icon":110},"ABAC","\u002Fauth\u002Fabac","3.auth\u002F8.abac","i-lucide-filter",{"title":112,"path":113,"stem":114,"icon":115},"User Status","\u002Fauth\u002Fuser-status","3.auth\u002F9.user-status","i-lucide-user-cog",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":33},"Enterprise","i-lucide-building-2","\u002Fenterprise","4.enterprise",[122,127,132],{"title":123,"path":124,"stem":125,"icon":126},"Core Authorization Concepts","\u002Fenterprise\u002Fcore-authorization-concepts","4.enterprise\u002F1.core-authorization-concepts","i-lucide-network",{"title":128,"path":129,"stem":130,"icon":131},"Entities","\u002Fenterprise\u002Fentities","4.enterprise\u002F2.entities","i-lucide-folder-tree",{"title":133,"path":134,"stem":135,"icon":136},"Entity Memberships","\u002Fenterprise\u002Fentity-memberships","4.enterprise\u002F3.entity-memberships","i-lucide-user-plus",{"title":138,"icon":139,"path":140,"stem":141,"children":142,"page":33},"Integrations","i-lucide-plug","\u002Fintegrations","5.integrations",[143,148],{"title":144,"path":145,"stem":146,"icon":147},"API Keys","\u002Fintegrations\u002Fapi-keys","5.integrations\u002F1.api-keys","i-lucide-key",{"title":149,"path":150,"stem":151,"icon":152},"OutlabsAuth UI","\u002Fintegrations\u002Foutlabsauth-ui","5.integrations\u002F2.outlabsauth-ui","i-lucide-layout-dashboard",{"title":154,"icon":155,"path":156,"stem":157,"children":158,"page":33},"Reference","i-lucide-book-marked","\u002Freference","6.reference",[159,164,169,174,179,184],{"title":160,"path":161,"stem":162,"icon":163},"Data Models","\u002Freference\u002Fdata-models","6.reference\u002F1.data-models","i-lucide-database",{"title":165,"path":166,"stem":167,"icon":168},"Activity Tracking","\u002Freference\u002Factivity-tracking","6.reference\u002F2.activity-tracking","i-lucide-activity",{"title":170,"path":171,"stem":172,"icon":173},"Testing","\u002Freference\u002Ftesting","6.reference\u002F3.testing","i-lucide-flask-conical",{"title":175,"path":176,"stem":177,"icon":178},"Observability","\u002Freference\u002Fobservability","6.reference\u002F4.observability","i-lucide-eye",{"title":180,"path":181,"stem":182,"icon":183},"Metrics Reference","\u002Freference\u002Fmetrics-reference","6.reference\u002F5.metrics-reference","i-lucide-chart-bar",{"title":185,"path":186,"stem":187,"icon":188},"Log Events Reference","\u002Freference\u002Flog-events-reference","6.reference\u002F6.log-events-reference","i-lucide-scroll-text",{"id":190,"title":102,"body":191,"description":1139,"extension":1140,"links":1141,"meta":1142,"navigation":1143,"path":103,"seo":1144,"stem":104,"__hash__":1145},"docs\u002F3.auth\u002F7.roles-and-permissions.md",{"type":192,"value":193,"toc":1124},"minimark",[194,206,209,214,311,314,350,352,358,562,591,617,628,635,637,643,648,816,820,855,859,904,907,935,939,957,959,963,1032,1034,1038,1090,1094,1120],[195,196,197],"note",{},[198,199,200,201,205],"p",{},"Catalog and role ",[202,203,204],"em",{},"definitions"," (not who has them).",[207,208],"hr",{},[210,211,213],"h2",{"id":212},"mental-model","Mental model",[215,216,217,233],"table",{},[218,219,220],"thead",{},[221,222,223,227,230],"tr",{},[224,225,226],"th",{},"Layer",[224,228,229],{},"What it is",[224,231,232],{},"Where",[234,235,236,258,273,293],"tbody",{},[221,237,238,245,253],{},[239,240,241],"td",{},[242,243,244],"strong",{},"Catalog",[239,246,247,248,252],{},"Permission names (",[249,250,251],"code",{},"resource:action",")",[239,254,255],{},[249,256,257],{},"\u002Fv1\u002Fpermissions",[221,259,260,265,268],{},[239,261,262],{},[242,263,264],{},"Definitions",[239,266,267],{},"Roles + which permissions they carry",[239,269,270],{},[249,271,272],{},"\u002Fv1\u002Froles",[221,274,275,280,283],{},[239,276,277],{},[242,278,279],{},"Direct assign",[239,281,282],{},"User ↔ role",[239,284,285,288,289],{},[249,286,287],{},"\u002Fv1\u002Fusers\u002F{id}\u002Froles"," → ",[290,291,292],"a",{"href":93},"23",[221,294,295,300,303],{},[239,296,297],{},[242,298,299],{},"Entity assign",[239,301,302],{},"User ↔ entity + roles",[239,304,305,288,308],{},[249,306,307],{},"\u002Fv1\u002Fmemberships",[290,309,310],{"href":134},"54",[198,312,313],{},"This page is catalog + definitions only.",[315,316,321],"pre",{"className":317,"code":318,"language":319,"meta":320,"style":320},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from outlabs_auth.routers import get_roles_router, get_permissions_router\n\napp.include_router(get_roles_router(auth, prefix=\"\u002Fv1\u002Froles\"))\napp.include_router(get_permissions_router(auth, prefix=\"\u002Fv1\u002Fpermissions\"))\n","python","",[249,322,323,331,338,344],{"__ignoreMap":320},[324,325,328],"span",{"class":326,"line":327},"line",1,[324,329,330],{},"from outlabs_auth.routers import get_roles_router, get_permissions_router\n",[324,332,334],{"class":326,"line":333},2,[324,335,337],{"emptyLinePlaceholder":336},true,"\n",[324,339,341],{"class":326,"line":340},3,[324,342,343],{},"app.include_router(get_roles_router(auth, prefix=\"\u002Fv1\u002Froles\"))\n",[324,345,347],{"class":326,"line":346},4,[324,348,349],{},"app.include_router(get_permissions_router(auth, prefix=\"\u002Fv1\u002Fpermissions\"))\n",[207,351],{},[210,353,355,356,252],{"id":354},"permissions-catalog-v1permissions","Permissions catalog (",[249,357,257],{},[215,359,360,376],{},[218,361,362],{},[221,363,364,367,370,373],{},[224,365,366],{},"Method",[224,368,369],{},"Path",[224,371,372],{},"Permission",[224,374,375],{},"Notes",[234,377,378,408,437,455,478,497,521,539],{},[221,379,380,385,390,395],{},[239,381,382],{},[249,383,384],{},"GET",[239,386,387],{},[249,388,389],{},"\u002F",[239,391,392],{},[249,393,394],{},"permission:read",[239,396,397,398,401,402,401,405],{},"Paginated. Query: ",[249,399,400],{},"page",", ",[249,403,404],{},"limit",[249,406,407],{},"resource",[221,409,410,415,419,424],{},[239,411,412],{},[249,413,414],{},"POST",[239,416,417],{},[249,418,389],{},[239,420,421],{},[249,422,423],{},"permission:create",[239,425,426,429,430,433,434,436],{},[249,427,428],{},"PermissionCreateRequest"," — ",[249,431,432],{},"name"," must be ",[249,435,251],{}," (409 on duplicate)",[221,438,439,443,448,452],{},[239,440,441],{},[249,442,384],{},[239,444,445],{},[249,446,447],{},"\u002F{permission_id}",[239,449,450],{},[249,451,394],{},[239,453,454],{},"One permission",[221,456,457,462,466,471],{},[239,458,459],{},[249,460,461],{},"PATCH",[239,463,464],{},[249,465,447],{},[239,467,468],{},[249,469,470],{},"permission:update",[239,472,473,474,477],{},"Display\u002Fstatus\u002Ftags — ",[242,475,476],{},"not"," rename",[221,479,480,485,489,494],{},[239,481,482],{},[249,483,484],{},"DELETE",[239,486,487],{},[249,488,447],{},[239,490,491],{},[249,492,493],{},"permission:delete",[239,495,496],{},"System permissions blocked in service",[221,498,499,503,508,511],{},[239,500,501],{},[249,502,384],{},[239,504,505],{},[249,506,507],{},"\u002Fme",[239,509,510],{},"Authenticated",[239,512,513,514,517,518,252],{},"Current user’s permission ",[242,515,516],{},"names"," (",[249,519,520],{},"list[str]",[221,522,523,527,532,536],{},[239,524,525],{},[249,526,384],{},[239,528,529],{},[249,530,531],{},"\u002Fuser\u002F{user_id}",[239,533,534],{},[249,535,394],{},[239,537,538],{},"Another user’s permission names",[221,540,541,545,550,555],{},[239,542,543],{},[249,544,414],{},[239,546,547],{},[249,548,549],{},"\u002Fcheck",[239,551,552],{},[249,553,554],{},"permission:check",[239,556,557,558,561],{},"Batch check; optional ",[249,559,560],{},"entity_id"," for entity\u002Ftree context",[198,563,564,567,568,401,571,573,574,401,577,580,581,517,584,401,587,590],{},[242,565,566],{},"Schemas:"," ",[249,569,570],{},"PermissionResponse",[249,572,428],{},",\n",[249,575,576],{},"PermissionUpdateRequest",[249,578,579],{},"PermissionCheckRequest"," \u002F\n",[249,582,583],{},"PermissionCheckResponse",[249,585,586],{},"has_all_permissions",[249,588,589],{},"results"," map).",[592,593,594],"blockquote",{},[198,595,596,598,599,602,603,605,606,609,610,613,614,616],{},[249,597,507],{}," and ",[249,600,601],{},"\u002Fuser\u002F{id}"," accept ",[249,604,560],{}," in query today but the service path\nmay not apply it. For “can they do X ",[242,607,608],{},"here","?”, prefer\n",[249,611,612],{},"POST \u002Fcheck"," with ",[249,615,560],{},".",[198,618,619,620,623,624,627],{},"For effective permissions ",[242,621,622],{},"with sources"," (role vs membership), use\n",[249,625,626],{},"GET \u002Fv1\u002Fusers\u002F{id}\u002Fpermissions"," on the users router.",[198,629,630,631,634],{},"ABAC condition groups\u002Fconditions also hang off ",[249,632,633],{},"\u002F{permission_id}\u002F…"," when you\nuse ABAC — same pattern as roles below.",[207,636],{},[210,638,640,641,252],{"id":639},"roles-v1roles","Roles (",[249,642,272],{},[644,645,647],"h3",{"id":646},"crud-and-permission-sets","CRUD and permission sets",[215,649,650,662],{},[218,651,652],{},[221,653,654,656,658,660],{},[224,655,366],{},[224,657,369],{},[224,659,372],{},[224,661,375],{},[234,663,664,694,715,733,758,776,797],{},[221,665,666,670,674,679],{},[239,667,668],{},[249,669,384],{},[239,671,672],{},[249,673,389],{},[239,675,676],{},[249,677,678],{},"role:read",[239,680,397,681,401,683,401,685,401,688,401,691],{},[249,682,400],{},[249,684,404],{},[249,686,687],{},"search",[249,689,690],{},"is_global",[249,692,693],{},"root_entity_id",[221,695,696,700,704,709],{},[239,697,698],{},[249,699,414],{},[239,701,702],{},[249,703,389],{},[239,705,706],{},[249,707,708],{},"role:create",[239,710,711,714],{},[249,712,713],{},"RoleCreateRequest",". Actor must already hold every permission they attach",[221,716,717,721,726,730],{},[239,718,719],{},[249,720,384],{},[239,722,723],{},[249,724,725],{},"\u002F{role_id}",[239,727,728],{},[249,729,678],{},[239,731,732],{},"One role",[221,734,735,739,743,748],{},[239,736,737],{},[249,738,461],{},[239,740,741],{},[249,742,725],{},[239,744,745],{},[249,746,747],{},"role:update",[239,749,750,753,754,757],{},[249,751,752],{},"RoleUpdateRequest","; ",[249,755,756],{},"permissions"," replaces the set when sent",[221,759,760,764,768,773],{},[239,761,762],{},[249,763,484],{},[239,765,766],{},[249,767,725],{},[239,769,770],{},[249,771,772],{},"role:delete",[239,774,775],{},"204",[221,777,778,782,787,791],{},[239,779,780],{},[249,781,414],{},[239,783,784],{},[249,785,786],{},"\u002F{role_id}\u002Fpermissions",[239,788,789],{},[249,790,747],{},[239,792,793,794,796],{},"Body: ",[249,795,520],{}," permission names to add",[221,798,799,803,807,811],{},[239,800,801],{},[249,802,484],{},[239,804,805],{},[249,806,786],{},[239,808,809],{},[249,810,747],{},[239,812,793,813,815],{},[249,814,520],{}," to remove",[644,817,819],{"id":818},"enterprise-helper","Enterprise helper",[215,821,822,834],{},[218,823,824],{},[221,825,826,828,830,832],{},[224,827,366],{},[224,829,369],{},[224,831,372],{},[224,833,375],{},[234,835,836],{},[221,837,838,842,847,852],{},[239,839,840],{},[249,841,384],{},[239,843,844],{},[249,845,846],{},"\u002Fentity\u002F{entity_id}",[239,848,849,850],{},"Tree ",[249,851,678],{},[239,853,854],{},"Roles available for that entity (pickers \u002F memberships UI)",[644,856,858],{"id":857},"role-response-fields-worth-knowing","Role response fields worth knowing",[198,860,861,864,865,401,867,401,870,573,873,401,876,401,878,881,882,580,884,401,887,517,890,893,894,897,898,401,901,616],{},[249,862,863],{},"RoleResponse"," includes: ",[249,866,432],{},[249,868,869],{},"display_name",[249,871,872],{},"permissions[]",[249,874,875],{},"is_system_role",[249,877,690],{},[249,879,880],{},"status",", optional ",[249,883,693],{},[249,885,886],{},"scope_entity_id",[249,888,889],{},"scope",[249,891,892],{},"entity_only"," | ",[249,895,896],{},"hierarchy","),\n",[249,899,900],{},"assignable_at_types[]",[249,902,903],{},"is_auto_assigned",[198,905,906],{},"Enterprise tips:",[908,909,910,921,924,930],"ul",{},[911,912,913,914,917,918],"li",{},"Non-global actors only manage roles in their trees; system-wide roles they\ncannot touch → ",[242,915,916],{},"403","; out-of-tree → ",[242,919,920],{},"404",[911,922,923],{},"SimpleRBAC treats list\u002Fcreate visibility as effectively global",[911,925,926,929],{},[249,927,928],{},"assignable_at_types"," limits which entity types may receive the role",[911,931,932,934],{},[249,933,903],{}," can auto-apply on membership create\u002Fupdate",[644,936,938],{"id":937},"abac-on-roles-when-enabled","ABAC on roles (when enabled)",[198,940,941,942,598,945,948,949,951,952,954,955,616],{},"Under ",[249,943,944],{},"\u002F{role_id}\u002Fcondition-groups",[249,946,947],{},"\u002F{role_id}\u002Fconditions"," — CRUD with\n",[249,950,678],{}," \u002F ",[249,953,747],{},". Walkthrough: ",[290,956,107],{"href":108},[207,958],{},[210,960,962],{"id":961},"simple-vs-enterprise","Simple vs Enterprise",[215,964,965,978],{},[218,966,967],{},[221,968,969,972,975],{},[224,970,971],{},"Concern",[224,973,974],{},"SimpleRBAC",[224,976,977],{},"EnterpriseRBAC",[234,979,980,991,1004,1021],{},[221,981,982,985,988],{},[239,983,984],{},"Role visibility",[239,986,987],{},"System-wide",[239,989,990],{},"Scoped to actor’s entity access",[221,992,993,998,1001],{},[239,994,995],{},[249,996,997],{},"GET \u002Froles\u002Fentity\u002F{id}",[239,999,1000],{},"Rarely useful",[239,1002,1003],{},"Primary picker for memberships",[221,1005,1006,1009,1012],{},[239,1007,1008],{},"Tree permissions",[239,1010,1011],{},"Unused",[239,1013,1014,1017,1018],{},[249,1015,1016],{},"resource:action_tree"," + ",[249,1019,1020],{},"\u002Fpermissions\u002Fcheck?entity_id=",[221,1022,1023,1026,1029],{},[239,1024,1025],{},"Assign path",[239,1027,1028],{},"Users router direct roles",[239,1030,1031],{},"Prefer memberships; direct assign for org-wide roles",[207,1033],{},[210,1035,1037],{"id":1036},"suggested-host-flow","Suggested host flow",[1039,1040,1041,1047,1050,1075,1085],"ol",{},[911,1042,1043,1044,1046],{},"Seed or create permissions (",[249,1045,251],{},").",[911,1048,1049],{},"Create roles and attach permission lists (delegation check applies).",[911,1051,1052,567,1055,616,1058,1061,567,1064,613,1067,1070,1071,1074],{},[242,1053,1054],{},"Simple:",[249,1056,1057],{},"POST \u002Fv1\u002Fusers\u002F{id}\u002Froles",[1059,1060],"br",{},[242,1062,1063],{},"Enterprise:",[249,1065,1066],{},"POST \u002Fv1\u002Fmemberships\u002F",[249,1068,1069],{},"role_ids","; use\n",[249,1072,1073],{},"GET \u002Fv1\u002Froles\u002Fentity\u002F{entity_id}"," in the UI.",[911,1076,1077,1078,1081,1082,1084],{},"Gate product UI with ",[249,1079,1080],{},"POST \u002Fv1\u002Fpermissions\u002Fcheck"," (and ",[249,1083,560],{}," when needed).",[911,1086,1087,1088,616],{},"Optional attribute conditions: ",[290,1089,107],{"href":108},[210,1091,1093],{"id":1092},"related","Related",[908,1095,1096,1100,1104,1108,1112,1116],{},[911,1097,1098],{},[290,1099,41],{"href":42},[911,1101,1102],{},[290,1103,92],{"href":93},[911,1105,1106],{},[290,1107,107],{"href":108},[911,1109,1110],{},[290,1111,128],{"href":129},[911,1113,1114],{},[290,1115,133],{"href":134},[911,1117,1118],{},[290,1119,123],{"href":124},[1121,1122,1123],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":320,"searchDepth":327,"depth":333,"links":1125},[1126,1127,1129,1136,1137,1138],{"id":212,"depth":333,"text":213},{"id":354,"depth":333,"text":1128},"Permissions catalog (\u002Fv1\u002Fpermissions)",{"id":639,"depth":333,"text":1130,"children":1131},"Roles (\u002Fv1\u002Froles)",[1132,1133,1134,1135],{"id":646,"depth":340,"text":647},{"id":818,"depth":340,"text":819},{"id":857,"depth":340,"text":858},{"id":937,"depth":340,"text":938},{"id":961,"depth":333,"text":962},{"id":1036,"depth":333,"text":1037},{"id":1092,"depth":333,"text":1093},"Permission catalog and role definitions.","md",null,{},{"icon":105},{"title":102,"description":1139},"i0fAC4flX-AxP7YhIWkr7fXHdhn2dZiuQP9sLNqpKYU",[1147,1149],{"title":97,"path":98,"stem":99,"description":1148,"icon":100,"children":-1},"Invite-by-email onboarding.",{"title":107,"path":108,"stem":109,"description":1150,"icon":110,"children":-1},"Attribute conditions on roles and permissions.",1787472745731]