You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"description": "Rule defining what actions a role can perform."
722
+
},
723
+
"Action": {
724
+
"type": "string",
725
+
"enum": [
726
+
"admin",
727
+
"list_other_conversations",
728
+
"read_other_conversations",
729
+
"query_other_conversations",
730
+
"delete_other_conversations",
731
+
"query",
732
+
"streaming_query",
733
+
"get_conversation",
734
+
"list_conversations",
735
+
"delete_conversation",
736
+
"feedback",
737
+
"get_models",
738
+
"get_metrics",
739
+
"get_config",
740
+
"info"
741
+
],
742
+
"title": "Action",
743
+
"description": "Available actions in the system."
744
+
},
701
745
"Attachment": {
702
746
"properties": {
703
747
"attachment_type": {
@@ -721,7 +765,7 @@
721
765
"title": "Content",
722
766
"description": "The actual attachment content",
723
767
"examples": [
724
-
"warning: quota exceed"
768
+
"warning: quota exceeded"
725
769
]
726
770
}
727
771
},
@@ -732,7 +776,7 @@
732
776
"content"
733
777
],
734
778
"title": "Attachment",
735
-
"description": "Model representing an attachment that can be send from UI as part of query.\n\nList of attachments can be optional part of 'query' request.\n\nAttributes:\n attachment_type: The attachment type, like \"log\", \"configuration\" etc.\n content_type: The content type as defined in MIME standard\n content: The actual attachment content\n\nYAML attachments with **kind** and **metadata/name** attributes will\nbe handled as resources with specified name:\n```\nkind: Pod\nmetadata:\n name: private-reg\n```",
779
+
"description": "Model representing an attachment that can be send from the UI as part of query.\n\nA list of attachments can be an optional part of 'query' request.\n\nAttributes:\n attachment_type: The attachment type, like \"log\", \"configuration\" etc.\n content_type: The content type as defined in MIME standard\n content: The actual attachment content\n\nYAML attachments with **kind** and **metadata/name** attributes will\nbe handled as resources with the specified name:\n```\nkind: Pod\nmetadata:\n name: private-reg\n```",
"description": "Model representing the details of a user conversation.\n\nAttributes:\n conversation_id: The conversation ID (UUID).\n created_at: When the conversation was created.\n last_message_at: When the last message was sent.\n message_count: Number of user messages in the conversation.\nmodel: The model used for the conversation.\n\nExample:\n ```python\n conversation = ConversationSummary(\n conversation_id=\"123e4567-e89b-12d3-a456-426614174000\"\n created_at=\"2024-01-01T00:00:00Z\",\n last_message_at=\"2024-01-01T00:05:00Z\",\n message_count=5,\nmodel=\"gemini/gemini-2.0-flash\"\n )\n ```"
1111
+
"description": "Model representing the details of a user conversation.\n\nAttributes:\n conversation_id: The conversation ID (UUID).\n created_at: When the conversation was created.\n last_message_at: When the last message was sent.\n message_count: Number of user messages in the conversation.\nlast_used_model: The last model used for the conversation.\n last_used_provider: The provider of the last used model.\n\nExample:\n ```python\n conversation = ConversationDetails(\n conversation_id=\"123e4567-e89b-12d3-a456-426614174000\"\n created_at=\"2024-01-01T00:00:00Z\",\n last_message_at=\"2024-01-01T00:05:00Z\",\n message_count=5,\nlast_used_model=\"gemini/gemini-2.0-flash\",\n last_used_provider=\"gemini\",\n )\n ```"
1044
1112
},
1045
1113
"ConversationResponse": {
1046
1114
"properties": {
@@ -1101,22 +1169,24 @@
1101
1169
"conversations"
1102
1170
],
1103
1171
"title": "ConversationsListResponse",
1104
-
"description": "Model representing a response for listing conversations of a user.\n\nAttributes:\n conversations: List of conversation details associated with the user.\n\nExample:\n ```python\n conversations_list = ConversationsListResponse(\n conversations=[\n ConversationDetails(\n conversation_id=\"123e4567-e89b-12d3-a456-426614174000\",\n created_at=\"2024-01-01T00:00:00Z\",\n last_message_at=\"2024-01-01T00:05:00Z\",\n message_count=5,\n model=\"gemini/gemini-2.0-flash\"\n ),\n ConversationDetails(\n conversation_id=\"456e7890-e12b-34d5-a678-901234567890\"\n created_at=\"2024-01-01T01:00:00Z\",\n message_count=2,\n model=\"gemini/gemini-2.5-flash\"\n )\n ]\n )\n ```",
1172
+
"description": "Model representing a response for listing conversations of a user.\n\nAttributes:\n conversations: List of conversation details associated with the user.\n\nExample:\n ```python\n conversations_list = ConversationsListResponse(\n conversations=[\n ConversationDetails(\n conversation_id=\"123e4567-e89b-12d3-a456-426614174000\",\n created_at=\"2024-01-01T00:00:00Z\",\n last_message_at=\"2024-01-01T00:05:00Z\",\n message_count=5,\n last_used_model=\"gemini/gemini-2.0-flash\",\n last_used_provider=\"gemini\",\n ),\n ConversationDetails(\n conversation_id=\"456e7890-e12b-34d5-a678-901234567890\"\n created_at=\"2024-01-01T01:00:00Z\",\n message_count=2,\n last_used_model=\"gemini/gemini-2.0-flash\",\n last_used_provider=\"gemini\",\n )\n ]\n )\n ```",
"description": "Model representing a response to a info request.\n\nAttributes:\n name: Service name.\n version: Service version.\n\nExample:\n ```python\n info_response = InfoResponse(\n name=\"Lightspeed Stack\",\n version=\"1.0.0\",\n )\n ```",
1537
+
"description": "Model representing a response to an info request.\n\nAttributes:\n name: Service name.\n version: Service version.\n\nExample:\n ```python\n info_response = InfoResponse(\n name=\"Lightspeed Stack\",\n version=\"1.0.0\",\n )\n ```",
1468
1538
"examples": [
1469
1539
{
1470
1540
"name": "Lightspeed Stack",
1471
1541
"version": "1.0.0"
1472
1542
}
1473
1543
]
1474
1544
},
1545
+
"JsonPathOperator": {
1546
+
"type": "string",
1547
+
"enum": [
1548
+
"equals",
1549
+
"contains",
1550
+
"in"
1551
+
],
1552
+
"title": "JsonPathOperator",
1553
+
"description": "Supported operators for JSONPath evaluation."
1554
+
},
1475
1555
"JwkConfiguration": {
1476
1556
"properties": {
1477
1557
"url": {
@@ -1484,7 +1564,8 @@
1484
1564
"$ref": "#/components/schemas/JwtConfiguration",
1485
1565
"default": {
1486
1566
"user_id_claim": "user_id",
1487
-
"username_claim": "username"
1567
+
"username_claim": "username",
1568
+
"role_rules": []
1488
1569
}
1489
1570
}
1490
1571
},
@@ -1506,12 +1587,54 @@
1506
1587
"type": "string",
1507
1588
"title": "Username Claim",
1508
1589
"default": "username"
1590
+
},
1591
+
"role_rules": {
1592
+
"items": {
1593
+
"$ref": "#/components/schemas/JwtRoleRule"
1594
+
},
1595
+
"type": "array",
1596
+
"title": "Role Rules"
1509
1597
}
1510
1598
},
1511
1599
"type": "object",
1512
1600
"title": "JwtConfiguration",
1513
1601
"description": "JWT configuration."
1514
1602
},
1603
+
"JwtRoleRule": {
1604
+
"properties": {
1605
+
"jsonpath": {
1606
+
"type": "string",
1607
+
"title": "Jsonpath"
1608
+
},
1609
+
"operator": {
1610
+
"$ref": "#/components/schemas/JsonPathOperator"
1611
+
},
1612
+
"negate": {
1613
+
"type": "boolean",
1614
+
"title": "Negate",
1615
+
"default": false
1616
+
},
1617
+
"value": {
1618
+
"title": "Value"
1619
+
},
1620
+
"roles": {
1621
+
"items": {
1622
+
"type": "string"
1623
+
},
1624
+
"type": "array",
1625
+
"title": "Roles"
1626
+
}
1627
+
},
1628
+
"type": "object",
1629
+
"required": [
1630
+
"jsonpath",
1631
+
"operator",
1632
+
"value",
1633
+
"roles"
1634
+
],
1635
+
"title": "JwtRoleRule",
1636
+
"description": "Rule for extracting roles from JWT claims."
0 commit comments