mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 16:09:05 +00:00
### **PR Type**
Bug fix
- Support multiple custom roles in single org through the sso claim
parser vrl function.
- Do not allow passing organization name as the organization id in the
sso claim parser.
___
### **Description**
- Support multiple roles per organization
- Group custom roles by org reliably
- Fix tuple creation for multi-role orgs
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["SSO custom_roles claims"] --> B["Parse with split_once(\"/\")"]
B --> C["Group into HashMap<org, Vec<role>>"]
C -- "per org" --> D["Format roles as \"org/role\""]
D --> E["Create role-assignment tuples"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>jwt.rs</strong><dd><code>Group custom roles per org for
tuples</code>
</dd></summary>
<hr>
src/handler/http/auth/jwt.rs
<ul><li>Replace <code>HashMap<String, String></code> with
<code>HashMap<String, Vec<String>></code><br> <li> Parse
<code>custom_roles</code> via <code>split_once('/')</code> into org-role
lists<br> <li> Reuse grouped roles to build <code>"org/role"</code>
tuples<br> <li> Apply same grouping for existing users flow</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10327/files#diff-232cab74f4cbf135af424744272e17732fbda8ac005d33c0acb4597e65479d02">+35/-31</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___