diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index e8b1738..731ce0e 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -3,12 +3,21 @@ "info": { "title": "Lowcoder Open Rest API", "version": "1.1", - "description": "" + "description": "The Lowcoder API is a RESTful web service designed to facilitate efficient interaction with the Lowcoder platform. This API allows developers to integrate and interact with various functionalities of the Lowcoder service programmatically.", + "termsOfService": "https://lowcoder.cloud/terms", + "license": { + "name": "MIT" + }, + "contact": { + "name": "Lowcoder Software LTD", + "email": "service@lowcoder.org", + "url": "https://lowcoder.cloud" + } }, "servers": [ { "url": "{scheme}://{domain}:{port}{basePath}", - "description": "Lowcoder Self-hosted Installation API Access", + "description": "Supabase Self-hosted Installation API Access", "variables": { "scheme": { "description": "HTTP scheme", @@ -19,12 +28,12 @@ ] }, "domain": { - "description": "Lowcoder IP address or domain", + "description": "Supabase IP address or domain", "default": "localhost" }, "port": { "description": "Port", - "default": "3000" + "default": "8000" }, "basePath": { "description": "Base path", @@ -33,29 +42,39 @@ } }, { - "url": "https://api-service.lowcoder.cloud/", - "description": "Lowcoder Community Edition: Public Cloud API Access" + "url": "https://api.supabase.io", + "description": "Supabase Public Cloud API Access" } ], "security": [ { - "LOWCODER_DEBUG_TOKEN": [] + "bearerAuth": [] } ], "paths": { - "/api/users/password": { + "/api/applications/{applicationId}/public-to-marketplace": { "put": { "tags": [ - "User Password APIs" + "Application APIs" + ], + "summary": "Set Application as publicly available on marketplace but to only logged in users", + "description": "Set a Lowcoder Application identified by its ID as publicly available on marketplace but to only logged in users.", + "operationId": "setApplicationAsPublicToMarketplace", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Update User Password", - "description": "Allow the User to update their Password within Lowcoder, enhancing security and account management.", - "operationId": "updatePassword", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdatePasswordRequest" + "$ref": "#/components/schemas/ApplicationPublicToMarketplaceRequest" } } }, @@ -73,24 +92,36 @@ } } } - }, - "post": { + } + }, + "/api/applications/{applicationId}/public-to-all": { + "put": { "tags": [ - "User Password APIs" + "Application APIs" ], - "summary": "Set User Password", - "description": "Set a new Password for the User within Lowcoder, ensuring secure access to their account.", - "operationId": "setPassword", + "summary": "Set Application as publicly available", + "description": "Set a Lowcoder Application identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Application in production mode.", + "operationId": "setApplicationAsPublic", "parameters": [ { - "name": "password", - "in": "query", + "name": "applicationId", + "in": "path", "required": true, "schema": { "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApplicationPublicToAllRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", @@ -105,14 +136,42 @@ } } }, - "/api/users/newUserGuidanceShown": { + "/api/applications/{applicationId}/permissions/{permissionId}": { "put": { "tags": [ - "User APIs" + "Application Permissions APIs" ], - "summary": "Mark current user with help shown status", - "description": "Indicate that the current user has been shown help or guidance within Lowcoder, helping track user assistance efforts.", - "operationId": "newUserGuidanceShown", + "summary": "Update Application permissions", + "description": "Update the permissions of a specific Lowcoder Application identified by its ID.", + "operationId": "updateApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", @@ -125,26 +184,32 @@ } } } - } - }, - "/api/users/mark-status": { - "put": { + }, + "delete": { "tags": [ - "User APIs" + "Application Permissions APIs" ], - "summary": "Mark current User with Status", - "description": "Mark the current User with a specific Status within Lowcoder, allowing for status tracking or updates.", - "operationId": "markUserStatus", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MarkUserStatusRequest" - } + "summary": "Revoke permissions from Application", + "description": "Revoke permissions of a specific Lowcoder Application identified by its ID.", + "operationId": "revokeApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "required": true - }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "OK", @@ -159,49 +224,47 @@ } } }, - "/api/users": { - "put": { + "/api/applications/{applicationId}/permissions": { + "get": { "tags": [ - "User APIs" + "Application Permissions APIs" ], - "summary": "Update current User", - "description": "Enable the current User to update their Profile information within Lowcoder, ensuring accuracy and relevance.", - "operationId": "updateUser", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateUserRequest" - } + "summary": "Get Application permissions", + "description": "Retrieve the permissions of a specific Lowcoder Application identified by its ID.", + "operationId": "listApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "required": true - }, + } + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewUserProfileView" + "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" } } } } } - } - }, - "/api/organizations/{orgId}/update": { + }, "put": { "tags": [ - "Organization APIs" + "Application Permissions APIs" ], - "summary": "Update Organization by ID", - "description": "Modify the properties and settings of an existing Organization within Lowcoder identified by its unique ID.", - "operationId": "updateOrganization", + "summary": "Grant permissions to Application", + "description": "Grant new permissions to a specific Lowcoder Application identified by its ID.", + "operationId": "grantApplicationPermissions", "parameters": [ { - "name": "orgId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -213,7 +276,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateOrgRequest" + "$ref": "#/components/schemas/BatchAddPermissionRequest" } } }, @@ -233,17 +296,17 @@ } } }, - "/api/organizations/{orgId}/role": { + "/api/applications/{applicationId}/agency-profile": { "put": { "tags": [ - "Organization Member APIs" + "Application APIs" ], - "summary": "Update role of Member in Organization", - "description": "Change the Role of a specific Member (User) within an Organization in Lowcoder using the unique ID of a user and the name of the existing Role.", - "operationId": "updateOrganizationMemberRole", + "summary": "Set Application as agency profile", + "description": "Set a Lowcoder Application identified by its ID as as agency profile but to only logged in users.", + "operationId": "setApplicationAsAgencyProfile", "parameters": [ { - "name": "orgId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -255,7 +318,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateRoleRequest" + "$ref": "#/components/schemas/ApplicationAsAgencyProfileRequest" } } }, @@ -275,17 +338,17 @@ } } }, - "/api/organizations/{orgId}/common-settings": { + "/api/applications/{applicationId}": { "get": { "tags": [ - "Organization APIs" + "Application APIs" ], - "summary": "Get Organization common Settings", - "description": "Retrieve common settings (such as Themes and Auth Sources) and configurations for an Organization within Lowcoder using its unique ID.", - "operationId": "getOrganizationSettings", + "summary": "Get Application data in edit mode", + "description": "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID.", + "operationId": "getApplicationDataInEditMode", "parameters": [ { - "name": "orgId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -299,7 +362,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewOrganizationCommonSettings" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -308,14 +371,14 @@ }, "put": { "tags": [ - "Organization APIs" + "Application APIs" ], - "summary": "Update Organization common Settings", - "description": "Modify common settings (such as Themes) and configurations for a Lowcoder Organization / Workspace.", - "operationId": "updateOrganizationSettings", + "summary": "Update Application by ID", + "description": "Update a Lowcoder Application identified by its ID.", + "operationId": "updateApplication", "parameters": [ { - "name": "orgId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -327,7 +390,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateOrgCommonSettingsRequest" + "$ref": "#/components/schemas/Application" } } }, @@ -339,25 +402,23 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } } } - } - }, - "/api/organizations/switchOrganization/{orgId}": { - "put": { + }, + "delete": { "tags": [ - "Organization Member APIs" + "Application APIs" ], - "summary": "Switch current users Organization", - "description": "Trigger a switch of the active Organization for the current User within Lowcoder in regards to the Session. After this switch, the impersonated user will see all resources from the new / selected Organization.", - "operationId": "switchOrganization", + "summary": "Delete Application by ID", + "description": "Permanently delete a Lowcoder Application identified by its ID.", + "operationId": "deleteApplication", "parameters": [ { - "name": "orgId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -371,7 +432,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -379,17 +440,17 @@ } } }, - "/api/groups/{groupId}/update": { + "/api/applications/restore/{applicationId}": { "put": { "tags": [ - "Group APIs" + "Application APIs" ], - "summary": "Update User Group", - "description": "Modify the properties and settings of an existing User Group within Lowcoder, identified by the unique ID of a User Group.", - "operationId": "updateGroup", + "summary": "Restore recycled Application", + "description": "Restore a previously recycled Lowcoder Application identified by its ID", + "operationId": "restoreRecycledApplication", "parameters": [ { - "name": "groupId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -397,16 +458,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateGroupRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", @@ -421,17 +472,17 @@ } } }, - "/api/groups/{groupId}/role": { + "/api/applications/recycle/{applicationId}": { "put": { "tags": [ - "Group Members APIs" + "Application APIs" ], - "summary": "Update User Group member role", - "description": "Modify the Role of a specific Member within a User Group in Lowcoder, ensuring proper access control.", - "operationId": "updateRoleForGroupMember", + "summary": "Move Application to bin (do not delete)", + "description": "Move a Lowcoder Application identified by its ID to the recycle bin without permanent deletion.", + "operationId": "recycleApplication", "parameters": [ { - "name": "groupId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -439,16 +490,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateRoleRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", @@ -463,17 +504,17 @@ } } }, - "/api/datasources/{id}": { - "get": { + "/api/applications/{applicationId}/publish": { + "post": { "tags": [ - "Data Source APIs" + "Application APIs" ], - "summary": "Get data source by ID", - "description": "Retrieve a specific data source within Lowcoder by its ID.", - "operationId": "getDatasource", + "summary": "Publish Application for users", + "description": "Set a Lowcoder Application identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Apps gets published in production mode.", + "operationId": "publicApplication", "parameters": [ { - "name": "id", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -487,35 +528,59 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewDatasource_Public" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } } } - }, - "put": { + } + }, + "/api/applications/createFromTemplate": { + "post": { "tags": [ - "Data Source APIs" + "Application APIs" ], - "summary": "Update data source by ID", - "description": "Modify the properties and settings of a data source within Lowcoder using its ID.", - "operationId": "updateDatasource", + "summary": "Create an Application from a predefined Template", + "description": "Use an Application-Template to create a new Application in an Organization where the authenticated or impersonated user has access.", + "operationId": "createApplicationFromTemplate", "parameters": [ { - "name": "id", - "in": "path", + "name": "templateId", + "in": "query", "required": true, "schema": { "type": "string" } } ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications": { + "post": { + "tags": [ + "Application APIs" + ], + "summary": "Create a new Application", + "description": "Create a new Lowcoder Application based on the Organization-ID where the authenticated or impersonated user has access.", + "operationId": "createApplication", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" + "$ref": "#/components/schemas/CreateApplicationRequest" } } }, @@ -527,23 +592,25 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewDatasource_Public" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } } } - }, - "delete": { + } + }, + "/api/applications/{applicationId}/view_marketplace": { + "get": { "tags": [ - "Data Source APIs" + "Application APIs" ], - "summary": "Delete data source by ID", - "description": "Permanently remove a data source within Lowcoder using its ID.", - "operationId": "deleteDatasource", + "summary": "Get Marketplace Application data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID for the Marketplace.", + "operationId": "getMarketplaceApplicationDataInViewMode", "parameters": [ { - "name": "id", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -557,7 +624,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -565,17 +632,17 @@ } } }, - "/api/datasources/{datasourceId}/permissions": { + "/api/applications/{applicationId}/view_agency": { "get": { "tags": [ - "Data Source Permissions APIs" + "Application APIs" ], - "summary": "Get data source permissions", - "description": "Retrieve permissions associated with a specific data source within Lowcoder, identified by its ID.", - "operationId": "listDatasourcePermissions", + "summary": "Get Agency profile Application data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID marked as Agency Profile.", + "operationId": "getAgencyProfileApplicationDataInViewMode", "parameters": [ { - "name": "datasourceId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -589,23 +656,25 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewCommonPermissionView" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } } } - }, - "put": { + } + }, + "/api/applications/{applicationId}/view": { + "get": { "tags": [ - "Data Source Permissions APIs" + "Application APIs" ], - "summary": "Update data source permission", - "description": "Modify a specific data source permission within Lowcoder, identified by its ID.", - "operationId": "updateDatasourcePermission", + "summary": "Get Application data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID.", + "operationId": "getApplicatioDataInViewMode", "parameters": [ { - "name": "datasourceId", + "name": "applicationId", "in": "path", "required": true, "schema": { @@ -613,23 +682,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BatchAddPermissionRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -637,61 +696,44 @@ } } }, - "/api/datasources/permissions/{permissionId}": { - "put": { + "/api/applications/recycle/list": { + "get": { "tags": [ - "Data Source Permissions APIs" - ], - "summary": "Grant permissions to data source", - "description": "Assign permissions for selected users or user-groups to a specific data source within Lowcoder, identified by its ID.", - "operationId": "grantDatasourcePermissions", - "parameters": [ - { - "name": "permissionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "Application APIs" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePermissionRequest" - } - } - }, - "required": true - }, + "summary": "List recycled Applications in bin", + "description": "List all the recycled Lowcoder Applications in the recycle bin where the authenticated or impersonated user has access.", + "operationId": "listRecycledApplications", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" } } } } } - }, - "delete": { + } + }, + "/api/applications/marketplace-apps": { + "get": { "tags": [ - "Data Source Permissions APIs" + "Application APIs" ], - "summary": "Revoke permission from data source", - "description": "Revoke a specific permission from a data source within Lowcoder, identified by its ID.", - "operationId": "revokeDatasourcePermission", + "summary": "List Marketplace Applications", + "description": "Retrieve a list of Lowcoder Applications that are published to the Marketplace", + "operationId": "listMarketplaceApplications", "parameters": [ { - "name": "permissionId", - "in": "path", - "required": true, + "name": "applicationType", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } } ], @@ -701,7 +743,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" } } } @@ -709,41 +751,54 @@ } } }, - "/api/applications/{applicationId}/public-to-marketplace": { - "put": { + "/api/applications/list": { + "get": { "tags": [ "Application APIs" ], - "summary": "Set Application as publicly available on marketplace but to only logged in users", - "description": "Set a Lowcoder Application identified by its ID as publicly available on marketplace but to only logged in users.", - "operationId": "setApplicationAsPublicToMarketplace", + "summary": "List Applications of current User", + "description": "Retrieve a list of Lowcoder Applications accessible by the authenticated or impersonated user.", + "operationId": "listApplications", "parameters": [ { - "name": "applicationId", - "in": "path", - "required": true, + "name": "applicationType", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationPublicToMarketplaceRequest" - } + }, + { + "name": "applicationStatus", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] } }, - "required": true - }, + { + "name": "withContainerSize", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + } + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" } } } @@ -751,41 +806,33 @@ } } }, - "/api/applications/{applicationId}/public-to-all": { - "put": { + "/api/applications/home": { + "get": { "tags": [ "Application APIs" ], - "summary": "Set Application as publicly available", - "description": "Set a Lowcoder Application identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Application in production mode.", - "operationId": "setApplicationAsPublic", + "summary": "Get the homepage Application of current User", + "description": "Retrieve the first displayed Lowcoder Application for an authenticated or impersonated user.", + "operationId": "getUserHomepageApplication", "parameters": [ { - "name": "applicationId", - "in": "path", - "required": true, + "name": "applicationType", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 0 } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationPublicToAllRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewUserHomepageView" } } } @@ -793,37 +840,52 @@ } } }, - "/api/applications/{applicationId}/permissions/{permissionId}": { - "put": { + "/api/applications/agency-profiles": { + "get": { "tags": [ - "Application Permissions APIs" + "Application APIs" ], - "summary": "Update Application permissions", - "description": "Update the permissions of a specific Lowcoder Application identified by its ID.", - "operationId": "updateApplicationPermissions", + "summary": "List agency profile Applications", + "description": "Retrieve a list of Lowcoder Applications that are set as agency profiles", + "operationId": "listAgencyProfileApplications", "parameters": [ { - "name": "applicationId", - "in": "path", - "required": true, + "name": "applicationType", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } - }, - { - "name": "permissionId", - "in": "path", - "required": true, - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" + } + } } } + } + } + }, + "/api/application/history-snapshots": { + "post": { + "tags": [ + "Application History APIs" ], + "summary": "Create Application Snapshot", + "description": "Create a snapshot of an Application DSL within Lowcoder, capturing its current state for future reference.", + "operationId": "createApplicationSnapshot", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdatePermissionRequest" + "$ref": "#/components/schemas/ApplicationHistorySnapshotRequest" } } }, @@ -841,14 +903,16 @@ } } } - }, - "delete": { + } + }, + "/api/application/history-snapshots/{applicationId}": { + "get": { "tags": [ - "Application Permissions APIs" + "Application History APIs" ], - "summary": "Revoke permissions from Application", - "description": "Revoke permissions of a specific Lowcoder Application identified by its ID.", - "operationId": "revokeApplicationPermissions", + "summary": "List Application Snapshots", + "description": "Retrieve a list of Snapshots associated with a specific Application within Lowcoder.", + "operationId": "listApplicationSnapshots", "parameters": [ { "name": "applicationId", @@ -859,11 +923,23 @@ } }, { - "name": "permissionId", - "in": "path", - "required": true, + "name": "page", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 } } ], @@ -873,7 +949,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewMapStringObject" } } } @@ -881,14 +957,14 @@ } } }, - "/api/applications/{applicationId}/permissions": { + "/api/application/history-snapshots/{applicationId}/{snapshotId}": { "get": { "tags": [ - "Application Permissions APIs" + "Application History APIs" ], - "summary": "Get Application permissions", - "description": "Retrieve the permissions of a specific Lowcoder Application identified by its ID.", - "operationId": "listApplicationPermissions", + "summary": "Retrieve Application Snapshot", + "description": "Retrieve a specific Application Snapshot within Lowcoder using the Application and Snapshot IDs.", + "operationId": "getApplicationSnapshot", "parameters": [ { "name": "applicationId", @@ -897,6 +973,14 @@ "schema": { "type": "string" } + }, + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -905,35 +989,57 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" + "$ref": "#/components/schemas/ResponseViewHistorySnapshotDslView" } } } } } - }, + } + }, + "/api/bundles": { "put": { "tags": [ - "Application Permissions APIs" + "Bundle APIs" ], - "summary": "Grant permissions to Application", - "description": "Grant new permissions to a specific Lowcoder Application identified by its ID.", - "operationId": "grantApplicationPermissions", - "parameters": [ - { - "name": "applicationId", - "in": "path", - "required": true, - "schema": { - "type": "string" + "summary": "Update Bundle", + "description": "Modify the properties and settings of an existing Bundle Bundle within Lowcoder.", + "operationId": "updateBundle", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Bundle" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } } } + } + }, + "post": { + "tags": [ + "Bundle APIs" ], + "summary": "Create new Bundle", + "description": "Create a new Application Bundle within the Lowcoder to organize Applications effectively.", + "operationId": "createBundle", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BatchAddPermissionRequest" + "$ref": "#/components/schemas/CreateBundleRequest" } } }, @@ -945,7 +1051,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -953,17 +1059,17 @@ } } }, - "/api/applications/{applicationId}/agency-profile": { - "put": { + "/api/bundles/{id}": { + "delete": { "tags": [ - "Application APIs" + "Bundle APIs" ], - "summary": "Set Application as agency profile", - "description": "Set a Lowcoder Application identified by its ID as as agency profile but to only logged in users.", - "operationId": "setApplicationAsAgencyProfile", + "summary": "Delete Bundle", + "description": "Permanently remove an Application Bundle from Lowcoder using its unique ID.", + "operationId": "deleteBundle", "parameters": [ { - "name": "applicationId", + "name": "id", "in": "path", "required": true, "schema": { @@ -971,23 +1077,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationAsAgencyProfileRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -995,22 +1091,33 @@ } } }, - "/api/applications/{applicationId}": { - "get": { + "/api/bundles/{bundleId}/reorder": { + "put": { "tags": [ - "Application APIs" + "Bundle APIs" ], - "summary": "Get Application data in edit mode", - "description": "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID.", - "operationId": "getApplicationDataInEditMode", + "summary": "Reorder Bundle", + "description": "Reorder bundle.", + "operationId": "reorderBundle", "parameters": [ { - "name": "applicationId", + "name": "bundleId", "in": "path", "required": true, "schema": { "type": "string" } + }, + { + "name": "elementIds", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } } ], "responses": { @@ -1019,23 +1126,25 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } } } - }, + } + }, + "/api/bundles/{bundleId}/public-to-marketplace": { "put": { "tags": [ - "Application APIs" + "Bundle APIs" ], - "summary": "Update Application by ID", - "description": "Update a Lowcoder Application identified by its ID.", - "operationId": "updateApplication", + "summary": "Set Bundle as publicly available on marketplace but to only logged in users", + "description": "Set a Lowcoder Bundle identified by its ID as publicly available on marketplace but to only logged in users.", + "operationId": "setBundleAsPublicToMarketplace", "parameters": [ { - "name": "applicationId", + "name": "bundleId", "in": "path", "required": true, "schema": { @@ -1047,7 +1156,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Application" + "$ref": "#/components/schemas/BundlePublicToMarketplaceRequest" } } }, @@ -1059,23 +1168,25 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - }, - "delete": { + } + }, + "/api/bundles/{bundleId}/public-to-all": { + "put": { "tags": [ - "Application APIs" + "Bundle APIs" ], - "summary": "Delete Application by ID", - "description": "Permanently delete a Lowcoder Application identified by its ID.", - "operationId": "deleteApplication", + "summary": "Set Bundle as publicly available", + "description": "Set a Lowcoder Bundle identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Bundle in production mode.", + "operationId": "setBundleAsPublic", "parameters": [ { - "name": "applicationId", + "name": "bundleId", "in": "path", "required": true, "schema": { @@ -1083,13 +1194,23 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BundlePublicToAllRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -1097,17 +1218,25 @@ } } }, - "/api/applications/restore/{applicationId}": { + "/api/bundles/{bundleId}/permissions/{permissionId}": { "put": { "tags": [ - "Application APIs" + "Bundle Permissions APIs" ], - "summary": "Restore recycled Application", - "description": "Restore a previously recycled Lowcoder Application identified by its ID", - "operationId": "restoreRecycledApplication", + "summary": "Update Bundle permissions", + "description": "Modify permissions associated with a specific Bundle Bundle within Lowcoder.", + "operationId": "updateBundlePermissions", "parameters": [ { - "name": "applicationId", + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", "in": "path", "required": true, "schema": { @@ -1115,31 +1244,47 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } } } - } - }, - "/api/applications/recycle/{applicationId}": { - "put": { + }, + "delete": { "tags": [ - "Application APIs" + "Bundle Permissions APIs" ], - "summary": "Move Application to bin (do not delete)", - "description": "Move a Lowcoder Application identified by its ID to the recycle bin without permanent deletion.", - "operationId": "recycleApplication", + "summary": "Revoke permissions from Bundle", + "description": "Remove specific permissions from an Bundle Bundle within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", + "operationId": "revokeBundlePermissions", "parameters": [ { - "name": "applicationId", + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", "in": "path", "required": true, "schema": { @@ -1153,7 +1298,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -1161,17 +1306,17 @@ } } }, - "/api/library-queries/{libraryQueryId}": { + "/api/bundles/{bundleId}/agency-profile": { "put": { "tags": [ - "Query Library APIs" + "Bundle APIs" ], - "summary": "Update a Data Query Library", - "description": "Modify the properties and settings of an existing Library Query within Lowcoder identified by its unique ID.", - "operationId": "updateLibraryQuery", + "summary": "Set Bundle as agency profile", + "description": "Set a Lowcoder Bundle identified by its ID as as agency profile but to only logged in users.", + "operationId": "setBundleAsAgencyProfile", "parameters": [ { - "name": "libraryQueryId", + "name": "bundleId", "in": "path", "required": true, "schema": { @@ -1183,7 +1328,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpsertLibraryQueryRequest" + "$ref": "#/components/schemas/BundleAsAgencyProfileRequest" } } }, @@ -1201,17 +1346,19 @@ } } } - }, - "delete": { + } + }, + "/api/bundles/restore/{bundleId}": { + "put": { "tags": [ - "Query Library APIs" + "Bundle APIs" ], - "summary": "Delete a Data Query Library", - "description": "Permanently remove a Library Query from Lowcoder using its unique ID.", - "operationId": "deleteLibraryQuery", + "summary": "Restore recycled Bundle", + "description": "Restore a previously recycled Lowcoder Bundle identified by its ID", + "operationId": "restoreRecycledBundle", "parameters": [ { - "name": "libraryQueryId", + "name": "bundleId", "in": "path", "required": true, "schema": { @@ -1233,61 +1380,31 @@ } } }, - "/api/folders": { + "/api/bundles/recycle/{bundleId}": { "put": { "tags": [ - "Folder APIs" + "Bundle APIs" ], - "summary": "Update Folder", - "description": "Modify the properties and settings of an existing Application Folder within Lowcoder.", - "operationId": "updateFolder", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Folder" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewFolderInfoView" - } - } + "summary": "Move Bundle to bin (do not delete)", + "description": "Move a Lowcoder Bundle identified by its ID to the recycle bin without permanent deletion.", + "operationId": "recycleBundle", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } - } - }, - "post": { - "tags": [ - "Folder APIs" ], - "summary": "Create new Folder", - "description": "Create a new Application Folder within the Lowcoder to organize Applications effectively.", - "operationId": "createFolder", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Folder" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewFolderInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -1295,17 +1412,17 @@ } } }, - "/api/folders/{folderId}/permissions/{permissionId}": { + "/api/bundles/moveApp/{id}": { "put": { "tags": [ - "Folder Permissions APIs" + "Bundle APIs" ], - "summary": "Update Folder permissions", - "description": "Modify permissions associated with a specific Application Folder within Lowcoder.", - "operationId": "updateFolderPermissions", + "summary": "Move App to Bundle", + "description": "Relocate an application to a different bundle in Lowcoder using its unique ID.", + "operationId": "moveApp", "parameters": [ { - "name": "folderId", + "name": "id", "in": "path", "required": true, "schema": { @@ -1313,24 +1430,22 @@ } }, { - "name": "permissionId", - "in": "path", + "name": "fromBundleId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "toBundleId", + "in": "query", "required": true, "schema": { "type": "string" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePermissionRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", @@ -1343,17 +1458,19 @@ } } } - }, - "delete": { + } + }, + "/api/bundles/addApp/{id}": { + "put": { "tags": [ - "Folder Permissions APIs" + "Bundle APIs" ], - "summary": "Revoke permissions from Folder", - "description": "Remove specific permissions from an Application Folder within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", - "operationId": "revokeFolderPermissions", + "summary": "Add App to Bundle", + "description": "Add an application to a bundle in Lowcoder using its unique ID.", + "operationId": "addApp", "parameters": [ { - "name": "folderId", + "name": "id", "in": "path", "required": true, "schema": { @@ -1361,8 +1478,8 @@ } }, { - "name": "permissionId", - "in": "path", + "name": "toBundleId", + "in": "query", "required": true, "schema": { "type": "string" @@ -1383,30 +1500,22 @@ } } }, - "/api/folders/move/{id}": { - "put": { + "/api/bundles/{bundleId}/publish": { + "post": { "tags": [ - "Folder APIs" + "Bundle APIs" ], - "summary": "Move Folder", - "description": "Relocate an Application Folder to a different location in the Folder hierarchy in Lowcoder using its unique ID.", - "operationId": "moveFolder", + "summary": "Publish Bundle for users", + "description": "Set a Lowcoder Bundle identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Bundle gets published in production mode.", + "operationId": "publicBundle", "parameters": [ { - "name": "id", + "name": "bundleId", "in": "path", "required": true, "schema": { "type": "string" } - }, - { - "name": "targetFolderId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { @@ -1415,7 +1524,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -1423,31 +1532,31 @@ } } }, - "/api/bundles": { - "put": { + "/api/bundles/{bundleId}/permissions": { + "get": { "tags": [ - "Bundle APIs" + "Bundle Permissions APIs" ], - "summary": "Update Bundle", - "description": "Modify the properties and settings of an existing Bundle Bundle within Lowcoder.", - "operationId": "updateBundle", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Bundle" - } + "summary": "Get Bundle permissions", + "description": "Retrieve detailed information about permissions associated with a specific Bundle Bundle within Lowcoder.", + "operationId": "listBundlePermissions", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "required": true - }, + } + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBundlePermissionView" } } } @@ -1456,16 +1565,26 @@ }, "post": { "tags": [ - "Bundle APIs" + "Bundle Permissions APIs" + ], + "summary": "Grant permissions to Bundle", + "description": "Assign new permissions to a specific Bundle Bundle within Lowcoder, allowing authorized users to access it.", + "operationId": "grantBundlePermissions", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Create new Bundle", - "description": "Create a new Application Bundle within the Lowcoder to organize Applications effectively.", - "operationId": "createBundle", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateBundleRequest" + "$ref": "#/components/schemas/BatchAddPermissionRequest" } } }, @@ -1477,7 +1596,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -1485,14 +1604,14 @@ } } }, - "/api/bundles/{bundleId}/reorder": { - "put": { + "/api/bundles/{bundleId}/view": { + "get": { "tags": [ "Bundle APIs" ], - "summary": "Reorder Bundle", - "description": "Reorder bundle.", - "operationId": "reorderBundle", + "summary": "Get Bundle data in view mode", + "description": "Retrieve the data of a Lowcoder Bundle in view-mode by its ID.", + "operationId": "getBundleDataInViewMode", "parameters": [ { "name": "bundleId", @@ -1501,17 +1620,6 @@ "schema": { "type": "string" } - }, - { - "name": "elementIds", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } } ], "responses": { @@ -1520,7 +1628,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -1528,14 +1636,14 @@ } } }, - "/api/bundles/{bundleId}/public-to-marketplace": { - "put": { + "/api/bundles/{bundleId}/view_marketplace": { + "get": { "tags": [ "Bundle APIs" ], - "summary": "Set Bundle as publicly available on marketplace but to only logged in users", - "description": "Set a Lowcoder Bundle identified by its ID as publicly available on marketplace but to only logged in users.", - "operationId": "setBundleAsPublicToMarketplace", + "summary": "Get Marketplace Bundle data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID for the Marketplace.", + "operationId": "getMarketplaceBundleDataInViewMode", "parameters": [ { "name": "bundleId", @@ -1546,23 +1654,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BundlePublicToMarketplaceRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -1570,14 +1668,14 @@ } } }, - "/api/bundles/{bundleId}/public-to-all": { - "put": { + "/api/bundles/{bundleId}/view_agency": { + "get": { "tags": [ "Bundle APIs" ], - "summary": "Set Bundle as publicly available", - "description": "Set a Lowcoder Bundle identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Bundle in production mode.", - "operationId": "setBundleAsPublic", + "summary": "Get Agency profile Bundle data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID marked as Agency Profile.", + "operationId": "getAgencyProfileBundleDataInViewMode", "parameters": [ { "name": "bundleId", @@ -1588,23 +1686,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BundlePublicToAllRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -1612,14 +1700,14 @@ } } }, - "/api/bundles/{bundleId}/permissions/{permissionId}": { - "put": { + "/api/bundles/{bundleId}/elements": { + "get": { "tags": [ - "Bundle Permissions APIs" + "Bundle APIs" ], - "summary": "Update Bundle permissions", - "description": "Modify permissions associated with a specific Bundle Bundle within Lowcoder.", - "operationId": "updateBundlePermissions", + "summary": "Get Bundle contents", + "description": "Retrieve the contents of an Bundle Bundle within Lowcoder, including Bundles.", + "operationId": "listBundleContents", "parameters": [ { "name": "bundleId", @@ -1630,69 +1718,48 @@ } }, { - "name": "permissionId", - "in": "path", - "required": true, + "name": "applicationType", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "APPLICATION", + "MODULE", + "COMPOUND_APPLICATION" + ] } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePermissionRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListObject" } } } } } - }, - "delete": { + } + }, + "/api/bundles/recycle/list": { + "get": { "tags": [ - "Bundle Permissions APIs" - ], - "summary": "Revoke permissions from Bundle", - "description": "Remove specific permissions from an Bundle Bundle within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", - "operationId": "revokeBundlePermissions", - "parameters": [ - { - "name": "bundleId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permissionId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "Bundle APIs" ], + "summary": "List recycled Bundles in bin", + "description": "List all the recycled Lowcoder Bundles in the recycle bin where the authenticated or impersonated user has access.", + "operationId": "listRecycledBundles", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListBundleInfoView" } } } @@ -1700,41 +1767,21 @@ } } }, - "/api/bundles/{bundleId}/agency-profile": { - "put": { + "/api/bundles/marketplace-bundles": { + "get": { "tags": [ "Bundle APIs" ], - "summary": "Set Bundle as agency profile", - "description": "Set a Lowcoder Bundle identified by its ID as as agency profile but to only logged in users.", - "operationId": "setBundleAsAgencyProfile", - "parameters": [ - { - "name": "bundleId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BundleAsAgencyProfileRequest" - } - } - }, - "required": true - }, + "summary": "List Marketplace Bundles", + "description": "Retrieve a list of Lowcoder Bundles that are published to the Marketplace", + "operationId": "listMarketplaceBundles", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" } } } @@ -1742,21 +1789,26 @@ } } }, - "/api/bundles/restore/{bundleId}": { - "put": { + "/api/bundles/list": { + "get": { "tags": [ "Bundle APIs" ], - "summary": "Restore recycled Bundle", - "description": "Restore a previously recycled Lowcoder Bundle identified by its ID", - "operationId": "restoreRecycledBundle", + "summary": "List Bundles of current User", + "description": "Retrieve a list of Lowcoder Bundles accessible by the authenticated or impersonated user.", + "operationId": "listBundles", "parameters": [ { - "name": "bundleId", - "in": "path", - "required": true, + "name": "bundleStatus", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] } } ], @@ -1766,7 +1818,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListBundleInfoView" } } } @@ -1774,351 +1826,21 @@ } } }, - "/api/bundles/recycle/{bundleId}": { - "put": { + "/api/bundles/agency-profiles": { + "get": { "tags": [ "Bundle APIs" ], - "summary": "Move Bundle to bin (do not delete)", - "description": "Move a Lowcoder Bundle identified by its ID to the recycle bin without permanent deletion.", - "operationId": "recycleBundle", - "parameters": [ - { - "name": "bundleId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/bundles/moveApp/{id}": { - "put": { - "tags": [ - "Bundle APIs" - ], - "summary": "Move App to Bundle", - "description": "Relocate an application to a different bundle in Lowcoder using its unique ID.", - "operationId": "moveApp", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fromBundleId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "toBundleId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" - } - } - } - } - } - } - }, - "/api/bundles/addApp/{id}": { - "put": { - "tags": [ - "Bundle APIs" - ], - "summary": "Add App to Bundle", - "description": "Add an application to a bundle in Lowcoder using its unique ID.", - "operationId": "addApp", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "toBundleId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" - } - } - } - } - } - } - }, - "/api/users/reset-password": { - "post": { - "tags": [ - "User Password APIs" - ], - "summary": "Reset User Password", - "description": "Initiate a Password Reset process for the user within Lowcoder, allowing them to regain access to their account.", - "operationId": "resetPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResetPasswordRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewString" - } - } - } - } - } - } - }, - "/api/users/reset-lost-password": { - "post": { - "tags": [ - "User Password APIs" - ], - "summary": "Reset Lost User Password", - "description": "Resets lost password based on the token from lost password email.", - "operationId": "resetLostPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResetLostPasswordRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/users/photo": { - "get": { - "tags": [ - "User Profile Photo APIs" - ], - "summary": "Get current User profile photo", - "description": "Retrieve the profile photo of the current User within Lowcoder, if available.", - "operationId": "getUserProfilePhoto", - "responses": { - "200": { - "description": "OK" - } - } - }, - "post": { - "tags": [ - "User Profile Photo APIs" - ], - "summary": "Upload current Users profile photo", - "description": "Allow the current User to upload or change their profile photo within Lowcoder for personalization.", - "operationId": "uploadUserProfilePhoto", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "file" - ], - "type": "object", - "properties": { - "file": { - "$ref": "#/components/schemas/Part" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - }, - "delete": { - "tags": [ - "User Profile Photo APIs" - ], - "summary": "Delete current users profile photo", - "description": "Remove the profile Photo associated with the current User within Lowcoder.", - "operationId": "deleteUserProfilePhoto", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" - } - } - } - } - } - } - }, - "/api/users/lost-password": { - "post": { - "tags": [ - "User Password APIs" - ], - "summary": "Lost User Password", - "description": "Initiate a Lost Password recovery process.", - "operationId": "lostPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LostPasswordRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/query/execute-from-node": { - "post": { - "tags": [ - "Query Execution APIs" - ], - "summary": "Execute query from node service", - "description": "Execute a data Query from a Node service within Lowcoder, facilitating data retrieval and processing. Node Service is used for extended Data Source Plugins.", - "operationId": "executeQueryFromNodeService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryQueryRequestFromJs" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/QueryResultView" - } - } - } - } - } - } - }, - "/api/query/execute": { - "post": { - "tags": [ - "Query Execution APIs" - ], - "summary": "Execute query from API service", - "description": "Execute a data Query from an API service within Lowcoder, facilitating data retrieval and processing. API Service is used for standard Data Sources like Databases.", - "operationId": "executeQueryFromApiService", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryExecutionRequest" - } - } - }, - "required": true - }, + "summary": "List agency profile Bundles", + "description": "Retrieve a list of Lowcoder Bundles that are set as agency profiles", + "operationId": "listAgencyProfileBundles", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/QueryResultView" + "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" } } } @@ -2126,40 +1848,23 @@ } } }, - "/api/organizations/{orgId}/logo": { - "post": { + "/api/folders": { + "put": { "tags": [ - "Organization APIs" - ], - "summary": "Upload Organization Logo", - "description": "Upload an Organization logo for branding and identification for a Lowcoder Organization / Workspace.", - "operationId": "uploadOrganizationLogo", - "parameters": [ - { - "name": "orgId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "Folder APIs" ], + "summary": "Update Folder", + "description": "Modify the properties and settings of an existing Application Folder within Lowcoder.", + "operationId": "updateFolder", "requestBody": { "content": { "application/json": { "schema": { - "required": [ - "file" - ], - "type": "object", - "properties": { - "file": { - "$ref": "#/components/schemas/Part" - } - } + "$ref": "#/components/schemas/Folder" } } - } + }, + "required": true }, "responses": { "200": { @@ -2167,57 +1872,25 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewFolderInfoView" } } } } } }, - "delete": { - "tags": [ - "Organization APIs" - ], - "summary": "Delete Organization Logo", - "description": "Remove the logo associated with an Organization within Lowcoder.", - "operationId": "deleteOrganizationLogo", - "parameters": [ - { - "name": "orgId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/organizations": { "post": { "tags": [ - "Organization APIs" + "Folder APIs" ], - "summary": "Create a new Organization", - "description": "Create a new Organization (Workspace) within the Lowcoder platform as a encapsulated space for Applications, Users and Resources.", - "operationId": "createOrganization", + "summary": "Create new Folder", + "description": "Create a new Application Folder within the Lowcoder to organize Applications effectively.", + "operationId": "createFolder", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Organization" + "$ref": "#/components/schemas/Folder" } } }, @@ -2229,7 +1902,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewOrgView" + "$ref": "#/components/schemas/ResponseViewFolderInfoView" } } } @@ -2237,49 +1910,25 @@ } } }, - "/api/invitation": { - "post": { + "/api/folders/{folderId}/permissions/{permissionId}": { + "put": { "tags": [ - "User invitation APIs" + "Folder Permissions APIs" ], - "summary": "Create user Invitation", - "description": "Create a generic User-Invitation within Lowcoder to invite new users to join the platform. Internally an invite Link based on inviting User and it's current Organization / Workspace is built.", - "operationId": "createUserInvitation", + "summary": "Update Folder permissions", + "description": "Modify permissions associated with a specific Application Folder within Lowcoder.", + "operationId": "updateFolderPermissions", "parameters": [ { - "name": "orgId", - "in": "query", + "name": "folderId", + "in": "path", "required": true, "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewInvitationVO" - } - } - } - } - } - } - }, - "/api/groups/{groupId}/addMember": { - "post": { - "tags": [ - "Group Members APIs" - ], - "summary": "Add User to User Group", - "description": "Include a User as a member of a specified User Group in Lowcoder, granting them access to group resources.", - "operationId": "addUserToGroup", - "parameters": [ + }, { - "name": "groupId", + "name": "permissionId", "in": "path", "required": true, "schema": { @@ -2291,39 +1940,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AddMemberRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/groups": { - "post": { - "tags": [ - "Group APIs" - ], - "summary": "Create User Group", - "description": "Create a new User Group within the current Lowcoder Organization / Workspace for organizing and managing your Application users.", - "operationId": "createGroup", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGroupRequest" + "$ref": "#/components/schemas/UpdatePermissionRequest" } } }, @@ -2335,74 +1952,45 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewGroupView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } } } - } - }, - "/api/datasources/test": { - "post": { + }, + "delete": { "tags": [ - "Data Source APIs" + "Folder Permissions APIs" ], - "summary": "Test data source", - "description": "Verify the functionality and connectivity of a data source within the Lowcoder platform, identified by its ID.", - "operationId": "testDatasource", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpsertDatasourceRequest" - } + "summary": "Revoke permissions from Folder", + "description": "Remove specific permissions from an Application Folder within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", + "operationId": "revokeFolderPermissions", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/api/datasources/getPluginDynamicConfig": { - "post": { - "tags": [ - "Data Source APIs" ], - "summary": "Get data source dynamic config", - "description": "Get additional dynamic configuration parameter information of data source within Lowcoder.", - "operationId": "getDatasourceDynamicConfig", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GetPluginDynamicConfigRequestDTO" - } - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListObject" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2410,31 +1998,39 @@ } } }, - "/api/datasources": { - "post": { + "/api/folders/move/{id}": { + "put": { "tags": [ - "Data Source APIs" + "Folder APIs" ], - "summary": "Create new data source", - "description": "Create a new data source in Lowcoder for data retrieval or storage.", - "operationId": "createDatasource", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" - } + "summary": "Move Folder", + "description": "Relocate an Application Folder to a different location in the Folder hierarchy in Lowcoder using its unique ID.", + "operationId": "moveFolder", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" } }, - "required": true - }, + { + "name": "targetFolderId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewDatasource_Public" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2442,17 +2038,17 @@ } } }, - "/api/configs/{key}": { + "/api/folders/{folderId}/permissions": { "get": { "tags": [ - "Configuration APIs" + "Folder Permissions APIs" ], - "summary": "Get Configuration for key", - "description": "Retrieve a specific Configuration entry within Lowcoder identified by its key and the current Organization / Workspace by the impersonated User.", - "operationId": "getConfigurationEntry", + "summary": "Get Folder permissions", + "description": "Retrieve detailed information about permissions associated with a specific Application Folder within Lowcoder.", + "operationId": "listFolderPermissions", "parameters": [ { - "name": "key", + "name": "folderId", "in": "path", "required": true, "schema": { @@ -2466,7 +2062,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewServerConfig" + "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" } } } @@ -2475,14 +2071,14 @@ }, "post": { "tags": [ - "Configuration APIs" + "Folder Permissions APIs" ], - "summary": "Create Configuration entry", - "description": "Create a new Configuration entry within Lowcoder and the current Organization / Workspace by the impersonated User for managing various settings and configurations. (not available on public cloud)", - "operationId": "createConfigurationEntry", + "summary": "Grant permissions to Folder", + "description": "Assign new permissions to a specific Application Folder within Lowcoder, allowing authorized users to access it.", + "operationId": "grantFolderPermissions", "parameters": [ { - "name": "key", + "name": "folderId", "in": "path", "required": true, "schema": { @@ -2494,7 +2090,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateConfigRequest" + "$ref": "#/components/schemas/BatchAddPermissionRequest" } } }, @@ -2506,7 +2102,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewServerConfig" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2514,22 +2110,35 @@ } } }, - "/api/applications/{applicationId}/publish": { - "post": { + "/api/folders/elements": { + "get": { "tags": [ - "Application APIs" + "Folder APIs" ], - "summary": "Publish Application for users", - "description": "Set a Lowcoder Application identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Apps gets published in production mode.", - "operationId": "publicApplication", + "summary": "Get Folder contents", + "description": "Retrieve the contents of an Application Folder within Lowcoder, including Applications and Subfolders.", + "operationId": "listFolderContents", "parameters": [ { - "name": "applicationId", - "in": "path", - "required": true, + "name": "id", + "in": "query", + "required": false, "schema": { "type": "string" } + }, + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "APPLICATION", + "MODULE", + "COMPOUND_APPLICATION" + ] + } } ], "responses": { @@ -2538,7 +2147,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewListObject" } } } @@ -2546,18 +2155,18 @@ } } }, - "/api/applications/createFromTemplate": { - "post": { + "/api/folders/{id}": { + "delete": { "tags": [ - "Application APIs" + "Folder APIs" ], - "summary": "Create an Application from a predefined Template", - "description": "Use an Application-Template to create a new Application in an Organization where the authenticated or impersonated user has access.", - "operationId": "createApplicationFromTemplate", + "summary": "Delete Folder", + "description": "Permanently remove an Application Folder from Lowcoder using its unique ID.", + "operationId": "deleteFolder", "parameters": [ { - "name": "templateId", - "in": "query", + "name": "id", + "in": "path", "required": true, "schema": { "type": "string" @@ -2570,7 +2179,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2578,31 +2187,31 @@ } } }, - "/api/applications": { + "/api/datasources": { "post": { "tags": [ - "Application APIs" + "Data Source APIs" ], - "summary": "Create a new Application", - "description": "Create a new Lowcoder Application based on the Organization-ID where the authenticated or impersonated user has access.", - "operationId": " createApplication", + "summary": "Create new data source", + "description": "Create a new data source in Lowcoder for data retrieval or storage.", + "operationId": "createDatasource", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateApplicationRequest" + "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" } } }, "required": true }, "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewDatasource_Public" } } } @@ -2610,51 +2219,59 @@ } } }, - "/api/materials": { - "post": { + "/api/datasources/{id}": { + "get": { "tags": [ - "File APIs" + "Data Source APIs" ], - "summary": "Upload new File", - "description": "Upload a new binary File within Lowcoder and the current Organization / Workspace by the impersonated User, allowing users to add small files to their resources.", - "operationId": "createFileUpload", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UploadMaterialRequestDTO" - } + "summary": "Get data source by ID", + "description": "Retrieve a specific data source within Lowcoder by its ID.", + "operationId": "getDatasource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "required": true - }, + } + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewMaterialView" + "$ref": "#/components/schemas/ResponseViewDatasource_Public" } } } } } - } - }, - "/api/library-queries": { - "post": { + }, + "put": { "tags": [ - "Query Library APIs" + "Data Source APIs" + ], + "summary": "Update data source by ID", + "description": "Modify the properties and settings of a data source within Lowcoder using its ID.", + "operationId": "updateDatasource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Create a Library for Data Queries", - "description": "Create a new Library Query within Lowcoder for storing and managing reusable Data Queries.", - "operationId": "createLibraryQuery", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LibraryQuery" + "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" } } }, @@ -2666,25 +2283,23 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewLibraryQueryView" + "$ref": "#/components/schemas/ResponseViewDatasource_Public" } } } } } - } - }, - "/api/library-queries/{libraryQueryId}/publish": { - "post": { + }, + "delete": { "tags": [ - "Query Library APIs" + "Data Source APIs" ], - "summary": "Publish a Data Query Library for usage", - "description": "Publish a Library Query for usage within Lowcoder, making it available for other users to utilize.", - "operationId": "publishLibraryQuery", + "summary": "Delete data source by ID", + "description": "Permanently remove a data source within Lowcoder using its ID.", + "operationId": "deleteDatasource", "parameters": [ { - "name": "libraryQueryId", + "name": "id", "in": "path", "required": true, "schema": { @@ -2692,23 +2307,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryQueryPublishRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewLibraryQueryRecordMetaView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -2716,17 +2321,17 @@ } } }, - "/api/folders/{folderId}/permissions": { + "/api/datasources/{datasourceId}/permissions": { "get": { "tags": [ - "Folder Permissions APIs" + "Data Source Permissions APIs" ], - "summary": "Get Folder permissions", - "description": "Retrieve detailed information about permissions associated with a specific Application Folder within Lowcoder.", - "operationId": "listFolderPermissions", + "summary": "Get data source permissions", + "description": "Retrieve permissions associated with a specific data source within Lowcoder, identified by its ID.", + "operationId": "listDatasourcePermissions", "parameters": [ { - "name": "folderId", + "name": "datasourceId", "in": "path", "required": true, "schema": { @@ -2740,23 +2345,23 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" + "$ref": "#/components/schemas/ResponseViewCommonPermissionView" } } } } } }, - "post": { + "put": { "tags": [ - "Folder Permissions APIs" + "Data Source Permissions APIs" ], - "summary": "Grant permissions to Folder", - "description": "Assign new permissions to a specific Application Folder within Lowcoder, allowing authorized users to access it.", - "operationId": "grantFolderPermissions", + "summary": "Update data source permission", + "description": "Modify a specific data source permission within Lowcoder, identified by its ID.", + "operationId": "updateDatasourcePermission", "parameters": [ { - "name": "folderId", + "name": "datasourceId", "in": "path", "required": true, "schema": { @@ -2780,7 +2385,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -2788,17 +2393,17 @@ } } }, - "/api/bundles/{bundleId}/publish": { - "post": { + "/api/datasources/permissions/{permissionId}": { + "put": { "tags": [ - "Bundle APIs" + "Data Source Permissions APIs" ], - "summary": "Publish Bundle for users", - "description": "Set a Lowcoder Bundle identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Bundle gets published in production mode.", - "operationId": "publicBundle", + "summary": "Grant permissions to data source", + "description": "Assign permissions for selected users or user-groups to a specific data source within Lowcoder, identified by its ID.", + "operationId": "grantDatasourcePermissions", "parameters": [ { - "name": "bundleId", + "name": "permissionId", "in": "path", "required": true, "schema": { @@ -2806,61 +2411,39 @@ } } ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" - } - } - } - } - } - } - }, - "/api/bundles/{bundleId}/permissions": { - "get": { - "tags": [ - "Bundle Permissions APIs" - ], - "summary": "Get Bundle permissions", - "description": "Retrieve detailed information about permissions associated with a specific Bundle Bundle within Lowcoder.", - "operationId": "listBundlePermissions", - "parameters": [ - { - "name": "bundleId", - "in": "path", - "required": true, - "schema": { - "type": "string" + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } } - } - ], + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundlePermissionView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } }, - "post": { + "delete": { "tags": [ - "Bundle Permissions APIs" + "Data Source Permissions APIs" ], - "summary": "Grant permissions to Bundle", - "description": "Assign new permissions to a specific Bundle Bundle within Lowcoder, allowing authorized users to access it.", - "operationId": "grantBundlePermissions", + "summary": "Revoke permission from data source", + "description": "Revoke a specific permission from a data source within Lowcoder, identified by its ID.", + "operationId": "revokeDatasourcePermission", "parameters": [ { - "name": "bundleId", + "name": "permissionId", "in": "path", "required": true, "schema": { @@ -2868,23 +2451,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BatchAddPermissionRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -2892,55 +2465,56 @@ } } }, - "/api/auth/tp/login": { - "post": { + "/api/datasources/{datasourceId}/structure": { + "get": { "tags": [ - "Authentication APIs" + "Data Source APIs" ], - "summary": "Login with third party", - "description": "Authenticate a Lowcoder User using third-party login credentials.", - "operationId": "loginWithThirdParty", + "summary": "Get data source structure", + "description": "Retrieve the structure and schema of a data source within Lowcoder, identified by its ID.", + "operationId": "getDatasourceStructure", "parameters": [ { - "name": "authId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "code", - "in": "query", + "name": "datasourceId", + "in": "path", "required": true, "schema": { "type": "string" } }, { - "name": "invitationId", + "name": "ignoreCache", "in": "query", "required": false, "schema": { - "type": "string" + "type": "boolean", + "default": false } - }, - { - "name": "redirectUrl", - "in": "query", - "required": true, - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewDatasourceStructure" + } + } } - }, + } + } + } + }, + "/api/datasources/listByOrg": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data sources by Organization ID", + "description": "List data sources associated with a specific Organization-ID within Lowcoder.", + "operationId": "listDatasourcesByOrg", + "parameters": [ { "name": "orgId", "in": "query", @@ -2956,7 +2530,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" } } } @@ -2964,49 +2538,17 @@ } } }, - "/api/auth/tp/link": { - "post": { + "/api/datasources/listByApp": { + "get": { "tags": [ - "Authentication APIs" + "Data Source APIs" ], - "summary": "Link current account with third party auth provider", - "description": "Authenticate a Lowcoder User using third-party login credentials and link to the existing session/account", - "operationId": "linkAccountWithTP", + "summary": "Get data sources by Application ID", + "description": "List data sources associated with a specific Application-ID within Lowcoder.", + "operationId": "listDatasourcesByApp", "parameters": [ { - "name": "authId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "code", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "redirectUrl", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "orgId", + "name": "appId", "in": "query", "required": true, "schema": { @@ -3020,7 +2562,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" } } } @@ -3028,21 +2570,31 @@ } } }, - "/api/auth/logout": { - "post": { + "/api/datasources/jsDatasourcePlugins": { + "get": { "tags": [ - "Authentication APIs" + "Data Source APIs" + ], + "summary": "Get Node service plugins", + "description": "Retrieve a list of node service plugins available within Lowcoder.", + "operationId": "listNodeServicePlugins", + "parameters": [ + { + "name": "appId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Logout from Lowcoder", - "description": "End a logged in Session of a Lowcoder User on the Lowcoder platform.", - "operationId": "logout", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListDatasource" } } } @@ -3050,25 +2602,17 @@ } } }, - "/api/auth/form/login": { - "post": { + "/api/datasources/info": { + "get": { "tags": [ - "Authentication APIs" + "Data Source APIs" ], - "summary": "Login with user and password (Form based Login)", - "description": "Authenticate a Lowcoder User using traditional username and password credentials (Form Login).", - "operationId": "loginWithUserPassword", + "summary": "Get data source information", + "description": "Obtain information related to a data source within Lowcoder.", + "operationId": "getDatasourceInfo", "parameters": [ { - "name": "invitationId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "orgId", + "name": "datasourceId", "in": "query", "required": false, "schema": { @@ -3076,23 +2620,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FormLoginRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -3100,19 +2634,19 @@ } } }, - "/api/auth/config": { + "/api/datasources/test": { "post": { "tags": [ - "Authentication APIs" + "Data Source APIs" ], - "summary": "Create authentication configuration", - "description": "Configure a new authentication method to enable Lowcoder Users to log in, for instance, through OAuth or other similar mechanisms, for the current selected Organization, based on the impersonated User", - "operationId": "createAuthConfig", + "summary": "Test data source", + "description": "Verify the functionality and connectivity of a data source within the Lowcoder platform, identified by its ID.", + "operationId": "testDatasource", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AuthConfigRequest" + "$ref": "#/components/schemas/UpsertDatasourceRequest" } } }, @@ -3124,7 +2658,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3132,19 +2666,22 @@ } } }, - "/api/auth/api-key": { + "/api/datasources/getPluginDynamicConfig": { "post": { "tags": [ - "Authentication APIs" + "Data Source APIs" ], - "summary": "Create API key for current user", - "description": "Generate an Lowcoder API key. The API key will inherit all rights of the current impersonated user.", - "operationId": "createApiKey", + "summary": "Get data source dynamic config", + "description": "Get additional dynamic configuration parameter information of data source within Lowcoder.", + "operationId": "getDatasourceDynamicConfig", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIKeyRequest" + "type": "array", + "items": { + "$ref": "#/components/schemas/GetPluginDynamicConfigRequestDTO" + } } } }, @@ -3156,7 +2693,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewAPIKeyVO" + "$ref": "#/components/schemas/ResponseViewListObject" } } } @@ -3164,19 +2701,19 @@ } } }, - "/api/application/history-snapshots": { + "/api/query/execute-from-node": { "post": { "tags": [ - "Application History APIs" + "Query Execution APIs" ], - "summary": "Create Application Snapshot", - "description": "Create a snapshot of an Application DSL within Lowcoder, capturing its current state for future reference.", - "operationId": "createApplicationSnapshot", + "summary": "Execute query from node service", + "description": "Execute a data Query from a Node service within Lowcoder, facilitating data retrieval and processing. Node Service is used for extended Data Source Plugins.", + "operationId": "executeQueryFromNodeService", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApplicationHistorySnapshotRequest" + "$ref": "#/components/schemas/LibraryQueryRequestFromJs" } } }, @@ -3188,7 +2725,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/QueryResultView" } } } @@ -3196,21 +2733,31 @@ } } }, - "/api/state/healthCheck": { - "head": { + "/api/query/execute": { + "post": { "tags": [ - "Status checks APIs" + "Query Execution APIs" ], - "summary": "Run health check", - "description": "Perform a health check within Lowcoder to ensure the system's overall operational health and availability.", - "operationId": "healthCheck", + "summary": "Execute query from API service", + "description": "Execute a data Query from an API service within Lowcoder, facilitating data retrieval and processing. API Service is used for standard Data Sources like Databases.", + "operationId": "executeQueryFromApiService", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryExecutionRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/QueryResultView" } } } @@ -3218,18 +2765,26 @@ } } }, - "/api/users/userDetail/{id}": { + "/api/library-query-records": { "get": { "tags": [ - "User APIs" + "Library Queries Record APIs" ], - "summary": "Get User Details by ID", - "description": "Retrieve specific User Details within Lowcoder using their unique user ID.", - "operationId": "getUserDetails", + "summary": "Get Library Query Records", + "description": "Retrieve a list of Library Query Records, which store information related to executed queries within Lowcoder and the current Organization / Workspace by the impersonated User", + "operationId": "listLibraryQueryRecords", "parameters": [ { - "name": "id", - "in": "path", + "name": "libraryQueryId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "libraryQueryRecordId", + "in": "query", "required": true, "schema": { "type": "string" @@ -3242,7 +2797,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewMapStringObject" } } } @@ -3250,46 +2805,31 @@ } } }, - "/api/users/photo/{userId}": { + "/api/library-query-records/listByLibraryQueryId": { "get": { "tags": [ - "User Profile Photo APIs" + "Library Queries Record APIs" ], - "summary": "Upload users profile photo by ID", - "description": "Upload or change the profile photo of a specific User within Lowcoder using their user ID for identification.", - "operationId": "uploadUserProfilePhotoById", + "summary": "Get Library Query Record", + "description": "Retrieve a specific Library Query Record within Lowcoder using the associated library query ID.", + "operationId": "getLibraryQueryRecord", "parameters": [ { - "name": "userId", - "in": "path", + "name": "libraryQueryId", + "in": "query", "required": true, "schema": { "type": "string" } } ], - "responses": { - "200": { - "description": "OK" - } - } - } - }, - "/api/users/me": { - "get": { - "tags": [ - "User APIs" - ], - "summary": "Get current User Profile", - "description": "Retrieve the profile information of the current user within Lowcoder, including their identity, name, avatar, email, IP address, group memberships, and details of the current Organization / Workspace.", - "operationId": "getUserProfile", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewListLibraryQueryRecordMetaView" } } } @@ -3297,21 +2837,21 @@ } } }, - "/api/users/currentUser": { + "/api/library-queries/listByOrg": { "get": { "tags": [ - "User APIs" + "Query Library APIs" ], - "summary": "Get current User Information", - "description": "Retrieve comprehensive information about the current user within Lowcoder, including their ID, name, avatar URL, email, IP address and group memberships.", - "operationId": "getUserInfo", + "summary": "Get Data Query Libraries for organization", + "description": "Retrieve a list of Library Queries for a specific Organization within Lowcoder.", + "operationId": "listLibrartQueriesByOrg", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewUserDetail" + "$ref": "#/components/schemas/ResponseViewListLibraryQueryView" } } } @@ -3319,24 +2859,21 @@ } } }, - "/api/serverSettings": { + "/api/library-queries/dropDownList": { "get": { "tags": [ - "Server Setting APIs" + "Query Library APIs" ], - "summary": "Get Lowcoder server settings", - "description": "Retrieve the list of server settings for Lowcoder.", - "operationId": "serverSettings", + "summary": "Get Data Query Libraries in dropdown format", + "description": "Retrieve Library Queries in a dropdown format within Lowcoder, suitable for selection in user interfaces.", + "operationId": "listLibraryQueriesForDropDown", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/components/schemas/ResponseViewListLibraryQueryAggregateView" } } } @@ -3344,51 +2881,98 @@ } } }, - "/api/organizations/{orgId}/members": { - "get": { + "/api/library-query-records/{libraryQueryRecordId}": { + "delete": { "tags": [ - "Organization Member APIs" + "Library Queries Record APIs" ], - "summary": "List Organization Members", - "description": "Retrieve a list of members belonging to an Organization within Lowcoder.", - "operationId": "listOrganizationMembers", + "summary": "Delete Library Query Record", + "description": "Permanently remove a specific Library Query Record from Lowcoder using its unique record ID.", + "operationId": "deleteLibrartQueryRecord", "parameters": [ { - "name": "orgId", + "name": "libraryQueryRecordId", "in": "path", "required": true, "schema": { "type": "string" } - }, + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/library-queries/{libraryQueryId}/publish": { + "post": { + "tags": [ + "Query Library APIs" + ], + "summary": "Publish a Data Query Library for usage", + "description": "Publish a Library Query for usage within Lowcoder, making it available for other users to utilize.", + "operationId": "publishLibraryQuery", + "parameters": [ { - "name": "page", - "in": "query", - "required": false, + "name": "libraryQueryId", + "in": "path", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 0 + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryQueryPublishRequest" + } } }, - { - "name": "count", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 1000 + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewLibraryQueryRecordMetaView" + } + } } } + } + } + }, + "/api/library-queries": { + "post": { + "tags": [ + "Query Library APIs" ], + "summary": "Create a Library for Data Queries", + "description": "Create a new Library Query within Lowcoder for storing and managing reusable Data Queries.", + "operationId": "createLibraryQuery", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryQuery" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewOrgMemberListView" + "$ref": "#/components/schemas/ResponseViewLibraryQueryView" } } } @@ -3396,17 +2980,17 @@ } } }, - "/api/organizations/{orgId}/datasourceTypes": { - "get": { + "/api/library-queries/{libraryQueryId}": { + "put": { "tags": [ - "Organization Member APIs" + "Query Library APIs" ], - "summary": "Get supported data source types for Organization", - "description": "Retrieve a list of supported datasource types for an Organization within Lowcoder.", - "operationId": "getOrganizationDatasourceTypes", + "summary": "Update a Data Query Library", + "description": "Modify the properties and settings of an existing Library Query within Lowcoder identified by its unique ID.", + "operationId": "updateLibraryQuery", "parameters": [ { - "name": "orgId", + "name": "libraryQueryId", "in": "path", "required": true, "schema": { @@ -3414,53 +2998,85 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertLibraryQueryRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasourceMetaInfo" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/organizations/{orgId}/api-usage": { - "get": { + }, + "delete": { "tags": [ - "Organization APIs" + "Query Library APIs" ], - "summary": "Get the api usage count for the org", - "description": "Calculate the used api calls for this organization and return the count", - "operationId": "getOrgApiUsageCount", + "summary": "Delete a Data Query Library", + "description": "Permanently remove a Library Query from Lowcoder using its unique ID.", + "operationId": "deleteLibraryQuery", "parameters": [ { - "name": "orgId", + "name": "libraryQueryId", "in": "path", "required": true, "schema": { "type": "string" } - }, - { - "name": "lastMonthOnly", - "in": "query", - "required": false, - "schema": { - "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } } } + } + } + }, + "/api/organizations": { + "post": { + "tags": [ + "Organization APIs" ], + "summary": "Create a new Organization", + "description": "Create a new Organization (Workspace) within the Lowcoder platform as a encapsulated space for Applications, Users and Resources.", + "operationId": "createOrganization", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewLong" + "$ref": "#/components/schemas/ResponseViewOrgView" } } } @@ -3468,17 +3084,17 @@ } } }, - "/api/invitation/{invitationId}/invite": { - "get": { + "/api/organizations/{orgId}/logo": { + "post": { "tags": [ - "User invitation APIs" + "Organization APIs" ], - "summary": "Get Invitation", - "description": "Retrieve information about a specific Invitation within Lowcoder, including details about the Invitee and the connected Organization / Workspace.", - "operationId": "getInvitation", + "summary": "Upload Organization Logo", + "description": "Upload an Organization logo for branding and identification for a Lowcoder Organization / Workspace.", + "operationId": "uploadOrganizationLogo", "parameters": [ { - "name": "invitationId", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3486,31 +3102,46 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "$ref": "#/components/schemas/Part" + } + } + } + } + } + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/invitation/{invitationId}": { - "get": { + }, + "delete": { "tags": [ - "User invitation APIs" + "Organization APIs" ], - "summary": "Invite User", - "description": "Proceed the actual Invite for User to an Lowcoder Organization / Workspace using an existing Invitation identified by its ID.", - "operationId": "inviteUser", + "summary": "Delete Organization Logo", + "description": "Remove the logo associated with an Organization within Lowcoder.", + "operationId": "deleteOrganizationLogo", "parameters": [ { - "name": "invitationId", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3524,7 +3155,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewInvitationVO" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3532,17 +3163,17 @@ } } }, - "/api/groups/{groupId}/members": { + "/api/organizations/{orgId}/members": { "get": { "tags": [ - "Group Members APIs" + "Organization Member APIs" ], - "summary": "List User Group Members", - "description": "Retrieve a list of Users / Members within a specific User Group in Lowcoder, showing the group's composition.", - "operationId": "listGroupMembers", + "summary": "List Organization Members", + "description": "Retrieve a list of members belonging to an Organization within Lowcoder.", + "operationId": "listOrganizationMembers", "parameters": [ { - "name": "groupId", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3556,7 +3187,7 @@ "schema": { "type": "integer", "format": "int32", - "default": 1 + "default": 0 } }, { @@ -3566,7 +3197,7 @@ "schema": { "type": "integer", "format": "int32", - "default": 100 + "default": 1000 } } ], @@ -3576,7 +3207,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewGroupMemberAggregateView" + "$ref": "#/components/schemas/ResponseViewOrgMemberListView" } } } @@ -3584,21 +3215,31 @@ } } }, - "/api/groups/list": { + "/api/organizations/{orgId}/datasourceTypes": { "get": { "tags": [ - "Group APIs" + "Organization Member APIs" + ], + "summary": "Get supported data source types for Organization", + "description": "Retrieve a list of supported datasource types for an Organization within Lowcoder.", + "operationId": "getOrganizationDatasourceTypes", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "List User Groups", - "description": "Retrieve a list of User Groups within Lowcoder, providing an overview of available groups, based on the access rights of the currently impersonated User.", - "operationId": "listGroups", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListGroupView" + "$ref": "#/components/schemas/ResponseViewListDatasourceMetaInfo" } } } @@ -3606,17 +3247,17 @@ } } }, - "/api/datasources/{datasourceId}/structure": { + "/api/organizations/{orgId}/api-usage": { "get": { "tags": [ - "Data Source APIs" + "Organization APIs" ], - "summary": "Get data source structure", - "description": "Retrieve the structure and schema of a data source within Lowcoder, identified by its ID.", - "operationId": "getDatasourceStructure", + "summary": "Get the api usage count for the org", + "description": "Calculate the used api calls for this organization and return the count", + "operationId": "getOrgApiUsageCount", "parameters": [ { - "name": "datasourceId", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3624,12 +3265,11 @@ } }, { - "name": "ignoreCache", + "name": "lastMonthOnly", "in": "query", "required": false, "schema": { - "type": "boolean", - "default": false + "type": "boolean" } } ], @@ -3639,7 +3279,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewDatasourceStructure" + "$ref": "#/components/schemas/ResponseViewLong" } } } @@ -3647,17 +3287,25 @@ } } }, - "/api/datasources/listByOrg": { - "get": { + "/api/organizations/{orgId}/remove": { + "delete": { "tags": [ - "Data Source APIs" + "Organization APIs" ], - "summary": "Get data sources by Organization ID", - "description": "List data sources associated with a specific Organization-ID within Lowcoder.", - "operationId": "listDatasourcesByOrg", + "summary": "Delete Organization by ID", + "description": "Permanently remove an User from an Organization in Lowcoder using its unique IDs.", + "operationId": "deleteOrganization", "parameters": [ { "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", "in": "query", "required": true, "schema": { @@ -3671,7 +3319,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3679,18 +3327,18 @@ } } }, - "/api/datasources/listByApp": { - "get": { + "/api/organizations/{orgId}/leave": { + "delete": { "tags": [ - "Data Source APIs" + "Organization Member APIs" ], - "summary": "Get data sources by Application ID", - "description": "List data sources associated with a specific Application-ID within Lowcoder.", - "operationId": "listDatasourcesByApp", + "summary": "Remove current user from Organization", + "description": "Allow the current user to voluntarily leave an Organization in Lowcoder, removing themselves from the organization's membership.", + "operationId": "leaveOrganization", "parameters": [ { - "name": "appId", - "in": "query", + "name": "orgId", + "in": "path", "required": true, "schema": { "type": "string" @@ -3703,7 +3351,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3711,18 +3359,18 @@ } } }, - "/api/datasources/jsDatasourcePlugins": { - "get": { + "/api/organizations/{orgId}": { + "delete": { "tags": [ - "Data Source APIs" + "Organization APIs" ], - "summary": "Get Node service plugins", - "description": "Retrieve a list of node service plugins available within Lowcoder.", - "operationId": "listNodeServicePlugins", + "summary": "Delete Organization by ID", + "description": "Permanently remove an Organization from Lowcoder using its unique ID.", + "operationId": "deleteOrganization_1", "parameters": [ { - "name": "appId", - "in": "query", + "name": "orgId", + "in": "path", "required": true, "schema": { "type": "string" @@ -3735,7 +3383,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasource" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3743,31 +3391,41 @@ } } }, - "/api/datasources/info": { - "get": { + "/api/organizations/{orgId}/update": { + "put": { "tags": [ - "Data Source APIs" + "Organization APIs" ], - "summary": "Get data source information", - "description": "Obtain information related to a data source within Lowcoder.", - "operationId": "getDatasourceInfo", + "summary": "Update Organization by ID", + "description": "Modify the properties and settings of an existing Organization within Lowcoder identified by its unique ID.", + "operationId": "updateOrganization", "parameters": [ { - "name": "datasourceId", - "in": "query", - "required": false, + "name": "orgId", + "in": "path", + "required": true, "schema": { "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrgRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3775,21 +3433,41 @@ } } }, - "/api/configs/deploymentId": { - "get": { + "/api/organizations/{orgId}/role": { + "put": { "tags": [ - "Configuration APIs" + "Organization Member APIs" + ], + "summary": "Update role of Member in Organization", + "description": "Change the Role of a specific Member (User) within an Organization in Lowcoder using the unique ID of a user and the name of the existing Role.", + "operationId": "updateOrganizationMemberRole", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Get Lowcoder deployment ID", - "description": "Retrieve the unique deployment ID for Lowcoder. (not available on public cloud)", - "operationId": "getDeploymentId", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRoleRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "type": "string" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3797,19 +3475,19 @@ } } }, - "/api/configs": { + "/api/organizations/{orgId}/common-settings": { "get": { "tags": [ - "Configuration APIs" + "Organization APIs" ], - "summary": "Get Configurations", - "description": "Retrieve a list of configuration entries within Lowcoder based on the current Organization / Workspace by the impersonated User, providing an overview of available configurations.", - "operationId": "listConfigs", + "summary": "Get Organization common Settings", + "description": "Retrieve common settings (such as Themes and Auth Sources) and configurations for an Organization within Lowcoder using its unique ID.", + "operationId": "getOrganizationSettings", "parameters": [ { "name": "orgId", - "in": "query", - "required": false, + "in": "path", + "required": true, "schema": { "type": "string" } @@ -3821,25 +3499,23 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewConfigView_Public" + "$ref": "#/components/schemas/ResponseViewOrganizationCommonSettings" } } } } } - } - }, - "/api/assets/{id}": { - "get": { + }, + "put": { "tags": [ - "Image Assets APIs" + "Organization APIs" ], - "summary": "Retrieve Image Asset", - "description": "Retrieve an image asset within Lowcoder using its unique ID, which can be used for various purposes such as displaying images in applications.", - "operationId": "getAsset", + "summary": "Update Organization common Settings", + "description": "Modify common settings (such as Themes) and configurations for a Lowcoder Organization / Workspace.", + "operationId": "updateOrganizationSettings", "parameters": [ { - "name": "id", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3847,24 +3523,41 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrgCommonSettingsRequest" + } + } + }, + "required": true + }, "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } } } } }, - "/api/applications/{applicationId}/view_marketplace": { - "get": { + "/api/organizations/switchOrganization/{orgId}": { + "put": { "tags": [ - "Application APIs" + "Organization Member APIs" ], - "summary": "Get Marketplace Application data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID for the Marketplace.", - "operationId": "getMarketplaceApplicationDataInViewMode", + "summary": "Switch current users Organization", + "description": "Trigger a switch of the active Organization for the current User within Lowcoder in regards to the Session. After this switch, the impersonated user will see all resources from the new / selected Organization.", + "operationId": "switchOrganization", "parameters": [ { - "name": "applicationId", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3878,7 +3571,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -3886,18 +3579,18 @@ } } }, - "/api/applications/{applicationId}/view_agency": { - "get": { + "/api/invitation": { + "post": { "tags": [ - "Application APIs" + "User invitation APIs" ], - "summary": "Get Agency profile Application data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID marked as Agency Profile.", - "operationId": "getAgencyProfileApplicationDataInViewMode", + "summary": "Create user Invitation", + "description": "Create a generic User-Invitation within Lowcoder to invite new users to join the platform. Internally an invite Link based on inviting User and it's current Organization / Workspace is built.", + "operationId": "createUserInvitation", "parameters": [ { - "name": "applicationId", - "in": "path", + "name": "orgId", + "in": "query", "required": true, "schema": { "type": "string" @@ -3910,7 +3603,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewInvitationVO" } } } @@ -3918,17 +3611,17 @@ } } }, - "/api/applications/{applicationId}/view": { + "/api/invitation/{invitationId}/invite": { "get": { "tags": [ - "Application APIs" + "User invitation APIs" ], - "summary": "Get Application data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID.", - "operationId": "getApplicatioDataInViewMode", + "summary": "Get Invitation", + "description": "Retrieve information about a specific Invitation within Lowcoder, including details about the Invitee and the connected Organization / Workspace.", + "operationId": "getInvitation", "parameters": [ { - "name": "applicationId", + "name": "invitationId", "in": "path", "required": true, "schema": { @@ -3942,7 +3635,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -3950,21 +3643,31 @@ } } }, - "/api/applications/recycle/list": { + "/api/invitation/{invitationId}": { "get": { "tags": [ - "Application APIs" + "User invitation APIs" + ], + "summary": "Invite User", + "description": "Proceed the actual Invite for User to an Lowcoder Organization / Workspace using an existing Invitation identified by its ID.", + "operationId": "inviteUser", + "parameters": [ + { + "name": "invitationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "List recycled Applications in bin", - "description": "List all the recycled Lowcoder Applications in the recycle bin where the authenticated or impersonated user has access.", - "operationId": "listRecycledApplications", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" + "$ref": "#/components/schemas/ResponseViewInvitationVO" } } } @@ -3972,32 +3675,31 @@ } } }, - "/api/applications/marketplace-apps": { - "get": { + "/api/users": { + "put": { "tags": [ - "Application APIs" + "User APIs" ], - "summary": "List Marketplace Applications", - "description": "Retrieve a list of Lowcoder Applications that are published to the Marketplace", - "operationId": "listMarketplaceApplications", - "parameters": [ - { - "name": "applicationType", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32" + "summary": "Update current User", + "description": "Enable the current User to update their Profile information within Lowcoder, ensuring accuracy and relevance.", + "operationId": "updateUser", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserRequest" + } } - } - ], + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" + "$ref": "#/components/schemas/ResponseViewUserProfileView" } } } @@ -4005,78 +3707,51 @@ } } }, - "/api/applications/list": { - "get": { + "/api/users/password": { + "put": { "tags": [ - "Application APIs" + "User Profile Photo APIs" ], - "summary": "List Applications of current User", - "description": "Retrieve a list of Lowcoder Applications accessible by the authenticated or impersonated user.", - "operationId": "listApplications", - "parameters": [ - { - "name": "applicationType", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "applicationStatus", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "NORMAL", - "RECYCLED", - "DELETED" - ] + "summary": "Update User Password", + "description": "Allow the User to update their Password within Lowcoder, enhancing security and account management.", + "operationId": "updatePassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePasswordRequest" + } } }, - { - "name": "withContainerSize", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true - } - } - ], + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/applications/home": { - "get": { + }, + "post": { "tags": [ - "Application APIs" + "User Profile Photo APIs" ], - "summary": "Get the homepage Application of current User", - "description": "Retrieve the first displayed Lowcoder Application for an authenticated or impersonated user.", - "operationId": "getUserHomepageApplication", + "summary": "Set User Password", + "description": "Set a new Password for the User within Lowcoder, ensuring secure access to their account.", + "operationId": "setPassword", "parameters": [ { - "name": "applicationType", + "name": "password", "in": "query", - "required": false, + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 0 + "type": "string" } } ], @@ -4086,7 +3761,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewUserHomepageView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4094,32 +3769,21 @@ } } }, - "/api/applications/agency-profiles": { - "get": { + "/api/users/newUserGuidanceShown": { + "put": { "tags": [ - "Application APIs" - ], - "summary": "List agency profile Applications", - "description": "Retrieve a list of Lowcoder Applications that are set as agency profiles", - "operationId": "listAgencyProfileApplications", - "parameters": [ - { - "name": "applicationType", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - } - } + "User APIs" ], + "summary": "Mark current user with help shown status", + "description": "Indicate that the current user has been shown help or guidance within Lowcoder, helping track user assistance efforts.", + "operationId": "newUserGuidanceShown", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4127,21 +3791,31 @@ } } }, - "/api/misc/js-library/recommendations": { - "get": { + "/api/users/mark-status": { + "put": { "tags": [ - "Javascript Library APIs" + "User APIs" ], - "summary": "Get Javascript Library recommendations", - "description": "Retrieve the standard list of JavaScript libraries within Lowcoder, as recommendation.", - "operationId": "getJsLibraryRecommendations", + "summary": "Mark current User with Status", + "description": "Mark the current User with a specific Status within Lowcoder, allowing for status tracking or updates.", + "operationId": "markUserStatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkUserStatusRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4149,24 +3823,21 @@ } } }, - "/api/misc/js-library/metas": { + "/api/users/userDetail/{id}": { "get": { "tags": [ - "Javascript Library APIs" + "User APIs" ], - "summary": "Get Javascript Library metadata", - "description": "Retrieve metadata information for JavaScript libraries within Lowcoder based on an Array as \"name\" parameter to name the desired libraries, providing details about available libraries.", - "operationId": "getJsLibraryMetadata", + "summary": "Get User Details by ID", + "description": "Retrieve specific User Details within Lowcoder using their unique user ID.", + "operationId": "getUserDetails", "parameters": [ { - "name": "name", - "in": "query", + "name": "id", + "in": "path", "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - } + "type": "string" } } ], @@ -4176,7 +3847,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -4184,31 +3855,22 @@ } } }, - "/api/materials/{id}": { + "/api/users/photo/{userId}": { "get": { "tags": [ - "File APIs" + "User Profile Photo APIs" ], - "summary": "Download File contents", - "description": "Download the contents of a specific File within Lowcoder using its unique ID.", - "operationId": "downloadFile", + "summary": "Upload users profile photo by ID", + "description": "Upload or change the profile photo of a specific User within Lowcoder using their user ID for identification.", + "operationId": "uploadUserProfilePhotoById", "parameters": [ { - "name": "id", + "name": "userId", "in": "path", "required": true, "schema": { "type": "string" } - }, - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "download" - } } ], "responses": { @@ -4216,31 +3878,23 @@ "description": "OK" } } - }, - "delete": { + } + }, + "/api/users/me": { + "get": { "tags": [ - "File APIs" - ], - "summary": "Delete uploaded File", - "description": "Permanently remove a specific File from Lowcoder using its unique ID.", - "operationId": "deleteFile", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "User APIs" ], + "summary": "Get current User Profile", + "description": "Retrieve the profile information of the current user within Lowcoder, including their identity, name, avatar, email, IP address, group memberships, and details of the current Organization / Workspace.", + "operationId": "getUserProfile", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -4248,21 +3902,21 @@ } } }, - "/api/materials/list": { + "/api/users/currentUser": { "get": { "tags": [ - "File APIs" + "User APIs" ], - "summary": "List uploaded Files", - "description": "Retrieve a list of uploaded Files within Lowcoder, providing an overview of available files.", - "operationId": "listFiles", + "summary": "Get current User Information", + "description": "Retrieve comprehensive information about the current user within Lowcoder, including their ID, name, avatar URL, email, IP address and group memberships.", + "operationId": "getUserInfo", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListMaterialView" + "$ref": "#/components/schemas/ResponseViewUserDetail" } } } @@ -4270,39 +3924,31 @@ } } }, - "/api/library-query-records": { - "get": { + "/api/users/reset-password": { + "post": { "tags": [ - "Library Queries Record APIs" + "User Profile Photo APIs" ], - "summary": "Get Library Query Records", - "description": "Retrieve a list of Library Query Records, which store information related to executed queries within Lowcoder and the current Organization / Workspace by the impersonated User", - "operationId": "listLibraryQueryRecords", - "parameters": [ - { - "name": "libraryQueryId", - "in": "query", - "required": true, - "schema": { - "type": "string" + "summary": "Reset User Password", + "description": "Initiate a Password Reset process for the user within Lowcoder, allowing them to regain access to their account.", + "operationId": "resetPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetPasswordRequest" + } } }, - { - "name": "libraryQueryRecordId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewMapStringObject" + "$ref": "#/components/schemas/ResponseViewString" } } } @@ -4310,31 +3956,31 @@ } } }, - "/api/library-query-records/listByLibraryQueryId": { - "get": { + "/api/users/reset-lost-password": { + "post": { "tags": [ - "Library Queries Record APIs" + "User Profile Photo APIs" ], - "summary": "Get Library Query Record", - "description": "Retrieve a specific Library Query Record within Lowcoder using the associated library query ID.", - "operationId": "getLibraryQueryRecord", - "parameters": [ - { - "name": "libraryQueryId", - "in": "query", - "required": true, - "schema": { - "type": "string" + "summary": "Reset Lost User Password", + "description": "Resets lost password based on the token from lost password email.", + "operationId": "resetLostPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetLostPasswordRequest" + } } - } - ], + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListLibraryQueryRecordMetaView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4342,43 +3988,71 @@ } } }, - "/api/library-queries/listByOrg": { + "/api/users/photo": { "get": { "tags": [ - "Query Library APIs" + "User Profile Photo APIs" ], - "summary": "Get Data Query Libraries for organization", - "description": "Retrieve a list of Library Queries for a specific Organization within Lowcoder.", - "operationId": "listLibrartQueriesByOrg", + "summary": "Get current User profile photo", + "description": "Retrieve the profile photo of the current User within Lowcoder, if available.", + "operationId": "getUserProfilePhoto", + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "tags": [ + "User Profile Photo APIs" + ], + "summary": "Upload current Users profile photo", + "description": "Allow the current User to upload or change their profile photo within Lowcoder for personalization.", + "operationId": "uploadUserProfilePhoto", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "$ref": "#/components/schemas/Part" + } + } + } + } + } + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListLibraryQueryView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/library-queries/dropDownList": { - "get": { + }, + "delete": { "tags": [ - "Query Library APIs" + "User Profile Photo APIs" ], - "summary": "Get Data Query Libraries in dropdown format", - "description": "Retrieve Library Queries in a dropdown format within Lowcoder, suitable for selection in user interfaces.", - "operationId": "listLibraryQueriesForDropDown", + "summary": "Delete current users profile photo", + "description": "Remove the profile Photo associated with the current User within Lowcoder.", + "operationId": "deleteUserProfilePhoto", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListLibraryQueryAggregateView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -4386,44 +4060,63 @@ } } }, - "/api/folders/elements": { - "get": { + "/api/users/lost-password": { + "post": { "tags": [ - "Folder APIs" + "User Profile Photo APIs" ], - "summary": "Get Folder contents", - "description": "Retrieve the contents of an Application Folder within Lowcoder, including Applications and Subfolders.", - "operationId": "listFolderContents", - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "string" + "summary": "Lost User Password", + "description": "Initiate a Lost Password recovery process.", + "operationId": "lostPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LostPasswordRequest" + } } }, - { - "name": "applicationType", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "APPLICATION", - "MODULE", - "COMPOUND_APPLICATION" - ] + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } } } + } + } + }, + "/api/groups": { + "post": { + "tags": [ + "Group APIs" ], + "summary": "Create User Group", + "description": "Create a new User Group within the current Lowcoder Organization / Workspace for organizing and managing your Application users.", + "operationId": "createGroup", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateGroupRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListObject" + "$ref": "#/components/schemas/ResponseViewGroupView" } } } @@ -4431,17 +4124,17 @@ } } }, - "/api/bundles/{bundleId}/view": { - "get": { + "/api/groups/{groupId}/update": { + "put": { "tags": [ - "Bundle APIs" + "Group APIs" ], - "summary": "Get Bundle data in view mode", - "description": "Retrieve the data of a Lowcoder Bundle in view-mode by its ID.", - "operationId": "getBundleDataInViewMode", + "summary": "Update User Group", + "description": "Modify the properties and settings of an existing User Group within Lowcoder, identified by the unique ID of a User Group.", + "operationId": "updateGroup", "parameters": [ { - "name": "bundleId", + "name": "groupId", "in": "path", "required": true, "schema": { @@ -4449,13 +4142,23 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGroupRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4463,17 +4166,17 @@ } } }, - "/api/bundles/{bundleId}/view_marketplace": { - "get": { + "/api/groups/{groupId}/role": { + "put": { "tags": [ - "Bundle APIs" + "Group Members APIs" ], - "summary": "Get Marketplace Bundle data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID for the Marketplace.", - "operationId": "getMarketplaceBundleDataInViewMode", + "summary": "Update User Group member role", + "description": "Modify the Role of a specific Member within a User Group in Lowcoder, ensuring proper access control.", + "operationId": "updateRoleForGroupMember", "parameters": [ { - "name": "bundleId", + "name": "groupId", "in": "path", "required": true, "schema": { @@ -4481,13 +4184,23 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRoleRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4495,17 +4208,17 @@ } } }, - "/api/bundles/{bundleId}/view_agency": { - "get": { + "/api/groups/{groupId}/addMember": { + "post": { "tags": [ - "Bundle APIs" + "Group Members APIs" ], - "summary": "Get Agency profile Bundle data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID marked as Agency Profile.", - "operationId": "getAgencyProfileBundleDataInViewMode", + "summary": "Add User to User Group", + "description": "Include a User as a member of a specified User Group in Lowcoder, granting them access to group resources.", + "operationId": "addUserToGroup", "parameters": [ { - "name": "bundleId", + "name": "groupId", "in": "path", "required": true, "schema": { @@ -4513,13 +4226,23 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddMemberRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4527,17 +4250,17 @@ } } }, - "/api/bundles/{bundleId}/elements": { + "/api/groups/{groupId}/members": { "get": { "tags": [ - "Bundle APIs" + "Group Members APIs" ], - "summary": "Get Bundle contents", - "description": "Retrieve the contents of an Bundle Bundle within Lowcoder, including Bundles.", - "operationId": "listBundleContents", + "summary": "List User Group Members", + "description": "Retrieve a list of Users / Members within a specific User Group in Lowcoder, showing the group's composition.", + "operationId": "listGroupMembers", "parameters": [ { - "name": "bundleId", + "name": "groupId", "in": "path", "required": true, "schema": { @@ -4545,48 +4268,33 @@ } }, { - "name": "applicationType", + "name": "page", "in": "query", "required": false, "schema": { - "type": "string", - "enum": [ - "APPLICATION", - "MODULE", - "COMPOUND_APPLICATION" - ] + "type": "integer", + "format": "int32", + "default": 1 } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewListObject" - } - } + }, + { + "name": "count", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 } } - } - } - }, - "/api/bundles/recycle/list": { - "get": { - "tags": [ - "Bundle APIs" ], - "summary": "List recycled Bundles in bin", - "description": "List all the recycled Lowcoder Bundles in the recycle bin where the authenticated or impersonated user has access.", - "operationId": "listRecycledBundles", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListBundleInfoView" + "$ref": "#/components/schemas/ResponseViewGroupMemberAggregateView" } } } @@ -4594,21 +4302,21 @@ } } }, - "/api/bundles/marketplace-bundles": { + "/api/groups/list": { "get": { "tags": [ - "Bundle APIs" + "Group APIs" ], - "summary": "List Marketplace Bundles", - "description": "Retrieve a list of Lowcoder Bundles that are published to the Marketplace", - "operationId": "listMarketplaceBundles", + "summary": "List User Groups", + "description": "Retrieve a list of User Groups within Lowcoder, providing an overview of available groups, based on the access rights of the currently impersonated User.", + "operationId": "listGroups", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" + "$ref": "#/components/schemas/ResponseViewListGroupView" } } } @@ -4616,58 +4324,39 @@ } } }, - "/api/bundles/list": { - "get": { + "/api/groups/{groupId}/remove": { + "delete": { "tags": [ - "Bundle APIs" + "Group Members APIs" ], - "summary": "List Bundles of current User", - "description": "Retrieve a list of Lowcoder Bundles accessible by the authenticated or impersonated user.", - "operationId": "listBundles", + "summary": "Remove a User from User Group", + "description": "Remove a specific User from a User Group within Lowcoder, revoking their access to the Group resources.", + "operationId": "removeUserFromGroup", "parameters": [ { - "name": "bundleStatus", - "in": "query", - "required": false, + "name": "groupId", + "in": "path", + "required": true, "schema": { - "type": "string", - "enum": [ - "NORMAL", - "RECYCLED", - "DELETED" - ] + "type": "string" } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewListBundleInfoView" - } - } + }, + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/api/bundles/agency-profiles": { - "get": { - "tags": [ - "Bundle APIs" ], - "summary": "List agency profile Bundles", - "description": "Retrieve a list of Lowcoder Bundles that are set as agency profiles", - "operationId": "listAgencyProfileBundles", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4675,43 +4364,31 @@ } } }, - "/api/auth/configs": { - "get": { + "/api/groups/{groupId}/leave": { + "delete": { "tags": [ - "Authentication APIs" + "Group Members APIs" ], - "summary": "Get available authentication configurations", - "description": "Retrieve a list of all available authentication configurations for the current selected Organization, based on the impersonated User", - "operationId": "listAuthConfigs", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewListAbstractAuthConfig_Internal" - } - } + "summary": "Remove current User from User Group", + "description": "Allow the current user to voluntarily leave a User Group in Lowcoder, removing themselves from the group's membership.", + "operationId": "leaveGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/api/auth/api-keys": { - "get": { - "tags": [ - "Authentication APIs" ], - "summary": "Get API keys of the current User", - "description": "Retrieve a list of LOwcoder API keys associated with the current impersonated user.", - "operationId": "listApiKeys", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListAPIKey" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4719,42 +4396,22 @@ } } }, - "/api/application/history-snapshots/{applicationId}": { - "get": { + "/api/groups/{groupId}": { + "delete": { "tags": [ - "Application History APIs" + "Group APIs" ], - "summary": "List Application Snapshots", - "description": "Retrieve a list of Snapshots associated with a specific Application within Lowcoder.", - "operationId": "listApplicationSnapshots", + "summary": "Delete User Group", + "description": "Permanently remove a User Group from Lowcoder using its unique ID.", + "operationId": "deleteGroup", "parameters": [ { - "name": "applicationId", + "name": "groupId", "in": "path", "required": true, "schema": { "type": "string" } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - }, - { - "name": "size", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - } } ], "responses": { @@ -4763,7 +4420,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewMapStringObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4771,17 +4428,17 @@ } } }, - "/api/application/history-snapshots/{applicationId}/{snapshotId}": { - "get": { + "/api/auth/config/{id}": { + "delete": { "tags": [ - "Application History APIs" + "Authentication APIs" ], - "summary": "Retrieve Application Snapshot", - "description": "Retrieve a specific Application Snapshot within Lowcoder using the Application and Snapshot IDs.", - "operationId": "getApplicationSnapshot", + "summary": "Delete authentication configuration", + "description": "Delete a specific Lowcoder authentication configuration.", + "operationId": "deleteAuthConfig", "parameters": [ { - "name": "applicationId", + "name": "id", "in": "path", "required": true, "schema": { @@ -4789,11 +4446,11 @@ } }, { - "name": "snapshotId", - "in": "path", - "required": true, + "name": "delete", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "boolean" } } ], @@ -4803,7 +4460,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewHistorySnapshotDslView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -4811,12 +4468,24 @@ } } }, - "/": { - "get": { + "/api/auth/api-key/{id}": { + "delete": { "tags": [ - "index-controller" + "Authentication APIs" + ], + "summary": "Delete API key", + "description": "Delete a specific API key associated with the current impersonated user.", + "operationId": "deleteApiKey", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "operationId": "index", "responses": { "200": { "description": "OK", @@ -4831,25 +4500,57 @@ } } }, - "/api/organizations/{orgId}/remove": { - "delete": { + "/api/auth/tp/login": { + "post": { "tags": [ - "Organization APIs" + "Authentication APIs" ], - "summary": "Delete Organization by ID", - "description": "Permanently remove an User from an Organization in Lowcoder using its unique IDs.", - "operationId": "deleteOrganization", + "summary": "Login with third party", + "description": "Authenticate a Lowcoder User using third-party login credentials.", + "operationId": "loginWithThirdParty", "parameters": [ { - "name": "orgId", - "in": "path", + "name": "authId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "source", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "code", + "in": "query", "required": true, "schema": { "type": "string" } }, { - "name": "userId", + "name": "invitationId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "redirectUrl", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orgId", "in": "query", "required": true, "schema": { @@ -4871,18 +4572,50 @@ } } }, - "/api/organizations/{orgId}/leave": { - "delete": { + "/api/auth/tp/link": { + "post": { "tags": [ - "Organization Member APIs" + "Authentication APIs" ], - "summary": "Remove current user from Organization", - "description": "Allow the current user to voluntarily leave an Organization in Lowcoder, removing themselves from the organization's membership.", - "operationId": "leaveOrganization", + "summary": "Link current account with third party auth provider", + "description": "Authenticate a Lowcoder User using third-party login credentials and link to the existing session/account", + "operationId": "linkAccountWithTP", "parameters": [ + { + "name": "authId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "source", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "code", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "redirectUrl", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, { "name": "orgId", - "in": "path", + "in": "query", "required": true, "schema": { "type": "string" @@ -4903,24 +4636,14 @@ } } }, - "/api/organizations/{orgId}": { - "delete": { + "/api/auth/logout": { + "post": { "tags": [ - "Organization APIs" - ], - "summary": "Delete Organization by ID", - "description": "Permanently remove an Organization from Lowcoder using its unique ID.", - "operationId": "deleteOrganization_1", - "parameters": [ - { - "name": "orgId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "Authentication APIs" ], + "summary": "Logout from Lowcoder", + "description": "End a logged in Session of a Lowcoder User on the Lowcoder platform.", + "operationId": "logout", "responses": { "200": { "description": "OK", @@ -4935,39 +4658,81 @@ } } }, - "/api/groups/{groupId}/remove": { - "delete": { + "/api/auth/form/login": { + "post": { "tags": [ - "Group Members APIs" + "Authentication APIs" ], - "summary": "Remove a User from User Group", - "description": "Remove a specific User from a User Group within Lowcoder, revoking their access to the Group resources.", - "operationId": "removeUserFromGroup", + "summary": "Login with user and password (Form based Login)", + "description": "Authenticate a Lowcoder User using traditional username and password credentials (Form Login).", + "operationId": "loginWithUserPassword", "parameters": [ { - "name": "groupId", - "in": "path", - "required": true, + "name": "invitationId", + "in": "query", + "required": false, "schema": { "type": "string" } }, { - "name": "userId", + "name": "orgId", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } - } - ], + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FormLoginRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/auth/config": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Create authentication configuration", + "description": "Configure a new authentication method to enable Lowcoder Users to log in, for instance, through OAuth or other similar mechanisms, for the current selected Organization, based on the impersonated User", + "operationId": "createAuthConfig", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthConfigRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -4975,31 +4740,31 @@ } } }, - "/api/groups/{groupId}/leave": { - "delete": { + "/api/auth/api-key": { + "post": { "tags": [ - "Group Members APIs" + "Authentication APIs" ], - "summary": "Remove current User from User Group", - "description": "Allow the current user to voluntarily leave a User Group in Lowcoder, removing themselves from the group's membership.", - "operationId": "leaveGroup", - "parameters": [ - { - "name": "groupId", - "in": "path", - "required": true, - "schema": { - "type": "string" + "summary": "Create API key for current user", + "description": "Generate an Lowcoder API key. The API key will inherit all rights of the current impersonated user.", + "operationId": "createApiKey", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIKeyRequest" + } } - } - ], + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewAPIKeyVO" } } } @@ -5007,31 +4772,43 @@ } } }, - "/api/groups/{groupId}": { - "delete": { + "/api/auth/configs": { + "get": { "tags": [ - "Group APIs" + "Authentication APIs" ], - "summary": "Delete User Group", - "description": "Permanently remove a User Group from Lowcoder using its unique ID.", - "operationId": "deleteGroup", - "parameters": [ - { - "name": "groupId", - "in": "path", - "required": true, - "schema": { - "type": "string" + "summary": "Get available authentication configurations", + "description": "Retrieve a list of all available authentication configurations for the current selected Organization, based on the impersonated User", + "operationId": "listAuthConfigs", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListAbstractAuthConfig_Internal" + } + } } } + } + } + }, + "/api/auth/api-keys": { + "get": { + "tags": [ + "Authentication APIs" ], + "summary": "Get API keys of the current User", + "description": "Retrieve a list of LOwcoder API keys associated with the current impersonated user.", + "operationId": "listApiKeys", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListAPIKey" } } } @@ -5039,17 +4816,17 @@ } } }, - "/api/library-query-records/{libraryQueryRecordId}": { - "delete": { + "/api/assets/{id}": { + "get": { "tags": [ - "Library Queries Record APIs" + "Image Assets APIs" ], - "summary": "Delete Library Query Record", - "description": "Permanently remove a specific Library Query Record from Lowcoder using its unique record ID.", - "operationId": "deleteLibrartQueryRecord", + "summary": "Retrieve Image Asset", + "description": "Retrieve an image asset within Lowcoder using its unique ID, which can be used for various purposes such as displaying images in applications.", + "operationId": "getAsset", "parameters": [ { - "name": "libraryQueryRecordId", + "name": "id", "in": "path", "required": true, "schema": { @@ -5064,31 +4841,21 @@ } } }, - "/api/folders/{id}": { - "delete": { + "/api/misc/js-library/recommendations": { + "get": { "tags": [ - "Folder APIs" - ], - "summary": "Delete Folder", - "description": "Permanently remove an Application Folder from Lowcoder using its unique ID.", - "operationId": "deleteFolder", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "Javascript Library APIs" ], + "summary": "Get Javascript Library recommendations", + "description": "Retrieve the standard list of JavaScript libraries within Lowcoder, as recommendation.", + "operationId": "getJsLibraryRecommendations", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" } } } @@ -5096,21 +4863,24 @@ } } }, - "/api/bundles/{id}": { - "delete": { + "/api/misc/js-library/metas": { + "get": { "tags": [ - "Bundle APIs" + "Javascript Library APIs" ], - "summary": "Delete Bundle", - "description": "Permanently remove an Application Bundle from Lowcoder using its unique ID.", - "operationId": "deleteBundle", + "summary": "Get Javascript Library metadata", + "description": "Retrieve metadata information for JavaScript libraries within Lowcoder based on an Array as \"name\" parameter to name the desired libraries, providing details about available libraries.", + "operationId": "getJsLibraryMetadata", "parameters": [ { - "name": "id", - "in": "path", + "name": "name", + "in": "query", "required": true, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } } ], @@ -5120,7 +4890,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" } } } @@ -5128,39 +4898,21 @@ } } }, - "/api/auth/config/{id}": { - "delete": { + "/api/state/healthCheck": { + "head": { "tags": [ - "Authentication APIs" - ], - "summary": "Delete authentication configuration", - "description": "Delete a specific Lowcoder authentication configuration.", - "operationId": "deleteAuthConfig", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "delete", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } + "Status checks APIs" ], + "summary": "Run health check", + "description": "Perform a health check within Lowcoder to ensure the system's overall operational health and availability.", + "operationId": "healthCheck", "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -5168,24 +4920,37 @@ } } }, - "/api/auth/api-key/{id}": { - "delete": { + "/api/serverSettings": { + "get": { "tags": [ - "Authentication APIs" + "Server Setting APIs" ], - "summary": "Delete API key", - "description": "Delete a specific API key associated with the current impersonated user.", - "operationId": "deleteApiKey", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" + "summary": "Get Lowcoder server settings", + "description": "Retrieve the list of server settings for Lowcoder.", + "operationId": "serverSettings", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } } } + } + } + }, + "/": { + "get": { + "tags": [ + "default" ], + "operationId": "index", "responses": { "200": { "description": "OK", @@ -5197,7 +4962,8 @@ } } } - } + }, + "description": "The Health / Root Endpoint" } } }, @@ -5300,6 +5066,9 @@ "name": { "type": "string" }, + "email": { + "type": "string" + }, "avatar": { "type": "string" }, @@ -5402,7 +5171,7 @@ ] }, "organizationDomain": { - "$ref": "#/components/schemas/OrganizationDomain" + "type": "object" }, "commonSettings": { "type": "object", @@ -5609,6 +5378,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5638,6 +5410,9 @@ "createdBy": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5667,10 +5442,10 @@ "id": { "type": "string" }, - "datasourceConfigExtraDynamic": { + "queryConfigDynamic": { "type": "boolean" }, - "queryConfigDynamic": { + "datasourceConfigExtraDynamic": { "type": "boolean" }, "empty": { @@ -5686,7 +5461,7 @@ "format": "int64" }, "datasourceConfig": { - "$ref": "#/components/schemas/DatasourceConnectionConfig_Public" + "type": "object" } } }, @@ -5780,6 +5555,9 @@ "type": "string", "writeOnly": true }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5820,9 +5598,6 @@ "createdBy": { "type": "string" }, - "gid": { - "type": "string" - }, "organizationId": { "type": "string" }, @@ -5865,6 +5640,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5933,10 +5711,10 @@ "libraryQueryRecordId": { "type": "string" }, - "usingLiveRecord": { + "usingEditingRecord": { "type": "boolean" }, - "usingEditingRecord": { + "usingLiveRecord": { "type": "boolean" } } @@ -6157,13 +5935,13 @@ "subFolders": { "type": "array", "items": { - "$ref": "#/components/schemas/FolderInfoView" + "type": "object" } }, "subApplications": { "type": "array", "items": { - "$ref": "#/components/schemas/ApplicationInfoView" + "type": "object" } }, "createTime": { @@ -6174,10 +5952,10 @@ "type": "integer", "format": "int64" }, - "manageable": { + "visible": { "type": "boolean" }, - "visible": { + "manageable": { "type": "boolean" }, "folder": { @@ -6288,7 +6066,10 @@ "userId": { "type": "string" }, - "bundleId": { + "bundleId": { + "type": "string" + }, + "bundleGid": { "type": "string" }, "name": { @@ -6341,10 +6122,10 @@ "type": "integer", "format": "int64" }, - "manageable": { + "visible": { "type": "boolean" }, - "visible": { + "manageable": { "type": "boolean" }, "bundle": { @@ -6482,27 +6263,27 @@ "message": { "type": "string" }, + "data": { + "type": "object" + }, + "headers": { + "$ref": "#/components/schemas/JsonNode" + }, + "success": { + "type": "boolean" + }, "code": { "type": "integer", "format": "int32" }, - "success": { - "type": "boolean" + "queryCode": { + "type": "string" }, "hintMessages": { "type": "array", "items": { "type": "string" } - }, - "queryCode": { - "type": "string" - }, - "headers": { - "$ref": "#/components/schemas/JsonNode" - }, - "data": { - "type": "object" } } }, @@ -6642,6 +6423,9 @@ "groupId": { "type": "string" }, + "groupGid": { + "type": "string" + }, "groupName": { "type": "string" }, @@ -6658,13 +6442,13 @@ "dynamicRule": { "type": "string" }, - "devGroup": { + "syncDelete": { "type": "boolean" }, - "syncGroup": { + "devGroup": { "type": "boolean" }, - "syncDelete": { + "syncGroup": { "type": "boolean" } } @@ -6693,6 +6477,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -6751,55 +6538,15 @@ } } }, - "UpdateConfigRequest": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - }, - "ResponseViewServerConfig": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - }, - "data": { - "$ref": "#/components/schemas/ServerConfig" - }, - "success": { - "type": "boolean" - } - } - }, - "ServerConfig": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "createdBy": { - "type": "string" - }, - "key": { - "type": "string" - }, - "value": { - "type": "object" - } - } - }, "CreateApplicationRequest": { "type": "object", "properties": { "orgId": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -6824,54 +6571,6 @@ } } }, - "UploadMaterialRequestDTO": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "content": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "COMMON", - "LOGO", - "FAVICON" - ] - } - } - }, - "MaterialView": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "filename": { - "type": "string" - } - } - }, - "ResponseViewMaterialView": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - }, - "data": { - "$ref": "#/components/schemas/MaterialView" - }, - "success": { - "type": "boolean" - } - } - }, "LibraryQuery": { "type": "object", "properties": { @@ -6881,6 +6580,9 @@ "createdBy": { "type": "string" }, + "gid": { + "type": "string" + }, "organizationId": { "type": "string" }, @@ -6907,6 +6609,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "organizationId": { "type": "string" }, @@ -7008,6 +6713,9 @@ "orgId": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -7054,6 +6762,9 @@ "id": { "type": "string" }, + "scope": { + "type": "string" + }, "authType": { "type": "string" }, @@ -7096,9 +6807,6 @@ "instanceId": { "type": "string" }, - "scope": { - "type": "string" - }, "empty": { "type": "boolean" } @@ -7397,7 +7105,10 @@ "GroupMemberView": { "type": "object", "properties": { - "avatarUrl": { + "groupId": { + "type": "string" + }, + "role": { "type": "string" }, "userId": { @@ -7406,18 +7117,15 @@ "orgId": { "type": "string" }, + "avatarUrl": { + "type": "string" + }, "joinTime": { "type": "integer", "format": "int64" }, "userName": { "type": "string" - }, - "groupId": { - "type": "string" - }, - "role": { - "type": "string" } } }, @@ -7664,6 +7372,9 @@ "createdBy": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -7693,10 +7404,10 @@ "id": { "type": "string" }, - "datasourceConfigExtraDynamic": { + "queryConfigDynamic": { "type": "boolean" }, - "queryConfigDynamic": { + "datasourceConfigExtraDynamic": { "type": "boolean" }, "empty": { @@ -8022,6 +7733,9 @@ "name": { "type": "string" }, + "email": { + "type": "string" + }, "uiLanguage": { "type": "string" }, @@ -8159,27 +7873,6 @@ } } }, - "ResponseViewListMaterialView": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MaterialView" - } - }, - "success": { - "type": "boolean" - } - } - }, "ResponseViewMapStringObject": { "type": "object", "properties": { @@ -8406,6 +8099,9 @@ "bundleId": { "type": "string" }, + "bundleGid": { + "type": "string" + }, "name": { "type": "string" }, @@ -8555,14 +8251,218 @@ } }, "securitySchemes": { - "API Key": { - "type": "apiKey", - "description": "API Key Authentication with a Bearer token. Copy your API Key and prefix it here with 'Bearer ' (e.g. 'Bearer eyJhbGciO...'", - "name": "Authorization", - "in": "header", + "bearerAuth": { + "type": "http", "scheme": "bearer", - "bearerFormat": "JWT" + "bearerFormat": "JWT", + "description": "API Key Authentication with a Bearer token. Copy your API Key and prefix it here with 'Bearer ' (e.g. 'Bearer eyJhbGciO...'" + } + } + }, + "externalDocs": { + "url": "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", + "description": "Lowcoder Documentation" + }, + "tags": [ + { + "name": "Application APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Application History APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Application Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Bundle APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Bundle Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Folder APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Folder Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Data Source APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Data Source Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Query Execution APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Library Queries Record APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Organization APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Query Library APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Organization Member APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "User invitation APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "User APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "User Profile Photo APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Group APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Group Members APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Authentication APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Image Assets APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Javascript Library APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Status checks APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Server Setting APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "default", + "description": "", + "externalDocs": { + "description": "", + "url": "" } } - } + ] } \ No newline at end of file