{ "swagger": "2.0", "info": { "description": "Swagger API for Penetration Testing Advanced General Intelligence PentAGI.", "title": "PentAGI Swagger API", "termsOfService": "http://swagger.io/terms/", "contact": { "name": "PentAGI Development Team", "url": "https://pentagi.com", "email": "team@pentagi.com" }, "license": { "name": "MIT", "url": "https://opensource.org/license/mit" }, "version": "1.0" }, "basePath": "/api/v1", "paths": { "/agentlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Agentlogs" ], "summary": "Retrieve agentlogs list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "agentlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.agentlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agentlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agentlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/anonymize/text": { "post": { "security": [ { "BearerAuth": [] } ], "description": "Replace sensitive data patterns (credentials, keys, PII, etc.) in the provided text with safe placeholders.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Anonymize" ], "summary": "Anonymize text", "parameters": [ { "description": "Text to anonymize", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/services.anonymizeTextRequest" } } ], "responses": { "200": { "description": "anonymized text returned successfully", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.anonymizeTextResponse" } } } ] } }, "400": { "description": "invalid request body", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "anonymize.call permission required", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "503": { "description": "anonymizer is not configured", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/assistantlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Assistantlogs" ], "summary": "Retrieve assistantlogs list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "assistantlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.assistantlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting assistantlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting assistantlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/auth/authorize": { "get": { "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Login user into OAuth2 external system via HTTP redirect", "parameters": [ { "type": "string", "default": "/", "description": "URI to redirect user there after login", "name": "return_uri", "in": "query" }, { "type": "string", "default": "google", "description": "OAuth provider name (google, github, etc.)", "name": "provider", "in": "query" } ], "responses": { "307": { "description": "redirect to SSO login page" }, "400": { "description": "invalid autorizarion query", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "authorize not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on autorizarion", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/auth/login": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Login user into system", "parameters": [ { "description": "Login form JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Login" } } ], "responses": { "200": { "description": "login successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid login data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "401": { "description": "invalid login or password", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "login not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on login", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/auth/login-callback": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Login user from external OAuth application", "parameters": [ { "type": "string", "description": "Auth code from OAuth provider to exchange token", "name": "code", "in": "query" } ], "responses": { "303": { "description": "redirect to registered return_uri path in the state" }, "400": { "description": "invalid login data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "401": { "description": "invalid login or password", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "login not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on login", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Login user from external OAuth application", "parameters": [ { "description": "Auth form JSON data", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.AuthCallback" } } ], "responses": { "303": { "description": "redirect to registered return_uri path in the state" }, "400": { "description": "invalid login data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "401": { "description": "invalid login or password", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "login not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on login", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/auth/logout": { "get": { "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Logout current user via HTTP redirect", "parameters": [ { "type": "string", "default": "/", "description": "URI to redirect user there after logout", "name": "return_uri", "in": "query" } ], "responses": { "307": { "description": "redirect to input return_uri path" } } } }, "/auth/logout-callback": { "post": { "consumes": [ "application/json" ], "tags": [ "Public" ], "summary": "Logout current user from external OAuth application", "responses": { "303": { "description": "logout successful", "schema": { "$ref": "#/definitions/SuccessResponse" } } } } }, "/containers/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Containers" ], "summary": "Retrieve containers list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "containers list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.containers" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting containers not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting containers", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Flows" ], "summary": "Retrieve flows list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "flows list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.flows" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flows not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flows", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flows" ], "summary": "Create new flow with custom functions", "parameters": [ { "description": "flow model to create", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateFlow" } } ], "responses": { "201": { "description": "flow created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Flow" } } } ] } }, "400": { "description": "invalid flow request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating flow not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating flow", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Flows" ], "summary": "Retrieve flow by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Flow" } } } ] } }, "403": { "description": "getting flow not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flows" ], "summary": "Patch flow", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "description": "flow model to patch", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.PatchFlow" } } ], "responses": { "200": { "description": "flow patched successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Flow" } } } ] } }, "400": { "description": "invalid flow request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "patching flow not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on patching flow", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "tags": [ "Flows" ], "summary": "Delete flow by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow deleted successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Flow" } } } ] } }, "403": { "description": "deleting flow not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting flow", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/agentlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Agentlogs" ], "summary": "Retrieve agentlogs list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "agentlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.agentlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting agentlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting agentlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/assistantlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Assistantlogs" ], "summary": "Retrieve assistantlogs list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "assistantlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.assistantlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting assistantlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting assistantlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/assistants/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Assistants" ], "summary": "Retrieve assistants list", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "assistants list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.assistants" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting assistants not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting assistants", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Assistants" ], "summary": "Create new assistant with custom functions", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id (use 0 to create a new flow together with the assistant)", "name": "flowID", "in": "path", "required": true }, { "description": "assistant model to create", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateAssistant" } } ], "responses": { "201": { "description": "assistant created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.AssistantFlow" } } } ] } }, "400": { "description": "invalid assistant request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating assistant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating assistant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/assistants/{assistantID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Assistants" ], "summary": "Retrieve flow assistant by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "assistant id", "name": "assistantID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow assistant received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Assistant" } } } ] } }, "403": { "description": "getting flow assistant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow assistant not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow assistant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Assistants" ], "summary": "Patch assistant", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "assistant id", "name": "assistantID", "in": "path", "required": true }, { "description": "assistant model to patch", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.PatchAssistant" } } ], "responses": { "200": { "description": "assistant patched successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.AssistantFlow" } } } ] } }, "400": { "description": "invalid assistant request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "patching assistant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on patching assistant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "tags": [ "Assistants" ], "summary": "Delete assistant by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "assistant id", "name": "assistantID", "in": "path", "required": true } ], "responses": { "200": { "description": "assistant deleted successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.AssistantFlow" } } } ] } }, "403": { "description": "deleting assistant not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "assistant not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting assistant", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/containers/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Containers" ], "summary": "Retrieve containers list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "containers list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.containers" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting containers not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting containers", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/containers/{containerID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Containers" ], "summary": "Retrieve container info by id and flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "container id", "name": "containerID", "in": "path", "required": true } ], "responses": { "200": { "description": "container info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Container" } } } ] } }, "403": { "description": "getting container not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "container not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting container", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/files/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Retrieve flow files list", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow files list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowFiles" } } } ] } }, "400": { "description": "invalid flow files request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flow files not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow files", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Upload files to flow workspace", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "file", "description": "files to upload (multipart, field name: files or file)", "name": "files", "in": "formData", "required": true } ], "responses": { "200": { "description": "flow files uploaded successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowFiles" } } } ] } }, "400": { "description": "invalid flow files request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "uploading flow files not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "flow file already exists", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on uploading flow files", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Delete flow files or directories by cached paths", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "string", "description": "relative path in cache: uploads/, resources/, or container/ (may be combined with paths[])", "name": "path", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "relative paths in cache (repeatable): uploads/, resources/, or container/", "name": "paths[]", "in": "query" } ], "responses": { "200": { "description": "flow files deleted successfully", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowFiles" } } } ] } }, "400": { "description": "invalid flow file request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "deleting flow file not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow file not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting flow file", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/files/container": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Retrieve flow container directory files list", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "string", "description": "absolute path inside the running container; defaults to /work (may be combined with paths[])", "name": "path", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "absolute paths inside the running container (repeatable)", "name": "paths[]", "in": "query" } ], "responses": { "200": { "description": "container files list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ContainerFiles" } } } ] } }, "400": { "description": "invalid flow files request data or container not running", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flow container files not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow container files", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/files/download": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Single regular file: served as a direct attachment.\nSingle directory or multiple paths (any mix): packaged as a ZIP archive.", "produces": [ "application/octet-stream", "application/zip", "application/json" ], "tags": [ "FlowFiles" ], "summary": "Download flow file(s) or directory by cached path(s)", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "string", "description": "relative path in cache: uploads/, resources/, or container/ (may be combined with paths[])", "name": "path", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "relative paths in cache (repeatable)", "name": "paths[]", "in": "query" } ], "responses": { "200": { "description": "file content, or ZIP archive for directories / multiple paths", "schema": { "type": "file" } }, "400": { "description": "invalid flow file request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "downloading flow file not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow file not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on downloading flow file", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/files/pull": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Pull files or directories from the running container into the local cache", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "description": "pull request: path or paths are required", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.PullFlowFilesRequest" } } ], "responses": { "200": { "description": "container paths synced to local cache, sorted by cache path", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowFiles" } } } ] } }, "400": { "description": "invalid pull request or container not running", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "pulling flow files not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "cache entry already exists; set force=true to overwrite", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on pulling flow files", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/files/resources": { "post": { "security": [ { "BearerAuth": [] } ], "description": "Copies one or more user resources (identified by ID) into flow-{id}-data/resources/.\nFiles already present in the flow are skipped unless force=true, in which case they are replaced.\nWhen the primary container for this flow is running, new or replaced files are pushed to /work/resources/ (best-effort), same as uploads.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Copy user resources into a flow", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "description": "resource IDs and force flag", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.AddResourcesRequest" } } ], "responses": { "200": { "description": "resources copied successfully", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowFiles" } } } ] } }, "400": { "description": "invalid request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "file already exists and force=false", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/files/to-resources": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "FlowFiles" ], "summary": "Promote flow file(s) or directory/directories to user resources", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "description": "source(s), destination and force flag", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.AddResourceFromFlowRequest" } } ], "responses": { "200": { "description": "resources created or updated", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceList" } } } ] } }, "400": { "description": "invalid request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "source or flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "destination already exists and force=false", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/graph": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Flows" ], "summary": "Retrieve flow graph by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow graph received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowTasksSubtasks" } } } ] } }, "403": { "description": "getting flow graph not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow graph not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow graph", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/msglogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Msglogs" ], "summary": "Retrieve msglogs list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "msglogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.msglogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting msglogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting msglogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/screenshots/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Screenshots" ], "summary": "Retrieve screenshots list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "screenshots list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.screenshots" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting screenshots not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting screenshots", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/screenshots/{screenshotID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Screenshots" ], "summary": "Retrieve screenshot info by id and flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "screenshot id", "name": "screenshotID", "in": "path", "required": true } ], "responses": { "200": { "description": "screenshot info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Screenshot" } } } ] } }, "403": { "description": "getting screenshot not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "screenshot not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting screenshot", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/screenshots/{screenshotID}/file": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "image/png", "application/json" ], "tags": [ "Screenshots" ], "summary": "Retrieve screenshot file by id and flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "screenshot id", "name": "screenshotID", "in": "path", "required": true } ], "responses": { "200": { "description": "screenshot file", "schema": { "type": "file" } }, "403": { "description": "getting screenshot not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting screenshot", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/searchlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Searchlogs" ], "summary": "Retrieve searchlogs list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "searchlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.searchlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting searchlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting searchlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/subtasks/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Subtasks" ], "summary": "Retrieve flow subtasks list", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "flow subtasks list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.subtasks" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flow subtasks not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow subtasks", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/tasks/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Tasks" ], "summary": "Retrieve flow tasks list", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "flow tasks list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.tasks" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flow tasks not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow tasks", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/tasks/{taskID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Tasks" ], "summary": "Retrieve flow task by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "task id", "name": "taskID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow task received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Task" } } } ] } }, "403": { "description": "getting flow task not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow task not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow task", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/tasks/{taskID}/graph": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Tasks" ], "summary": "Retrieve flow task graph by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "task id", "name": "taskID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow task graph received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowTasksSubtasks" } } } ] } }, "403": { "description": "getting flow task graph not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow task graph not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow task graph", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/tasks/{taskID}/subtasks/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Subtasks" ], "summary": "Retrieve flow task subtasks list", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "task id", "name": "taskID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "flow task subtasks list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.subtasks" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flow task subtasks not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow subtasks", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/tasks/{taskID}/subtasks/{subtaskID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Subtasks" ], "summary": "Retrieve flow task subtask by id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "task id", "name": "taskID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "subtask id", "name": "subtaskID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow task subtask received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Subtask" } } } ] } }, "403": { "description": "getting flow task subtask not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow task subtask not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow task subtask", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/termlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Termlogs" ], "summary": "Retrieve termlogs list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "termlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.termlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting termlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting termlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/toolcalls/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Toolcalls" ], "summary": "Retrieve toolcalls list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "toolcalls list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.toolcalls" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting toolcalls not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting toolcalls", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/toolcalls/{toolcallID}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Toolcalls" ], "summary": "Retrieve toolcall info by id and flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "minimum": 0, "type": "integer", "description": "toolcall id", "name": "toolcallID", "in": "path", "required": true } ], "responses": { "200": { "description": "toolcall info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Toolcall" } } } ] } }, "400": { "description": "invalid request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting toolcall not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "toolcall not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting toolcall", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/usage": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Get comprehensive analytics for a single flow including all breakdowns", "produces": [ "application/json" ], "tags": [ "Flows", "Usage" ], "summary": "Retrieve analytics for specific flow", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true } ], "responses": { "200": { "description": "flow analytics received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.FlowUsageResponse" } } } ] } }, "400": { "description": "invalid flow id", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting flow analytics not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "flow not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting flow analytics", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/flows/{flowID}/vecstorelogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Vecstorelogs" ], "summary": "Retrieve vecstorelogs list by flow id", "parameters": [ { "minimum": 0, "type": "integer", "description": "flow id", "name": "flowID", "in": "path", "required": true }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "vecstorelogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.vecstorelogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting vecstorelogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting vecstorelogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/graphql": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "GraphQL" ], "summary": "Perform graphql requests", "parameters": [ { "description": "graphql request", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/graphql.RawParams" } } ], "responses": { "200": { "description": "graphql response", "schema": { "$ref": "#/definitions/graphql.Response" } }, "400": { "description": "invalid graphql request data", "schema": { "$ref": "#/definitions/graphql.Response" } }, "403": { "description": "unauthorized", "schema": { "$ref": "#/definitions/graphql.Response" } }, "500": { "description": "internal error on graphql request", "schema": { "$ref": "#/definitions/graphql.Response" } } } } }, "/info": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Public" ], "summary": "Retrieve current user and system settings", "parameters": [ { "type": "boolean", "description": "boolean arg to refresh current cookie, use explicit false", "name": "refresh_cookie", "in": "query" } ], "responses": { "200": { "description": "info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.info" } } } ] } }, "403": { "description": "getting info not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting information about system and config", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/knowledge/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Knowledge" ], "summary": "List knowledge documents", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true }, { "type": "boolean", "description": "include document text in the response", "name": "with_content", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.KnowledgeDocList" } } } ] } }, "400": { "description": "invalid query parameters", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Knowledge" ], "summary": "Create knowledge document", "parameters": [ { "description": "Create request", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateKnowledgeDocRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.KnowledgeDocEntry" } } } ] } }, "400": { "description": "invalid request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "503": { "description": "embedding provider not configured", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/knowledge/search": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Knowledge" ], "summary": "Semantic search in knowledge base", "parameters": [ { "description": "Search request", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.KnowledgeSearchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.KnowledgeSearchResult" } } } ] } }, "400": { "description": "invalid request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "503": { "description": "embedding provider not configured", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/knowledge/{id}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Knowledge" ], "summary": "Get knowledge document", "parameters": [ { "type": "string", "description": "Document UUID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.KnowledgeDocEntry" } } } ] } }, "403": { "description": "not permitted or wrong owner", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "document not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Knowledge" ], "summary": "Update knowledge document", "parameters": [ { "type": "string", "description": "Document UUID", "name": "id", "in": "path", "required": true }, { "description": "Update request", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateKnowledgeDocRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.KnowledgeDocEntry" } } } ] } }, "400": { "description": "invalid request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "not permitted or wrong owner", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "document not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "503": { "description": "embedding provider not configured", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Knowledge" ], "summary": "Delete knowledge document", "parameters": [ { "type": "string", "description": "Document UUID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "document deleted", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "not permitted or wrong owner", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "document not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/msglogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Msglogs" ], "summary": "Retrieve msglogs list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "msglogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.msglogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting msglogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting msglogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/prompts/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Prompts" ], "summary": "Retrieve prompts list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "prompts list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.prompts" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting prompts not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting prompts", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/prompts/{promptType}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Prompts" ], "summary": "Retrieve prompt by type", "parameters": [ { "type": "string", "description": "prompt type", "name": "promptType", "in": "path", "required": true } ], "responses": { "200": { "description": "prompt received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Prompt" } } } ] } }, "400": { "description": "invalid prompt request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting prompt not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "prompt not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting prompt", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Prompts" ], "summary": "Update prompt", "parameters": [ { "type": "string", "description": "prompt type", "name": "promptType", "in": "path", "required": true }, { "description": "prompt model to update", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.PatchPrompt" } } ], "responses": { "200": { "description": "prompt updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Prompt" } } } ] } }, "201": { "description": "prompt created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Prompt" } } } ] } }, "400": { "description": "invalid prompt request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating prompt not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "prompt not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating prompt", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Prompts" ], "summary": "Delete prompt by type", "parameters": [ { "type": "string", "description": "prompt type", "name": "promptType", "in": "path", "required": true } ], "responses": { "200": { "description": "prompt deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid prompt request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "deleting prompt not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "prompt not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting prompt", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/prompts/{promptType}/default": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Prompts" ], "summary": "Reset prompt by type to default value", "parameters": [ { "type": "string", "description": "prompt type", "name": "promptType", "in": "path", "required": true } ], "responses": { "200": { "description": "prompt reset successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Prompt" } } } ] } }, "201": { "description": "prompt created with default value successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Prompt" } } } ] } }, "400": { "description": "invalid prompt request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating prompt not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "prompt not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on resetting prompt", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/providers/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Providers" ], "summary": "Retrieve providers list", "responses": { "200": { "description": "providers list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/models.ProviderInfo" } } } } ] } }, "403": { "description": "getting providers not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/resources/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Resources" ], "summary": "List user resources", "parameters": [ { "type": "string", "description": "virtual directory path; empty for root (may be combined with paths[])", "name": "path", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "additional virtual directory paths (repeatable)", "name": "paths[]", "in": "query" }, { "type": "boolean", "description": "list recursively (default false)", "name": "recursive", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceList" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "Resources" ], "summary": "Upload files to resource storage", "parameters": [ { "type": "string", "description": "target virtual directory path; empty or omitted means root", "name": "dir", "in": "query" }, { "type": "file", "description": "files to upload (field name: files or file)", "name": "files", "in": "formData", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceList" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Resources" ], "summary": "Delete a resource (file or directory)", "parameters": [ { "type": "string", "description": "virtual path to delete (may be combined with paths[])", "name": "path", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "additional virtual paths to delete (repeatable)", "name": "paths[]", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceList" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/resources/copy": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Resources" ], "summary": "Copy resource(s) (files or directories)", "parameters": [ { "description": "copy request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CopyResourceRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceList" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/resources/download": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/octet-stream", "application/zip", "application/json" ], "tags": [ "Resources" ], "summary": "Download a resource or resources", "parameters": [ { "type": "string", "description": "virtual path to download (may be combined with paths[])", "name": "path", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "additional virtual paths to download (repeatable)", "name": "paths[]", "in": "query" } ], "responses": { "200": { "description": "file content, or ZIP archive for directories / multiple paths", "schema": { "type": "file" } }, "400": { "description": "invalid resource request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "downloading resource not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "resource not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on downloading resource", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/resources/mkdir": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Resources" ], "summary": "Create a virtual directory", "parameters": [ { "description": "mkdir request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.MkdirResourceRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceEntry" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/resources/move": { "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Resources" ], "summary": "Move or rename resource(s) (files or directories)", "parameters": [ { "description": "move request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.MoveResourceRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.ResourceList" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/roles/": { "get": { "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Retrieve roles list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "roles list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.roles" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting roles not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting roles", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/roles/{roleID}": { "get": { "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Retrieve role by id", "parameters": [ { "type": "integer", "description": "role id", "name": "roleID", "in": "path", "required": true } ], "responses": { "200": { "description": "role received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.RolePrivileges" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting role not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting role", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/screenshots/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Screenshots" ], "summary": "Retrieve screenshots list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "screenshots list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.screenshots" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting screenshots not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting screenshots", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/searchlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Searchlogs" ], "summary": "Retrieve searchlogs list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "searchlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.searchlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting searchlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting searchlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/settings/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Settings" ], "summary": "Retrieve settings", "responses": { "200": { "description": "settings received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Settings" } } } ] } }, "403": { "description": "getting settings not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/termlogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Termlogs" ], "summary": "Retrieve termlogs list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "termlogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.termlogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting termlogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting termlogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/tokens": { "get": { "produces": [ "application/json" ], "tags": [ "Tokens" ], "summary": "List API tokens", "responses": { "200": { "description": "tokens retrieved successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.tokens" } } } ] } }, "403": { "description": "listing tokens not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on listing tokens", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Tokens" ], "summary": "Create new API token for automation", "parameters": [ { "description": "Token creation request", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateAPITokenRequest" } } ], "responses": { "201": { "description": "token created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.APITokenWithSecret" } } } ] } }, "400": { "description": "invalid token request or default salt", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating token not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating token", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/tokens/{tokenID}": { "get": { "produces": [ "application/json" ], "tags": [ "Tokens" ], "summary": "Get API token details", "parameters": [ { "type": "string", "description": "Token ID", "name": "tokenID", "in": "path", "required": true } ], "responses": { "200": { "description": "token retrieved successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.APIToken" } } } ] } }, "403": { "description": "accessing token not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "token not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting token", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Tokens" ], "summary": "Update API token", "parameters": [ { "type": "string", "description": "Token ID", "name": "tokenID", "in": "path", "required": true }, { "description": "Token update request", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateAPITokenRequest" } } ], "responses": { "200": { "description": "token updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.APIToken" } } } ] } }, "400": { "description": "invalid update request", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating token not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "token not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating token", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Tokens" ], "summary": "Delete API token", "parameters": [ { "type": "string", "description": "Token ID", "name": "tokenID", "in": "path", "required": true } ], "responses": { "200": { "description": "token deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting token not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "token not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting token", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/toolcalls/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Toolcalls" ], "summary": "Retrieve toolcalls list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "toolcalls list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.toolcalls" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting toolcalls not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting toolcalls", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/usage": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Get comprehensive analytics for all user's flows including usage, toolcalls, and structural stats", "produces": [ "application/json" ], "tags": [ "Usage" ], "summary": "Retrieve system-wide analytics", "responses": { "200": { "description": "analytics received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.SystemUsageResponse" } } } ] } }, "403": { "description": "getting analytics not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting analytics", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/usage/{period}": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Get time-series analytics data for week, month, or quarter", "produces": [ "application/json" ], "tags": [ "Usage" ], "summary": "Retrieve analytics for specific time period", "parameters": [ { "enum": [ "week", "month", "quarter" ], "type": "string", "description": "period", "name": "period", "in": "path", "required": true } ], "responses": { "200": { "description": "period analytics received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.PeriodUsageResponse" } } } ] } }, "400": { "description": "invalid period parameter", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting analytics not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting analytics", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/user/": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Retrieve current user information", "responses": { "200": { "description": "user info received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRolePrivileges" } } } ] } }, "403": { "description": "getting current user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "current user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting current user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/user/password": { "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Update password for current user (account)", "parameters": [ { "description": "container to validate and update account password", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Password" } } ], "responses": { "200": { "description": "account password updated successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "400": { "description": "invalid account password form data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating account password not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "current user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating account password", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/users/": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Retrieve users list by filters", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "users list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.users" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting users not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting users", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Create new user", "parameters": [ { "description": "user model to create from", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UserPassword" } } ], "responses": { "201": { "description": "user created successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRole" } } } ] } }, "400": { "description": "invalid user request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "creating user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on creating user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/users/{hash}": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Retrieve user by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "user received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRolePrivileges" } } } ] } }, "403": { "description": "getting user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "put": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Update user", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "user hash in hex format (md5)", "name": "hash", "in": "path", "required": true }, { "description": "user model to update", "name": "json", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UserPassword" } } ], "responses": { "200": { "description": "user updated successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.UserRole" } } } ] } }, "400": { "description": "invalid user request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "updating user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on updating user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Delete user by hash", "parameters": [ { "maxLength": 32, "minLength": 32, "type": "string", "description": "hash in hex format (md5)", "name": "hash", "in": "path", "required": true } ], "responses": { "200": { "description": "user deleted successful", "schema": { "$ref": "#/definitions/SuccessResponse" } }, "403": { "description": "deleting user not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "404": { "description": "user not found", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on deleting user", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } }, "/vecstorelogs/": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Vecstorelogs" ], "summary": "Retrieve vecstorelogs list", "parameters": [ { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Filtering result on server e.g. {\"value\":[...],\"field\":\"...\",\"operator\":\"...\"}\n field is the unique identifier of the table column, different for each endpoint\n value should be integer or string or array type, \"value\":123 or \"value\":\"string\" or \"value\":[123,456]\n operator value should be one of \u003c,\u003c=,\u003e=,\u003e,=,!=,like,not like,in\n default operator value is 'like' or '=' if field is 'id' or '*_id' or '*_at'", "name": "filters[]", "in": "query" }, { "type": "string", "description": "Field to group results by", "name": "group", "in": "query" }, { "minimum": 1, "type": "integer", "default": 1, "description": "Number of page (since 1)", "name": "page", "in": "query", "required": true }, { "maximum": 1000, "minimum": -1, "type": "integer", "default": 5, "description": "Amount items per page (min -1, max 1000, -1 means unlimited)", "name": "pageSize", "in": "query" }, { "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "description": "Sorting result on server e.g. {\"prop\":\"...\",\"order\":\"...\"}\n field order is \"ascending\" or \"descending\" value\n order is required if prop is not empty", "name": "sort[]", "in": "query" }, { "enum": [ "sort", "filter", "init", "page", "size" ], "type": "string", "default": "init", "description": "Type of request", "name": "type", "in": "query", "required": true } ], "responses": { "200": { "description": "vecstorelogs list received successful", "schema": { "allOf": [ { "$ref": "#/definitions/SuccessResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/services.vecstorelogs" } } } ] } }, "400": { "description": "invalid query request data", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "403": { "description": "getting vecstorelogs not permitted", "schema": { "$ref": "#/definitions/ErrorResponse" } }, "500": { "description": "internal error on getting vecstorelogs", "schema": { "$ref": "#/definitions/ErrorResponse" } } } } } }, "definitions": { "ErrorResponse": { "type": "object", "properties": { "code": { "type": "string", "example": "Internal" }, "error": { "type": "string", "example": "original server error message" }, "msg": { "type": "string", "example": "internal server error" }, "status": { "type": "string", "example": "error" } } }, "SuccessResponse": { "type": "object", "properties": { "data": { "type": "object" }, "status": { "type": "string", "example": "success" } } }, "gqlerror.Error": { "type": "object", "properties": { "extensions": { "type": "object", "additionalProperties": true }, "locations": { "type": "array", "items": { "$ref": "#/definitions/gqlerror.Location" } }, "message": { "type": "string" }, "path": { "type": "array", "items": {} } } }, "gqlerror.Location": { "type": "object", "properties": { "column": { "type": "integer" }, "line": { "type": "integer" } } }, "graphql.RawParams": { "type": "object", "properties": { "extensions": { "type": "object", "additionalProperties": {} }, "headers": { "$ref": "#/definitions/http.Header" }, "operationName": { "type": "string" }, "query": { "type": "string" }, "variables": { "type": "object", "additionalProperties": {} } } }, "graphql.Response": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "integer" } }, "errors": { "type": "array", "items": { "$ref": "#/definitions/gqlerror.Error" } }, "extensions": { "type": "object", "additionalProperties": {} }, "hasNext": { "type": "boolean" }, "label": { "type": "string" }, "path": { "type": "array", "items": {} } } }, "http.Header": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "models.APIToken": { "type": "object", "required": [ "created_at", "status", "token_id", "ttl", "updated_at" ], "properties": { "created_at": { "type": "string" }, "deleted_at": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 100 }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "token_id": { "type": "string" }, "ttl": { "type": "integer", "maximum": 94608000, "minimum": 60 }, "updated_at": { "type": "string" }, "user_id": { "type": "integer", "minimum": 0 } } }, "models.APITokenWithSecret": { "type": "object", "required": [ "created_at", "status", "token", "token_id", "ttl", "updated_at" ], "properties": { "created_at": { "type": "string" }, "deleted_at": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 100 }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "token": { "type": "string" }, "token_id": { "type": "string" }, "ttl": { "type": "integer", "maximum": 94608000, "minimum": 60 }, "updated_at": { "type": "string" }, "user_id": { "type": "integer", "minimum": 0 } } }, "models.AddResourceFromFlowRequest": { "type": "object", "required": [ "destination" ], "properties": { "destination": { "description": "Destination is the virtual path prefix in the user's resource tree.", "type": "string" }, "force": { "description": "Force overwrites existing resources at the target paths when true.", "type": "boolean" }, "source": { "description": "Source is a single relative path within the flow cache (kept for backward\ncompatibility). Combined with Sources when both are provided.", "type": "string" }, "sources": { "description": "Sources is a list of relative paths within the flow cache. Combined with\nSource when both are provided; duplicate entries are silently removed.", "type": "array", "items": { "type": "string" } } } }, "models.AddResourcesRequest": { "type": "object", "required": [ "ids" ], "properties": { "force": { "description": "Force overwrites files that already exist in the flow resources directory.", "type": "boolean" }, "ids": { "description": "IDs is the list of user resource IDs to copy into the flow resources directory.", "type": "array", "minItems": 1, "items": { "type": "integer" } } } }, "models.AgentTypeUsageStats": { "type": "object", "required": [ "agent_type", "stats" ], "properties": { "agent_type": { "type": "string" }, "stats": { "$ref": "#/definitions/models.UsageStats" } } }, "models.Agentlog": { "type": "object", "required": [ "executor", "flow_id", "initiator", "task" ], "properties": { "created_at": { "type": "string" }, "executor": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "initiator": { "type": "string" }, "result": { "type": "string" }, "subtask_id": { "type": "integer", "minimum": 0 }, "task": { "type": "string" }, "task_id": { "type": "integer", "minimum": 0 } } }, "models.Assistant": { "type": "object", "required": [ "flow_id", "language", "model", "model_provider_name", "model_provider_type", "status", "title", "tool_call_id_template", "trace_id" ], "properties": { "created_at": { "type": "string" }, "deleted_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "functions": { "$ref": "#/definitions/tools.Functions" }, "id": { "type": "integer", "minimum": 0 }, "language": { "type": "string", "maxLength": 70 }, "model": { "type": "string", "maxLength": 70 }, "model_provider_name": { "type": "string", "maxLength": 70 }, "model_provider_type": { "type": "string" }, "msgchain_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "title": { "type": "string" }, "tool_call_id_template": { "type": "string", "maxLength": 70 }, "trace_id": { "type": "string", "maxLength": 70 }, "updated_at": { "type": "string" }, "use_agents": { "type": "boolean" } } }, "models.AssistantFlow": { "type": "object", "required": [ "flow_id", "language", "model", "model_provider_name", "model_provider_type", "status", "title", "tool_call_id_template", "trace_id" ], "properties": { "created_at": { "type": "string" }, "deleted_at": { "type": "string" }, "flow": { "$ref": "#/definitions/models.Flow" }, "flow_id": { "type": "integer", "minimum": 0 }, "functions": { "$ref": "#/definitions/tools.Functions" }, "id": { "type": "integer", "minimum": 0 }, "language": { "type": "string", "maxLength": 70 }, "model": { "type": "string", "maxLength": 70 }, "model_provider_name": { "type": "string", "maxLength": 70 }, "model_provider_type": { "type": "string" }, "msgchain_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "title": { "type": "string" }, "tool_call_id_template": { "type": "string", "maxLength": 70 }, "trace_id": { "type": "string", "maxLength": 70 }, "updated_at": { "type": "string" }, "use_agents": { "type": "boolean" } } }, "models.Assistantlog": { "type": "object", "required": [ "assistant_id", "flow_id", "result_format", "type" ], "properties": { "assistant_id": { "type": "integer", "minimum": 0 }, "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "message": { "type": "string" }, "result": { "type": "string" }, "result_format": { "type": "string" }, "thinking": { "type": "string" }, "type": { "type": "string" } } }, "models.AuthCallback": { "type": "object", "required": [ "code", "id_token", "scope", "state" ], "properties": { "code": { "type": "string" }, "id_token": { "type": "string" }, "scope": { "type": "string" }, "state": { "type": "string" } } }, "models.Container": { "type": "object", "required": [ "flow_id", "image", "local_dir", "local_id", "name", "status", "type" ], "properties": { "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "image": { "type": "string" }, "local_dir": { "type": "string" }, "local_id": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" }, "updated_at": { "type": "string" } } }, "models.ContainerFile": { "type": "object", "properties": { "id": { "type": "string" }, "is_dir": { "type": "boolean" }, "modified_at": { "type": "string" }, "name": { "type": "string" }, "path": { "type": "string" }, "size": { "type": "integer" } } }, "models.ContainerFiles": { "type": "object", "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/models.ContainerFile" } }, "path": { "type": "string" }, "total": { "type": "integer" } } }, "models.CopyResourceRequest": { "type": "object", "required": [ "destination" ], "properties": { "destination": { "description": "Destination is the exact target path (single source) or base directory\n(multiple sources). Required.", "type": "string" }, "force": { "description": "Force overwrites existing resources at the target paths when true.", "type": "boolean" }, "source": { "description": "Source is kept for backward compatibility (single source).\nCombined with Sources when both are provided; duplicates are removed.", "type": "string" }, "sources": { "description": "Sources is a list of virtual resource paths to copy.\nCombined with Source when both are provided; duplicates are removed.", "type": "array", "items": { "type": "string" } } } }, "models.CreateAPITokenRequest": { "type": "object", "required": [ "ttl" ], "properties": { "name": { "type": "string", "maxLength": 100 }, "ttl": { "description": "from 1 minute to 3 years", "type": "integer", "maximum": 94608000, "minimum": 60 } } }, "models.CreateAssistant": { "type": "object", "required": [ "input", "provider" ], "properties": { "functions": { "$ref": "#/definitions/tools.Functions" }, "input": { "type": "string", "example": "user input for running assistant" }, "provider": { "type": "string", "example": "openai" }, "resource_ids": { "type": "array", "items": { "type": "integer" } }, "use_agents": { "type": "boolean", "example": true } } }, "models.CreateFlow": { "type": "object", "required": [ "input", "provider" ], "properties": { "functions": { "$ref": "#/definitions/tools.Functions" }, "input": { "type": "string", "example": "user input for first task in the flow" }, "provider": { "type": "string", "example": "openai" }, "resource_ids": { "type": "array", "items": { "type": "integer" } } } }, "models.CreateKnowledgeDocRequest": { "type": "object", "required": [ "content", "doc_type", "question" ], "properties": { "answer_type": { "type": "string" }, "code_lang": { "type": "string", "maxLength": 100 }, "content": { "type": "string", "maxLength": 65536, "minLength": 1 }, "description": { "type": "string", "maxLength": 1000 }, "doc_type": { "type": "string" }, "guide_type": { "type": "string" }, "question": { "type": "string", "maxLength": 2048, "minLength": 1 } } }, "models.DailyFlowsStats": { "type": "object", "required": [ "date", "stats" ], "properties": { "date": { "type": "string" }, "stats": { "$ref": "#/definitions/models.FlowsStats" } } }, "models.DailyToolcallsStats": { "type": "object", "required": [ "date", "stats" ], "properties": { "date": { "type": "string" }, "stats": { "$ref": "#/definitions/models.ToolcallsStats" } } }, "models.DailyUsageStats": { "type": "object", "required": [ "date", "stats" ], "properties": { "date": { "type": "string" }, "stats": { "$ref": "#/definitions/models.UsageStats" } } }, "models.Flow": { "type": "object", "required": [ "language", "model", "model_provider_name", "model_provider_type", "status", "title", "tool_call_id_template", "trace_id", "user_id" ], "properties": { "created_at": { "type": "string" }, "deleted_at": { "type": "string" }, "functions": { "$ref": "#/definitions/tools.Functions" }, "id": { "type": "integer", "minimum": 0 }, "language": { "type": "string", "maxLength": 70 }, "model": { "type": "string", "maxLength": 70 }, "model_provider_name": { "type": "string", "maxLength": 70 }, "model_provider_type": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "tool_call_id_template": { "type": "string", "maxLength": 70 }, "trace_id": { "type": "string", "maxLength": 70 }, "updated_at": { "type": "string" }, "user_id": { "type": "integer", "minimum": 0 } } }, "models.FlowExecutionStats": { "type": "object", "required": [ "flow_title" ], "properties": { "flow_id": { "type": "integer", "minimum": 0 }, "flow_title": { "type": "string" }, "tasks": { "type": "array", "items": { "$ref": "#/definitions/models.TaskExecutionStats" } }, "total_assistants_count": { "type": "integer", "minimum": 0 }, "total_duration_seconds": { "type": "number", "minimum": 0 }, "total_toolcalls_count": { "type": "integer", "minimum": 0 } } }, "models.FlowFile": { "type": "object", "properties": { "id": { "type": "string" }, "is_dir": { "type": "boolean" }, "modified_at": { "type": "string" }, "name": { "type": "string" }, "path": { "description": "relative: \"uploads/\u003cx\u003e\" or resources/\u003cx\u003e or container/\u003cx\u003e\"", "type": "string" }, "size": { "type": "integer" } } }, "models.FlowFiles": { "type": "object", "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/models.FlowFile" } }, "total": { "type": "integer" } } }, "models.FlowStats": { "type": "object", "properties": { "total_assistants_count": { "type": "integer", "minimum": 0 }, "total_subtasks_count": { "type": "integer", "minimum": 0 }, "total_tasks_count": { "type": "integer", "minimum": 0 } } }, "models.FlowTasksSubtasks": { "type": "object", "required": [ "language", "model", "model_provider_name", "model_provider_type", "status", "tasks", "title", "tool_call_id_template", "trace_id", "user_id" ], "properties": { "created_at": { "type": "string" }, "deleted_at": { "type": "string" }, "functions": { "$ref": "#/definitions/tools.Functions" }, "id": { "type": "integer", "minimum": 0 }, "language": { "type": "string", "maxLength": 70 }, "model": { "type": "string", "maxLength": 70 }, "model_provider_name": { "type": "string", "maxLength": 70 }, "model_provider_type": { "type": "string" }, "status": { "type": "string" }, "tasks": { "type": "array", "items": { "$ref": "#/definitions/models.TaskSubtasks" } }, "title": { "type": "string" }, "tool_call_id_template": { "type": "string", "maxLength": 70 }, "trace_id": { "type": "string", "maxLength": 70 }, "updated_at": { "type": "string" }, "user_id": { "type": "integer", "minimum": 0 } } }, "models.FlowUsageResponse": { "type": "object", "required": [ "flow_stats_by_flow", "toolcalls_stats_by_flow", "usage_stats_by_flow" ], "properties": { "flow_id": { "type": "integer", "minimum": 0 }, "flow_stats_by_flow": { "$ref": "#/definitions/models.FlowStats" }, "toolcalls_stats_by_flow": { "$ref": "#/definitions/models.ToolcallsStats" }, "toolcalls_stats_by_function_for_flow": { "type": "array", "items": { "$ref": "#/definitions/models.FunctionToolcallsStats" } }, "usage_stats_by_agent_type_for_flow": { "type": "array", "items": { "$ref": "#/definitions/models.AgentTypeUsageStats" } }, "usage_stats_by_flow": { "$ref": "#/definitions/models.UsageStats" } } }, "models.FlowsStats": { "type": "object", "properties": { "total_assistants_count": { "type": "integer", "minimum": 0 }, "total_flows_count": { "type": "integer", "minimum": 0 }, "total_subtasks_count": { "type": "integer", "minimum": 0 }, "total_tasks_count": { "type": "integer", "minimum": 0 } } }, "models.FunctionToolcallsStats": { "type": "object", "required": [ "function_name" ], "properties": { "avg_duration_seconds": { "type": "number", "minimum": 0 }, "function_name": { "type": "string" }, "is_agent": { "type": "boolean" }, "total_count": { "type": "integer", "minimum": 0 }, "total_duration_seconds": { "type": "number", "minimum": 0 } } }, "models.KnowledgeDocEntry": { "type": "object", "properties": { "answer_type": { "type": "string" }, "code_lang": { "type": "string" }, "content": { "type": "string" }, "description": { "type": "string" }, "doc_type": { "type": "string" }, "flow_id": { "type": "integer" }, "guide_type": { "type": "string" }, "id": { "type": "string" }, "manual": { "type": "boolean" }, "part_size": { "type": "integer" }, "question": { "type": "string" }, "subtask_id": { "type": "integer" }, "task_id": { "type": "integer" }, "total_size": { "type": "integer" }, "user_id": { "type": "integer" } } }, "models.KnowledgeDocList": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/models.KnowledgeDocEntry" } }, "total": { "type": "integer" } } }, "models.KnowledgeDocWithScore": { "type": "object", "properties": { "document": { "$ref": "#/definitions/models.KnowledgeDocEntry" }, "score": { "type": "number" } } }, "models.KnowledgeSearchRequest": { "type": "object", "required": [ "query" ], "properties": { "answer_types": { "type": "array", "items": { "type": "string" } }, "code_langs": { "type": "array", "items": { "type": "string" } }, "doc_types": { "type": "array", "items": { "type": "string" } }, "flow_id": { "type": "integer" }, "guide_types": { "type": "array", "items": { "type": "string" } }, "limit": { "type": "integer", "maximum": 100, "minimum": 1 }, "manual": { "type": "boolean" }, "query": { "type": "string", "maxLength": 2048, "minLength": 1 } } }, "models.KnowledgeSearchResult": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/models.KnowledgeDocWithScore" } }, "total": { "type": "integer" } } }, "models.Login": { "type": "object", "required": [ "mail", "password" ], "properties": { "mail": { "type": "string", "maxLength": 50 }, "password": { "type": "string", "maxLength": 100, "minLength": 4 } } }, "models.MkdirResourceRequest": { "type": "object", "required": [ "path" ], "properties": { "path": { "type": "string" } } }, "models.ModelInfo": { "type": "object", "required": [ "agent_types", "name" ], "properties": { "agent_types": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string", "example": "gpt-4o" }, "price_info": { "$ref": "#/definitions/models.ModelPriceInfo" } } }, "models.ModelPriceInfo": { "type": "object", "properties": { "cache_read": { "type": "number", "minimum": 0, "example": 0.1 }, "cache_write": { "type": "number", "minimum": 0, "example": 0.3 }, "input": { "type": "number", "minimum": 0, "example": 1.1 }, "output": { "type": "number", "minimum": 0, "example": 3 } } }, "models.ModelUsageStats": { "type": "object", "required": [ "model", "provider", "stats" ], "properties": { "model": { "type": "string" }, "provider": { "type": "string" }, "stats": { "$ref": "#/definitions/models.UsageStats" } } }, "models.MoveResourceRequest": { "type": "object", "properties": { "destination": { "description": "Destination is the exact target path (single source) or base directory\n(multiple sources). Empty string means the root directory.", "type": "string" }, "force": { "description": "Force overwrites existing resources at the target paths when true.", "type": "boolean" }, "source": { "description": "Source is kept for backward compatibility (single source).\nCombined with Sources when both are provided; duplicates are removed.", "type": "string" }, "sources": { "description": "Sources is a list of virtual resource paths to move.\nCombined with Source when both are provided; duplicates are removed.", "type": "array", "items": { "type": "string" } } } }, "models.Msglog": { "type": "object", "required": [ "flow_id", "message", "result_format", "type" ], "properties": { "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "message": { "type": "string" }, "result": { "type": "string" }, "result_format": { "type": "string" }, "subtask_id": { "type": "integer", "minimum": 0 }, "task_id": { "type": "integer", "minimum": 0 }, "thinking": { "type": "string" }, "type": { "type": "string" } } }, "models.Password": { "type": "object", "required": [ "current_password", "password" ], "properties": { "confirm_password": { "type": "string" }, "current_password": { "type": "string", "maxLength": 100, "minLength": 5 }, "password": { "type": "string", "maxLength": 100 } } }, "models.PatchAssistant": { "type": "object", "required": [ "action" ], "properties": { "action": { "type": "string", "default": "stop", "enum": [ "stop", "input" ] }, "input": { "type": "string", "example": "user input for waiting assistant" }, "resource_ids": { "type": "array", "items": { "type": "integer" } }, "use_agents": { "type": "boolean", "example": true } } }, "models.PatchFlow": { "type": "object", "required": [ "action" ], "properties": { "action": { "type": "string", "default": "stop", "enum": [ "stop", "finish", "input", "rename" ] }, "input": { "type": "string", "example": "user input for waiting flow" }, "name": { "type": "string", "example": "new flow name" }, "provider": { "type": "string" }, "resource_ids": { "type": "array", "items": { "type": "integer" } } } }, "models.PatchPrompt": { "type": "object", "required": [ "prompt" ], "properties": { "prompt": { "type": "string" } } }, "models.PeriodUsageResponse": { "type": "object", "required": [ "period" ], "properties": { "flows_execution_stats_by_period": { "type": "array", "items": { "$ref": "#/definitions/models.FlowExecutionStats" } }, "flows_stats_by_period": { "type": "array", "items": { "$ref": "#/definitions/models.DailyFlowsStats" } }, "period": { "type": "string" }, "toolcalls_stats_by_period": { "type": "array", "items": { "$ref": "#/definitions/models.DailyToolcallsStats" } }, "usage_stats_by_period": { "type": "array", "items": { "$ref": "#/definitions/models.DailyUsageStats" } } } }, "models.Privilege": { "type": "object", "required": [ "name" ], "properties": { "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 70 }, "role_id": { "type": "integer", "minimum": 0 } } }, "models.Prompt": { "type": "object", "required": [ "prompt", "type" ], "properties": { "created_at": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "prompt": { "type": "string" }, "type": { "type": "string" }, "updated_at": { "type": "string" }, "user_id": { "type": "integer", "minimum": 0 } } }, "models.ProviderInfo": { "type": "object", "required": [ "default_model", "models", "name", "type" ], "properties": { "default_model": { "type": "string", "example": "gpt-4o" }, "models": { "type": "array", "items": { "$ref": "#/definitions/models.ModelInfo" } }, "name": { "type": "string", "example": "my openai provider" }, "type": { "type": "string", "example": "openai" } } }, "models.ProviderUsageStats": { "type": "object", "required": [ "provider", "stats" ], "properties": { "provider": { "type": "string" }, "stats": { "$ref": "#/definitions/models.UsageStats" } } }, "models.PullFlowFilesRequest": { "type": "object", "properties": { "force": { "description": "Force overwrites local cache entries that already exist.", "type": "boolean" }, "path": { "description": "Path is a single container path (maintained for backward compatibility).\nCombined with Paths if both are provided.", "type": "string" }, "paths": { "description": "Paths is a list of container paths to pull. Combined with Path if provided.", "type": "array", "items": { "type": "string" } } } }, "models.ResourceEntry": { "type": "object", "properties": { "created_at": { "type": "string" }, "id": { "type": "integer" }, "is_dir": { "type": "boolean" }, "name": { "type": "string" }, "path": { "type": "string" }, "size": { "type": "integer" }, "updated_at": { "type": "string" }, "user_id": { "type": "integer" } } }, "models.ResourceList": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/models.ResourceEntry" } }, "total": { "type": "integer" } } }, "models.Role": { "type": "object", "required": [ "name" ], "properties": { "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 50 } } }, "models.RolePrivileges": { "type": "object", "required": [ "name", "privileges" ], "properties": { "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string", "maxLength": 50 }, "privileges": { "type": "array", "items": { "$ref": "#/definitions/models.Privilege" } } } }, "models.Screenshot": { "type": "object", "required": [ "flow_id", "name", "url" ], "properties": { "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string" }, "subtask_id": { "type": "integer", "minimum": 0 }, "task_id": { "type": "integer", "minimum": 0 }, "url": { "type": "string" } } }, "models.Searchlog": { "type": "object", "required": [ "engine", "executor", "flow_id", "initiator", "query" ], "properties": { "created_at": { "type": "string" }, "engine": { "type": "string" }, "executor": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "initiator": { "type": "string" }, "query": { "type": "string" }, "result": { "type": "string" }, "subtask_id": { "type": "integer", "minimum": 0 }, "task_id": { "type": "integer", "minimum": 0 } } }, "models.Settings": { "type": "object", "properties": { "ask_user": { "type": "boolean", "example": false }, "assistant_use_agents": { "type": "boolean", "example": false }, "debug": { "type": "boolean", "example": false }, "docker_inside": { "type": "boolean", "example": false }, "is_develop_mode": { "type": "boolean", "example": false }, "version": { "type": "string", "example": "v1.0.0" } } }, "models.Subtask": { "type": "object", "required": [ "description", "status", "task_id", "title" ], "properties": { "context": { "type": "string" }, "created_at": { "type": "string" }, "description": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "result": { "type": "string" }, "status": { "type": "string" }, "task_id": { "type": "integer", "minimum": 0 }, "title": { "type": "string" }, "updated_at": { "type": "string" } } }, "models.SubtaskExecutionStats": { "type": "object", "required": [ "subtask_title" ], "properties": { "subtask_id": { "type": "integer", "minimum": 0 }, "subtask_title": { "type": "string" }, "total_duration_seconds": { "type": "number", "minimum": 0 }, "total_toolcalls_count": { "type": "integer", "minimum": 0 } } }, "models.SystemUsageResponse": { "type": "object", "required": [ "flows_stats_total", "toolcalls_stats_total", "usage_stats_total" ], "properties": { "flows_stats_total": { "$ref": "#/definitions/models.FlowsStats" }, "toolcalls_stats_by_function": { "type": "array", "items": { "$ref": "#/definitions/models.FunctionToolcallsStats" } }, "toolcalls_stats_total": { "$ref": "#/definitions/models.ToolcallsStats" }, "usage_stats_by_agent_type": { "type": "array", "items": { "$ref": "#/definitions/models.AgentTypeUsageStats" } }, "usage_stats_by_model": { "type": "array", "items": { "$ref": "#/definitions/models.ModelUsageStats" } }, "usage_stats_by_provider": { "type": "array", "items": { "$ref": "#/definitions/models.ProviderUsageStats" } }, "usage_stats_total": { "$ref": "#/definitions/models.UsageStats" } } }, "models.Task": { "type": "object", "required": [ "flow_id", "input", "status", "title" ], "properties": { "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "input": { "type": "string" }, "result": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "updated_at": { "type": "string" } } }, "models.TaskExecutionStats": { "type": "object", "required": [ "task_title" ], "properties": { "subtasks": { "type": "array", "items": { "$ref": "#/definitions/models.SubtaskExecutionStats" } }, "task_id": { "type": "integer", "minimum": 0 }, "task_title": { "type": "string" }, "total_duration_seconds": { "type": "number", "minimum": 0 }, "total_toolcalls_count": { "type": "integer", "minimum": 0 } } }, "models.TaskSubtasks": { "type": "object", "required": [ "flow_id", "input", "status", "subtasks", "title" ], "properties": { "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "input": { "type": "string" }, "result": { "type": "string" }, "status": { "type": "string" }, "subtasks": { "type": "array", "items": { "$ref": "#/definitions/models.Subtask" } }, "title": { "type": "string" }, "updated_at": { "type": "string" } } }, "models.Termlog": { "type": "object", "required": [ "container_id", "flow_id", "text", "type" ], "properties": { "container_id": { "type": "integer", "minimum": 0 }, "created_at": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "subtask_id": { "type": "integer", "minimum": 0 }, "task_id": { "type": "integer", "minimum": 0 }, "text": { "type": "string" }, "type": { "type": "string" } } }, "models.Toolcall": { "type": "object", "required": [ "args", "call_id", "flow_id", "name", "status" ], "properties": { "args": { "type": "string" }, "call_id": { "type": "string" }, "created_at": { "type": "string" }, "duration_seconds": { "type": "number", "minimum": 0 }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "name": { "type": "string" }, "result": { "type": "string" }, "status": { "type": "string" }, "subtask_id": { "type": "integer", "minimum": 0 }, "task_id": { "type": "integer", "minimum": 0 }, "updated_at": { "type": "string" } } }, "models.ToolcallsStats": { "type": "object", "properties": { "total_count": { "type": "integer", "minimum": 0 }, "total_duration_seconds": { "type": "number", "minimum": 0 } } }, "models.UpdateAPITokenRequest": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 100 }, "status": { "type": "string" } } }, "models.UpdateKnowledgeDocRequest": { "type": "object", "required": [ "content" ], "properties": { "answer_type": { "type": "string" }, "code_lang": { "type": "string", "maxLength": 100 }, "content": { "type": "string", "maxLength": 65536, "minLength": 1 }, "description": { "type": "string", "maxLength": 1000 }, "guide_type": { "type": "string" }, "question": { "type": "string", "maxLength": 2048, "minLength": 1 } } }, "models.UsageStats": { "type": "object", "properties": { "total_usage_cache_in": { "type": "integer", "minimum": 0 }, "total_usage_cache_out": { "type": "integer", "minimum": 0 }, "total_usage_cost_in": { "type": "number", "minimum": 0 }, "total_usage_cost_out": { "type": "number", "minimum": 0 }, "total_usage_in": { "type": "integer", "minimum": 0 }, "total_usage_out": { "type": "integer", "minimum": 0 } } }, "models.User": { "type": "object", "required": [ "mail", "role_id", "status", "type" ], "properties": { "created_at": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password_change_required": { "type": "boolean" }, "provider": { "type": "string" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "type": { "type": "string" } } }, "models.UserPassword": { "type": "object", "required": [ "mail", "password", "role_id", "status", "type" ], "properties": { "created_at": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password": { "type": "string", "maxLength": 100 }, "password_change_required": { "type": "boolean" }, "provider": { "type": "string" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "type": { "type": "string" } } }, "models.UserRole": { "type": "object", "required": [ "mail", "role_id", "status", "type" ], "properties": { "created_at": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password_change_required": { "type": "boolean" }, "provider": { "type": "string" }, "role": { "$ref": "#/definitions/models.Role" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "type": { "type": "string" } } }, "models.UserRolePrivileges": { "type": "object", "required": [ "mail", "role_id", "status", "type" ], "properties": { "created_at": { "type": "string" }, "hash": { "type": "string" }, "id": { "type": "integer", "minimum": 0 }, "mail": { "type": "string", "maxLength": 50 }, "name": { "type": "string", "maxLength": 70 }, "password_change_required": { "type": "boolean" }, "provider": { "type": "string" }, "role": { "$ref": "#/definitions/models.RolePrivileges" }, "role_id": { "type": "integer", "minimum": 0 }, "status": { "type": "string" }, "type": { "type": "string" } } }, "models.Vecstorelog": { "type": "object", "required": [ "action", "executor", "filter", "flow_id", "initiator", "query" ], "properties": { "action": { "type": "string" }, "created_at": { "type": "string" }, "executor": { "type": "string" }, "filter": { "type": "string" }, "flow_id": { "type": "integer", "minimum": 0 }, "id": { "type": "integer", "minimum": 0 }, "initiator": { "type": "string" }, "query": { "type": "string" }, "result": { "type": "string" }, "subtask_id": { "type": "integer", "minimum": 0 }, "task_id": { "type": "integer", "minimum": 0 } } }, "services.agentlogs": { "type": "object", "properties": { "agentlogs": { "type": "array", "items": { "$ref": "#/definitions/models.Agentlog" } }, "total": { "type": "integer" } } }, "services.anonymizeTextRequest": { "type": "object", "required": [ "text" ], "properties": { "text": { "type": "string" } } }, "services.anonymizeTextResponse": { "type": "object", "properties": { "text": { "type": "string" } } }, "services.assistantlogs": { "type": "object", "properties": { "assistantlogs": { "type": "array", "items": { "$ref": "#/definitions/models.Assistantlog" } }, "total": { "type": "integer" } } }, "services.assistants": { "type": "object", "properties": { "assistants": { "type": "array", "items": { "$ref": "#/definitions/models.Assistant" } }, "total": { "type": "integer" } } }, "services.containers": { "type": "object", "properties": { "containers": { "type": "array", "items": { "$ref": "#/definitions/models.Container" } }, "total": { "type": "integer" } } }, "services.flows": { "type": "object", "properties": { "flows": { "type": "array", "items": { "$ref": "#/definitions/models.Flow" } }, "total": { "type": "integer" } } }, "services.info": { "type": "object", "properties": { "develop": { "type": "boolean" }, "expires_at": { "type": "string" }, "issued_at": { "type": "string" }, "oauth": { "type": "boolean" }, "privileges": { "type": "array", "items": { "type": "string" } }, "providers": { "type": "array", "items": { "type": "string" } }, "role": { "$ref": "#/definitions/models.Role" }, "type": { "type": "string" }, "user": { "$ref": "#/definitions/models.User" } } }, "services.msglogs": { "type": "object", "properties": { "msglogs": { "type": "array", "items": { "$ref": "#/definitions/models.Msglog" } }, "total": { "type": "integer" } } }, "services.prompts": { "type": "object", "properties": { "prompts": { "type": "array", "items": { "$ref": "#/definitions/models.Prompt" } }, "total": { "type": "integer" } } }, "services.roles": { "type": "object", "properties": { "roles": { "type": "array", "items": { "$ref": "#/definitions/models.RolePrivileges" } }, "total": { "type": "integer" } } }, "services.screenshots": { "type": "object", "properties": { "screenshots": { "type": "array", "items": { "$ref": "#/definitions/models.Screenshot" } }, "total": { "type": "integer" } } }, "services.searchlogs": { "type": "object", "properties": { "searchlogs": { "type": "array", "items": { "$ref": "#/definitions/models.Searchlog" } }, "total": { "type": "integer" } } }, "services.subtasks": { "type": "object", "properties": { "subtasks": { "type": "array", "items": { "$ref": "#/definitions/models.Subtask" } }, "total": { "type": "integer" } } }, "services.tasks": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "$ref": "#/definitions/models.Task" } }, "total": { "type": "integer" } } }, "services.termlogs": { "type": "object", "properties": { "termlogs": { "type": "array", "items": { "$ref": "#/definitions/models.Termlog" } }, "total": { "type": "integer" } } }, "services.tokens": { "type": "object", "properties": { "tokens": { "type": "array", "items": { "$ref": "#/definitions/models.APIToken" } }, "total": { "type": "integer" } } }, "services.toolcalls": { "type": "object", "properties": { "toolcalls": { "type": "array", "items": { "$ref": "#/definitions/models.Toolcall" } }, "total": { "type": "integer" } } }, "services.users": { "type": "object", "properties": { "total": { "type": "integer" }, "users": { "type": "array", "items": { "$ref": "#/definitions/models.UserRole" } } } }, "services.vecstorelogs": { "type": "object", "properties": { "total": { "type": "integer" }, "vecstorelogs": { "type": "array", "items": { "$ref": "#/definitions/models.Vecstorelog" } } } }, "tools.DisableFunction": { "type": "object", "required": [ "context", "name" ], "properties": { "context": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" } } }, "tools.ExternalFunction": { "type": "object", "required": [ "context", "name", "schema", "url" ], "properties": { "context": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "schema": { "type": "object" }, "timeout": { "type": "integer", "minimum": 1, "example": 60 }, "url": { "type": "string", "example": "https://example.com/api/v1/function" } } }, "tools.Functions": { "type": "object", "properties": { "disabled": { "type": "array", "items": { "$ref": "#/definitions/tools.DisableFunction" } }, "functions": { "type": "array", "items": { "$ref": "#/definitions/tools.ExternalFunction" } }, "token": { "type": "string" } } } }, "securityDefinitions": { "BearerAuth": { "description": "Type \"Bearer\" followed by a space and JWT token.", "type": "apiKey", "name": "Authorization", "in": "header" } } }