From 1a2f4631d0f01a1cf7849587f672c1604712ec28 Mon Sep 17 00:00:00 2001 From: Mendon Kissling <59585235+mendonk@users.noreply.github.com> Date: Tue, 6 May 2025 13:52:15 -0400 Subject: [PATCH] docs: bump openapi.json to 1.4.0 (#7921) bump-to-1.4.0 --- docs/openapi.json | 1143 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 1020 insertions(+), 123 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index 5310fb379..7b1121b31 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Langflow", - "version": "1.3.4" + "version": "1.4.0" }, "paths": { "/api/v1/build/{flow_id}/vertices": { @@ -1846,7 +1846,7 @@ "Flows" ], "summary": "Read Flows", - "description": "Retrieve a list of flows with pagination support.\n\nArgs:\n current_user (User): The current authenticated user.\n session (Session): The database session.\n settings_service (SettingsService): The settings service.\n components_only (bool, optional): Whether to return only components. Defaults to False.\n\n get_all (bool, optional): Whether to return all flows without pagination. Defaults to True.\n **This field must be True because of backward compatibility with the frontend - Release: 1.0.20**\n\n folder_id (UUID, optional): The folder ID. Defaults to None.\n params (Params): Pagination parameters.\n remove_example_flows (bool, optional): Whether to remove example flows. Defaults to False.\n header_flows (bool, optional): Whether to return only specific headers of the flows. Defaults to False.\n\nReturns:\n list[FlowRead] | Page[FlowRead] | list[FlowHeader]\n A list of flows or a paginated response containing the list of flows or a list of flow headers.", + "description": "Retrieve a list of flows with pagination support.\n\nArgs:\n current_user (User): The current authenticated user.\n session (Session): The database session.\n settings_service (SettingsService): The settings service.\n components_only (bool, optional): Whether to return only components. Defaults to False.\n\n get_all (bool, optional): Whether to return all flows without pagination. Defaults to True.\n **This field must be True because of backward compatibility with the frontend - Release: 1.0.20**\n\n folder_id (UUID, optional): The project ID. Defaults to None.\n params (Params): Pagination parameters.\n remove_example_flows (bool, optional): Whether to remove example flows. Defaults to False.\n header_flows (bool, optional): Whether to return only specific headers of the flows. Defaults to False.\n\nReturns:\n list[FlowRead] | Page[FlowRead] | list[FlowHeader]\n A list of flows or a paginated response containing the list of flows or a list of flow headers.", "operationId": "read_flows_api_v1_flows__get", "security": [ { @@ -4098,8 +4098,9 @@ "tags": [ "Folders" ], - "summary": "Read Folders", - "operationId": "read_folders_api_v1_folders__get", + "summary": "Read Folders Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "read_folders_redirect_api_v1_folders__get", "responses": { "200": { "description": "Successful Response", @@ -4110,40 +4111,20 @@ "$ref": "#/components/schemas/FolderRead" }, "type": "array", - "title": "Response Read Folders Api V1 Folders Get" + "title": "Response Read Folders Redirect Api V1 Folders Get" } } } } - }, - "security": [ - { - "OAuth2PasswordBearer": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] + } }, "post": { "tags": [ "Folders" ], - "summary": "Create Folder", - "operationId": "create_folder_api_v1_folders__post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FolderCreate" - } - } - }, - "required": true - }, + "summary": "Create Folder Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "create_folder_redirect_api_v1_folders__post", "responses": { "201": { "description": "Successful Response", @@ -4154,29 +4135,8 @@ } } } - }, - "422": { - "description": "Validation Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - } } - }, - "security": [ - { - "OAuth2PasswordBearer": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ] + } } }, "/api/v1/folders/{folder_id}": { @@ -4184,19 +4144,9 @@ "tags": [ "Folders" ], - "summary": "Read Folder", - "operationId": "read_folder_api_v1_folders__folder_id__get", - "security": [ - { - "OAuth2PasswordBearer": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], + "summary": "Read Folder Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "read_folder_redirect_api_v1_folders__folder_id__get", "parameters": [ { "name": "folder_id", @@ -4285,7 +4235,7 @@ "$ref": "#/components/schemas/FolderReadWithFlows" } ], - "title": "Response Read Folder Api V1 Folders Folder Id Get" + "title": "Response Read Folder Redirect Api V1 Folders Folder Id Get" } } } @@ -4306,19 +4256,9 @@ "tags": [ "Folders" ], - "summary": "Update Folder", - "operationId": "update_folder_api_v1_folders__folder_id__patch", - "security": [ - { - "OAuth2PasswordBearer": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], + "summary": "Update Folder Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "update_folder_redirect_api_v1_folders__folder_id__patch", "parameters": [ { "name": "folder_id", @@ -4331,16 +4271,6 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FolderUpdate" - } - } - } - }, "responses": { "200": { "description": "Successful Response", @@ -4368,19 +4298,9 @@ "tags": [ "Folders" ], - "summary": "Delete Folder", - "operationId": "delete_folder_api_v1_folders__folder_id__delete", - "security": [ - { - "OAuth2PasswordBearer": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], + "summary": "Delete Folder Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "delete_folder_redirect_api_v1_folders__folder_id__delete", "parameters": [ { "name": "folder_id", @@ -4415,20 +4335,9 @@ "tags": [ "Folders" ], - "summary": "Download File", - "description": "Download all flows from folder as a zip file.", - "operationId": "download_file_api_v1_folders_download__folder_id__get", - "security": [ - { - "OAuth2PasswordBearer": [] - }, - { - "API key query": [] - }, - { - "API key header": [] - } - ], + "summary": "Download File Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "download_file_redirect_api_v1_folders_download__folder_id__get", "parameters": [ { "name": "folder_id", @@ -4468,14 +4377,410 @@ "tags": [ "Folders" ], + "summary": "Upload File Redirect", + "description": "Redirect to the projects endpoint.", + "operationId": "upload_file_redirect_api_v1_folders_upload__post", + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FlowRead" + }, + "type": "array", + "title": "Response Upload File Redirect Api V1 Folders Upload Post" + } + } + } + } + } + } + }, + "/api/v1/projects/": { + "get": { + "tags": [ + "Projects" + ], + "summary": "Read Projects", + "operationId": "read_projects_api_v1_projects__get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/FolderRead" + }, + "type": "array", + "title": "Response Read Projects Api V1 Projects Get" + } + } + } + } + }, + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ] + }, + "post": { + "tags": [ + "Projects" + ], + "summary": "Create Project", + "operationId": "create_project_api_v1_projects__post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderCreate" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderRead" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ] + } + }, + "/api/v1/projects/{project_id}": { + "get": { + "tags": [ + "Projects" + ], + "summary": "Read Project", + "operationId": "read_project_api_v1_projects__project_id__get", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + }, + { + "name": "is_component", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false, + "title": "Is Component" + } + }, + { + "name": "is_flow", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false, + "title": "Is Flow" + } + }, + { + "name": "search", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "", + "title": "Search" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Page" + } + }, + { + "name": "size", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Size" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/FolderWithPaginatedFlows" + }, + { + "$ref": "#/components/schemas/FolderReadWithFlows" + } + ], + "title": "Response Read Project Api V1 Projects Project Id Get" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "patch": { + "tags": [ + "Projects" + ], + "summary": "Update Project", + "operationId": "update_project_api_v1_projects__project_id__patch", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderUpdate" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderRead" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Projects" + ], + "summary": "Delete Project", + "operationId": "delete_project_api_v1_projects__project_id__delete", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/projects/download/{project_id}": { + "get": { + "tags": [ + "Projects" + ], + "summary": "Download File", + "description": "Download all flows from project as a zip file.", + "operationId": "download_file_api_v1_projects_download__project_id__get", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/projects/upload/": { + "post": { + "tags": [ + "Projects" + ], "summary": "Upload File", "description": "Upload flows from a file.", - "operationId": "upload_file_api_v1_folders_upload__post", + "operationId": "upload_file_api_v1_projects_upload__post", "requestBody": { "content": { "multipart/form-data": { "schema": { - "$ref": "#/components/schemas/Body_upload_file_api_v1_folders_upload__post" + "$ref": "#/components/schemas/Body_upload_file_api_v1_projects_upload__post" } } }, @@ -4491,7 +4796,7 @@ "$ref": "#/components/schemas/FlowRead" }, "type": "array", - "title": "Response Upload File Api V1 Folders Upload Post" + "title": "Response Upload File Api V1 Projects Upload Post" } } } @@ -4632,6 +4937,299 @@ } } }, + "/api/v1/mcp/project/{project_id}": { + "get": { + "tags": [ + "mcp_projects" + ], + "summary": "List Project Tools", + "description": "List all tools in a project that are enabled for MCP.", + "operationId": "list_project_tools_api_v1_mcp_project__project_id__get", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + }, + { + "name": "mcp_enabled", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true, + "title": "Mcp Enabled" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MCPSettings" + }, + "title": "Response List Project Tools Api V1 Mcp Project Project Id Get" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "post": { + "tags": [ + "mcp_projects" + ], + "summary": "Handle Project Messages", + "description": "Handle POST messages for a project-specific MCP server.", + "operationId": "handle_project_messages_api_v1_mcp_project__project_id__post", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + }, + "patch": { + "tags": [ + "mcp_projects" + ], + "summary": "Update Project Mcp Settings", + "description": "Update the MCP settings of all flows in a project.", + "operationId": "update_project_mcp_settings_api_v1_mcp_project__project_id__patch", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MCPSettings" + }, + "title": "Settings" + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/mcp/project/{project_id}/sse": { + "get": { + "tags": [ + "mcp_projects" + ], + "summary": "Handle Project Sse", + "description": "Handle SSE connections for a specific project.", + "operationId": "handle_project_sse_api_v1_mcp_project__project_id__sse_get", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "text/html": { + "schema": { + "type": "string" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/mcp/project/{project_id}/": { + "post": { + "tags": [ + "mcp_projects" + ], + "summary": "Handle Project Messages With Slash", + "description": "Handle POST messages for a project-specific MCP server with trailing slash.", + "operationId": "handle_project_messages_with_slash_api_v1_mcp_project__project_id___post", + "security": [ + { + "OAuth2PasswordBearer": [] + }, + { + "API key query": [] + }, + { + "API key header": [] + } + ], + "parameters": [ + { + "name": "project_id", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Project Id" + } + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": {} + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, "/api/v2/files/": { "get": { "tags": [ @@ -5666,7 +6264,7 @@ ], "title": "Body_upload_file_api_v1_flows_upload__post" }, - "Body_upload_file_api_v1_folders_upload__post": { + "Body_upload_file_api_v1_projects_upload__post": { "properties": { "file": { "type": "string", @@ -5678,7 +6276,7 @@ "required": [ "file" ], - "title": "Body_upload_file_api_v1_folders_upload__post" + "title": "Body_upload_file_api_v1_projects_upload__post" }, "Body_upload_user_file_api_v2_files__post": { "properties": { @@ -5870,12 +6468,12 @@ "serialization_max_items_lenght": { "type": "integer", "title": "Serialization Max Items Lenght", - "default": 1000 + "default": 100 }, "serialization_max_text_length": { "type": "integer", "title": "Serialization Max Text Length", - "default": 20000 + "default": 2000 }, "frontend_timeout": { "type": "integer", @@ -6316,6 +6914,43 @@ "title": "Locked", "default": false }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled", + "description": "Can be exposed in the MCP server", + "default": false + }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Name", + "description": "The name of the action associated with the flow" + }, + "action_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Description", + "description": "The description of the action associated with the flow" + }, "access_type": { "$ref": "#/components/schemas/AccessTypeEnum", "default": "PRIVATE" @@ -6503,6 +7138,43 @@ "title": "Locked", "default": false }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled", + "description": "Can be exposed in the MCP server", + "default": false + }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Name", + "description": "The name of the action associated with the flow" + }, + "action_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Description", + "description": "The description of the action associated with the flow" + }, "access_type": { "$ref": "#/components/schemas/AccessTypeEnum", "default": "PRIVATE" @@ -6683,6 +7355,42 @@ ], "title": "Tags", "description": "The tags of the flow" + }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled", + "description": "Flag indicating whether the flow is exposed in the MCP server" + }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Name", + "description": "The name of the action associated with the flow" + }, + "action_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Description", + "description": "The description of the action associated with the flow" } }, "type": "object", @@ -6845,6 +7553,43 @@ "title": "Locked", "default": false }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled", + "description": "Can be exposed in the MCP server", + "default": false + }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Name", + "description": "The name of the action associated with the flow" + }, + "action_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Description", + "description": "The description of the action associated with the flow" + }, "access_type": { "$ref": "#/components/schemas/AccessTypeEnum", "default": "PRIVATE" @@ -6946,6 +7691,17 @@ ], "title": "Endpoint Name" }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled" + }, "locked": { "anyOf": [ { @@ -6957,6 +7713,28 @@ ], "title": "Locked" }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Name" + }, + "action_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Description" + }, "access_type": { "anyOf": [ { @@ -8075,6 +8853,76 @@ ], "title": "Log" }, + "MCPSettings": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "mcp_enabled": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Mcp Enabled" + }, + "action_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Name" + }, + "action_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action Description" + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + } + }, + "type": "object", + "required": [ + "id" + ], + "title": "MCPSettings", + "description": "Model representing MCP settings for a flow." + }, "MediaContent": { "type": "object" }, @@ -8224,6 +9072,17 @@ "type": "boolean", "title": "Edit" }, + "duration": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Duration" + }, "properties": { "anyOf": [ { @@ -9805,6 +10664,22 @@ "password": { "type": "string", "title": "Password" + }, + "optins": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Optins", + "default": { + "github_starred": false, + "dialog_dismissed": false, + "discord_clicked": false + } } }, "type": "object", @@ -9876,6 +10751,17 @@ } ], "title": "Last Login At" + }, + "optins": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Optins" } }, "type": "object", @@ -9959,6 +10845,17 @@ } ], "title": "Last Login At" + }, + "optins": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Optins" } }, "type": "object", @@ -10660,4 +11557,4 @@ } } } -} +} \ No newline at end of file