{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml","oas-api-reference/management.yml":"oas-api-reference/management.yml"},"props":{"metadata":{"markdoc":{"tagList":["cards","card","admonition","tabs","tab","openapi-code-sample"]},"type":"markdown"},"seo":{"title":"Security Model Overview","siteUrl":"https://docs.synqly.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"security-model-overview","__idx":0},"children":["Security Model Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Security Model defines how identities authenticate to Synqly and how access to resources is authorized. It applies consistently across the Management API, Connector APIs and MCP servers."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The model combines permission sets, resource restrictions, roles, and scoped tokens to enforce least-privilege access while supporting auditing, delegation, and enterprise governance requirements."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you haven't read ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/concepts"},"children":["Understanding the Synqly Model"]}," yet, start there — it covers organizations, accounts, and members, which the Security Model acts on."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-authorization-is-determined","__idx":1},"children":["How authorization is determined"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section explains the RBAC model that the token types are built on. It provides the context needed when designing roles, troubleshooting unexpected access denials, or understanding why a token has a particular level of access."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Synqly's authorization model is built on three building blocks:"]},{"$$mdtype":"Tag","name":"Cards","attributes":{"columns":3,"cardMinWidth":240},"children":[{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Permission sets","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"#permission-sets"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What can you do?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A named bundle of API actions. Fixed catalogue — you pick, not compose."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Resources","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"#resources"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["On which objects?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Restrict by account ID, label, environment, or integration category."]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Roles","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"#roles"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Reusable pairing"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Named combination of permission set + resource restrictions. Bind to members."]}]}]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    ps(\"Permission Set\\n(the verbs)\")\n    res(\"Resources\\n(the nouns)\")\n    role(\"Role\\n(named combination)\")\n    member(\"Member\\n(person or service)\")\n\n    ps --> role\n    res --> role\n    role --> member\n","diagramHtml":"<svg id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 614.5625px;\" viewBox=\"0 0 614.5625 222\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .error-icon{fill:#552222;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .error-text{fill:#552222;stroke:#552222;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-thickness-normal{stroke-width:1px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-thickness-thick{stroke-width:3.5px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-pattern-solid{stroke-dasharray:0;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .marker{fill:#333333;stroke:#333333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .marker.cross{stroke:#333333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 p{margin:0;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .cluster-label text{fill:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .cluster-label span{color:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .cluster-label span p{background-color:transparent;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .label text,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 span{fill:#333;color:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node rect,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node circle,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node ellipse,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node polygon,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .rough-node .label text,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node .label text,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .image-shape .label,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .icon-shape .label{text-anchor:middle;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .rough-node .label,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node .label,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .image-shape .label,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .icon-shape .label{text-align:center;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node.clickable{cursor:pointer;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .arrowheadPath{fill:#333333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .flowchart-link{stroke:#333333;fill:none;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .cluster text{fill:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .cluster span{color:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 rect.text{fill:none;stroke-width:0;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .icon-shape,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .icon-shape p,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .icon-shape .label rect,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 .node .neo-node{stroke:#9370DB;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node rect,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].cluster rect,#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M148.438,47L152.604,47C156.771,47,165.104,47,176.493,50.853C187.881,54.706,202.325,62.411,209.546,66.264L216.768,70.117\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-L_ps_role_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_ps_role_0\" data-points=\"W3sieCI6MTQ4LjQzNzUsInkiOjQ3fSx7IngiOjE3My40Mzc1LCJ5Ijo0N30seyJ4IjoyMjAuMjk3MjQxMjEwOTM3NSwieSI6NzJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointEnd)\"></path><path d=\"M135.633,175L141.934,175C148.234,175,160.836,175,174.358,171.147C187.881,167.294,202.325,159.589,209.546,155.736L216.768,151.883\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-L_res_role_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_res_role_0\" data-points=\"W3sieCI6MTM1LjYzMjgxMjUsInkiOjE3NX0seyJ4IjoxNzMuNDM3NSwieSI6MTc1fSx7IngiOjIyMC4yOTcyNDEyMTA5Mzc1LCJ5IjoxNTB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointEnd)\"></path><path d=\"M388.359,111L392.526,111C396.693,111,405.026,111,412.693,111C420.359,111,427.359,111,430.859,111L434.359,111\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-L_role_member_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_role_member_0\" data-points=\"W3sieCI6Mzg4LjM1OTM3NSwieSI6MTExfSx7IngiOjQxMy4zNTkzNzUsInkiOjExMX0seyJ4Ijo0MzguMzU5Mzc1LCJ5IjoxMTF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_ps_role_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_res_role_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_role_member_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-flowchart-ps-0\" data-look=\"classic\" transform=\"translate(78.21875, 47)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-70.21875\" y=\"-39\" width=\"140.4375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-55.21875, -24)\"><rect></rect><foreignObject width=\"110.4375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Permission Set<br>(the verbs)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-flowchart-res-1\" data-look=\"classic\" transform=\"translate(78.21875, 175)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-57.4140625\" y=\"-39\" width=\"114.828125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-42.4140625, -24)\"><rect></rect><foreignObject width=\"84.828125\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Resources<br>(the nouns)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-flowchart-role-2\" data-look=\"classic\" transform=\"translate(293.3984375, 111)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-94.9609375\" y=\"-39\" width=\"189.921875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-79.9609375, -24)\"><rect></rect><foreignObject width=\"159.921875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Role<br>(named combination)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-flowchart-member-3\" data-look=\"classic\" transform=\"translate(522.4609375, 111)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-84.1015625\" y=\"-39\" width=\"168.203125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-69.1015625, -24)\"><rect></rect><foreignObject width=\"138.203125\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Member<br>(person or service)</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-3ee5ea6ea2b858f27cf3a64392a3f49196bf5ac4b4e447dcb27501b5a961dc31-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 614.5625px;\" viewBox=\"0 0 614.5625 222\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .error-icon{fill:#a44141;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .error-text{fill:#ddd;stroke:#ddd;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-thickness-normal{stroke-width:1px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-thickness-thick{stroke-width:3.5px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-pattern-solid{stroke-dasharray:0;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-pattern-dashed{stroke-dasharray:3;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edge-pattern-dotted{stroke-dasharray:2;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .marker{fill:lightgrey;stroke:lightgrey;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .marker.cross{stroke:lightgrey;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e svg{font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:16px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e p{margin:0;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .label{font-family:\"Redocly Mermaid Sans\",sans-serif;color:#ccc;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .cluster-label text{fill:#F9FFFE;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .cluster-label span{color:#F9FFFE;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .cluster-label span p{background-color:transparent;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .label text,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e span{fill:#ccc;color:#ccc;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node rect,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node circle,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node ellipse,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node polygon,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .rough-node .label text,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node .label text,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .image-shape .label,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .icon-shape .label{text-anchor:middle;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .rough-node .label,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node .label,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .image-shape .label,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .icon-shape .label{text-align:center;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node.clickable{cursor:pointer;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .arrowheadPath{fill:lightgrey;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .flowchart-link{stroke:lightgrey;fill:none;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .cluster text{fill:#F9FFFE;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .cluster span{color:#F9FFFE;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e rect.text{fill:none;stroke-width:0;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .icon-shape,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .icon-shape p,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .icon-shape .label rect,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e .node .neo-node{stroke:#ccc;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node rect,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].cluster rect,#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node polygon{stroke:url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node path{stroke:url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-gradient);stroke-width:1px;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node circle{stroke:url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e :root{--mermaid-font-family:\"Redocly Mermaid Sans\",sans-serif;}</style><g><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M148.438,47L152.604,47C156.771,47,165.104,47,176.493,50.853C187.881,54.706,202.325,62.411,209.546,66.264L216.768,70.117\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-L_ps_role_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_ps_role_0\" data-points=\"W3sieCI6MTQ4LjQzNzUsInkiOjQ3fSx7IngiOjE3My40Mzc1LCJ5Ijo0N30seyJ4IjoyMjAuMjk3MjQxMjEwOTM3NSwieSI6NzJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointEnd)\"></path><path d=\"M135.633,175L141.934,175C148.234,175,160.836,175,174.358,171.147C187.881,167.294,202.325,159.589,209.546,155.736L216.768,151.883\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-L_res_role_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_res_role_0\" data-points=\"W3sieCI6MTM1LjYzMjgxMjUsInkiOjE3NX0seyJ4IjoxNzMuNDM3NSwieSI6MTc1fSx7IngiOjIyMC4yOTcyNDEyMTA5Mzc1LCJ5IjoxNTB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointEnd)\"></path><path d=\"M388.359,111L392.526,111C396.693,111,405.026,111,412.693,111C420.359,111,427.359,111,430.859,111L434.359,111\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-L_role_member_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_role_member_0\" data-points=\"W3sieCI6Mzg4LjM1OTM3NSwieSI6MTExfSx7IngiOjQxMy4zNTkzNzUsInkiOjExMX0seyJ4Ijo0MzguMzU5Mzc1LCJ5IjoxMTF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_ps_role_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_res_role_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_role_member_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-flowchart-ps-0\" data-look=\"classic\" transform=\"translate(78.21875, 47)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-70.21875\" y=\"-39\" width=\"140.4375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-55.21875, -24)\"><rect></rect><foreignObject width=\"110.4375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Permission Set<br>(the verbs)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-flowchart-res-1\" data-look=\"classic\" transform=\"translate(78.21875, 175)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-57.4140625\" y=\"-39\" width=\"114.828125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-42.4140625, -24)\"><rect></rect><foreignObject width=\"84.828125\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Resources<br>(the nouns)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-flowchart-role-2\" data-look=\"classic\" transform=\"translate(293.3984375, 111)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-94.9609375\" y=\"-39\" width=\"189.921875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-79.9609375, -24)\"><rect></rect><foreignObject width=\"159.921875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Role<br>(named combination)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-flowchart-member-3\" data-look=\"classic\" transform=\"translate(522.4609375, 111)\"><rect class=\"basic label-container\" style=\"\" rx=\"5\" ry=\"5\" x=\"-84.1015625\" y=\"-39\" width=\"168.203125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-69.1015625, -24)\"><rect></rect><foreignObject width=\"138.203125\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Member<br>(person or service)</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-ccf9037fa1e49a3581e5651b6900eb7aebc3c694af2d32713105f1edfb40800e-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart LR\n    ps(\"Permission Set\\n(the verbs)\")\n    res(\"Resources\\n(the nouns)\")\n    role(\"Role\\n(named combination)\")\n    member(\"Member\\n(person or service)\")\n\n    ps --> role\n    res --> role\n    role --> member\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"permission-sets","__idx":2},"children":["Permission sets"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A permission set is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["named, predefined bundle of API actions"]},". You pick from a fixed catalogue — you don't assemble one from scratch."]},{"$$mdtype":"Tag","name":"Cards","attributes":{"columns":2,"cardMinWidth":240},"children":[{"$$mdtype":"Tag","name":"Card","attributes":{"title":"administrator","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full administrative access"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"viewer","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Read-only access across all resources"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"account-manager","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create and manage accounts, integrations, credentials"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"member","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Minimum access — log in, view own profile, basic status"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"connect-ui","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Power a Connect UI widget — create/delete integrations and credentials only"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"token-issuer","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Issue integration tokens, nothing else"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"mcp-integrations-use-only","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Read accounts/integrations + call Connector APIs"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"mcp-management","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create/update integrations, no Connector API access"]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"What exactly does a permission set allow?"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Don't guess — query the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.synqly.com/api-reference/management/permissionset"},"children":["Permission Sets API"]},". It returns the precise list of API actions each set grants."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"resources","__idx":3},"children":["Resources"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A permission set says ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["what you can do"]}," — but to ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["what"]},"? Without a resource restriction, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["administrator"]}," means administrator over ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["everything"]}," in your organization. Resources let you apply restrictions across three dimensions:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Organizations"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.organizations"]},") — restrict by organization ID or label"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Accounts"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.accounts"]},") — restrict by account ID, label, or environment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Integrations"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.integrations"]},") — restrict by connector category"]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"Restrict by account ID","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"resources:\n  accounts:\n    ids: [\"account-123\", \"account-456\"]\n","lang":"yaml"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"Restrict by label + environment","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"resources:\n  accounts:\n    labels: [\"customer-success-team\"]\n    environments: [\"prod\"]\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When both ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["labels"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["environments"]}," are specified, both must match — it's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AND"]}," logic, not OR. Valid environment values are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"test\""]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"prod\""]},"."]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"Restrict by integration category","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"resources:\n  integrations:\n    categories: [\"siem\", \"ticketing\"]\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Valid category values: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["appsec"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assets"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chat"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cloudsecurity"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custom"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["edr"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["emailsecurity"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["endpointmanagement"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["identity"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["incidentresponse"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["operations"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["siem"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ticketing"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vulnerabilities"]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"Restrict by organization","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"resources:\n  organizations:\n    ids: [\"org-123\"]\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["*"]}," to grant access to all organizations. You can also restrict by label using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["labels: [\"enterprise-tier\"]"]},"."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"roles","__idx":4},"children":["Roles"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A role is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["permission set + resource restriction, given a name"]}," so you can reuse it across tokens and members."]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-api-reference/management.yml","operationId":"roles_create","language":"curl","parameters":{},"requestBody":{"name":"production-account-manager","resources":{"accounts":{"environments":["prod"],"labels":["customer-success-team"]}},"permission_set":"account-manager"},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.synqly.com/api-reference/management/roles"},"children":["Roles API reference"]}," for full create/list operations."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"members","__idx":5},"children":["Members"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A role does nothing until it's bound to a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["member"]}," — a human user or a service account. A member's effective access is the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["union"]}," of all their role bindings."]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-api-reference/management.yml","operationId":"members_create","language":"curl","parameters":{},"requestBody":{"name":"user@example.com","secret":"password123","role_binding":["production-account-manager"]},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Multiple role bindings are OR'd, not AND'd"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If any one of a member's roles permits an action, that action is permitted. Roles only ever ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["add"]}," capability — they cannot be used to carve exceptions from each other."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.synqly.com/api-reference/management/members"},"children":["Members API reference"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-synqly-uses-role-based-access-control","__idx":6},"children":["Why Synqly uses role-based access control"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Synqly uses role-based access control (RBAC) to support least-privilege access, resource isolation, and auditability. Instead of granting broad access through shared credentials, RBAC allows permissions to be assigned according to a caller's responsibilities and constrained to specific resources."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Shared credentials"},"children":["Shared credentials"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Role-based access control"},"children":["Role-based access control"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One credential is used by multiple callers"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Each caller receives only the permissions required for its role"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A credential compromise can expose all accessible resources"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Access is limited to the permissions and resource restriction assigned to that role"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Actions cannot be reliably attributed to an individual caller"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Actions are attributed to a specific member, service account, or token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Access boundaries depend on how callers use the credential"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Access boundaries are enforced by the platform"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A resource restriction is not a convention or expectation about how a caller should behave. It is a platform-enforced boundary that is evaluated on every request."]}]},"headings":[{"value":"Security Model Overview","id":"security-model-overview","depth":1},{"value":"How authorization is determined","id":"how-authorization-is-determined","depth":2},{"value":"Permission sets","id":"permission-sets","depth":3},{"value":"Resources","id":"resources","depth":3},{"value":"Roles","id":"roles","depth":3},{"value":"Members","id":"members","depth":3},{"value":"Why Synqly uses role-based access control","id":"why-synqly-uses-role-based-access-control","depth":2}],"frontmatter":{"slug":"guides/security-model","seo":{"title":"Security Model Overview"}},"lastModified":"2026-07-02T06:20:08.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/security-model","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}