From cc3480dbf4576cddb9d0b071d24463c1cb34463b Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 10:11:22 +0000 Subject: [PATCH 01/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 387 +++++++++------------------------- 1 file changed, 99 insertions(+), 288 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index e8b1738..77feb9d 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -3,7 +3,16 @@ "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": [ { @@ -39,7 +48,7 @@ ], "security": [ { - "LOWCODER_DEBUG_TOKEN": [] + "API Key": [] } ], "paths": { @@ -2442,78 +2451,6 @@ } } }, - "/api/configs/{key}": { - "get": { - "tags": [ - "Configuration 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", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewServerConfig" - } - } - } - } - } - }, - "post": { - "tags": [ - "Configuration 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", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateConfigRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewServerConfig" - } - } - } - } - } - } - }, "/api/applications/{applicationId}/publish": { "post": { "tags": [ @@ -2610,38 +2547,6 @@ } } }, - "/api/materials": { - "post": { - "tags": [ - "File 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" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewMaterialView" - } - } - } - } - } - } - }, "/api/library-queries": { "post": { "tags": [ @@ -3775,60 +3680,6 @@ } } }, - "/api/configs/deploymentId": { - "get": { - "tags": [ - "Configuration APIs" - ], - "summary": "Get Lowcoder deployment ID", - "description": "Retrieve the unique deployment ID for Lowcoder. (not available on public cloud)", - "operationId": "getDeploymentId", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/api/configs": { - "get": { - "tags": [ - "Configuration 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", - "parameters": [ - { - "name": "orgId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewConfigView_Public" - } - } - } - } - } - } - }, "/api/assets/{id}": { "get": { "tags": [ @@ -4184,92 +4035,6 @@ } } }, - "/api/materials/{id}": { - "get": { - "tags": [ - "File APIs" - ], - "summary": "Download File contents", - "description": "Download the contents of a specific File within Lowcoder using its unique ID.", - "operationId": "downloadFile", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "download" - } - } - ], - "responses": { - "200": { - "description": "OK" - } - } - }, - "delete": { - "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" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/materials/list": { - "get": { - "tags": [ - "File APIs" - ], - "summary": "List uploaded Files", - "description": "Retrieve a list of uploaded Files within Lowcoder, providing an overview of available files.", - "operationId": "listFiles", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewListMaterialView" - } - } - } - } - } - } - }, "/api/library-query-records": { "get": { "tags": [ @@ -4813,9 +4578,7 @@ }, "/": { "get": { - "tags": [ - "index-controller" - ], + "tags": [], "operationId": "index", "responses": { "200": { @@ -4828,7 +4591,8 @@ } } } - } + }, + "description": "The Health / Root Endpoint" } }, "/api/organizations/{orgId}/remove": { @@ -5300,6 +5064,9 @@ "name": { "type": "string" }, + "email": { + "type": "string" + }, "avatar": { "type": "string" }, @@ -5609,6 +5376,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5638,6 +5408,9 @@ "createdBy": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5667,10 +5440,10 @@ "id": { "type": "string" }, - "datasourceConfigExtraDynamic": { + "queryConfigDynamic": { "type": "boolean" }, - "queryConfigDynamic": { + "datasourceConfigExtraDynamic": { "type": "boolean" }, "empty": { @@ -5780,6 +5553,9 @@ "type": "string", "writeOnly": true }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5820,9 +5596,6 @@ "createdBy": { "type": "string" }, - "gid": { - "type": "string" - }, "organizationId": { "type": "string" }, @@ -5865,6 +5638,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -5933,10 +5709,10 @@ "libraryQueryRecordId": { "type": "string" }, - "usingLiveRecord": { + "usingEditingRecord": { "type": "boolean" }, - "usingEditingRecord": { + "usingLiveRecord": { "type": "boolean" } } @@ -6174,10 +5950,10 @@ "type": "integer", "format": "int64" }, - "manageable": { + "visible": { "type": "boolean" }, - "visible": { + "manageable": { "type": "boolean" }, "folder": { @@ -6291,6 +6067,9 @@ "bundleId": { "type": "string" }, + "bundleGid": { + "type": "string" + }, "name": { "type": "string" }, @@ -6341,10 +6120,10 @@ "type": "integer", "format": "int64" }, - "manageable": { + "visible": { "type": "boolean" }, - "visible": { + "manageable": { "type": "boolean" }, "bundle": { @@ -6482,27 +6261,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 +6421,9 @@ "groupId": { "type": "string" }, + "groupGid": { + "type": "string" + }, "groupName": { "type": "string" }, @@ -6658,13 +6440,13 @@ "dynamicRule": { "type": "string" }, - "devGroup": { + "syncDelete": { "type": "boolean" }, - "syncGroup": { + "devGroup": { "type": "boolean" }, - "syncDelete": { + "syncGroup": { "type": "boolean" } } @@ -6693,6 +6475,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -6800,6 +6585,9 @@ "orgId": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -6881,6 +6669,9 @@ "createdBy": { "type": "string" }, + "gid": { + "type": "string" + }, "organizationId": { "type": "string" }, @@ -6907,6 +6698,9 @@ "id": { "type": "string" }, + "gid": { + "type": "string" + }, "organizationId": { "type": "string" }, @@ -7008,6 +6802,9 @@ "orgId": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -7054,6 +6851,9 @@ "id": { "type": "string" }, + "scope": { + "type": "string" + }, "authType": { "type": "string" }, @@ -7096,9 +6896,6 @@ "instanceId": { "type": "string" }, - "scope": { - "type": "string" - }, "empty": { "type": "boolean" } @@ -7397,7 +7194,10 @@ "GroupMemberView": { "type": "object", "properties": { - "avatarUrl": { + "groupId": { + "type": "string" + }, + "role": { "type": "string" }, "userId": { @@ -7406,18 +7206,15 @@ "orgId": { "type": "string" }, + "avatarUrl": { + "type": "string" + }, "joinTime": { "type": "integer", "format": "int64" }, "userName": { "type": "string" - }, - "groupId": { - "type": "string" - }, - "role": { - "type": "string" } } }, @@ -7664,6 +7461,9 @@ "createdBy": { "type": "string" }, + "gid": { + "type": "string" + }, "name": { "type": "string" }, @@ -7693,10 +7493,10 @@ "id": { "type": "string" }, - "datasourceConfigExtraDynamic": { + "queryConfigDynamic": { "type": "boolean" }, - "queryConfigDynamic": { + "datasourceConfigExtraDynamic": { "type": "boolean" }, "empty": { @@ -8022,6 +7822,9 @@ "name": { "type": "string" }, + "email": { + "type": "string" + }, "uiLanguage": { "type": "string" }, @@ -8406,6 +8209,9 @@ "bundleId": { "type": "string" }, + "bundleGid": { + "type": "string" + }, "name": { "type": "string" }, @@ -8564,5 +8370,10 @@ "bearerFormat": "JWT" } } - } + }, + "externalDocs": { + "url": "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", + "description": "Lowcoder Documentation" + }, + "tags": [] } \ No newline at end of file From a951d1e408ed7b0df592d7c8410564e17a035649 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 11:09:57 +0000 Subject: [PATCH 02/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 3952 ++++++++++++++++----------------- 1 file changed, 1976 insertions(+), 1976 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index 77feb9d..885df5c 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -52,19 +52,29 @@ } ], "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" } } }, @@ -82,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", @@ -114,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", @@ -134,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", @@ -168,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": { @@ -222,7 +276,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateOrgRequest" + "$ref": "#/components/schemas/BatchAddPermissionRequest" } } }, @@ -242,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": { @@ -264,7 +318,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateRoleRequest" + "$ref": "#/components/schemas/ApplicationAsAgencyProfileRequest" } } }, @@ -284,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": { @@ -308,7 +362,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewOrganizationCommonSettings" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -317,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": { @@ -336,7 +390,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateOrgCommonSettingsRequest" + "$ref": "#/components/schemas/Application" } } }, @@ -348,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": { @@ -380,7 +432,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -388,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": { @@ -406,16 +458,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateGroupRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", @@ -430,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": { @@ -448,16 +490,6 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateRoleRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", @@ -472,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": { @@ -496,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" } } }, @@ -536,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": { @@ -566,7 +624,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewApplicationView" } } } @@ -574,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": { @@ -598,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": { @@ -622,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" } } } @@ -646,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" } } ], @@ -710,7 +743,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" } } } @@ -718,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" } } } @@ -760,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" } } } @@ -802,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" } } }, @@ -850,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", @@ -868,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 } } ], @@ -882,7 +949,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewMapStringObject" } } } @@ -890,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", @@ -906,6 +973,14 @@ "schema": { "type": "string" } + }, + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -914,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" } } }, @@ -954,7 +1051,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -962,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": { @@ -980,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" } } } @@ -1004,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": { @@ -1028,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": { @@ -1056,7 +1156,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Application" + "$ref": "#/components/schemas/BundlePublicToMarketplaceRequest" } } }, @@ -1068,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": { @@ -1092,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" } } } @@ -1106,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": { @@ -1124,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": { @@ -1162,7 +1298,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -1170,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": { @@ -1192,7 +1328,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpsertLibraryQueryRequest" + "$ref": "#/components/schemas/BundleAsAgencyProfileRequest" } } }, @@ -1210,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": { @@ -1242,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" } } } @@ -1304,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": { @@ -1322,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", @@ -1352,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": { @@ -1370,8 +1478,8 @@ } }, { - "name": "permissionId", - "in": "path", + "name": "toBundleId", + "in": "query", "required": true, "schema": { "type": "string" @@ -1392,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": { @@ -1424,7 +1524,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -1432,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" } } } @@ -1465,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" } } }, @@ -1486,7 +1596,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -1494,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", @@ -1510,17 +1620,6 @@ "schema": { "type": "string" } - }, - { - "name": "elementIds", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } } ], "responses": { @@ -1529,7 +1628,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBundleInfoView" } } } @@ -1537,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", @@ -1555,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" } } } @@ -1579,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", @@ -1597,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" } } } @@ -1621,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", @@ -1639,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" } } } @@ -1709,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" } } } @@ -1751,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" + ] } } ], @@ -1775,7 +1818,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListBundleInfoView" } } } @@ -1783,79 +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" - } - } - ], + "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/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" } } } @@ -1863,59 +1848,19 @@ } } }, - "/api/bundles/addApp/{id}": { + "/api/folders": { "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" + "Folder 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", + "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/ResetPasswordRequest" + "$ref": "#/components/schemas/Folder" } } }, @@ -1927,27 +1872,25 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewString" + "$ref": "#/components/schemas/ResponseViewFolderInfoView" } } } } } - } - }, - "/api/users/reset-lost-password": { + }, "post": { "tags": [ - "User Password APIs" + "Folder APIs" ], - "summary": "Reset Lost User Password", - "description": "Resets lost password based on the token from lost password email.", - "operationId": "resetLostPassword", + "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/ResetLostPasswordRequest" + "$ref": "#/components/schemas/Folder" } } }, @@ -1959,7 +1902,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewFolderInfoView" } } } @@ -1967,91 +1910,37 @@ } } }, - "/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": { + "/api/folders/{folderId}/permissions/{permissionId}": { + "put": { "tags": [ - "User Profile Photo APIs" + "Folder Permissions 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" - } - } + "summary": "Update Folder permissions", + "description": "Modify permissions associated with a specific Application Folder within Lowcoder.", + "operationId": "updateFolderPermissions", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } - } - }, - "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" - } - } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/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" + "$ref": "#/components/schemas/UpdatePermissionRequest" } } }, @@ -2063,71 +1952,45 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } } } - } - }, - "/api/query/execute-from-node": { - "post": { + }, + "delete": { "tags": [ - "Query Execution APIs" + "Folder Permissions 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" - } + "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/QueryResultView" - } - } + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/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 - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/QueryResultView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2135,64 +1998,57 @@ } } }, - "/api/organizations/{orgId}/logo": { - "post": { + "/api/folders/move/{id}": { + "put": { "tags": [ - "Organization APIs" + "Folder APIs" ], - "summary": "Upload Organization Logo", - "description": "Upload an Organization logo for branding and identification for a Lowcoder Organization / Workspace.", - "operationId": "uploadOrganizationLogo", + "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": "orgId", + "name": "id", "in": "path", "required": true, "schema": { "type": "string" } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "required": [ - "file" - ], - "type": "object", - "properties": { - "file": { - "$ref": "#/components/schemas/Part" - } - } - } + }, + { + "name": "targetFolderId", + "in": "query", + "required": false, + "schema": { + "type": "string" } } - }, + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } } } - }, - "delete": { + } + }, + "/api/folders/{folderId}/permissions": { + "get": { "tags": [ - "Organization APIs" + "Folder Permissions APIs" ], - "summary": "Delete Organization Logo", - "description": "Remove the logo associated with an Organization within Lowcoder.", - "operationId": "deleteOrganizationLogo", + "summary": "Get Folder permissions", + "description": "Retrieve detailed information about permissions associated with a specific Application Folder within Lowcoder.", + "operationId": "listFolderPermissions", "parameters": [ { - "name": "orgId", + "name": "folderId", "in": "path", "required": true, "schema": { @@ -2206,27 +2062,35 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" } } } } } - } - }, - "/api/organizations": { + }, "post": { "tags": [ - "Organization APIs" + "Folder 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", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "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" + "$ref": "#/components/schemas/BatchAddPermissionRequest" } } }, @@ -2238,7 +2102,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewOrgView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2246,22 +2110,35 @@ } } }, - "/api/invitation": { - "post": { + "/api/folders/elements": { + "get": { "tags": [ - "User invitation APIs" + "Folder 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": "Get Folder contents", + "description": "Retrieve the contents of an Application Folder within Lowcoder, including Applications and Subfolders.", + "operationId": "listFolderContents", "parameters": [ { - "name": "orgId", + "name": "id", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } + }, + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "APPLICATION", + "MODULE", + "COMPOUND_APPLICATION" + ] + } } ], "responses": { @@ -2270,7 +2147,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewInvitationVO" + "$ref": "#/components/schemas/ResponseViewListObject" } } } @@ -2278,17 +2155,17 @@ } } }, - "/api/groups/{groupId}/addMember": { - "post": { + "/api/folders/{id}": { + "delete": { "tags": [ - "Group Members APIs" + "Folder 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", + "summary": "Delete Folder", + "description": "Permanently remove an Application Folder from Lowcoder using its unique ID.", + "operationId": "deleteFolder", "parameters": [ { - "name": "groupId", + "name": "id", "in": "path", "required": true, "schema": { @@ -2296,23 +2173,13 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddMemberRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -2320,31 +2187,31 @@ } } }, - "/api/groups": { + "/api/datasources": { "post": { "tags": [ - "Group APIs" + "Data Source 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", + "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/CreateGroupRequest" + "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" } } }, "required": true }, "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewGroupView" + "$ref": "#/components/schemas/ResponseViewDatasource_Public" } } } @@ -2352,81 +2219,54 @@ } } }, - "/api/datasources/test": { - "post": { + "/api/datasources/{id}": { + "get": { "tags": [ "Data Source 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": "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/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewDatasource_Public" } } } } } - } - }, - "/api/datasources/getPluginDynamicConfig": { - "post": { + }, + "put": { "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" - } - } + "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" } } - } - } - }, - "/api/datasources": { - "post": { - "tags": [ - "Data Source 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": { @@ -2438,8 +2278,8 @@ "required": true }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "OK", "content": { "*/*": { "schema": { @@ -2449,19 +2289,17 @@ } } } - } - }, - "/api/applications/{applicationId}/publish": { - "post": { + }, + "delete": { "tags": [ - "Application APIs" + "Data Source 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": "Delete data source by ID", + "description": "Permanently remove a data source within Lowcoder using its ID.", + "operationId": "deleteDatasource", "parameters": [ { - "name": "applicationId", + "name": "id", "in": "path", "required": true, "schema": { @@ -2475,7 +2313,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -2483,18 +2321,18 @@ } } }, - "/api/applications/createFromTemplate": { - "post": { + "/api/datasources/{datasourceId}/permissions": { + "get": { "tags": [ - "Application APIs" + "Data Source Permissions 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": "Get data source permissions", + "description": "Retrieve permissions associated with a specific data source within Lowcoder, identified by its ID.", + "operationId": "listDatasourcePermissions", "parameters": [ { - "name": "templateId", - "in": "query", + "name": "datasourceId", + "in": "path", "required": true, "schema": { "type": "string" @@ -2507,27 +2345,35 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewCommonPermissionView" } } } } } - } - }, - "/api/applications": { - "post": { + }, + "put": { "tags": [ - "Application APIs" + "Data Source Permissions APIs" + ], + "summary": "Update data source permission", + "description": "Modify a specific data source permission within Lowcoder, identified by its ID.", + "operationId": "updateDatasourcePermission", + "parameters": [ + { + "name": "datasourceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } ], - "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/CreateApplicationRequest" + "$ref": "#/components/schemas/BatchAddPermissionRequest" } } }, @@ -2539,7 +2385,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -2547,19 +2393,29 @@ } } }, - "/api/library-queries": { - "post": { + "/api/datasources/permissions/{permissionId}": { + "put": { "tags": [ - "Query Library APIs" + "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" + } + } ], - "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/UpdatePermissionRequest" } } }, @@ -2571,25 +2427,23 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewLibraryQueryView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/library-queries/{libraryQueryId}/publish": { - "post": { + }, + "delete": { "tags": [ - "Query Library APIs" + "Data Source Permissions 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": "Revoke permission from data source", + "description": "Revoke a specific permission from a data source within Lowcoder, identified by its ID.", + "operationId": "revokeDatasourcePermission", "parameters": [ { - "name": "libraryQueryId", + "name": "permissionId", "in": "path", "required": true, "schema": { @@ -2597,23 +2451,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" } } } @@ -2621,22 +2465,31 @@ } } }, - "/api/folders/{folderId}/permissions": { + "/api/datasources/{datasourceId}/structure": { "get": { "tags": [ - "Folder Permissions APIs" + "Data Source 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 structure", + "description": "Retrieve the structure and schema of a data source within Lowcoder, identified by its ID.", + "operationId": "getDatasourceStructure", "parameters": [ { - "name": "folderId", + "name": "datasourceId", "in": "path", "required": true, "schema": { "type": "string" } + }, + { + "name": "ignoreCache", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false + } } ], "responses": { @@ -2645,47 +2498,39 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" + "$ref": "#/components/schemas/ResponseViewDatasourceStructure" } } } } } - }, - "post": { + } + }, + "/api/datasources/listByOrg": { + "get": { "tags": [ - "Folder Permissions APIs" + "Data Source 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": "Get data sources by Organization ID", + "description": "List data sources associated with a specific Organization-ID within Lowcoder.", + "operationId": "listDatasourcesByOrg", "parameters": [ { - "name": "folderId", - "in": "path", + "name": "orgId", + "in": "query", "required": true, "schema": { "type": "string" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BatchAddPermissionRequest" - } - } - }, - "required": true - }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" } } } @@ -2693,18 +2538,18 @@ } } }, - "/api/bundles/{bundleId}/publish": { - "post": { + "/api/datasources/listByApp": { + "get": { "tags": [ - "Bundle APIs" + "Data Source 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": "Get data sources by Application ID", + "description": "List data sources associated with a specific Application-ID within Lowcoder.", + "operationId": "listDatasourcesByApp", "parameters": [ { - "name": "bundleId", - "in": "path", + "name": "appId", + "in": "query", "required": true, "schema": { "type": "string" @@ -2717,7 +2562,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundleInfoView" + "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" } } } @@ -2725,18 +2570,18 @@ } } }, - "/api/bundles/{bundleId}/permissions": { + "/api/datasources/jsDatasourcePlugins": { "get": { "tags": [ - "Bundle Permissions APIs" + "Data Source APIs" ], - "summary": "Get Bundle permissions", - "description": "Retrieve detailed information about permissions associated with a specific Bundle Bundle within Lowcoder.", - "operationId": "listBundlePermissions", + "summary": "Get Node service plugins", + "description": "Retrieve a list of node service plugins available within Lowcoder.", + "operationId": "listNodeServicePlugins", "parameters": [ { - "name": "bundleId", - "in": "path", + "name": "appId", + "in": "query", "required": true, "schema": { "type": "string" @@ -2749,35 +2594,59 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBundlePermissionView" + "$ref": "#/components/schemas/ResponseViewListDatasource" } } } } } - }, - "post": { + } + }, + "/api/datasources/info": { + "get": { "tags": [ - "Bundle Permissions APIs" + "Data Source 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": "Get data source information", + "description": "Obtain information related to a data source within Lowcoder.", + "operationId": "getDatasourceInfo", "parameters": [ { - "name": "bundleId", - "in": "path", - "required": true, + "name": "datasourceId", + "in": "query", + "required": false, "schema": { "type": "string" } } ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewObject" + } + } + } + } + } + } + }, + "/api/datasources/test": { + "post": { + "tags": [ + "Data Source 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/BatchAddPermissionRequest" + "$ref": "#/components/schemas/UpsertDatasourceRequest" } } }, @@ -2789,7 +2658,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -2797,49 +2666,116 @@ } } }, - "/api/auth/tp/login": { + "/api/datasources/getPluginDynamicConfig": { "post": { "tags": [ - "Authentication APIs" + "Data Source APIs" ], - "summary": "Login with third party", - "description": "Authenticate a Lowcoder User using third-party login credentials.", - "operationId": "loginWithThirdParty", - "parameters": [ - { - "name": "authId", - "in": "query", - "required": false, - "schema": { - "type": "string" + "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" + } + } } }, - { - "name": "source", - "in": "query", - "required": false, - "schema": { - "type": "string" + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListObject" + } + } + } + } + } + } + }, + "/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" + } } }, - { - "name": "code", - "in": "query", - "required": true, - "schema": { - "type": "string" + "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" + } } }, - { - "name": "invitationId", - "in": "query", - "required": false, - "schema": { - "type": "string" + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/QueryResultView" + } + } } - }, + } + } + } + }, + "/api/library-query-records": { + "get": { + "tags": [ + "Library Queries Record 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": "redirectUrl", + "name": "libraryQueryId", "in": "query", "required": true, "schema": { @@ -2847,7 +2783,7 @@ } }, { - "name": "orgId", + "name": "libraryQueryRecordId", "in": "query", "required": true, "schema": { @@ -2861,7 +2797,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewMapStringObject" } } } @@ -2869,49 +2805,17 @@ } } }, - "/api/auth/tp/link": { - "post": { + "/api/library-query-records/listByLibraryQueryId": { + "get": { "tags": [ - "Authentication APIs" + "Library Queries Record 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 Library Query Record", + "description": "Retrieve a specific Library Query Record within Lowcoder using the associated library query ID.", + "operationId": "getLibraryQueryRecord", "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": "libraryQueryId", "in": "query", "required": true, "schema": { @@ -2925,7 +2829,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListLibraryQueryRecordMetaView" } } } @@ -2933,21 +2837,21 @@ } } }, - "/api/auth/logout": { - "post": { + "/api/library-queries/listByOrg": { + "get": { "tags": [ - "Authentication APIs" + "Query Library APIs" ], - "summary": "Logout from Lowcoder", - "description": "End a logged in Session of a Lowcoder User on the Lowcoder platform.", - "operationId": "logout", + "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/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListLibraryQueryView" } } } @@ -2955,49 +2859,21 @@ } } }, - "/api/auth/form/login": { - "post": { + "/api/library-queries/dropDownList": { + "get": { "tags": [ - "Authentication 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", - "parameters": [ - { - "name": "invitationId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "orgId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } + "Query Library APIs" ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FormLoginRequest" - } - } - }, - "required": true - }, + "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": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListLibraryQueryAggregateView" } } } @@ -3005,51 +2881,54 @@ } } }, - "/api/auth/config": { - "post": { + "/api/library-query-records/{libraryQueryRecordId}": { + "delete": { "tags": [ - "Authentication APIs" + "Library Queries Record 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" - } + "summary": "Delete Library Query Record", + "description": "Permanently remove a specific Library Query Record from Lowcoder using its unique record ID.", + "operationId": "deleteLibrartQueryRecord", + "parameters": [ + { + "name": "libraryQueryRecordId", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "required": true - }, + } + ], "responses": { "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" - } - } - } + "description": "OK" } } } }, - "/api/auth/api-key": { + "/api/library-queries/{libraryQueryId}/publish": { "post": { "tags": [ - "Authentication APIs" + "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": "libraryQueryId", + "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" + "$ref": "#/components/schemas/LibraryQueryPublishRequest" } } }, @@ -3061,7 +2940,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewAPIKeyVO" + "$ref": "#/components/schemas/ResponseViewLibraryQueryRecordMetaView" } } } @@ -3069,19 +2948,19 @@ } } }, - "/api/application/history-snapshots": { + "/api/library-queries": { "post": { "tags": [ - "Application History APIs" + "Query Library 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": "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/ApplicationHistorySnapshotRequest" + "$ref": "#/components/schemas/LibraryQuery" } } }, @@ -3093,29 +2972,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } - } - } - } - } - } - }, - "/api/state/healthCheck": { - "head": { - "tags": [ - "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/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewLibraryQueryView" } } } @@ -3123,17 +2980,17 @@ } } }, - "/api/users/userDetail/{id}": { - "get": { + "/api/library-queries/{libraryQueryId}": { + "put": { "tags": [ - "User APIs" + "Query Library APIs" ], - "summary": "Get User Details by ID", - "description": "Retrieve specific User Details within Lowcoder using their unique user ID.", - "operationId": "getUserDetails", + "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": "id", + "name": "libraryQueryId", "in": "path", "required": true, "schema": { @@ -3141,31 +2998,39 @@ } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertLibraryQueryRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/users/photo/{userId}": { - "get": { + }, + "delete": { "tags": [ - "User Profile Photo APIs" + "Query Library 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": "Delete a Data Query Library", + "description": "Permanently remove a Library Query from Lowcoder using its unique ID.", + "operationId": "deleteLibraryQuery", "parameters": [ { - "name": "userId", + "name": "libraryQueryId", "in": "path", "required": true, "schema": { @@ -3175,26 +3040,43 @@ ], "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } } } } }, - "/api/users/me": { - "get": { + "/api/organizations": { + "post": { "tags": [ - "User APIs" + "Organization 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", + "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/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewOrgView" } } } @@ -3202,46 +3084,78 @@ } } }, - "/api/users/currentUser": { - "get": { + "/api/organizations/{orgId}/logo": { + "post": { "tags": [ - "User APIs" + "Organization 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": "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" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "$ref": "#/components/schemas/Part" + } + } + } + } + } + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewUserDetail" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/serverSettings": { - "get": { + }, + "delete": { "tags": [ - "Server Setting APIs" + "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" + } + } ], - "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" - } + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3373,22 +3287,30 @@ } } }, - "/api/invitation/{invitationId}/invite": { - "get": { + "/api/organizations/{orgId}/remove": { + "delete": { "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": "Delete Organization by ID", + "description": "Permanently remove an User from an Organization in Lowcoder using its unique IDs.", + "operationId": "deleteOrganization", "parameters": [ { - "name": "invitationId", + "name": "orgId", "in": "path", "required": true, "schema": { "type": "string" } + }, + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -3397,7 +3319,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3405,17 +3327,17 @@ } } }, - "/api/invitation/{invitationId}": { - "get": { + "/api/organizations/{orgId}/leave": { + "delete": { "tags": [ - "User invitation APIs" + "Organization Member 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": "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": "invitationId", + "name": "orgId", "in": "path", "required": true, "schema": { @@ -3429,7 +3351,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewInvitationVO" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3437,73 +3359,31 @@ } } }, - "/api/groups/{groupId}/members": { - "get": { + "/api/organizations/{orgId}": { + "delete": { "tags": [ - "Group Members APIs" + "Organization 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": "Delete Organization by ID", + "description": "Permanently remove an Organization from Lowcoder using its unique ID.", + "operationId": "deleteOrganization_1", "parameters": [ { - "name": "groupId", + "name": "orgId", "in": "path", "required": true, "schema": { "type": "string" } - }, - { - "name": "page", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "count", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 100 - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewGroupMemberAggregateView" - } - } - } } - } - } - }, - "/api/groups/list": { - "get": { - "tags": [ - "Group APIs" ], - "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/ResponseViewBoolean" } } } @@ -3511,40 +3391,41 @@ } } }, - "/api/datasources/{datasourceId}/structure": { - "get": { + "/api/organizations/{orgId}/update": { + "put": { "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": "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", + "name": "orgId", "in": "path", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "ignoreCache", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": false + "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrgRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewDatasourceStructure" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3552,31 +3433,41 @@ } } }, - "/api/datasources/listByOrg": { - "get": { + "/api/organizations/{orgId}/role": { + "put": { "tags": [ - "Data Source APIs" + "Organization Member APIs" ], - "summary": "Get data sources by Organization ID", - "description": "List data sources associated with a specific Organization-ID within Lowcoder.", - "operationId": "listDatasourcesByOrg", + "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": "query", + "in": "path", "required": true, "schema": { "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRoleRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3584,18 +3475,18 @@ } } }, - "/api/datasources/listByApp": { + "/api/organizations/{orgId}/common-settings": { "get": { "tags": [ - "Data Source APIs" + "Organization APIs" ], - "summary": "Get data sources by Application ID", - "description": "List data sources associated with a specific Application-ID within Lowcoder.", - "operationId": "listDatasourcesByApp", + "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": "appId", - "in": "query", + "name": "orgId", + "in": "path", "required": true, "schema": { "type": "string" @@ -3608,39 +3499,47 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasourceView_Public" + "$ref": "#/components/schemas/ResponseViewOrganizationCommonSettings" } } } } } - } - }, - "/api/datasources/jsDatasourcePlugins": { - "get": { + }, + "put": { "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": "Update Organization common Settings", + "description": "Modify common settings (such as Themes) and configurations for a Lowcoder Organization / Workspace.", + "operationId": "updateOrganizationSettings", "parameters": [ { - "name": "appId", - "in": "query", + "name": "orgId", + "in": "path", "required": true, "schema": { "type": "string" } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrgCommonSettingsRequest" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListDatasource" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -3648,19 +3547,19 @@ } } }, - "/api/datasources/info": { - "get": { + "/api/organizations/switchOrganization/{orgId}": { + "put": { "tags": [ - "Data Source APIs" + "Organization Member APIs" ], - "summary": "Get data source information", - "description": "Obtain information related to a data source within Lowcoder.", - "operationId": "getDatasourceInfo", + "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": "datasourceId", - "in": "query", - "required": false, + "name": "orgId", + "in": "path", + "required": true, "schema": { "type": "string" } @@ -3680,18 +3579,18 @@ } } }, - "/api/assets/{id}": { - "get": { + "/api/invitation": { + "post": { "tags": [ - "Image Assets APIs" + "User invitation 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": "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": "id", - "in": "path", + "name": "orgId", + "in": "query", "required": true, "schema": { "type": "string" @@ -3700,22 +3599,29 @@ ], "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewInvitationVO" + } + } + } } } } }, - "/api/applications/{applicationId}/view_marketplace": { + "/api/invitation/{invitationId}/invite": { "get": { "tags": [ - "Application APIs" + "User invitation 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": "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": { @@ -3729,7 +3635,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -3737,17 +3643,17 @@ } } }, - "/api/applications/{applicationId}/view_agency": { + "/api/invitation/{invitationId}": { "get": { "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": "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": "applicationId", + "name": "invitationId", "in": "path", "required": true, "schema": { @@ -3761,7 +3667,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewInvitationVO" } } } @@ -3769,31 +3675,31 @@ } } }, - "/api/applications/{applicationId}/view": { - "get": { + "/api/users": { + "put": { "tags": [ - "Application APIs" + "User 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", - "parameters": [ - { - "name": "applicationId", - "in": "path", - "required": true, - "schema": { - "type": "string" + "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/ResponseViewApplicationView" + "$ref": "#/components/schemas/ResponseViewUserProfileView" } } } @@ -3801,54 +3707,83 @@ } } }, - "/api/applications/recycle/list": { - "get": { + "/api/users/password": { + "put": { "tags": [ - "Application APIs" + "User Password APIs" ], - "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", + "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" + } + } + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/applications/marketplace-apps": { - "get": { + }, + "post": { "tags": [ - "Application APIs" + "User Password APIs" ], - "summary": "List Marketplace Applications", - "description": "Retrieve a list of Lowcoder Applications that are published to the Marketplace", - "operationId": "listMarketplaceApplications", + "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" + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } } } + } + } + }, + "/api/users/newUserGuidanceShown": { + "put": { + "tags": [ + "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" } } } @@ -3856,54 +3791,31 @@ } } }, - "/api/applications/list": { - "get": { + "/api/users/mark-status": { + "put": { "tags": [ - "Application APIs" + "User 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": "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" + } } }, - { - "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" } } } @@ -3911,23 +3823,21 @@ } } }, - "/api/applications/home": { + "/api/users/userDetail/{id}": { "get": { "tags": [ - "Application APIs" + "User 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": "Get User Details by ID", + "description": "Retrieve specific User Details within Lowcoder using their unique user ID.", + "operationId": "getUserDetails", "parameters": [ { - "name": "applicationType", - "in": "query", - "required": false, + "name": "id", + "in": "path", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 0 + "type": "string" } } ], @@ -3937,7 +3847,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewUserHomepageView" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -3945,32 +3855,46 @@ } } }, - "/api/applications/agency-profiles": { + "/api/users/photo/{userId}": { "get": { "tags": [ - "Application APIs" + "User Profile Photo APIs" ], - "summary": "List agency profile Applications", - "description": "Retrieve a list of Lowcoder Applications that are set as agency profiles", - "operationId": "listAgencyProfileApplications", + "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": "applicationType", - "in": "query", - "required": false, + "name": "userId", + "in": "path", + "required": true, "schema": { - "type": "integer", - "format": "int32" + "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/ResponseViewListMarketplaceApplicationInfoView" + "$ref": "#/components/schemas/ResponseViewObject" } } } @@ -3978,21 +3902,21 @@ } } }, - "/api/misc/js-library/recommendations": { + "/api/users/currentUser": { "get": { "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": "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/ResponseViewListJsLibraryMeta" + "$ref": "#/components/schemas/ResponseViewUserDetail" } } } @@ -4000,34 +3924,31 @@ } } }, - "/api/misc/js-library/metas": { - "get": { + "/api/users/reset-password": { + "post": { "tags": [ - "Javascript Library APIs" + "User Password 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", - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "array", - "items": { - "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" } } - } - ], + }, + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" + "$ref": "#/components/schemas/ResponseViewString" } } } @@ -4035,39 +3956,31 @@ } } }, - "/api/library-query-records": { - "get": { + "/api/users/reset-lost-password": { + "post": { "tags": [ - "Library Queries Record APIs" + "User Password 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 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" + } } }, - { - "name": "libraryQueryRecordId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewMapStringObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4075,53 +3988,71 @@ } } }, - "/api/library-query-records/listByLibraryQueryId": { + "/api/users/photo": { "get": { "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": "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/ResponseViewListLibraryQueryRecordMetaView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } } - } - }, - "/api/library-queries/listByOrg": { - "get": { + }, + "delete": { "tags": [ - "Query Library APIs" - ], - "summary": "Get Data Query Libraries for organization", - "description": "Retrieve a list of Library Queries for a specific Organization within Lowcoder.", - "operationId": "listLibrartQueriesByOrg", + "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/ResponseViewListLibraryQueryView" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -4129,21 +4060,31 @@ } } }, - "/api/library-queries/dropDownList": { - "get": { + "/api/users/lost-password": { + "post": { "tags": [ - "Query Library APIs" + "User Password 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": "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/ResponseViewListLibraryQueryAggregateView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4151,44 +4092,31 @@ } } }, - "/api/folders/elements": { - "get": { + "/api/groups": { + "post": { "tags": [ - "Folder APIs" + "Group 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": "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" + } } }, - { - "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/ResponseViewListObject" + "$ref": "#/components/schemas/ResponseViewGroupView" } } } @@ -4196,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": { @@ -4214,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" } } } @@ -4228,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": { @@ -4246,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" } } } @@ -4260,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": { @@ -4278,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" } } } @@ -4292,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": { @@ -4310,16 +4268,23 @@ } }, { - "name": "applicationType", + "name": "page", "in": "query", "required": false, "schema": { - "type": "string", - "enum": [ - "APPLICATION", - "MODULE", - "COMPOUND_APPLICATION" - ] + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "count", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 } } ], @@ -4329,7 +4294,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListObject" + "$ref": "#/components/schemas/ResponseViewGroupMemberAggregateView" } } } @@ -4337,21 +4302,21 @@ } } }, - "/api/bundles/recycle/list": { + "/api/groups/list": { "get": { "tags": [ - "Bundle APIs" + "Group 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", + "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/ResponseViewListBundleInfoView" + "$ref": "#/components/schemas/ResponseViewListGroupView" } } } @@ -4359,21 +4324,39 @@ } } }, - "/api/bundles/marketplace-bundles": { - "get": { + "/api/groups/{groupId}/remove": { + "delete": { "tags": [ - "Bundle APIs" + "Group Members 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", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } ], - "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/ResponseViewListMarketplaceBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4381,26 +4364,21 @@ } } }, - "/api/bundles/list": { - "get": { + "/api/groups/{groupId}/leave": { + "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 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": "bundleStatus", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "NORMAL", - "RECYCLED", - "DELETED" - ] + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" } } ], @@ -4410,7 +4388,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListBundleInfoView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4418,21 +4396,31 @@ } } }, - "/api/bundles/agency-profiles": { - "get": { + "/api/groups/{groupId}": { + "delete": { "tags": [ - "Bundle APIs" + "Group 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": "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" } } } @@ -4440,21 +4428,39 @@ } } }, - "/api/auth/configs": { - "get": { + "/api/auth/config/{id}": { + "delete": { "tags": [ "Authentication 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", + "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" + } + } + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListAbstractAuthConfig_Internal" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -4462,21 +4468,31 @@ } } }, - "/api/auth/api-keys": { - "get": { + "/api/auth/api-key/{id}": { + "delete": { "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", + "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" + } + } + ], "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewListAPIKey" + "$ref": "#/components/schemas/ResponseViewVoid" } } } @@ -4484,41 +4500,61 @@ } } }, - "/api/application/history-snapshots/{applicationId}": { - "get": { + "/api/auth/tp/login": { + "post": { "tags": [ - "Application History APIs" + "Authentication APIs" ], - "summary": "List Application Snapshots", - "description": "Retrieve a list of Snapshots associated with a specific Application within Lowcoder.", - "operationId": "listApplicationSnapshots", + "summary": "Login with third party", + "description": "Authenticate a Lowcoder User using third-party login credentials.", + "operationId": "loginWithThirdParty", "parameters": [ { - "name": "applicationId", - "in": "path", - "required": true, + "name": "authId", + "in": "query", + "required": false, "schema": { "type": "string" } }, { - "name": "page", + "name": "source", "in": "query", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 0 + "type": "string" } }, { - "name": "size", + "name": "code", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invitationId", "in": "query", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 10 + "type": "string" + } + }, + { + "name": "redirectUrl", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "in": "query", + "required": true, + "schema": { + "type": "string" } } ], @@ -4528,7 +4564,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewMapStringObject" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4536,26 +4572,50 @@ } } }, - "/api/application/history-snapshots/{applicationId}/{snapshotId}": { - "get": { + "/api/auth/tp/link": { + "post": { "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": "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": "applicationId", - "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": "snapshotId", - "in": "path", + "name": "redirectUrl", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "in": "query", "required": true, "schema": { "type": "string" @@ -4568,7 +4628,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewHistorySnapshotDslView" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } @@ -4576,83 +4636,64 @@ } } }, - "/": { - "get": { - "tags": [], - "operationId": "index", + "/api/auth/logout": { + "post": { + "tags": [ + "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", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewBoolean" } } } } - }, - "description": "The Health / Root Endpoint" + } } }, - "/api/organizations/{orgId}/remove": { - "delete": { + "/api/auth/form/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 user and password (Form based Login)", + "description": "Authenticate a Lowcoder User using traditional username and password credentials (Form Login).", + "operationId": "loginWithUserPassword", "parameters": [ { - "name": "orgId", - "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" } } ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" - } + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FormLoginRequest" } } - } - } - } - }, - "/api/organizations/{orgId}/leave": { - "delete": { - "tags": [ - "Organization Member 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", - "parameters": [ - { - "name": "orgId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], + }, + "required": true + }, "responses": { "200": { "description": "OK", @@ -4667,31 +4708,31 @@ } } }, - "/api/organizations/{orgId}": { - "delete": { + "/api/auth/config": { + "post": { "tags": [ - "Organization APIs" + "Authentication 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" + "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" } } } @@ -4699,39 +4740,31 @@ } } }, - "/api/groups/{groupId}/remove": { - "delete": { + "/api/auth/api-key": { + "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", - "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" + } } }, - { - "name": "userId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], + "required": true + }, "responses": { "200": { "description": "OK", "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewAPIKeyVO" } } } @@ -4739,31 +4772,21 @@ } } }, - "/api/groups/{groupId}/leave": { - "delete": { + "/api/auth/configs": { + "get": { "tags": [ - "Group Members 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" - } - } + "Authentication 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/ResponseViewBoolean" + "$ref": "#/components/schemas/ResponseViewListAbstractAuthConfig_Internal" } } } @@ -4771,31 +4794,21 @@ } } }, - "/api/groups/{groupId}": { - "delete": { + "/api/auth/api-keys": { + "get": { "tags": [ - "Group 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" - } - } + "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" } } } @@ -4803,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": { @@ -4828,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" } } } @@ -4860,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" + } } } ], @@ -4884,7 +4890,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/ResponseViewVoid" + "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" } } } @@ -4892,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" } } } @@ -4932,24 +4920,35 @@ } } }, - "/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": [], + "operationId": "index", "responses": { "200": { "description": "OK", @@ -4961,7 +4960,8 @@ } } } - } + }, + "description": "The Health / Root Endpoint" } } }, From 0bb0133d0876a3e9e6351e13fb5cc9af7ab2e106 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 11:40:28 +0000 Subject: [PATCH 03/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 215 ++++++++++++++++++++++++++++++++-- 1 file changed, 208 insertions(+), 7 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index 885df5c..4ce0942 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -575,7 +575,7 @@ ], "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", + "operationId": "createApplication", "requestBody": { "content": { "application/json": { @@ -3710,7 +3710,7 @@ "/api/users/password": { "put": { "tags": [ - "User Password APIs" + "User Profile Photo APIs" ], "summary": "Update User Password", "description": "Allow the User to update their Password within Lowcoder, enhancing security and account management.", @@ -3740,7 +3740,7 @@ }, "post": { "tags": [ - "User Password APIs" + "User Profile Photo APIs" ], "summary": "Set User Password", "description": "Set a new Password for the User within Lowcoder, ensuring secure access to their account.", @@ -3927,7 +3927,7 @@ "/api/users/reset-password": { "post": { "tags": [ - "User Password APIs" + "User Profile Photo APIs" ], "summary": "Reset User Password", "description": "Initiate a Password Reset process for the user within Lowcoder, allowing them to regain access to their account.", @@ -3959,7 +3959,7 @@ "/api/users/reset-lost-password": { "post": { "tags": [ - "User Password APIs" + "User Profile Photo APIs" ], "summary": "Reset Lost User Password", "description": "Resets lost password based on the token from lost password email.", @@ -4063,7 +4063,7 @@ "/api/users/lost-password": { "post": { "tags": [ - "User Password APIs" + "User Profile Photo APIs" ], "summary": "Lost User Password", "description": "Initiate a Lost Password recovery process.", @@ -8375,5 +8375,206 @@ "url": "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", "description": "Lowcoder Documentation" }, - "tags": [] + "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 From 5a96729141a2d8b169637dbf6e16ac4074b01a1e Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 11:42:23 +0000 Subject: [PATCH 04/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index 4ce0942..84a1aa0 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -48,7 +48,7 @@ ], "security": [ { - "API Key": [] + "bearerAuth": [] } ], "paths": { @@ -8361,13 +8361,11 @@ } }, "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...'", } } }, From ec9160671bf6842fb5515bf7dfbbd24a576f9d49 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 11:44:49 +0000 Subject: [PATCH 05/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 116 +--------------------------------- 1 file changed, 2 insertions(+), 114 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index 84a1aa0..ad84bf6 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -42,7 +42,7 @@ } }, { - "url": "https://api-service.lowcoder.cloud/", + "url": "https://api-service.lowcoder.cloud", "description": "Lowcoder Community Edition: Public Cloud API Access" } ], @@ -4947,7 +4947,7 @@ }, "/": { "get": { - "tags": [], + "tags": ["default"], "operationId": "index", "responses": { "200": { @@ -6536,49 +6536,6 @@ } } }, - "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": { @@ -6612,54 +6569,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": { @@ -7962,27 +7871,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": { From fde15f8ac94252a9beaad083f3261334309bc767 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 12:04:54 +0000 Subject: [PATCH 06/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index ad84bf6..ef66c75 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -5169,7 +5169,7 @@ ] }, "organizationDomain": { - "$ref": "#/components/schemas/OrganizationDomain" + "type": "object" }, "commonSettings": { "type": "object", @@ -5459,7 +5459,7 @@ "format": "int64" }, "datasourceConfig": { - "$ref": "#/components/schemas/DatasourceConnectionConfig_Public" + "type": "object" } } }, @@ -5933,13 +5933,13 @@ "subFolders": { "type": "array", "items": { - "$ref": "#/components/schemas/FolderInfoView" + "type": "object" } }, "subApplications": { "type": "array", "items": { - "$ref": "#/components/schemas/ApplicationInfoView" + "type": "object" } }, "createTime": { From ceae8b83affacb389940f7ec55a0258e881efe9e Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Sat, 27 Jul 2024 12:39:37 +0000 Subject: [PATCH 07/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index ef66c75..59fb3a8 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -4947,7 +4947,9 @@ }, "/": { "get": { - "tags": ["default"], + "tags": [ + "default" + ], "operationId": "index", "responses": { "200": { @@ -8253,7 +8255,7 @@ "type": "http", "scheme": "bearer", "bearerFormat": "JWT", - "description": "API Key Authentication with a Bearer token. Copy your API Key and prefix it here with 'Bearer ' (e.g. 'Bearer eyJhbGciO...'", + "description": "API Key Authentication with a Bearer token. Copy your API Key and prefix it here with 'Bearer ' (e.g. 'Bearer eyJhbGciO...'" } } }, From 38795227041d5b24d19b63d9171e23f561c3eee9 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Fri, 2 Aug 2024 14:57:43 +0000 Subject: [PATCH 08/13] add new File Supabase-API.json --- Supabase-API.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 Supabase-API.json diff --git a/Supabase-API.json b/Supabase-API.json new file mode 100644 index 0000000..84f44ec --- /dev/null +++ b/Supabase-API.json @@ -0,0 +1 @@ +{"openapi":"3.0.0","paths":{"/v1/branches/{branch_id}":{"get":{"operationId":"v1-get-a-branch-config","summary":"Get database branch config","description":"Fetches configurations of the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDetailResponse"}}}},"500":{"description":"Failed to retrieve database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-a-branch-config","summary":"Update database branch config","description":"Updates the configuration of the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBranchBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to update database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-delete-a-branch","summary":"Delete a database branch","description":"Deletes the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDeleteResponse"}}}},"500":{"description":"Failed to delete database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]}},"/v1/branches/{branch_id}/reset":{"post":{"operationId":"v1-reset-a-branch","summary":"Resets a database branch","description":"Resets the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResetResponse"}}}},"500":{"description":"Failed to reset database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]}},"/v1/projects":{"get":{"operationId":"v1-list-all-projects","summary":"List all projects","description":"Returns a list of all projects you've previously created.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ProjectResponse"}}}}}},"tags":["Projects"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-create-a-project","summary":"Create a project","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateProjectBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectResponse"}}}}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/organizations":{"get":{"operationId":"v1-list-all-organizations","summary":"List all organizations","description":"Returns a list of organizations that you currently belong to.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResponseV1"}}}}},"500":{"description":"Unexpected error listing organizations"}},"tags":["Organizations"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-create-an-organization","summary":"Create an organization","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationBodyV1"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponseV1"}}}},"500":{"description":"Unexpected error creating an organization"}},"tags":["Organizations"],"security":[{"bearer":[]}]}},"/v1/oauth/authorize":{"get":{"operationId":"v1-authorize-user","summary":"[Beta] Authorize user through oauth","parameters":[{"name":"client_id","required":true,"in":"query","schema":{"type":"string"}},{"name":"response_type","required":true,"in":"query","schema":{"enum":["code","token","id_token token"],"type":"string"}},{"name":"redirect_uri","required":true,"in":"query","schema":{"type":"string"}},{"name":"scope","required":false,"in":"query","schema":{"type":"string"}},{"name":"state","required":false,"in":"query","schema":{"type":"string"}},{"name":"response_mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"code_challenge","required":false,"in":"query","schema":{"type":"string"}},{"name":"code_challenge_method","required":false,"in":"query","schema":{"enum":["plain","sha256","S256"],"type":"string"}}],"responses":{"303":{"description":""}},"tags":["OAuth"],"security":[{"oauth2":["read"]}]}},"/v1/oauth/token":{"post":{"operationId":"v1-exchange-oauth-token","summary":"[Beta] Exchange auth code for user's access and refresh token","parameters":[],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/OAuthTokenBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenResponse"}}}}},"tags":["OAuth"],"security":[{"oauth2":["write"]}]}},"/v1/snippets":{"get":{"operationId":"v1-list-all-snippets","summary":"Lists SQL snippets for the logged in user","parameters":[{"name":"project_ref","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnippetList"}}}},"500":{"description":"Failed to list user's SQL snippets"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/snippets/{id}":{"get":{"operationId":"v1-get-a-snippet","summary":"Gets a specific SQL snippet","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnippetResponse"}}}},"500":{"description":"Failed to retrieve SQL snippet"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/api-keys":{"get":{"operationId":"v1-get-project-api-keys","summary":"Get project api keys","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyResponse"}}}}},"403":{"description":""}},"tags":["Secrets"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/branches":{"get":{"operationId":"v1-list-all-branches","summary":"List all database branches","description":"Returns all database branches of the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BranchResponse"}}}}},"500":{"description":"Failed to retrieve database branches"}},"tags":["Environments"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-create-a-branch","summary":"Create a database branch","description":"Creates a database branch from the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBranchBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to create database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-disable-preview-branching","summary":"Disables preview branching","description":"Disables preview branching for the specified project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":""},"500":{"description":"Failed to disable preview branching"}},"tags":["Environments"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname":{"get":{"operationId":"v1-get-hostname-config","summary":"[Beta] Gets project's custom hostname config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's custom hostname config"}},"tags":["Domains"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-Delete hostname config","summary":"[Beta] Deletes a project's custom hostname configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to delete project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname/initialize":{"post":{"operationId":"v1-update-hostname-config","summary":"[Beta] Updates project's custom hostname configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname/reverify":{"post":{"operationId":"v1-verify-dns-config","summary":"[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to verify project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname/activate":{"post":{"operationId":"v1-activate-custom-hostname","summary":"[Beta] Activates a custom hostname for a project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to activate project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-bans/retrieve":{"post":{"operationId":"v1-list-all-network-bans","summary":"[Beta] Gets project's network bans","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkBanResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's network bans"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-bans":{"delete":{"operationId":"v1-delete-network-bans","summary":"[Beta] Remove network bans.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveNetworkBanRequest"}}}},"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to remove network bans."}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-restrictions":{"get":{"operationId":"v1-get-network-restrictions","summary":"[Beta] Gets project's network restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's network restrictions"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-restrictions/apply":{"post":{"operationId":"v1-update-network-restrictions","summary":"[Beta] Updates project's network restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project network restrictions"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/pgsodium":{"get":{"operationId":"v1-get-pgsodium-config","summary":"[Beta] Gets project's pgsodium config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PgsodiumConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's pgsodium config"}},"tags":["Secrets"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-pgsodium-config","summary":"[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePgsodiumConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PgsodiumConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's pgsodium config"}},"tags":["Secrets"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/postgrest":{"get":{"operationId":"v1-get-postgrest-service-config","summary":"Gets project's postgrest config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgrestConfigWithJWTSecretResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's postgrest config"}},"tags":["Rest"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-postgrest-service-config","summary":"Updates project's postgrest config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePostgrestConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PostgrestConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's postgrest config"}},"tags":["Rest"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}":{"delete":{"operationId":"v1-delete-a-project","summary":"Deletes the given project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectRefResponse"}}}},"403":{"description":""}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/secrets":{"get":{"operationId":"v1-list-all-secrets","summary":"List all secrets","description":"Returns all secrets you've previously added to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecretResponse"}}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's secrets"}},"tags":["Secrets"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-bulk-create-secrets","summary":"Bulk create secrets","description":"Creates multiple secrets and adds them to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CreateSecretBody"}}}}},"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to create project's secrets"}},"tags":["Secrets"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-bulk-delete-secrets","summary":"Bulk delete secrets","description":"Deletes all secrets with the given names from the specified project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":""},"500":{"description":"Failed to delete secrets with given names"}},"tags":["Secrets"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/ssl-enforcement":{"get":{"operationId":"v1-get-ssl-enforcement-config","summary":"[Beta] Get project's SSL enforcement configuration.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's SSL enforcement config"}},"tags":["Database"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-ssl-enforcement-config","summary":"[Beta] Update project's SSL enforcement configuration.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's SSL enforcement configuration."}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/types/typescript":{"get":{"operationId":"v1-generate-typescript-types","summary":"Generate TypeScript types","description":"Returns the TypeScript types of your schema for use with supabase-js.","parameters":[{"name":"included_schemas","required":false,"in":"query","schema":{"default":"public","type":"string"}},{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypescriptResponse"}}}},"403":{"description":""},"500":{"description":"Failed to generate TypeScript types"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/vanity-subdomain":{"get":{"operationId":"v1-get-vanity-subdomain-config","summary":"[Beta] Gets current vanity subdomain config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to get project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-deactivate-vanity-subdomain-config","summary":"[Beta] Deletes a project's vanity subdomain configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to delete project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/vanity-subdomain/check-availability":{"post":{"operationId":"v1-check-vanity-subdomain-availability","summary":"[Beta] Checks vanity subdomain availability","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubdomainAvailabilityResponse"}}}},"403":{"description":""},"500":{"description":"Failed to check project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/vanity-subdomain/activate":{"post":{"operationId":"v1-activate-vanity-subdomain-config","summary":"[Beta] Activates a vanity subdomain for a project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateVanitySubdomainResponse"}}}},"403":{"description":""},"500":{"description":"Failed to activate project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/upgrade":{"post":{"operationId":"v1-upgrade-postgres-version","summary":"[Beta] Upgrades the project's Postgres version","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeDatabaseBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpgradeInitiateResponse"}}}},"403":{"description":""},"500":{"description":"Failed to initiate project upgrade"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/upgrade/eligibility":{"get":{"operationId":"v1-get-postgrest-upgrade-eligibility","summary":"[Beta] Returns the project's eligibility for upgrades","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpgradeEligibilityResponse"}}}},"403":{"description":""},"500":{"description":"Failed to determine project upgrade eligibility"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/upgrade/status":{"get":{"operationId":"v1-get-postgrest-upgrade-status","summary":"[Beta] Gets the latest status of the project's upgrade","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseUpgradeStatusResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project upgrade status"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/readonly":{"get":{"operationId":"v1-get-readonly-mode-status","summary":"Returns project's readonly mode status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadOnlyStatusResponse"}}}},"500":{"description":"Failed to get project readonly mode status"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/readonly/temporary-disable":{"post":{"operationId":"v1-disable-readonly-mode-temporarily","summary":"Disables project's readonly mode for the next 15 minutes","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":""},"500":{"description":"Failed to disable project's readonly mode"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/read-replicas/setup":{"post":{"operationId":"v1-setup-a-read-replica","summary":"[Beta] Set up a read replica","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUpReadReplicaBody"}}}},"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to set up read replica"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/read-replicas/remove":{"post":{"operationId":"v1-remove-a-read-replica","summary":"[Beta] Remove a read replica","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveReadReplicaBody"}}}},"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to remove read replica"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/health":{"get":{"operationId":"v1-get-services-health","summary":"Gets project's service health status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"timeout_ms","required":false,"in":"query","schema":{"minimum":0,"maximum":10000,"type":"integer"}},{"name":"services","required":true,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["auth","db","pooler","realtime","rest","storage"]}}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ServiceHealthResponse"}}}}},"500":{"description":"Failed to retrieve project's service health status"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/database/postgres":{"get":{"operationId":"v1-get-postgres-config","summary":"Gets project's Postgres config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresConfigResponse"}}}},"500":{"description":"Failed to retrieve project's Postgres config"}},"tags":["Database"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-postgres-config","summary":"Updates project's Postgres config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePostgresConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresConfigResponse"}}}},"500":{"description":"Failed to update project's Postgres config"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/database/pgbouncer":{"get":{"operationId":"v1-get-project-pgbouncer-config","summary":"Get project's pgbouncer config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PgbouncerConfigResponse"}}}},"500":{"description":"Failed to retrieve project's pgbouncer config"}},"tags":["Database"]}},"/v1/projects/{ref}/config/database/pooler":{"get":{"operationId":"v1-get-supavisor-config","summary":"Gets project's supavisor config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SupavisorConfigResponse"}}}}},"500":{"description":"Failed to retrieve project's supavisor config"}},"tags":["Database"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-supavisor-config","summary":"Updates project's supavisor config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupavisorConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupavisorConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's supavisor config"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth":{"get":{"operationId":"v1-get-auth-service-config","summary":"Gets project's auth config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's auth config"}},"tags":["Auth"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-auth-service-config","summary":"Updates a project's auth config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAuthConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's auth config"}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/third-party-auth":{"post":{"operationId":"createTPAForProject","summary":"Creates a new third-party auth integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThirdPartyAuthBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]},"get":{"operationId":"listTPAForProject","summary":"[Alpha] Lists all third-party auth integrations","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}":{"delete":{"operationId":"deleteTPAForProject","summary":"[Alpha] Removes a third-party auth integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"tpa_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]},"get":{"operationId":"getTPAForProject","summary":"[Alpha] Get a third-party integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"tpa_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/query":{"post":{"operationId":"v1-run-a-query","summary":"[Beta] Run sql query","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RunQueryBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":""},"500":{"description":"Failed to run sql query"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/webhooks/enable":{"post":{"operationId":"v1-enable-database-webhook","summary":"[Beta] Enables Database Webhooks on the project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to enable Database Webhooks on the project"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/functions":{"post":{"operationId":"createFunction","summary":"Create a function","description":"Creates a function and adds it to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"verify_jwt","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"import_map","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"entrypoint_path","required":false,"in":"query","schema":{"type":"string"}},{"name":"import_map_path","required":false,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateFunctionBody"}},"application/vnd.denoland.eszip":{"schema":{"$ref":"#/components/schemas/V1CreateFunctionBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionResponse"}}}},"403":{"description":""},"500":{"description":"Failed to create project's function"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]},"get":{"operationId":"v1-list-all-functions","summary":"List all functions","description":"Returns all functions you've previously added to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FunctionResponse"}}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's functions"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/functions/{function_slug}":{"get":{"operationId":"v1-get-a-function","summary":"Retrieve a function","description":"Retrieves a function with the specified slug and project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionSlugResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve function with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-a-function","summary":"Update a function","description":"Updates a function with the specified slug and project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"verify_jwt","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"import_map","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"entrypoint_path","required":false,"in":"query","schema":{"type":"string"}},{"name":"import_map_path","required":false,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdateFunctionBody"}},"application/vnd.denoland.eszip":{"schema":{"$ref":"#/components/schemas/V1UpdateFunctionBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update function with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-delete-a-function","summary":"Delete a function","description":"Deletes a function with the specified slug from the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to delete function with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/functions/{function_slug}/body":{"get":{"operationId":"v1-get-a-function-body","summary":"Retrieve a function body","description":"Retrieves a function body for the specified slug and project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to retrieve function body with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/storage/buckets":{"get":{"operationId":"v1-list-all-buckets","summary":"Lists all buckets","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1StorageBucketResponse"}}}}},"403":{"description":""},"500":{"description":"Failed to get list of buckets"}},"tags":["Storage"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/sso/providers":{"post":{"operationId":"v1-create-a-sso-provider","summary":"Creates a new SSO provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderResponse"}}}},"403":{"description":""},"404":{"description":"SAML 2.0 support is not enabled for this project"}},"tags":["Auth"],"security":[{"bearer":[]}]},"get":{"operationId":"v1-list-all-sso-provider","summary":"Lists all SSO providers","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProvidersResponse"}}}},"403":{"description":""},"404":{"description":"SAML 2.0 support is not enabled for this project"}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/sso/providers/{provider_id}":{"get":{"operationId":"v1-get-a-sso-provider","summary":"Gets a SSO provider by its UUID","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderResponse"}}}},"403":{"description":""},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"}},"tags":["Auth"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-a-sso-provider","summary":"Updates a SSO provider by its UUID","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderResponse"}}}},"403":{"description":""},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"}},"tags":["Auth"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-delete-a-sso-provider","summary":"Removes a SSO provider by its UUID","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteProviderResponse"}}}},"403":{"description":""},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/backups":{"get":{"operationId":"v1-list-all-backups","summary":"Lists all backups","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1BackupsResponse"}}}},"500":{"description":"Failed to get backups"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/backups/restore-pitr":{"post":{"operationId":"v1-restore-pitr-backup","summary":"Restores a PITR backup for a database","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestorePitrBody"}}}},"responses":{"201":{"description":""}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/organizations/{slug}/members":{"get":{"operationId":"v1-list-organization-members","summary":"List members of an organization","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1OrganizationMemberResponse"}}}}}},"tags":["Organizations"],"security":[{"bearer":[]}]}},"/v1/organizations/{slug}":{"get":{"operationId":"v1-get-an-organization","summary":"Gets information about the organization","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1OrganizationSlugResponse"}}}}},"tags":["Organizations"],"security":[{"bearer":[]}]}}},"info":{"title":"Supabase API (v1)","description":"Supabase API generated from the OpenAPI specification.
Visit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.","version":"1.0.0","contact":{}},"tags":[{"name":"Auth","description":"Auth related endpoints"},{"name":"Database","description":"Database related endpoints"},{"name":"Domains","description":"Domains related endpoints"},{"name":"Edge Functions","description":"Edge related endpoints"},{"name":"Environments","description":"Environments related endpoints"},{"name":"OAuth","description":"OAuth related endpoints"},{"name":"Organizations","description":"Organizations related endpoints"},{"name":"Projects","description":"Projects related endpoints"},{"name":"Rest","description":"Rest related endpoints"},{"name":"Secrets","description":"Secrets related endpoints"},{"name":"Storage","description":"Storage related endpoints"}],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"BranchDetailResponse":{"type":"object","properties":{"db_port":{"type":"integer"},"ref":{"type":"string"},"postgres_version":{"type":"string"},"status":{"enum":["ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","GOING_DOWN","INACTIVE","INIT_FAILED","REMOVED","RESTARTING","UNKNOWN","UPGRADING","PAUSING","RESTORING","RESTORE_FAILED","PAUSE_FAILED"],"type":"string"},"db_host":{"type":"string"},"db_user":{"type":"string"},"db_pass":{"type":"string"},"jwt_secret":{"type":"string"}},"required":["db_port","ref","postgres_version","status","db_host"]},"UpdateBranchBody":{"type":"object","properties":{"branch_name":{"type":"string"},"git_branch":{"type":"string"},"reset_on_push":{"type":"boolean"},"persistent":{"type":"boolean"}}},"BranchResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"project_ref":{"type":"string"},"parent_project_ref":{"type":"string"},"is_default":{"type":"boolean"},"git_branch":{"type":"string"},"pr_number":{"type":"number"},"latest_check_run_id":{"type":"number"},"reset_on_push":{"type":"boolean"},"persistent":{"type":"boolean"},"status":{"enum":["CREATING_PROJECT","RUNNING_MIGRATIONS","MIGRATIONS_PASSED","MIGRATIONS_FAILED","FUNCTIONS_DEPLOYED","FUNCTIONS_FAILED"],"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","project_ref","parent_project_ref","is_default","reset_on_push","persistent","status","created_at","updated_at"]},"BranchDeleteResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"BranchResetResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"V1DatabaseResponse":{"type":"object","properties":{"host":{"type":"string","description":"Database host"},"version":{"type":"string","description":"Database version"}},"required":["host","version"]},"V1ProjectResponse":{"type":"object","properties":{"id":{"type":"string","description":"Id of your project"},"organization_id":{"type":"string","description":"Slug of your organization"},"name":{"type":"string","description":"Name of your project"},"region":{"type":"string","description":"Region of your project","example":"us-east-1"},"created_at":{"type":"string","description":"Creation timestamp","example":"2023-03-29T16:32:59Z"},"database":{"$ref":"#/components/schemas/V1DatabaseResponse"},"status":{"enum":["ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","GOING_DOWN","INACTIVE","INIT_FAILED","REMOVED","RESTARTING","UNKNOWN","UPGRADING","PAUSING","RESTORING","RESTORE_FAILED","PAUSE_FAILED"],"type":"string"}},"required":["id","organization_id","name","region","created_at","status"]},"DesiredInstanceSize":{"type":"string","enum":["micro","small","medium","large","xlarge","2xlarge","4xlarge","8xlarge","12xlarge","16xlarge"]},"V1CreateProjectBody":{"type":"object","properties":{"db_pass":{"type":"string","description":"Database password"},"name":{"type":"string","description":"Name of your project, should not contain dots"},"organization_id":{"type":"string","description":"Slug of your organization"},"plan":{"type":"string","enum":["free","pro"],"description":"Subscription Plan is now set on organization level and is ignored in this request","example":"free","deprecated":true},"region":{"type":"string","enum":["us-east-1","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-central-1","ca-central-1","ap-south-1","sa-east-1"],"description":"Region you want your server to reside in","example":"us-east-1"},"kps_enabled":{"type":"boolean","deprecated":true,"description":"This field is deprecated and is ignored in this request"},"desired_instance_size":{"$ref":"#/components/schemas/DesiredInstanceSize"},"template_url":{"type":"string","description":"Template URL used to create the project from the CLI.","example":"https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone"}},"required":["db_pass","name","organization_id","region"]},"OrganizationResponseV1":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CreateOrganizationBodyV1":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"OAuthTokenBody":{"type":"object","properties":{"grant_type":{"enum":["authorization_code","refresh_token"],"type":"string"},"client_id":{"type":"string"},"client_secret":{"type":"string"},"code":{"type":"string"},"code_verifier":{"type":"string"},"redirect_uri":{"type":"string"},"refresh_token":{"type":"string"}},"required":["grant_type","client_id","client_secret"]},"OAuthTokenResponse":{"type":"object","properties":{"token_type":{"type":"string","enum":["Bearer"]},"access_token":{"type":"string"},"refresh_token":{"type":"string"},"expires_in":{"type":"number"}},"required":["token_type","access_token","refresh_token","expires_in"]},"SnippetProject":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"}},"required":["id","name"]},"SnippetUser":{"type":"object","properties":{"id":{"type":"number"},"username":{"type":"string"}},"required":["id","username"]},"SnippetMeta":{"type":"object","properties":{"id":{"type":"string"},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"type":{"type":"string","enum":["sql"]},"visibility":{"type":"string","enum":["user","project","org","public"]},"name":{"type":"string"},"description":{"type":"string"},"project":{"$ref":"#/components/schemas/SnippetProject"},"owner":{"$ref":"#/components/schemas/SnippetUser"},"updated_by":{"$ref":"#/components/schemas/SnippetUser"}},"required":["id","inserted_at","updated_at","type","visibility","name","project","owner","updated_by"]},"SnippetList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SnippetMeta"}}},"required":["data"]},"SnippetContent":{"type":"object","properties":{"favorite":{"type":"boolean"},"schema_version":{"type":"string"},"sql":{"type":"string"}},"required":["favorite","schema_version","sql"]},"SnippetResponse":{"type":"object","properties":{"id":{"type":"string"},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"type":{"type":"string","enum":["sql"]},"visibility":{"enum":["user","project","org","public"],"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"project":{"$ref":"#/components/schemas/SnippetProject"},"owner":{"$ref":"#/components/schemas/SnippetUser"},"updated_by":{"$ref":"#/components/schemas/SnippetUser"},"content":{"$ref":"#/components/schemas/SnippetContent"}},"required":["id","inserted_at","updated_at","type","visibility","name","project","owner","updated_by","content"]},"ApiKeyResponse":{"type":"object","properties":{"name":{"type":"string"},"api_key":{"type":"string"}},"required":["name","api_key"]},"CreateBranchBody":{"type":"object","properties":{"branch_name":{"type":"string"},"git_branch":{"type":"string"},"region":{"type":"string"}},"required":["branch_name"]},"ValidationRecord":{"type":"object","properties":{"txt_name":{"type":"string"},"txt_value":{"type":"string"}},"required":["txt_name","txt_value"]},"ValidationError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"SslValidation":{"type":"object","properties":{"status":{"type":"string"},"validation_records":{"type":"array","items":{"$ref":"#/components/schemas/ValidationRecord"}},"validation_errors":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}},"required":["status","validation_records"]},"OwnershipVerification":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"]},"CustomHostnameDetails":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"ssl":{"$ref":"#/components/schemas/SslValidation"},"ownership_verification":{"$ref":"#/components/schemas/OwnershipVerification"},"custom_origin_server":{"type":"string"},"verification_errors":{"type":"array","items":{"type":"string"}},"status":{"type":"string"}},"required":["id","hostname","ssl","ownership_verification","custom_origin_server","status"]},"CfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object"}},"messages":{"type":"array","items":{"type":"object"}},"result":{"$ref":"#/components/schemas/CustomHostnameDetails"}},"required":["success","errors","messages","result"]},"UpdateCustomHostnameResponse":{"type":"object","properties":{"status":{"enum":["1_not_started","2_initiated","3_challenge_verified","4_origin_setup_completed","5_services_reconfigured"],"type":"string"},"custom_hostname":{"type":"string"},"data":{"$ref":"#/components/schemas/CfResponse"}},"required":["status","custom_hostname","data"]},"UpdateCustomHostnameBody":{"type":"object","properties":{"custom_hostname":{"type":"string"}},"required":["custom_hostname"]},"NetworkBanResponse":{"type":"object","properties":{"banned_ipv4_addresses":{"type":"array","items":{"type":"string"}}},"required":["banned_ipv4_addresses"]},"RemoveNetworkBanRequest":{"type":"object","properties":{"ipv4_addresses":{"type":"array","items":{"type":"string"}}},"required":["ipv4_addresses"]},"NetworkRestrictionsRequest":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}}},"NetworkRestrictionsResponse":{"type":"object","properties":{"entitlement":{"enum":["disallowed","allowed"],"type":"string"},"config":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"},"old_config":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"},"status":{"enum":["stored","applied"],"type":"string"}},"required":["entitlement","config","status"]},"PgsodiumConfigResponse":{"type":"object","properties":{"root_key":{"type":"string"}},"required":["root_key"]},"UpdatePgsodiumConfigBody":{"type":"object","properties":{"root_key":{"type":"string"}},"required":["root_key"]},"PostgrestConfigWithJWTSecretResponse":{"type":"object","properties":{"max_rows":{"type":"integer"},"db_pool":{"type":"integer","nullable":true,"description":"If `null`, the value is automatically configured based on compute size."},"db_schema":{"type":"string"},"db_extra_search_path":{"type":"string"},"jwt_secret":{"type":"string"}},"required":["max_rows","db_pool","db_schema","db_extra_search_path"]},"UpdatePostgrestConfigBody":{"type":"object","properties":{"max_rows":{"type":"integer","minimum":0,"maximum":1000000},"db_pool":{"type":"integer","minimum":0,"maximum":1000},"db_extra_search_path":{"type":"string"},"db_schema":{"type":"string"}}},"V1PostgrestConfigResponse":{"type":"object","properties":{"max_rows":{"type":"integer"},"db_pool":{"type":"integer","nullable":true,"description":"If `null`, the value is automatically configured based on compute size."},"db_schema":{"type":"string"},"db_extra_search_path":{"type":"string"}},"required":["max_rows","db_pool","db_schema","db_extra_search_path"]},"V1ProjectRefResponse":{"type":"object","properties":{"id":{"type":"number"},"ref":{"type":"string"},"name":{"type":"string"}},"required":["id","ref","name"]},"SecretResponse":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"]},"CreateSecretBody":{"type":"object","properties":{"name":{"type":"string","maxLength":256,"pattern":"/^(?!SUPABASE_).*/","description":"Secret name must not start with the SUPABASE_ prefix.","example":"string"},"value":{"type":"string","maxLength":24576}},"required":["name","value"]},"SslEnforcements":{"type":"object","properties":{"database":{"type":"boolean"}},"required":["database"]},"SslEnforcementResponse":{"type":"object","properties":{"currentConfig":{"$ref":"#/components/schemas/SslEnforcements"},"appliedSuccessfully":{"type":"boolean"}},"required":["currentConfig","appliedSuccessfully"]},"SslEnforcementRequest":{"type":"object","properties":{"requestedConfig":{"$ref":"#/components/schemas/SslEnforcements"}},"required":["requestedConfig"]},"TypescriptResponse":{"type":"object","properties":{"types":{"type":"string"}},"required":["types"]},"VanitySubdomainConfigResponse":{"type":"object","properties":{"status":{"enum":["not-used","custom-domain-used","active"],"type":"string"},"custom_domain":{"type":"string"}},"required":["status"]},"VanitySubdomainBody":{"type":"object","properties":{"vanity_subdomain":{"type":"string"}},"required":["vanity_subdomain"]},"SubdomainAvailabilityResponse":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"]},"ActivateVanitySubdomainResponse":{"type":"object","properties":{"custom_domain":{"type":"string"}},"required":["custom_domain"]},"UpgradeDatabaseBody":{"type":"object","properties":{"target_version":{"type":"number"}},"required":["target_version"]},"ProjectUpgradeInitiateResponse":{"type":"object","properties":{"tracking_id":{"type":"string"}},"required":["tracking_id"]},"ProjectVersion":{"type":"object","properties":{"postgres_version":{"type":"number"},"app_version":{"type":"string"}},"required":["postgres_version","app_version"]},"ProjectUpgradeEligibilityResponse":{"type":"object","properties":{"eligible":{"type":"boolean"},"current_app_version":{"type":"string"},"latest_app_version":{"type":"string"},"target_upgrade_versions":{"type":"array","items":{"$ref":"#/components/schemas/ProjectVersion"}},"potential_breaking_changes":{"type":"array","items":{"type":"string"}},"duration_estimate_hours":{"type":"number"},"legacy_auth_custom_roles":{"type":"array","items":{"type":"string"}},"extension_dependent_objects":{"type":"array","items":{"type":"string"}}},"required":["eligible","current_app_version","latest_app_version","target_upgrade_versions","potential_breaking_changes","duration_estimate_hours","legacy_auth_custom_roles","extension_dependent_objects"]},"DatabaseUpgradeStatus":{"type":"object","properties":{"initiated_at":{"type":"string"},"latest_status_at":{"type":"string"},"target_version":{"type":"number"},"error":{"type":"string","enum":["1_upgraded_instance_launch_failed","2_volume_detachchment_from_upgraded_instance_failed","3_volume_attachment_to_original_instance_failed","4_data_upgrade_initiation_failed","5_data_upgrade_completion_failed","6_volume_detachchment_from_original_instance_failed","7_volume_attachment_to_upgraded_instance_failed","8_upgrade_completion_failed","9_post_physical_backup_failed"]},"progress":{"type":"string","enum":["0_requested","1_started","2_launched_upgraded_instance","3_detached_volume_from_upgraded_instance","4_attached_volume_to_original_instance","5_initiated_data_upgrade","6_completed_data_upgrade","7_detached_volume_from_original_instance","8_attached_volume_to_upgraded_instance","9_completed_upgrade","10_completed_post_physical_backup"]},"status":{"type":"number","enum":[0,1,2]}},"required":["initiated_at","latest_status_at","target_version","status"]},"DatabaseUpgradeStatusResponse":{"type":"object","properties":{"databaseUpgradeStatus":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/DatabaseUpgradeStatus"}]}},"required":["databaseUpgradeStatus"]},"ReadOnlyStatusResponse":{"type":"object","properties":{"enabled":{"type":"boolean"},"override_enabled":{"type":"boolean"},"override_active_until":{"type":"string"}},"required":["enabled","override_enabled","override_active_until"]},"SetUpReadReplicaBody":{"type":"object","properties":{"read_replica_region":{"type":"string","enum":["us-east-1","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-central-1","ca-central-1","ap-south-1","sa-east-1"],"description":"Region you want your read replica to reside in","example":"us-east-1"}},"required":["read_replica_region"]},"RemoveReadReplicaBody":{"type":"object","properties":{"database_identifier":{"type":"string"}},"required":["database_identifier"]},"AuthHealthResponse":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"}},"required":["name","version","description"]},"RealtimeHealthResponse":{"type":"object","properties":{"healthy":{"type":"boolean"},"db_connected":{"type":"boolean"},"connected_cluster":{"type":"number"}},"required":["healthy","db_connected","connected_cluster"]},"V1ServiceHealthResponse":{"type":"object","properties":{"info":{"oneOf":[{"$ref":"#/components/schemas/AuthHealthResponse"},{"$ref":"#/components/schemas/RealtimeHealthResponse"}]},"name":{"enum":["auth","db","pooler","realtime","rest","storage"],"type":"string"},"healthy":{"type":"boolean"},"status":{"enum":["COMING_UP","ACTIVE_HEALTHY","UNHEALTHY"],"type":"string"},"error":{"type":"string"}},"required":["name","healthy","status"]},"PostgresConfigResponse":{"type":"object","properties":{"statement_timeout":{"type":"string"},"effective_cache_size":{"type":"string"},"maintenance_work_mem":{"type":"string"},"max_connections":{"type":"integer","minimum":1,"maximum":262143},"max_locks_per_transaction":{"type":"integer","minimum":10,"maximum":2147483640},"max_parallel_maintenance_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers_per_gather":{"type":"integer","minimum":0,"maximum":1024},"max_standby_archive_delay":{"type":"string"},"max_standby_streaming_delay":{"type":"string"},"max_worker_processes":{"type":"integer","minimum":0,"maximum":262143},"shared_buffers":{"type":"string"},"work_mem":{"type":"string"},"session_replication_role":{"enum":["origin","replica","local"],"type":"string"}}},"UpdatePostgresConfigBody":{"type":"object","properties":{"statement_timeout":{"type":"string"},"effective_cache_size":{"type":"string"},"maintenance_work_mem":{"type":"string"},"max_connections":{"type":"integer","minimum":1,"maximum":262143},"max_locks_per_transaction":{"type":"integer","minimum":10,"maximum":2147483640},"max_parallel_maintenance_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers_per_gather":{"type":"integer","minimum":0,"maximum":1024},"max_standby_archive_delay":{"type":"string"},"max_standby_streaming_delay":{"type":"string"},"max_worker_processes":{"type":"integer","minimum":0,"maximum":262143},"shared_buffers":{"type":"string"},"work_mem":{"type":"string"},"session_replication_role":{"enum":["origin","replica","local"],"type":"string"}}},"V1PgbouncerConfigResponse":{"type":"object","properties":{"pool_mode":{"type":"string","enum":["transaction","session","statement"]},"default_pool_size":{"type":"number"},"ignore_startup_parameters":{"type":"string"},"max_client_conn":{"type":"number"},"connection_string":{"type":"string"}}},"SupavisorConfigResponse":{"type":"object","properties":{"identifier":{"type":"string"},"database_type":{"enum":["PRIMARY","READ_REPLICA"],"type":"string"},"is_using_scram_auth":{"type":"boolean"},"db_user":{"type":"string"},"db_host":{"type":"string"},"db_port":{"type":"number"},"db_name":{"type":"string"},"connectionString":{"type":"string"},"default_pool_size":{"type":"number","nullable":true},"max_client_conn":{"type":"number","nullable":true},"pool_mode":{"enum":["transaction","session"],"type":"string"}},"required":["identifier","database_type","is_using_scram_auth","db_user","db_host","db_port","db_name","connectionString","default_pool_size","max_client_conn","pool_mode"]},"UpdateSupavisorConfigBody":{"type":"object","properties":{"default_pool_size":{"type":"integer","nullable":true,"minimum":0,"maximum":1000},"pool_mode":{"enum":["transaction","session"],"type":"string","deprecated":true,"description":"This field is deprecated and is ignored in this request"}}},"UpdateSupavisorConfigResponse":{"type":"object","properties":{"default_pool_size":{"type":"number","nullable":true},"pool_mode":{"enum":["transaction","session"],"type":"string"}},"required":["default_pool_size","pool_mode"]},"AuthConfigResponse":{"type":"object","properties":{"api_max_request_duration":{"type":"number","nullable":true},"db_max_pool_size":{"type":"number","nullable":true},"disable_signup":{"type":"boolean","nullable":true},"external_anonymous_users_enabled":{"type":"boolean","nullable":true},"external_apple_additional_client_ids":{"type":"string","nullable":true},"external_apple_client_id":{"type":"string","nullable":true},"external_apple_enabled":{"type":"boolean","nullable":true},"external_apple_secret":{"type":"string","nullable":true},"external_azure_client_id":{"type":"string","nullable":true},"external_azure_enabled":{"type":"boolean","nullable":true},"external_azure_secret":{"type":"string","nullable":true},"external_azure_url":{"type":"string","nullable":true},"external_bitbucket_client_id":{"type":"string","nullable":true},"external_bitbucket_enabled":{"type":"boolean","nullable":true},"external_bitbucket_secret":{"type":"string","nullable":true},"external_discord_client_id":{"type":"string","nullable":true},"external_discord_enabled":{"type":"boolean","nullable":true},"external_discord_secret":{"type":"string","nullable":true},"external_email_enabled":{"type":"boolean","nullable":true},"external_facebook_client_id":{"type":"string","nullable":true},"external_facebook_enabled":{"type":"boolean","nullable":true},"external_facebook_secret":{"type":"string","nullable":true},"external_figma_client_id":{"type":"string","nullable":true},"external_figma_enabled":{"type":"boolean","nullable":true},"external_figma_secret":{"type":"string","nullable":true},"external_github_client_id":{"type":"string","nullable":true},"external_github_enabled":{"type":"boolean","nullable":true},"external_github_secret":{"type":"string","nullable":true},"external_gitlab_client_id":{"type":"string","nullable":true},"external_gitlab_enabled":{"type":"boolean","nullable":true},"external_gitlab_secret":{"type":"string","nullable":true},"external_gitlab_url":{"type":"string","nullable":true},"external_google_additional_client_ids":{"type":"string","nullable":true},"external_google_client_id":{"type":"string","nullable":true},"external_google_enabled":{"type":"boolean","nullable":true},"external_google_secret":{"type":"string","nullable":true},"external_google_skip_nonce_check":{"type":"boolean","nullable":true},"external_kakao_client_id":{"type":"string","nullable":true},"external_kakao_enabled":{"type":"boolean","nullable":true},"external_kakao_secret":{"type":"string","nullable":true},"external_keycloak_client_id":{"type":"string","nullable":true},"external_keycloak_enabled":{"type":"boolean","nullable":true},"external_keycloak_secret":{"type":"string","nullable":true},"external_keycloak_url":{"type":"string","nullable":true},"external_linkedin_oidc_client_id":{"type":"string","nullable":true},"external_linkedin_oidc_enabled":{"type":"boolean","nullable":true},"external_linkedin_oidc_secret":{"type":"string","nullable":true},"external_slack_oidc_client_id":{"type":"string","nullable":true},"external_slack_oidc_enabled":{"type":"boolean","nullable":true},"external_slack_oidc_secret":{"type":"string","nullable":true},"external_notion_client_id":{"type":"string","nullable":true},"external_notion_enabled":{"type":"boolean","nullable":true},"external_notion_secret":{"type":"string","nullable":true},"external_phone_enabled":{"type":"boolean","nullable":true},"external_slack_client_id":{"type":"string","nullable":true},"external_slack_enabled":{"type":"boolean","nullable":true},"external_slack_secret":{"type":"string","nullable":true},"external_spotify_client_id":{"type":"string","nullable":true},"external_spotify_enabled":{"type":"boolean","nullable":true},"external_spotify_secret":{"type":"string","nullable":true},"external_twitch_client_id":{"type":"string","nullable":true},"external_twitch_enabled":{"type":"boolean","nullable":true},"external_twitch_secret":{"type":"string","nullable":true},"external_twitter_client_id":{"type":"string","nullable":true},"external_twitter_enabled":{"type":"boolean","nullable":true},"external_twitter_secret":{"type":"string","nullable":true},"external_workos_client_id":{"type":"string","nullable":true},"external_workos_enabled":{"type":"boolean","nullable":true},"external_workos_secret":{"type":"string","nullable":true},"external_workos_url":{"type":"string","nullable":true},"external_zoom_client_id":{"type":"string","nullable":true},"external_zoom_enabled":{"type":"boolean","nullable":true},"external_zoom_secret":{"type":"string","nullable":true},"hook_custom_access_token_enabled":{"type":"boolean","nullable":true},"hook_custom_access_token_uri":{"type":"string","nullable":true},"hook_custom_access_token_secrets":{"type":"string","nullable":true},"hook_mfa_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_mfa_verification_attempt_uri":{"type":"string","nullable":true},"hook_mfa_verification_attempt_secrets":{"type":"string","nullable":true},"hook_password_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_password_verification_attempt_uri":{"type":"string","nullable":true},"hook_password_verification_attempt_secrets":{"type":"string","nullable":true},"hook_send_sms_enabled":{"type":"boolean","nullable":true},"hook_send_sms_uri":{"type":"string","nullable":true},"hook_send_sms_secrets":{"type":"string","nullable":true},"hook_send_email_enabled":{"type":"boolean","nullable":true},"hook_send_email_uri":{"type":"string","nullable":true},"hook_send_email_secrets":{"type":"string","nullable":true},"jwt_exp":{"type":"number","nullable":true},"mailer_allow_unverified_email_sign_ins":{"type":"boolean","nullable":true},"mailer_autoconfirm":{"type":"boolean","nullable":true},"mailer_otp_exp":{"type":"number"},"mailer_otp_length":{"type":"number","nullable":true},"mailer_secure_email_change_enabled":{"type":"boolean","nullable":true},"mailer_subjects_confirmation":{"type":"string","nullable":true},"mailer_subjects_email_change":{"type":"string","nullable":true},"mailer_subjects_invite":{"type":"string","nullable":true},"mailer_subjects_magic_link":{"type":"string","nullable":true},"mailer_subjects_reauthentication":{"type":"string","nullable":true},"mailer_subjects_recovery":{"type":"string","nullable":true},"mailer_templates_confirmation_content":{"type":"string","nullable":true},"mailer_templates_email_change_content":{"type":"string","nullable":true},"mailer_templates_invite_content":{"type":"string","nullable":true},"mailer_templates_magic_link_content":{"type":"string","nullable":true},"mailer_templates_reauthentication_content":{"type":"string","nullable":true},"mailer_templates_recovery_content":{"type":"string","nullable":true},"mfa_max_enrolled_factors":{"type":"number","nullable":true},"password_hibp_enabled":{"type":"boolean","nullable":true},"password_min_length":{"type":"number","nullable":true},"password_required_characters":{"type":"string","nullable":true},"rate_limit_anonymous_users":{"type":"number","nullable":true},"rate_limit_email_sent":{"type":"number","nullable":true},"rate_limit_sms_sent":{"type":"number","nullable":true},"rate_limit_token_refresh":{"type":"number","nullable":true},"rate_limit_verify":{"type":"number","nullable":true},"rate_limit_otp":{"type":"number","nullable":true},"refresh_token_rotation_enabled":{"type":"boolean","nullable":true},"saml_enabled":{"type":"boolean","nullable":true},"saml_external_url":{"type":"string","nullable":true},"security_captcha_enabled":{"type":"boolean","nullable":true},"security_captcha_provider":{"type":"string","nullable":true},"security_captcha_secret":{"type":"string","nullable":true},"security_manual_linking_enabled":{"type":"boolean","nullable":true},"security_refresh_token_reuse_interval":{"type":"number","nullable":true},"security_update_password_require_reauthentication":{"type":"boolean","nullable":true},"sessions_inactivity_timeout":{"type":"number","nullable":true},"sessions_single_per_user":{"type":"boolean","nullable":true},"sessions_tags":{"type":"string","nullable":true},"sessions_timebox":{"type":"number","nullable":true},"site_url":{"type":"string","nullable":true},"sms_autoconfirm":{"type":"boolean","nullable":true},"sms_max_frequency":{"type":"number","nullable":true},"sms_messagebird_access_key":{"type":"string","nullable":true},"sms_messagebird_originator":{"type":"string","nullable":true},"sms_otp_exp":{"type":"number","nullable":true},"sms_otp_length":{"type":"number"},"sms_provider":{"type":"string","nullable":true},"sms_template":{"type":"string","nullable":true},"sms_test_otp":{"type":"string","nullable":true},"sms_test_otp_valid_until":{"type":"string","nullable":true},"sms_textlocal_api_key":{"type":"string","nullable":true},"sms_textlocal_sender":{"type":"string","nullable":true},"sms_twilio_account_sid":{"type":"string","nullable":true},"sms_twilio_auth_token":{"type":"string","nullable":true},"sms_twilio_content_sid":{"type":"string","nullable":true},"sms_twilio_message_service_sid":{"type":"string","nullable":true},"sms_twilio_verify_account_sid":{"type":"string","nullable":true},"sms_twilio_verify_auth_token":{"type":"string","nullable":true},"sms_twilio_verify_message_service_sid":{"type":"string","nullable":true},"sms_vonage_api_key":{"type":"string","nullable":true},"sms_vonage_api_secret":{"type":"string","nullable":true},"sms_vonage_from":{"type":"string","nullable":true},"smtp_admin_email":{"type":"string","nullable":true},"smtp_host":{"type":"string","nullable":true},"smtp_max_frequency":{"type":"number","nullable":true},"smtp_pass":{"type":"string","nullable":true},"smtp_port":{"type":"string","nullable":true},"smtp_sender_name":{"type":"string","nullable":true},"smtp_user":{"type":"string","nullable":true},"uri_allow_list":{"type":"string","nullable":true}},"required":["api_max_request_duration","db_max_pool_size","disable_signup","external_anonymous_users_enabled","external_apple_additional_client_ids","external_apple_client_id","external_apple_enabled","external_apple_secret","external_azure_client_id","external_azure_enabled","external_azure_secret","external_azure_url","external_bitbucket_client_id","external_bitbucket_enabled","external_bitbucket_secret","external_discord_client_id","external_discord_enabled","external_discord_secret","external_email_enabled","external_facebook_client_id","external_facebook_enabled","external_facebook_secret","external_figma_client_id","external_figma_enabled","external_figma_secret","external_github_client_id","external_github_enabled","external_github_secret","external_gitlab_client_id","external_gitlab_enabled","external_gitlab_secret","external_gitlab_url","external_google_additional_client_ids","external_google_client_id","external_google_enabled","external_google_secret","external_google_skip_nonce_check","external_kakao_client_id","external_kakao_enabled","external_kakao_secret","external_keycloak_client_id","external_keycloak_enabled","external_keycloak_secret","external_keycloak_url","external_linkedin_oidc_client_id","external_linkedin_oidc_enabled","external_linkedin_oidc_secret","external_slack_oidc_client_id","external_slack_oidc_enabled","external_slack_oidc_secret","external_notion_client_id","external_notion_enabled","external_notion_secret","external_phone_enabled","external_slack_client_id","external_slack_enabled","external_slack_secret","external_spotify_client_id","external_spotify_enabled","external_spotify_secret","external_twitch_client_id","external_twitch_enabled","external_twitch_secret","external_twitter_client_id","external_twitter_enabled","external_twitter_secret","external_workos_client_id","external_workos_enabled","external_workos_secret","external_workos_url","external_zoom_client_id","external_zoom_enabled","external_zoom_secret","hook_custom_access_token_enabled","hook_custom_access_token_uri","hook_custom_access_token_secrets","hook_mfa_verification_attempt_enabled","hook_mfa_verification_attempt_uri","hook_mfa_verification_attempt_secrets","hook_password_verification_attempt_enabled","hook_password_verification_attempt_uri","hook_password_verification_attempt_secrets","hook_send_sms_enabled","hook_send_sms_uri","hook_send_sms_secrets","hook_send_email_enabled","hook_send_email_uri","hook_send_email_secrets","jwt_exp","mailer_allow_unverified_email_sign_ins","mailer_autoconfirm","mailer_otp_exp","mailer_otp_length","mailer_secure_email_change_enabled","mailer_subjects_confirmation","mailer_subjects_email_change","mailer_subjects_invite","mailer_subjects_magic_link","mailer_subjects_reauthentication","mailer_subjects_recovery","mailer_templates_confirmation_content","mailer_templates_email_change_content","mailer_templates_invite_content","mailer_templates_magic_link_content","mailer_templates_reauthentication_content","mailer_templates_recovery_content","mfa_max_enrolled_factors","password_hibp_enabled","password_min_length","password_required_characters","rate_limit_anonymous_users","rate_limit_email_sent","rate_limit_sms_sent","rate_limit_token_refresh","rate_limit_verify","rate_limit_otp","refresh_token_rotation_enabled","saml_enabled","saml_external_url","security_captcha_enabled","security_captcha_provider","security_captcha_secret","security_manual_linking_enabled","security_refresh_token_reuse_interval","security_update_password_require_reauthentication","sessions_inactivity_timeout","sessions_single_per_user","sessions_tags","sessions_timebox","site_url","sms_autoconfirm","sms_max_frequency","sms_messagebird_access_key","sms_messagebird_originator","sms_otp_exp","sms_otp_length","sms_provider","sms_template","sms_test_otp","sms_test_otp_valid_until","sms_textlocal_api_key","sms_textlocal_sender","sms_twilio_account_sid","sms_twilio_auth_token","sms_twilio_content_sid","sms_twilio_message_service_sid","sms_twilio_verify_account_sid","sms_twilio_verify_auth_token","sms_twilio_verify_message_service_sid","sms_vonage_api_key","sms_vonage_api_secret","sms_vonage_from","smtp_admin_email","smtp_host","smtp_max_frequency","smtp_pass","smtp_port","smtp_sender_name","smtp_user","uri_allow_list"]},"UpdateAuthConfigBody":{"type":"object","properties":{"site_url":{"type":"string","pattern":"/^[^,]+$/"},"disable_signup":{"type":"boolean"},"jwt_exp":{"type":"number","minimum":0,"maximum":604800},"smtp_admin_email":{"type":"string"},"smtp_host":{"type":"string"},"smtp_port":{"type":"string"},"smtp_user":{"type":"string"},"smtp_pass":{"type":"string"},"smtp_max_frequency":{"type":"number","minimum":0,"maximum":32767},"smtp_sender_name":{"type":"string"},"mailer_allow_unverified_email_sign_ins":{"type":"boolean"},"mailer_autoconfirm":{"type":"boolean"},"mailer_subjects_invite":{"type":"string"},"mailer_subjects_confirmation":{"type":"string"},"mailer_subjects_recovery":{"type":"string"},"mailer_subjects_email_change":{"type":"string"},"mailer_subjects_magic_link":{"type":"string"},"mailer_subjects_reauthentication":{"type":"string"},"mailer_templates_invite_content":{"type":"string"},"mailer_templates_confirmation_content":{"type":"string"},"mailer_templates_recovery_content":{"type":"string"},"mailer_templates_email_change_content":{"type":"string"},"mailer_templates_magic_link_content":{"type":"string"},"mailer_templates_reauthentication_content":{"type":"string"},"mfa_max_enrolled_factors":{"type":"number","minimum":0,"maximum":2147483647},"uri_allow_list":{"type":"string"},"external_anonymous_users_enabled":{"type":"boolean"},"external_email_enabled":{"type":"boolean"},"external_phone_enabled":{"type":"boolean"},"saml_enabled":{"type":"boolean"},"saml_external_url":{"type":"string","pattern":"/^[^,]+$/"},"security_captcha_enabled":{"type":"boolean"},"security_captcha_provider":{"type":"string"},"security_captcha_secret":{"type":"string"},"sessions_timebox":{"type":"number","minimum":0},"sessions_inactivity_timeout":{"type":"number","minimum":0},"sessions_single_per_user":{"type":"boolean"},"sessions_tags":{"type":"string","pattern":"/^\\s*([a-z0-9_-]+(\\s*,+\\s*)?)*\\s*$/i"},"rate_limit_anonymous_users":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_email_sent":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_sms_sent":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_verify":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_token_refresh":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_otp":{"type":"number","minimum":1,"maximum":2147483647},"mailer_secure_email_change_enabled":{"type":"boolean"},"refresh_token_rotation_enabled":{"type":"boolean"},"password_hibp_enabled":{"type":"boolean"},"password_min_length":{"type":"number","minimum":6,"maximum":32767},"password_required_characters":{"type":"string","enum":["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~",""]},"security_manual_linking_enabled":{"type":"boolean"},"security_update_password_require_reauthentication":{"type":"boolean"},"security_refresh_token_reuse_interval":{"type":"number","minimum":0,"maximum":2147483647},"mailer_otp_exp":{"type":"number","minimum":0,"maximum":2147483647},"mailer_otp_length":{"type":"number","minimum":6,"maximum":10},"sms_autoconfirm":{"type":"boolean"},"sms_max_frequency":{"type":"number","minimum":0,"maximum":32767},"sms_otp_exp":{"type":"number","minimum":0,"maximum":2147483647},"sms_otp_length":{"type":"number","minimum":0,"maximum":32767},"sms_provider":{"type":"string"},"sms_messagebird_access_key":{"type":"string"},"sms_messagebird_originator":{"type":"string"},"sms_test_otp":{"type":"string","pattern":"/^([0-9]{1,15}=[0-9]+,?)*$/"},"sms_test_otp_valid_until":{"type":"string"},"sms_textlocal_api_key":{"type":"string"},"sms_textlocal_sender":{"type":"string"},"sms_twilio_account_sid":{"type":"string"},"sms_twilio_auth_token":{"type":"string"},"sms_twilio_content_sid":{"type":"string"},"sms_twilio_message_service_sid":{"type":"string"},"sms_twilio_verify_account_sid":{"type":"string"},"sms_twilio_verify_auth_token":{"type":"string"},"sms_twilio_verify_message_service_sid":{"type":"string"},"sms_vonage_api_key":{"type":"string"},"sms_vonage_api_secret":{"type":"string"},"sms_vonage_from":{"type":"string"},"sms_template":{"type":"string"},"hook_mfa_verification_attempt_enabled":{"type":"boolean"},"hook_mfa_verification_attempt_uri":{"type":"string"},"hook_mfa_verification_attempt_secrets":{"type":"string"},"hook_password_verification_attempt_enabled":{"type":"boolean"},"hook_password_verification_attempt_uri":{"type":"string"},"hook_password_verification_attempt_secrets":{"type":"string"},"hook_custom_access_token_enabled":{"type":"boolean"},"hook_custom_access_token_uri":{"type":"string"},"hook_custom_access_token_secrets":{"type":"string"},"hook_send_sms_enabled":{"type":"boolean"},"hook_send_sms_uri":{"type":"string"},"hook_send_sms_secrets":{"type":"string"},"hook_send_email_enabled":{"type":"boolean"},"hook_send_email_uri":{"type":"string"},"hook_send_email_secrets":{"type":"string"},"external_apple_enabled":{"type":"boolean"},"external_apple_client_id":{"type":"string"},"external_apple_secret":{"type":"string"},"external_apple_additional_client_ids":{"type":"string"},"external_azure_enabled":{"type":"boolean"},"external_azure_client_id":{"type":"string"},"external_azure_secret":{"type":"string"},"external_azure_url":{"type":"string"},"external_bitbucket_enabled":{"type":"boolean"},"external_bitbucket_client_id":{"type":"string"},"external_bitbucket_secret":{"type":"string"},"external_discord_enabled":{"type":"boolean"},"external_discord_client_id":{"type":"string"},"external_discord_secret":{"type":"string"},"external_facebook_enabled":{"type":"boolean"},"external_facebook_client_id":{"type":"string"},"external_facebook_secret":{"type":"string"},"external_figma_enabled":{"type":"boolean"},"external_figma_client_id":{"type":"string"},"external_figma_secret":{"type":"string"},"external_github_enabled":{"type":"boolean"},"external_github_client_id":{"type":"string"},"external_github_secret":{"type":"string"},"external_gitlab_enabled":{"type":"boolean"},"external_gitlab_client_id":{"type":"string"},"external_gitlab_secret":{"type":"string"},"external_gitlab_url":{"type":"string"},"external_google_enabled":{"type":"boolean"},"external_google_client_id":{"type":"string"},"external_google_secret":{"type":"string"},"external_google_additional_client_ids":{"type":"string"},"external_google_skip_nonce_check":{"type":"boolean"},"external_kakao_enabled":{"type":"boolean"},"external_kakao_client_id":{"type":"string"},"external_kakao_secret":{"type":"string"},"external_keycloak_enabled":{"type":"boolean"},"external_keycloak_client_id":{"type":"string"},"external_keycloak_secret":{"type":"string"},"external_keycloak_url":{"type":"string"},"external_linkedin_oidc_enabled":{"type":"boolean"},"external_linkedin_oidc_client_id":{"type":"string"},"external_linkedin_oidc_secret":{"type":"string"},"external_slack_oidc_enabled":{"type":"boolean"},"external_slack_oidc_client_id":{"type":"string"},"external_slack_oidc_secret":{"type":"string"},"external_notion_enabled":{"type":"boolean"},"external_notion_client_id":{"type":"string"},"external_notion_secret":{"type":"string"},"external_slack_enabled":{"type":"boolean"},"external_slack_client_id":{"type":"string"},"external_slack_secret":{"type":"string"},"external_spotify_enabled":{"type":"boolean"},"external_spotify_client_id":{"type":"string"},"external_spotify_secret":{"type":"string"},"external_twitch_enabled":{"type":"boolean"},"external_twitch_client_id":{"type":"string"},"external_twitch_secret":{"type":"string"},"external_twitter_enabled":{"type":"boolean"},"external_twitter_client_id":{"type":"string"},"external_twitter_secret":{"type":"string"},"external_workos_enabled":{"type":"boolean"},"external_workos_client_id":{"type":"string"},"external_workos_secret":{"type":"string"},"external_workos_url":{"type":"string"},"external_zoom_enabled":{"type":"boolean"},"external_zoom_client_id":{"type":"string"},"external_zoom_secret":{"type":"string"},"db_max_pool_size":{"type":"number"},"api_max_request_duration":{"type":"number"}}},"CreateThirdPartyAuthBody":{"type":"object","properties":{"oidc_issuer_url":{"type":"string"},"jwks_url":{"type":"string"},"custom_jwks":{"type":"object"}}},"ThirdPartyAuth":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"oidc_issuer_url":{"type":"string","nullable":true},"jwks_url":{"type":"string","nullable":true},"custom_jwks":{"type":"object","nullable":true},"resolved_jwks":{"type":"object","nullable":true},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"resolved_at":{"type":"string","nullable":true}},"required":["id","type","inserted_at","updated_at"]},"V1RunQueryBody":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]},"V1CreateFunctionBody":{"type":"object","properties":{"slug":{"type":"string","pattern":"/^[A-Za-z0-9_-]+$/"},"name":{"type":"string"},"body":{"type":"string"},"verify_jwt":{"type":"boolean"}},"required":["slug","name","body"]},"FunctionResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"enum":["ACTIVE","REMOVED","THROTTLED"],"type":"string"},"version":{"type":"number"},"created_at":{"type":"number"},"updated_at":{"type":"number"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]},"FunctionSlugResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"enum":["ACTIVE","REMOVED","THROTTLED"],"type":"string"},"version":{"type":"number"},"created_at":{"type":"number"},"updated_at":{"type":"number"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]},"V1UpdateFunctionBody":{"type":"object","properties":{"name":{"type":"string"},"body":{"type":"string"},"verify_jwt":{"type":"boolean"}}},"V1StorageBucketResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"owner":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"public":{"type":"boolean"}},"required":["id","name","owner","created_at","updated_at","public"]},"AttributeValue":{"type":"object","properties":{"default":{"oneOf":[{"type":"object"},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"array":{"type":"boolean"}}},"AttributeMapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AttributeValue"}}},"required":["keys"]},"CreateProviderBody":{"type":"object","properties":{"type":{"type":"string","enum":["saml"],"description":"What type of provider will be created"},"metadata_xml":{"type":"string"},"metadata_url":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"attribute_mapping":{"$ref":"#/components/schemas/AttributeMapping"}},"required":["type"]},"SamlDescriptor":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"$ref":"#/components/schemas/AttributeMapping"}},"required":["id","entity_id"]},"Domain":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"CreateProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"Provider":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"ListProvidersResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}}},"required":["items"]},"GetProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"UpdateProviderBody":{"type":"object","properties":{"metadata_xml":{"type":"string"},"metadata_url":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"attribute_mapping":{"$ref":"#/components/schemas/AttributeMapping"}}},"UpdateProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"DeleteProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"V1Backup":{"type":"object","properties":{"status":{"type":"string","enum":["COMPLETED","FAILED","PENDING","REMOVED","ARCHIVED","CANCELLED"]},"is_physical_backup":{"type":"boolean"},"inserted_at":{"type":"string"}},"required":["status","is_physical_backup","inserted_at"]},"V1PhysicalBackup":{"type":"object","properties":{"earliest_physical_backup_date_unix":{"type":"number"},"latest_physical_backup_date_unix":{"type":"number"}}},"V1BackupsResponse":{"type":"object","properties":{"region":{"type":"string"},"walg_enabled":{"type":"boolean"},"pitr_enabled":{"type":"boolean"},"backups":{"type":"array","items":{"$ref":"#/components/schemas/V1Backup"}},"physical_backup_data":{"$ref":"#/components/schemas/V1PhysicalBackup"}},"required":["region","walg_enabled","pitr_enabled","backups","physical_backup_data"]},"V1RestorePitrBody":{"type":"object","properties":{"recovery_time_target_unix":{"type":"number"}},"required":["recovery_time_target_unix"]},"V1OrganizationMemberResponse":{"type":"object","properties":{"user_id":{"type":"string"},"user_name":{"type":"string"},"email":{"type":"string"},"role_name":{"type":"string"},"mfa_enabled":{"type":"boolean"}},"required":["user_id","user_name","role_name","mfa_enabled"]},"BillingPlanId":{"type":"string","enum":["free","pro","team","enterprise"]},"V1OrganizationSlugResponse":{"type":"object","properties":{"plan":{"$ref":"#/components/schemas/BillingPlanId"},"opt_in_tags":{"type":"array","items":{"type":"string","enum":["AI_SQL_GENERATOR_OPT_IN"]}},"id":{"type":"string"},"name":{"type":"string"}},"required":["opt_in_tags","id","name"]}}}} From bd52e37afbbb9d8aff12912a269f713b90ec3a24 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Fri, 2 Aug 2024 15:02:26 +0000 Subject: [PATCH 09/13] update /Supabase-API.json --- Supabase-API.json | 7491 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 7490 insertions(+), 1 deletion(-) diff --git a/Supabase-API.json b/Supabase-API.json index 84f44ec..8c7a2c9 100644 --- a/Supabase-API.json +++ b/Supabase-API.json @@ -1 +1,7490 @@ -{"openapi":"3.0.0","paths":{"/v1/branches/{branch_id}":{"get":{"operationId":"v1-get-a-branch-config","summary":"Get database branch config","description":"Fetches configurations of the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDetailResponse"}}}},"500":{"description":"Failed to retrieve database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-a-branch-config","summary":"Update database branch config","description":"Updates the configuration of the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBranchBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to update database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-delete-a-branch","summary":"Delete a database branch","description":"Deletes the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchDeleteResponse"}}}},"500":{"description":"Failed to delete database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]}},"/v1/branches/{branch_id}/reset":{"post":{"operationId":"v1-reset-a-branch","summary":"Resets a database branch","description":"Resets the specified database branch","parameters":[{"name":"branch_id","required":true,"in":"path","description":"Branch ID","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResetResponse"}}}},"500":{"description":"Failed to reset database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]}},"/v1/projects":{"get":{"operationId":"v1-list-all-projects","summary":"List all projects","description":"Returns a list of all projects you've previously created.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ProjectResponse"}}}}}},"tags":["Projects"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-create-a-project","summary":"Create a project","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateProjectBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectResponse"}}}}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/organizations":{"get":{"operationId":"v1-list-all-organizations","summary":"List all organizations","description":"Returns a list of organizations that you currently belong to.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResponseV1"}}}}},"500":{"description":"Unexpected error listing organizations"}},"tags":["Organizations"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-create-an-organization","summary":"Create an organization","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationBodyV1"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationResponseV1"}}}},"500":{"description":"Unexpected error creating an organization"}},"tags":["Organizations"],"security":[{"bearer":[]}]}},"/v1/oauth/authorize":{"get":{"operationId":"v1-authorize-user","summary":"[Beta] Authorize user through oauth","parameters":[{"name":"client_id","required":true,"in":"query","schema":{"type":"string"}},{"name":"response_type","required":true,"in":"query","schema":{"enum":["code","token","id_token token"],"type":"string"}},{"name":"redirect_uri","required":true,"in":"query","schema":{"type":"string"}},{"name":"scope","required":false,"in":"query","schema":{"type":"string"}},{"name":"state","required":false,"in":"query","schema":{"type":"string"}},{"name":"response_mode","required":false,"in":"query","schema":{"type":"string"}},{"name":"code_challenge","required":false,"in":"query","schema":{"type":"string"}},{"name":"code_challenge_method","required":false,"in":"query","schema":{"enum":["plain","sha256","S256"],"type":"string"}}],"responses":{"303":{"description":""}},"tags":["OAuth"],"security":[{"oauth2":["read"]}]}},"/v1/oauth/token":{"post":{"operationId":"v1-exchange-oauth-token","summary":"[Beta] Exchange auth code for user's access and refresh token","parameters":[],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/OAuthTokenBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenResponse"}}}}},"tags":["OAuth"],"security":[{"oauth2":["write"]}]}},"/v1/snippets":{"get":{"operationId":"v1-list-all-snippets","summary":"Lists SQL snippets for the logged in user","parameters":[{"name":"project_ref","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnippetList"}}}},"500":{"description":"Failed to list user's SQL snippets"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/snippets/{id}":{"get":{"operationId":"v1-get-a-snippet","summary":"Gets a specific SQL snippet","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnippetResponse"}}}},"500":{"description":"Failed to retrieve SQL snippet"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/api-keys":{"get":{"operationId":"v1-get-project-api-keys","summary":"Get project api keys","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyResponse"}}}}},"403":{"description":""}},"tags":["Secrets"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/branches":{"get":{"operationId":"v1-list-all-branches","summary":"List all database branches","description":"Returns all database branches of the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BranchResponse"}}}}},"500":{"description":"Failed to retrieve database branches"}},"tags":["Environments"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-create-a-branch","summary":"Create a database branch","description":"Creates a database branch from the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBranchBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchResponse"}}}},"500":{"description":"Failed to create database branch"}},"tags":["Environments"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-disable-preview-branching","summary":"Disables preview branching","description":"Disables preview branching for the specified project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":""},"500":{"description":"Failed to disable preview branching"}},"tags":["Environments"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname":{"get":{"operationId":"v1-get-hostname-config","summary":"[Beta] Gets project's custom hostname config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's custom hostname config"}},"tags":["Domains"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-Delete hostname config","summary":"[Beta] Deletes a project's custom hostname configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to delete project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname/initialize":{"post":{"operationId":"v1-update-hostname-config","summary":"[Beta] Updates project's custom hostname configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname/reverify":{"post":{"operationId":"v1-verify-dns-config","summary":"[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to verify project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/custom-hostname/activate":{"post":{"operationId":"v1-activate-custom-hostname","summary":"[Beta] Activates a custom hostname for a project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomHostnameResponse"}}}},"403":{"description":""},"500":{"description":"Failed to activate project custom hostname configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-bans/retrieve":{"post":{"operationId":"v1-list-all-network-bans","summary":"[Beta] Gets project's network bans","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkBanResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's network bans"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-bans":{"delete":{"operationId":"v1-delete-network-bans","summary":"[Beta] Remove network bans.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveNetworkBanRequest"}}}},"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to remove network bans."}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-restrictions":{"get":{"operationId":"v1-get-network-restrictions","summary":"[Beta] Gets project's network restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's network restrictions"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/network-restrictions/apply":{"post":{"operationId":"v1-update-network-restrictions","summary":"[Beta] Updates project's network restrictions","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkRestrictionsResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project network restrictions"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/pgsodium":{"get":{"operationId":"v1-get-pgsodium-config","summary":"[Beta] Gets project's pgsodium config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PgsodiumConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's pgsodium config"}},"tags":["Secrets"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-pgsodium-config","summary":"[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePgsodiumConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PgsodiumConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's pgsodium config"}},"tags":["Secrets"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/postgrest":{"get":{"operationId":"v1-get-postgrest-service-config","summary":"Gets project's postgrest config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgrestConfigWithJWTSecretResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's postgrest config"}},"tags":["Rest"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-postgrest-service-config","summary":"Updates project's postgrest config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePostgrestConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PostgrestConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's postgrest config"}},"tags":["Rest"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}":{"delete":{"operationId":"v1-delete-a-project","summary":"Deletes the given project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1ProjectRefResponse"}}}},"403":{"description":""}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/secrets":{"get":{"operationId":"v1-list-all-secrets","summary":"List all secrets","description":"Returns all secrets you've previously added to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecretResponse"}}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's secrets"}},"tags":["Secrets"],"security":[{"bearer":[]}]},"post":{"operationId":"v1-bulk-create-secrets","summary":"Bulk create secrets","description":"Creates multiple secrets and adds them to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CreateSecretBody"}}}}},"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to create project's secrets"}},"tags":["Secrets"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-bulk-delete-secrets","summary":"Bulk delete secrets","description":"Deletes all secrets with the given names from the specified project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":""},"500":{"description":"Failed to delete secrets with given names"}},"tags":["Secrets"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/ssl-enforcement":{"get":{"operationId":"v1-get-ssl-enforcement-config","summary":"[Beta] Get project's SSL enforcement configuration.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's SSL enforcement config"}},"tags":["Database"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-ssl-enforcement-config","summary":"[Beta] Update project's SSL enforcement configuration.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SslEnforcementResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's SSL enforcement configuration."}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/types/typescript":{"get":{"operationId":"v1-generate-typescript-types","summary":"Generate TypeScript types","description":"Returns the TypeScript types of your schema for use with supabase-js.","parameters":[{"name":"included_schemas","required":false,"in":"query","schema":{"default":"public","type":"string"}},{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypescriptResponse"}}}},"403":{"description":""},"500":{"description":"Failed to generate TypeScript types"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/vanity-subdomain":{"get":{"operationId":"v1-get-vanity-subdomain-config","summary":"[Beta] Gets current vanity subdomain config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to get project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-deactivate-vanity-subdomain-config","summary":"[Beta] Deletes a project's vanity subdomain configuration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to delete project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/vanity-subdomain/check-availability":{"post":{"operationId":"v1-check-vanity-subdomain-availability","summary":"[Beta] Checks vanity subdomain availability","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubdomainAvailabilityResponse"}}}},"403":{"description":""},"500":{"description":"Failed to check project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/vanity-subdomain/activate":{"post":{"operationId":"v1-activate-vanity-subdomain-config","summary":"[Beta] Activates a vanity subdomain for a project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanitySubdomainBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateVanitySubdomainResponse"}}}},"403":{"description":""},"500":{"description":"Failed to activate project vanity subdomain configuration"}},"tags":["Domains"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/upgrade":{"post":{"operationId":"v1-upgrade-postgres-version","summary":"[Beta] Upgrades the project's Postgres version","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeDatabaseBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpgradeInitiateResponse"}}}},"403":{"description":""},"500":{"description":"Failed to initiate project upgrade"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/upgrade/eligibility":{"get":{"operationId":"v1-get-postgrest-upgrade-eligibility","summary":"[Beta] Returns the project's eligibility for upgrades","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpgradeEligibilityResponse"}}}},"403":{"description":""},"500":{"description":"Failed to determine project upgrade eligibility"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/upgrade/status":{"get":{"operationId":"v1-get-postgrest-upgrade-status","summary":"[Beta] Gets the latest status of the project's upgrade","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseUpgradeStatusResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project upgrade status"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/readonly":{"get":{"operationId":"v1-get-readonly-mode-status","summary":"Returns project's readonly mode status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadOnlyStatusResponse"}}}},"500":{"description":"Failed to get project readonly mode status"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/readonly/temporary-disable":{"post":{"operationId":"v1-disable-readonly-mode-temporarily","summary":"Disables project's readonly mode for the next 15 minutes","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":""},"500":{"description":"Failed to disable project's readonly mode"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/read-replicas/setup":{"post":{"operationId":"v1-setup-a-read-replica","summary":"[Beta] Set up a read replica","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetUpReadReplicaBody"}}}},"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to set up read replica"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/read-replicas/remove":{"post":{"operationId":"v1-remove-a-read-replica","summary":"[Beta] Remove a read replica","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveReadReplicaBody"}}}},"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to remove read replica"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/health":{"get":{"operationId":"v1-get-services-health","summary":"Gets project's service health status","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"timeout_ms","required":false,"in":"query","schema":{"minimum":0,"maximum":10000,"type":"integer"}},{"name":"services","required":true,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["auth","db","pooler","realtime","rest","storage"]}}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1ServiceHealthResponse"}}}}},"500":{"description":"Failed to retrieve project's service health status"}},"tags":["Projects"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/database/postgres":{"get":{"operationId":"v1-get-postgres-config","summary":"Gets project's Postgres config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresConfigResponse"}}}},"500":{"description":"Failed to retrieve project's Postgres config"}},"tags":["Database"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-postgres-config","summary":"Updates project's Postgres config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePostgresConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostgresConfigResponse"}}}},"500":{"description":"Failed to update project's Postgres config"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/database/pgbouncer":{"get":{"operationId":"v1-get-project-pgbouncer-config","summary":"Get project's pgbouncer config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1PgbouncerConfigResponse"}}}},"500":{"description":"Failed to retrieve project's pgbouncer config"}},"tags":["Database"]}},"/v1/projects/{ref}/config/database/pooler":{"get":{"operationId":"v1-get-supavisor-config","summary":"Gets project's supavisor config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SupavisorConfigResponse"}}}}},"500":{"description":"Failed to retrieve project's supavisor config"}},"tags":["Database"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-supavisor-config","summary":"Updates project's supavisor config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupavisorConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupavisorConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's supavisor config"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth":{"get":{"operationId":"v1-get-auth-service-config","summary":"Gets project's auth config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's auth config"}},"tags":["Auth"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-auth-service-config","summary":"Updates a project's auth config","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAuthConfigBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthConfigResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update project's auth config"}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/third-party-auth":{"post":{"operationId":"createTPAForProject","summary":"Creates a new third-party auth integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThirdPartyAuthBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]},"get":{"operationId":"listTPAForProject","summary":"[Alpha] Lists all third-party auth integrations","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}":{"delete":{"operationId":"deleteTPAForProject","summary":"[Alpha] Removes a third-party auth integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"tpa_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]},"get":{"operationId":"getTPAForProject","summary":"[Alpha] Get a third-party integration","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"tpa_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThirdPartyAuth"}}}},"403":{"description":""}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/query":{"post":{"operationId":"v1-run-a-query","summary":"[Beta] Run sql query","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RunQueryBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":""},"500":{"description":"Failed to run sql query"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/webhooks/enable":{"post":{"operationId":"v1-enable-database-webhook","summary":"[Beta] Enables Database Webhooks on the project","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"201":{"description":""},"403":{"description":""},"500":{"description":"Failed to enable Database Webhooks on the project"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/functions":{"post":{"operationId":"createFunction","summary":"Create a function","description":"Creates a function and adds it to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"verify_jwt","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"import_map","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"entrypoint_path","required":false,"in":"query","schema":{"type":"string"}},{"name":"import_map_path","required":false,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1CreateFunctionBody"}},"application/vnd.denoland.eszip":{"schema":{"$ref":"#/components/schemas/V1CreateFunctionBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionResponse"}}}},"403":{"description":""},"500":{"description":"Failed to create project's function"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]},"get":{"operationId":"v1-list-all-functions","summary":"List all functions","description":"Returns all functions you've previously added to the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FunctionResponse"}}}}},"403":{"description":""},"500":{"description":"Failed to retrieve project's functions"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/functions/{function_slug}":{"get":{"operationId":"v1-get-a-function","summary":"Retrieve a function","description":"Retrieves a function with the specified slug and project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionSlugResponse"}}}},"403":{"description":""},"500":{"description":"Failed to retrieve function with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]},"patch":{"operationId":"v1-update-a-function","summary":"Update a function","description":"Updates a function with the specified slug and project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}},{"name":"slug","required":false,"in":"query","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}},{"name":"name","required":false,"in":"query","schema":{"type":"string"}},{"name":"verify_jwt","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"import_map","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"entrypoint_path","required":false,"in":"query","schema":{"type":"string"}},{"name":"import_map_path","required":false,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1UpdateFunctionBody"}},"application/vnd.denoland.eszip":{"schema":{"$ref":"#/components/schemas/V1UpdateFunctionBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionResponse"}}}},"403":{"description":""},"500":{"description":"Failed to update function with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-delete-a-function","summary":"Delete a function","description":"Deletes a function with the specified slug from the specified project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to delete function with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/functions/{function_slug}/body":{"get":{"operationId":"v1-get-a-function-body","summary":"Retrieve a function body","description":"Retrieves a function body for the specified slug and project.","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"function_slug","required":true,"in":"path","description":"Function slug","schema":{"pattern":"/^[A-Za-z0-9_-]+$/","type":"string"}}],"responses":{"200":{"description":""},"403":{"description":""},"500":{"description":"Failed to retrieve function body with given slug"}},"tags":["Edge Functions"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/storage/buckets":{"get":{"operationId":"v1-list-all-buckets","summary":"Lists all buckets","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1StorageBucketResponse"}}}}},"403":{"description":""},"500":{"description":"Failed to get list of buckets"}},"tags":["Storage"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/sso/providers":{"post":{"operationId":"v1-create-a-sso-provider","summary":"Creates a new SSO provider","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderBody"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderResponse"}}}},"403":{"description":""},"404":{"description":"SAML 2.0 support is not enabled for this project"}},"tags":["Auth"],"security":[{"bearer":[]}]},"get":{"operationId":"v1-list-all-sso-provider","summary":"Lists all SSO providers","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProvidersResponse"}}}},"403":{"description":""},"404":{"description":"SAML 2.0 support is not enabled for this project"}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/config/auth/sso/providers/{provider_id}":{"get":{"operationId":"v1-get-a-sso-provider","summary":"Gets a SSO provider by its UUID","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProviderResponse"}}}},"403":{"description":""},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"}},"tags":["Auth"],"security":[{"bearer":[]}]},"put":{"operationId":"v1-update-a-sso-provider","summary":"Updates a SSO provider by its UUID","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderBody"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderResponse"}}}},"403":{"description":""},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"}},"tags":["Auth"],"security":[{"bearer":[]}]},"delete":{"operationId":"v1-delete-a-sso-provider","summary":"Removes a SSO provider by its UUID","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}},{"name":"provider_id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteProviderResponse"}}}},"403":{"description":""},"404":{"description":"Either SAML 2.0 was not enabled for this project, or the provider does not exist"}},"tags":["Auth"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/backups":{"get":{"operationId":"v1-list-all-backups","summary":"Lists all backups","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1BackupsResponse"}}}},"500":{"description":"Failed to get backups"}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/projects/{ref}/database/backups/restore-pitr":{"post":{"operationId":"v1-restore-pitr-backup","summary":"Restores a PITR backup for a database","parameters":[{"name":"ref","required":true,"in":"path","description":"Project ref","schema":{"minLength":20,"maxLength":20,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RestorePitrBody"}}}},"responses":{"201":{"description":""}},"tags":["Database"],"security":[{"bearer":[]}]}},"/v1/organizations/{slug}/members":{"get":{"operationId":"v1-list-organization-members","summary":"List members of an organization","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1OrganizationMemberResponse"}}}}}},"tags":["Organizations"],"security":[{"bearer":[]}]}},"/v1/organizations/{slug}":{"get":{"operationId":"v1-get-an-organization","summary":"Gets information about the organization","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1OrganizationSlugResponse"}}}}},"tags":["Organizations"],"security":[{"bearer":[]}]}}},"info":{"title":"Supabase API (v1)","description":"Supabase API generated from the OpenAPI specification.
Visit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.","version":"1.0.0","contact":{}},"tags":[{"name":"Auth","description":"Auth related endpoints"},{"name":"Database","description":"Database related endpoints"},{"name":"Domains","description":"Domains related endpoints"},{"name":"Edge Functions","description":"Edge related endpoints"},{"name":"Environments","description":"Environments related endpoints"},{"name":"OAuth","description":"OAuth related endpoints"},{"name":"Organizations","description":"Organizations related endpoints"},{"name":"Projects","description":"Projects related endpoints"},{"name":"Rest","description":"Rest related endpoints"},{"name":"Secrets","description":"Secrets related endpoints"},{"name":"Storage","description":"Storage related endpoints"}],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"BranchDetailResponse":{"type":"object","properties":{"db_port":{"type":"integer"},"ref":{"type":"string"},"postgres_version":{"type":"string"},"status":{"enum":["ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","GOING_DOWN","INACTIVE","INIT_FAILED","REMOVED","RESTARTING","UNKNOWN","UPGRADING","PAUSING","RESTORING","RESTORE_FAILED","PAUSE_FAILED"],"type":"string"},"db_host":{"type":"string"},"db_user":{"type":"string"},"db_pass":{"type":"string"},"jwt_secret":{"type":"string"}},"required":["db_port","ref","postgres_version","status","db_host"]},"UpdateBranchBody":{"type":"object","properties":{"branch_name":{"type":"string"},"git_branch":{"type":"string"},"reset_on_push":{"type":"boolean"},"persistent":{"type":"boolean"}}},"BranchResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"project_ref":{"type":"string"},"parent_project_ref":{"type":"string"},"is_default":{"type":"boolean"},"git_branch":{"type":"string"},"pr_number":{"type":"number"},"latest_check_run_id":{"type":"number"},"reset_on_push":{"type":"boolean"},"persistent":{"type":"boolean"},"status":{"enum":["CREATING_PROJECT","RUNNING_MIGRATIONS","MIGRATIONS_PASSED","MIGRATIONS_FAILED","FUNCTIONS_DEPLOYED","FUNCTIONS_FAILED"],"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","project_ref","parent_project_ref","is_default","reset_on_push","persistent","status","created_at","updated_at"]},"BranchDeleteResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"BranchResetResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"V1DatabaseResponse":{"type":"object","properties":{"host":{"type":"string","description":"Database host"},"version":{"type":"string","description":"Database version"}},"required":["host","version"]},"V1ProjectResponse":{"type":"object","properties":{"id":{"type":"string","description":"Id of your project"},"organization_id":{"type":"string","description":"Slug of your organization"},"name":{"type":"string","description":"Name of your project"},"region":{"type":"string","description":"Region of your project","example":"us-east-1"},"created_at":{"type":"string","description":"Creation timestamp","example":"2023-03-29T16:32:59Z"},"database":{"$ref":"#/components/schemas/V1DatabaseResponse"},"status":{"enum":["ACTIVE_HEALTHY","ACTIVE_UNHEALTHY","COMING_UP","GOING_DOWN","INACTIVE","INIT_FAILED","REMOVED","RESTARTING","UNKNOWN","UPGRADING","PAUSING","RESTORING","RESTORE_FAILED","PAUSE_FAILED"],"type":"string"}},"required":["id","organization_id","name","region","created_at","status"]},"DesiredInstanceSize":{"type":"string","enum":["micro","small","medium","large","xlarge","2xlarge","4xlarge","8xlarge","12xlarge","16xlarge"]},"V1CreateProjectBody":{"type":"object","properties":{"db_pass":{"type":"string","description":"Database password"},"name":{"type":"string","description":"Name of your project, should not contain dots"},"organization_id":{"type":"string","description":"Slug of your organization"},"plan":{"type":"string","enum":["free","pro"],"description":"Subscription Plan is now set on organization level and is ignored in this request","example":"free","deprecated":true},"region":{"type":"string","enum":["us-east-1","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-central-1","ca-central-1","ap-south-1","sa-east-1"],"description":"Region you want your server to reside in","example":"us-east-1"},"kps_enabled":{"type":"boolean","deprecated":true,"description":"This field is deprecated and is ignored in this request"},"desired_instance_size":{"$ref":"#/components/schemas/DesiredInstanceSize"},"template_url":{"type":"string","description":"Template URL used to create the project from the CLI.","example":"https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone"}},"required":["db_pass","name","organization_id","region"]},"OrganizationResponseV1":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CreateOrganizationBodyV1":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"OAuthTokenBody":{"type":"object","properties":{"grant_type":{"enum":["authorization_code","refresh_token"],"type":"string"},"client_id":{"type":"string"},"client_secret":{"type":"string"},"code":{"type":"string"},"code_verifier":{"type":"string"},"redirect_uri":{"type":"string"},"refresh_token":{"type":"string"}},"required":["grant_type","client_id","client_secret"]},"OAuthTokenResponse":{"type":"object","properties":{"token_type":{"type":"string","enum":["Bearer"]},"access_token":{"type":"string"},"refresh_token":{"type":"string"},"expires_in":{"type":"number"}},"required":["token_type","access_token","refresh_token","expires_in"]},"SnippetProject":{"type":"object","properties":{"id":{"type":"number"},"name":{"type":"string"}},"required":["id","name"]},"SnippetUser":{"type":"object","properties":{"id":{"type":"number"},"username":{"type":"string"}},"required":["id","username"]},"SnippetMeta":{"type":"object","properties":{"id":{"type":"string"},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"type":{"type":"string","enum":["sql"]},"visibility":{"type":"string","enum":["user","project","org","public"]},"name":{"type":"string"},"description":{"type":"string"},"project":{"$ref":"#/components/schemas/SnippetProject"},"owner":{"$ref":"#/components/schemas/SnippetUser"},"updated_by":{"$ref":"#/components/schemas/SnippetUser"}},"required":["id","inserted_at","updated_at","type","visibility","name","project","owner","updated_by"]},"SnippetList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SnippetMeta"}}},"required":["data"]},"SnippetContent":{"type":"object","properties":{"favorite":{"type":"boolean"},"schema_version":{"type":"string"},"sql":{"type":"string"}},"required":["favorite","schema_version","sql"]},"SnippetResponse":{"type":"object","properties":{"id":{"type":"string"},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"type":{"type":"string","enum":["sql"]},"visibility":{"enum":["user","project","org","public"],"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"project":{"$ref":"#/components/schemas/SnippetProject"},"owner":{"$ref":"#/components/schemas/SnippetUser"},"updated_by":{"$ref":"#/components/schemas/SnippetUser"},"content":{"$ref":"#/components/schemas/SnippetContent"}},"required":["id","inserted_at","updated_at","type","visibility","name","project","owner","updated_by","content"]},"ApiKeyResponse":{"type":"object","properties":{"name":{"type":"string"},"api_key":{"type":"string"}},"required":["name","api_key"]},"CreateBranchBody":{"type":"object","properties":{"branch_name":{"type":"string"},"git_branch":{"type":"string"},"region":{"type":"string"}},"required":["branch_name"]},"ValidationRecord":{"type":"object","properties":{"txt_name":{"type":"string"},"txt_value":{"type":"string"}},"required":["txt_name","txt_value"]},"ValidationError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"SslValidation":{"type":"object","properties":{"status":{"type":"string"},"validation_records":{"type":"array","items":{"$ref":"#/components/schemas/ValidationRecord"}},"validation_errors":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}},"required":["status","validation_records"]},"OwnershipVerification":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"]},"CustomHostnameDetails":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"ssl":{"$ref":"#/components/schemas/SslValidation"},"ownership_verification":{"$ref":"#/components/schemas/OwnershipVerification"},"custom_origin_server":{"type":"string"},"verification_errors":{"type":"array","items":{"type":"string"}},"status":{"type":"string"}},"required":["id","hostname","ssl","ownership_verification","custom_origin_server","status"]},"CfResponse":{"type":"object","properties":{"success":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object"}},"messages":{"type":"array","items":{"type":"object"}},"result":{"$ref":"#/components/schemas/CustomHostnameDetails"}},"required":["success","errors","messages","result"]},"UpdateCustomHostnameResponse":{"type":"object","properties":{"status":{"enum":["1_not_started","2_initiated","3_challenge_verified","4_origin_setup_completed","5_services_reconfigured"],"type":"string"},"custom_hostname":{"type":"string"},"data":{"$ref":"#/components/schemas/CfResponse"}},"required":["status","custom_hostname","data"]},"UpdateCustomHostnameBody":{"type":"object","properties":{"custom_hostname":{"type":"string"}},"required":["custom_hostname"]},"NetworkBanResponse":{"type":"object","properties":{"banned_ipv4_addresses":{"type":"array","items":{"type":"string"}}},"required":["banned_ipv4_addresses"]},"RemoveNetworkBanRequest":{"type":"object","properties":{"ipv4_addresses":{"type":"array","items":{"type":"string"}}},"required":["ipv4_addresses"]},"NetworkRestrictionsRequest":{"type":"object","properties":{"dbAllowedCidrs":{"type":"array","items":{"type":"string"}},"dbAllowedCidrsV6":{"type":"array","items":{"type":"string"}}}},"NetworkRestrictionsResponse":{"type":"object","properties":{"entitlement":{"enum":["disallowed","allowed"],"type":"string"},"config":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"},"old_config":{"$ref":"#/components/schemas/NetworkRestrictionsRequest"},"status":{"enum":["stored","applied"],"type":"string"}},"required":["entitlement","config","status"]},"PgsodiumConfigResponse":{"type":"object","properties":{"root_key":{"type":"string"}},"required":["root_key"]},"UpdatePgsodiumConfigBody":{"type":"object","properties":{"root_key":{"type":"string"}},"required":["root_key"]},"PostgrestConfigWithJWTSecretResponse":{"type":"object","properties":{"max_rows":{"type":"integer"},"db_pool":{"type":"integer","nullable":true,"description":"If `null`, the value is automatically configured based on compute size."},"db_schema":{"type":"string"},"db_extra_search_path":{"type":"string"},"jwt_secret":{"type":"string"}},"required":["max_rows","db_pool","db_schema","db_extra_search_path"]},"UpdatePostgrestConfigBody":{"type":"object","properties":{"max_rows":{"type":"integer","minimum":0,"maximum":1000000},"db_pool":{"type":"integer","minimum":0,"maximum":1000},"db_extra_search_path":{"type":"string"},"db_schema":{"type":"string"}}},"V1PostgrestConfigResponse":{"type":"object","properties":{"max_rows":{"type":"integer"},"db_pool":{"type":"integer","nullable":true,"description":"If `null`, the value is automatically configured based on compute size."},"db_schema":{"type":"string"},"db_extra_search_path":{"type":"string"}},"required":["max_rows","db_pool","db_schema","db_extra_search_path"]},"V1ProjectRefResponse":{"type":"object","properties":{"id":{"type":"number"},"ref":{"type":"string"},"name":{"type":"string"}},"required":["id","ref","name"]},"SecretResponse":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"]},"CreateSecretBody":{"type":"object","properties":{"name":{"type":"string","maxLength":256,"pattern":"/^(?!SUPABASE_).*/","description":"Secret name must not start with the SUPABASE_ prefix.","example":"string"},"value":{"type":"string","maxLength":24576}},"required":["name","value"]},"SslEnforcements":{"type":"object","properties":{"database":{"type":"boolean"}},"required":["database"]},"SslEnforcementResponse":{"type":"object","properties":{"currentConfig":{"$ref":"#/components/schemas/SslEnforcements"},"appliedSuccessfully":{"type":"boolean"}},"required":["currentConfig","appliedSuccessfully"]},"SslEnforcementRequest":{"type":"object","properties":{"requestedConfig":{"$ref":"#/components/schemas/SslEnforcements"}},"required":["requestedConfig"]},"TypescriptResponse":{"type":"object","properties":{"types":{"type":"string"}},"required":["types"]},"VanitySubdomainConfigResponse":{"type":"object","properties":{"status":{"enum":["not-used","custom-domain-used","active"],"type":"string"},"custom_domain":{"type":"string"}},"required":["status"]},"VanitySubdomainBody":{"type":"object","properties":{"vanity_subdomain":{"type":"string"}},"required":["vanity_subdomain"]},"SubdomainAvailabilityResponse":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"]},"ActivateVanitySubdomainResponse":{"type":"object","properties":{"custom_domain":{"type":"string"}},"required":["custom_domain"]},"UpgradeDatabaseBody":{"type":"object","properties":{"target_version":{"type":"number"}},"required":["target_version"]},"ProjectUpgradeInitiateResponse":{"type":"object","properties":{"tracking_id":{"type":"string"}},"required":["tracking_id"]},"ProjectVersion":{"type":"object","properties":{"postgres_version":{"type":"number"},"app_version":{"type":"string"}},"required":["postgres_version","app_version"]},"ProjectUpgradeEligibilityResponse":{"type":"object","properties":{"eligible":{"type":"boolean"},"current_app_version":{"type":"string"},"latest_app_version":{"type":"string"},"target_upgrade_versions":{"type":"array","items":{"$ref":"#/components/schemas/ProjectVersion"}},"potential_breaking_changes":{"type":"array","items":{"type":"string"}},"duration_estimate_hours":{"type":"number"},"legacy_auth_custom_roles":{"type":"array","items":{"type":"string"}},"extension_dependent_objects":{"type":"array","items":{"type":"string"}}},"required":["eligible","current_app_version","latest_app_version","target_upgrade_versions","potential_breaking_changes","duration_estimate_hours","legacy_auth_custom_roles","extension_dependent_objects"]},"DatabaseUpgradeStatus":{"type":"object","properties":{"initiated_at":{"type":"string"},"latest_status_at":{"type":"string"},"target_version":{"type":"number"},"error":{"type":"string","enum":["1_upgraded_instance_launch_failed","2_volume_detachchment_from_upgraded_instance_failed","3_volume_attachment_to_original_instance_failed","4_data_upgrade_initiation_failed","5_data_upgrade_completion_failed","6_volume_detachchment_from_original_instance_failed","7_volume_attachment_to_upgraded_instance_failed","8_upgrade_completion_failed","9_post_physical_backup_failed"]},"progress":{"type":"string","enum":["0_requested","1_started","2_launched_upgraded_instance","3_detached_volume_from_upgraded_instance","4_attached_volume_to_original_instance","5_initiated_data_upgrade","6_completed_data_upgrade","7_detached_volume_from_original_instance","8_attached_volume_to_upgraded_instance","9_completed_upgrade","10_completed_post_physical_backup"]},"status":{"type":"number","enum":[0,1,2]}},"required":["initiated_at","latest_status_at","target_version","status"]},"DatabaseUpgradeStatusResponse":{"type":"object","properties":{"databaseUpgradeStatus":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/DatabaseUpgradeStatus"}]}},"required":["databaseUpgradeStatus"]},"ReadOnlyStatusResponse":{"type":"object","properties":{"enabled":{"type":"boolean"},"override_enabled":{"type":"boolean"},"override_active_until":{"type":"string"}},"required":["enabled","override_enabled","override_active_until"]},"SetUpReadReplicaBody":{"type":"object","properties":{"read_replica_region":{"type":"string","enum":["us-east-1","us-west-1","us-west-2","ap-east-1","ap-southeast-1","ap-northeast-1","ap-northeast-2","ap-southeast-2","eu-west-1","eu-west-2","eu-west-3","eu-central-1","ca-central-1","ap-south-1","sa-east-1"],"description":"Region you want your read replica to reside in","example":"us-east-1"}},"required":["read_replica_region"]},"RemoveReadReplicaBody":{"type":"object","properties":{"database_identifier":{"type":"string"}},"required":["database_identifier"]},"AuthHealthResponse":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"}},"required":["name","version","description"]},"RealtimeHealthResponse":{"type":"object","properties":{"healthy":{"type":"boolean"},"db_connected":{"type":"boolean"},"connected_cluster":{"type":"number"}},"required":["healthy","db_connected","connected_cluster"]},"V1ServiceHealthResponse":{"type":"object","properties":{"info":{"oneOf":[{"$ref":"#/components/schemas/AuthHealthResponse"},{"$ref":"#/components/schemas/RealtimeHealthResponse"}]},"name":{"enum":["auth","db","pooler","realtime","rest","storage"],"type":"string"},"healthy":{"type":"boolean"},"status":{"enum":["COMING_UP","ACTIVE_HEALTHY","UNHEALTHY"],"type":"string"},"error":{"type":"string"}},"required":["name","healthy","status"]},"PostgresConfigResponse":{"type":"object","properties":{"statement_timeout":{"type":"string"},"effective_cache_size":{"type":"string"},"maintenance_work_mem":{"type":"string"},"max_connections":{"type":"integer","minimum":1,"maximum":262143},"max_locks_per_transaction":{"type":"integer","minimum":10,"maximum":2147483640},"max_parallel_maintenance_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers_per_gather":{"type":"integer","minimum":0,"maximum":1024},"max_standby_archive_delay":{"type":"string"},"max_standby_streaming_delay":{"type":"string"},"max_worker_processes":{"type":"integer","minimum":0,"maximum":262143},"shared_buffers":{"type":"string"},"work_mem":{"type":"string"},"session_replication_role":{"enum":["origin","replica","local"],"type":"string"}}},"UpdatePostgresConfigBody":{"type":"object","properties":{"statement_timeout":{"type":"string"},"effective_cache_size":{"type":"string"},"maintenance_work_mem":{"type":"string"},"max_connections":{"type":"integer","minimum":1,"maximum":262143},"max_locks_per_transaction":{"type":"integer","minimum":10,"maximum":2147483640},"max_parallel_maintenance_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers":{"type":"integer","minimum":0,"maximum":1024},"max_parallel_workers_per_gather":{"type":"integer","minimum":0,"maximum":1024},"max_standby_archive_delay":{"type":"string"},"max_standby_streaming_delay":{"type":"string"},"max_worker_processes":{"type":"integer","minimum":0,"maximum":262143},"shared_buffers":{"type":"string"},"work_mem":{"type":"string"},"session_replication_role":{"enum":["origin","replica","local"],"type":"string"}}},"V1PgbouncerConfigResponse":{"type":"object","properties":{"pool_mode":{"type":"string","enum":["transaction","session","statement"]},"default_pool_size":{"type":"number"},"ignore_startup_parameters":{"type":"string"},"max_client_conn":{"type":"number"},"connection_string":{"type":"string"}}},"SupavisorConfigResponse":{"type":"object","properties":{"identifier":{"type":"string"},"database_type":{"enum":["PRIMARY","READ_REPLICA"],"type":"string"},"is_using_scram_auth":{"type":"boolean"},"db_user":{"type":"string"},"db_host":{"type":"string"},"db_port":{"type":"number"},"db_name":{"type":"string"},"connectionString":{"type":"string"},"default_pool_size":{"type":"number","nullable":true},"max_client_conn":{"type":"number","nullable":true},"pool_mode":{"enum":["transaction","session"],"type":"string"}},"required":["identifier","database_type","is_using_scram_auth","db_user","db_host","db_port","db_name","connectionString","default_pool_size","max_client_conn","pool_mode"]},"UpdateSupavisorConfigBody":{"type":"object","properties":{"default_pool_size":{"type":"integer","nullable":true,"minimum":0,"maximum":1000},"pool_mode":{"enum":["transaction","session"],"type":"string","deprecated":true,"description":"This field is deprecated and is ignored in this request"}}},"UpdateSupavisorConfigResponse":{"type":"object","properties":{"default_pool_size":{"type":"number","nullable":true},"pool_mode":{"enum":["transaction","session"],"type":"string"}},"required":["default_pool_size","pool_mode"]},"AuthConfigResponse":{"type":"object","properties":{"api_max_request_duration":{"type":"number","nullable":true},"db_max_pool_size":{"type":"number","nullable":true},"disable_signup":{"type":"boolean","nullable":true},"external_anonymous_users_enabled":{"type":"boolean","nullable":true},"external_apple_additional_client_ids":{"type":"string","nullable":true},"external_apple_client_id":{"type":"string","nullable":true},"external_apple_enabled":{"type":"boolean","nullable":true},"external_apple_secret":{"type":"string","nullable":true},"external_azure_client_id":{"type":"string","nullable":true},"external_azure_enabled":{"type":"boolean","nullable":true},"external_azure_secret":{"type":"string","nullable":true},"external_azure_url":{"type":"string","nullable":true},"external_bitbucket_client_id":{"type":"string","nullable":true},"external_bitbucket_enabled":{"type":"boolean","nullable":true},"external_bitbucket_secret":{"type":"string","nullable":true},"external_discord_client_id":{"type":"string","nullable":true},"external_discord_enabled":{"type":"boolean","nullable":true},"external_discord_secret":{"type":"string","nullable":true},"external_email_enabled":{"type":"boolean","nullable":true},"external_facebook_client_id":{"type":"string","nullable":true},"external_facebook_enabled":{"type":"boolean","nullable":true},"external_facebook_secret":{"type":"string","nullable":true},"external_figma_client_id":{"type":"string","nullable":true},"external_figma_enabled":{"type":"boolean","nullable":true},"external_figma_secret":{"type":"string","nullable":true},"external_github_client_id":{"type":"string","nullable":true},"external_github_enabled":{"type":"boolean","nullable":true},"external_github_secret":{"type":"string","nullable":true},"external_gitlab_client_id":{"type":"string","nullable":true},"external_gitlab_enabled":{"type":"boolean","nullable":true},"external_gitlab_secret":{"type":"string","nullable":true},"external_gitlab_url":{"type":"string","nullable":true},"external_google_additional_client_ids":{"type":"string","nullable":true},"external_google_client_id":{"type":"string","nullable":true},"external_google_enabled":{"type":"boolean","nullable":true},"external_google_secret":{"type":"string","nullable":true},"external_google_skip_nonce_check":{"type":"boolean","nullable":true},"external_kakao_client_id":{"type":"string","nullable":true},"external_kakao_enabled":{"type":"boolean","nullable":true},"external_kakao_secret":{"type":"string","nullable":true},"external_keycloak_client_id":{"type":"string","nullable":true},"external_keycloak_enabled":{"type":"boolean","nullable":true},"external_keycloak_secret":{"type":"string","nullable":true},"external_keycloak_url":{"type":"string","nullable":true},"external_linkedin_oidc_client_id":{"type":"string","nullable":true},"external_linkedin_oidc_enabled":{"type":"boolean","nullable":true},"external_linkedin_oidc_secret":{"type":"string","nullable":true},"external_slack_oidc_client_id":{"type":"string","nullable":true},"external_slack_oidc_enabled":{"type":"boolean","nullable":true},"external_slack_oidc_secret":{"type":"string","nullable":true},"external_notion_client_id":{"type":"string","nullable":true},"external_notion_enabled":{"type":"boolean","nullable":true},"external_notion_secret":{"type":"string","nullable":true},"external_phone_enabled":{"type":"boolean","nullable":true},"external_slack_client_id":{"type":"string","nullable":true},"external_slack_enabled":{"type":"boolean","nullable":true},"external_slack_secret":{"type":"string","nullable":true},"external_spotify_client_id":{"type":"string","nullable":true},"external_spotify_enabled":{"type":"boolean","nullable":true},"external_spotify_secret":{"type":"string","nullable":true},"external_twitch_client_id":{"type":"string","nullable":true},"external_twitch_enabled":{"type":"boolean","nullable":true},"external_twitch_secret":{"type":"string","nullable":true},"external_twitter_client_id":{"type":"string","nullable":true},"external_twitter_enabled":{"type":"boolean","nullable":true},"external_twitter_secret":{"type":"string","nullable":true},"external_workos_client_id":{"type":"string","nullable":true},"external_workos_enabled":{"type":"boolean","nullable":true},"external_workos_secret":{"type":"string","nullable":true},"external_workos_url":{"type":"string","nullable":true},"external_zoom_client_id":{"type":"string","nullable":true},"external_zoom_enabled":{"type":"boolean","nullable":true},"external_zoom_secret":{"type":"string","nullable":true},"hook_custom_access_token_enabled":{"type":"boolean","nullable":true},"hook_custom_access_token_uri":{"type":"string","nullable":true},"hook_custom_access_token_secrets":{"type":"string","nullable":true},"hook_mfa_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_mfa_verification_attempt_uri":{"type":"string","nullable":true},"hook_mfa_verification_attempt_secrets":{"type":"string","nullable":true},"hook_password_verification_attempt_enabled":{"type":"boolean","nullable":true},"hook_password_verification_attempt_uri":{"type":"string","nullable":true},"hook_password_verification_attempt_secrets":{"type":"string","nullable":true},"hook_send_sms_enabled":{"type":"boolean","nullable":true},"hook_send_sms_uri":{"type":"string","nullable":true},"hook_send_sms_secrets":{"type":"string","nullable":true},"hook_send_email_enabled":{"type":"boolean","nullable":true},"hook_send_email_uri":{"type":"string","nullable":true},"hook_send_email_secrets":{"type":"string","nullable":true},"jwt_exp":{"type":"number","nullable":true},"mailer_allow_unverified_email_sign_ins":{"type":"boolean","nullable":true},"mailer_autoconfirm":{"type":"boolean","nullable":true},"mailer_otp_exp":{"type":"number"},"mailer_otp_length":{"type":"number","nullable":true},"mailer_secure_email_change_enabled":{"type":"boolean","nullable":true},"mailer_subjects_confirmation":{"type":"string","nullable":true},"mailer_subjects_email_change":{"type":"string","nullable":true},"mailer_subjects_invite":{"type":"string","nullable":true},"mailer_subjects_magic_link":{"type":"string","nullable":true},"mailer_subjects_reauthentication":{"type":"string","nullable":true},"mailer_subjects_recovery":{"type":"string","nullable":true},"mailer_templates_confirmation_content":{"type":"string","nullable":true},"mailer_templates_email_change_content":{"type":"string","nullable":true},"mailer_templates_invite_content":{"type":"string","nullable":true},"mailer_templates_magic_link_content":{"type":"string","nullable":true},"mailer_templates_reauthentication_content":{"type":"string","nullable":true},"mailer_templates_recovery_content":{"type":"string","nullable":true},"mfa_max_enrolled_factors":{"type":"number","nullable":true},"password_hibp_enabled":{"type":"boolean","nullable":true},"password_min_length":{"type":"number","nullable":true},"password_required_characters":{"type":"string","nullable":true},"rate_limit_anonymous_users":{"type":"number","nullable":true},"rate_limit_email_sent":{"type":"number","nullable":true},"rate_limit_sms_sent":{"type":"number","nullable":true},"rate_limit_token_refresh":{"type":"number","nullable":true},"rate_limit_verify":{"type":"number","nullable":true},"rate_limit_otp":{"type":"number","nullable":true},"refresh_token_rotation_enabled":{"type":"boolean","nullable":true},"saml_enabled":{"type":"boolean","nullable":true},"saml_external_url":{"type":"string","nullable":true},"security_captcha_enabled":{"type":"boolean","nullable":true},"security_captcha_provider":{"type":"string","nullable":true},"security_captcha_secret":{"type":"string","nullable":true},"security_manual_linking_enabled":{"type":"boolean","nullable":true},"security_refresh_token_reuse_interval":{"type":"number","nullable":true},"security_update_password_require_reauthentication":{"type":"boolean","nullable":true},"sessions_inactivity_timeout":{"type":"number","nullable":true},"sessions_single_per_user":{"type":"boolean","nullable":true},"sessions_tags":{"type":"string","nullable":true},"sessions_timebox":{"type":"number","nullable":true},"site_url":{"type":"string","nullable":true},"sms_autoconfirm":{"type":"boolean","nullable":true},"sms_max_frequency":{"type":"number","nullable":true},"sms_messagebird_access_key":{"type":"string","nullable":true},"sms_messagebird_originator":{"type":"string","nullable":true},"sms_otp_exp":{"type":"number","nullable":true},"sms_otp_length":{"type":"number"},"sms_provider":{"type":"string","nullable":true},"sms_template":{"type":"string","nullable":true},"sms_test_otp":{"type":"string","nullable":true},"sms_test_otp_valid_until":{"type":"string","nullable":true},"sms_textlocal_api_key":{"type":"string","nullable":true},"sms_textlocal_sender":{"type":"string","nullable":true},"sms_twilio_account_sid":{"type":"string","nullable":true},"sms_twilio_auth_token":{"type":"string","nullable":true},"sms_twilio_content_sid":{"type":"string","nullable":true},"sms_twilio_message_service_sid":{"type":"string","nullable":true},"sms_twilio_verify_account_sid":{"type":"string","nullable":true},"sms_twilio_verify_auth_token":{"type":"string","nullable":true},"sms_twilio_verify_message_service_sid":{"type":"string","nullable":true},"sms_vonage_api_key":{"type":"string","nullable":true},"sms_vonage_api_secret":{"type":"string","nullable":true},"sms_vonage_from":{"type":"string","nullable":true},"smtp_admin_email":{"type":"string","nullable":true},"smtp_host":{"type":"string","nullable":true},"smtp_max_frequency":{"type":"number","nullable":true},"smtp_pass":{"type":"string","nullable":true},"smtp_port":{"type":"string","nullable":true},"smtp_sender_name":{"type":"string","nullable":true},"smtp_user":{"type":"string","nullable":true},"uri_allow_list":{"type":"string","nullable":true}},"required":["api_max_request_duration","db_max_pool_size","disable_signup","external_anonymous_users_enabled","external_apple_additional_client_ids","external_apple_client_id","external_apple_enabled","external_apple_secret","external_azure_client_id","external_azure_enabled","external_azure_secret","external_azure_url","external_bitbucket_client_id","external_bitbucket_enabled","external_bitbucket_secret","external_discord_client_id","external_discord_enabled","external_discord_secret","external_email_enabled","external_facebook_client_id","external_facebook_enabled","external_facebook_secret","external_figma_client_id","external_figma_enabled","external_figma_secret","external_github_client_id","external_github_enabled","external_github_secret","external_gitlab_client_id","external_gitlab_enabled","external_gitlab_secret","external_gitlab_url","external_google_additional_client_ids","external_google_client_id","external_google_enabled","external_google_secret","external_google_skip_nonce_check","external_kakao_client_id","external_kakao_enabled","external_kakao_secret","external_keycloak_client_id","external_keycloak_enabled","external_keycloak_secret","external_keycloak_url","external_linkedin_oidc_client_id","external_linkedin_oidc_enabled","external_linkedin_oidc_secret","external_slack_oidc_client_id","external_slack_oidc_enabled","external_slack_oidc_secret","external_notion_client_id","external_notion_enabled","external_notion_secret","external_phone_enabled","external_slack_client_id","external_slack_enabled","external_slack_secret","external_spotify_client_id","external_spotify_enabled","external_spotify_secret","external_twitch_client_id","external_twitch_enabled","external_twitch_secret","external_twitter_client_id","external_twitter_enabled","external_twitter_secret","external_workos_client_id","external_workos_enabled","external_workos_secret","external_workos_url","external_zoom_client_id","external_zoom_enabled","external_zoom_secret","hook_custom_access_token_enabled","hook_custom_access_token_uri","hook_custom_access_token_secrets","hook_mfa_verification_attempt_enabled","hook_mfa_verification_attempt_uri","hook_mfa_verification_attempt_secrets","hook_password_verification_attempt_enabled","hook_password_verification_attempt_uri","hook_password_verification_attempt_secrets","hook_send_sms_enabled","hook_send_sms_uri","hook_send_sms_secrets","hook_send_email_enabled","hook_send_email_uri","hook_send_email_secrets","jwt_exp","mailer_allow_unverified_email_sign_ins","mailer_autoconfirm","mailer_otp_exp","mailer_otp_length","mailer_secure_email_change_enabled","mailer_subjects_confirmation","mailer_subjects_email_change","mailer_subjects_invite","mailer_subjects_magic_link","mailer_subjects_reauthentication","mailer_subjects_recovery","mailer_templates_confirmation_content","mailer_templates_email_change_content","mailer_templates_invite_content","mailer_templates_magic_link_content","mailer_templates_reauthentication_content","mailer_templates_recovery_content","mfa_max_enrolled_factors","password_hibp_enabled","password_min_length","password_required_characters","rate_limit_anonymous_users","rate_limit_email_sent","rate_limit_sms_sent","rate_limit_token_refresh","rate_limit_verify","rate_limit_otp","refresh_token_rotation_enabled","saml_enabled","saml_external_url","security_captcha_enabled","security_captcha_provider","security_captcha_secret","security_manual_linking_enabled","security_refresh_token_reuse_interval","security_update_password_require_reauthentication","sessions_inactivity_timeout","sessions_single_per_user","sessions_tags","sessions_timebox","site_url","sms_autoconfirm","sms_max_frequency","sms_messagebird_access_key","sms_messagebird_originator","sms_otp_exp","sms_otp_length","sms_provider","sms_template","sms_test_otp","sms_test_otp_valid_until","sms_textlocal_api_key","sms_textlocal_sender","sms_twilio_account_sid","sms_twilio_auth_token","sms_twilio_content_sid","sms_twilio_message_service_sid","sms_twilio_verify_account_sid","sms_twilio_verify_auth_token","sms_twilio_verify_message_service_sid","sms_vonage_api_key","sms_vonage_api_secret","sms_vonage_from","smtp_admin_email","smtp_host","smtp_max_frequency","smtp_pass","smtp_port","smtp_sender_name","smtp_user","uri_allow_list"]},"UpdateAuthConfigBody":{"type":"object","properties":{"site_url":{"type":"string","pattern":"/^[^,]+$/"},"disable_signup":{"type":"boolean"},"jwt_exp":{"type":"number","minimum":0,"maximum":604800},"smtp_admin_email":{"type":"string"},"smtp_host":{"type":"string"},"smtp_port":{"type":"string"},"smtp_user":{"type":"string"},"smtp_pass":{"type":"string"},"smtp_max_frequency":{"type":"number","minimum":0,"maximum":32767},"smtp_sender_name":{"type":"string"},"mailer_allow_unverified_email_sign_ins":{"type":"boolean"},"mailer_autoconfirm":{"type":"boolean"},"mailer_subjects_invite":{"type":"string"},"mailer_subjects_confirmation":{"type":"string"},"mailer_subjects_recovery":{"type":"string"},"mailer_subjects_email_change":{"type":"string"},"mailer_subjects_magic_link":{"type":"string"},"mailer_subjects_reauthentication":{"type":"string"},"mailer_templates_invite_content":{"type":"string"},"mailer_templates_confirmation_content":{"type":"string"},"mailer_templates_recovery_content":{"type":"string"},"mailer_templates_email_change_content":{"type":"string"},"mailer_templates_magic_link_content":{"type":"string"},"mailer_templates_reauthentication_content":{"type":"string"},"mfa_max_enrolled_factors":{"type":"number","minimum":0,"maximum":2147483647},"uri_allow_list":{"type":"string"},"external_anonymous_users_enabled":{"type":"boolean"},"external_email_enabled":{"type":"boolean"},"external_phone_enabled":{"type":"boolean"},"saml_enabled":{"type":"boolean"},"saml_external_url":{"type":"string","pattern":"/^[^,]+$/"},"security_captcha_enabled":{"type":"boolean"},"security_captcha_provider":{"type":"string"},"security_captcha_secret":{"type":"string"},"sessions_timebox":{"type":"number","minimum":0},"sessions_inactivity_timeout":{"type":"number","minimum":0},"sessions_single_per_user":{"type":"boolean"},"sessions_tags":{"type":"string","pattern":"/^\\s*([a-z0-9_-]+(\\s*,+\\s*)?)*\\s*$/i"},"rate_limit_anonymous_users":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_email_sent":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_sms_sent":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_verify":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_token_refresh":{"type":"number","minimum":1,"maximum":2147483647},"rate_limit_otp":{"type":"number","minimum":1,"maximum":2147483647},"mailer_secure_email_change_enabled":{"type":"boolean"},"refresh_token_rotation_enabled":{"type":"boolean"},"password_hibp_enabled":{"type":"boolean"},"password_min_length":{"type":"number","minimum":6,"maximum":32767},"password_required_characters":{"type":"string","enum":["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789","abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~",""]},"security_manual_linking_enabled":{"type":"boolean"},"security_update_password_require_reauthentication":{"type":"boolean"},"security_refresh_token_reuse_interval":{"type":"number","minimum":0,"maximum":2147483647},"mailer_otp_exp":{"type":"number","minimum":0,"maximum":2147483647},"mailer_otp_length":{"type":"number","minimum":6,"maximum":10},"sms_autoconfirm":{"type":"boolean"},"sms_max_frequency":{"type":"number","minimum":0,"maximum":32767},"sms_otp_exp":{"type":"number","minimum":0,"maximum":2147483647},"sms_otp_length":{"type":"number","minimum":0,"maximum":32767},"sms_provider":{"type":"string"},"sms_messagebird_access_key":{"type":"string"},"sms_messagebird_originator":{"type":"string"},"sms_test_otp":{"type":"string","pattern":"/^([0-9]{1,15}=[0-9]+,?)*$/"},"sms_test_otp_valid_until":{"type":"string"},"sms_textlocal_api_key":{"type":"string"},"sms_textlocal_sender":{"type":"string"},"sms_twilio_account_sid":{"type":"string"},"sms_twilio_auth_token":{"type":"string"},"sms_twilio_content_sid":{"type":"string"},"sms_twilio_message_service_sid":{"type":"string"},"sms_twilio_verify_account_sid":{"type":"string"},"sms_twilio_verify_auth_token":{"type":"string"},"sms_twilio_verify_message_service_sid":{"type":"string"},"sms_vonage_api_key":{"type":"string"},"sms_vonage_api_secret":{"type":"string"},"sms_vonage_from":{"type":"string"},"sms_template":{"type":"string"},"hook_mfa_verification_attempt_enabled":{"type":"boolean"},"hook_mfa_verification_attempt_uri":{"type":"string"},"hook_mfa_verification_attempt_secrets":{"type":"string"},"hook_password_verification_attempt_enabled":{"type":"boolean"},"hook_password_verification_attempt_uri":{"type":"string"},"hook_password_verification_attempt_secrets":{"type":"string"},"hook_custom_access_token_enabled":{"type":"boolean"},"hook_custom_access_token_uri":{"type":"string"},"hook_custom_access_token_secrets":{"type":"string"},"hook_send_sms_enabled":{"type":"boolean"},"hook_send_sms_uri":{"type":"string"},"hook_send_sms_secrets":{"type":"string"},"hook_send_email_enabled":{"type":"boolean"},"hook_send_email_uri":{"type":"string"},"hook_send_email_secrets":{"type":"string"},"external_apple_enabled":{"type":"boolean"},"external_apple_client_id":{"type":"string"},"external_apple_secret":{"type":"string"},"external_apple_additional_client_ids":{"type":"string"},"external_azure_enabled":{"type":"boolean"},"external_azure_client_id":{"type":"string"},"external_azure_secret":{"type":"string"},"external_azure_url":{"type":"string"},"external_bitbucket_enabled":{"type":"boolean"},"external_bitbucket_client_id":{"type":"string"},"external_bitbucket_secret":{"type":"string"},"external_discord_enabled":{"type":"boolean"},"external_discord_client_id":{"type":"string"},"external_discord_secret":{"type":"string"},"external_facebook_enabled":{"type":"boolean"},"external_facebook_client_id":{"type":"string"},"external_facebook_secret":{"type":"string"},"external_figma_enabled":{"type":"boolean"},"external_figma_client_id":{"type":"string"},"external_figma_secret":{"type":"string"},"external_github_enabled":{"type":"boolean"},"external_github_client_id":{"type":"string"},"external_github_secret":{"type":"string"},"external_gitlab_enabled":{"type":"boolean"},"external_gitlab_client_id":{"type":"string"},"external_gitlab_secret":{"type":"string"},"external_gitlab_url":{"type":"string"},"external_google_enabled":{"type":"boolean"},"external_google_client_id":{"type":"string"},"external_google_secret":{"type":"string"},"external_google_additional_client_ids":{"type":"string"},"external_google_skip_nonce_check":{"type":"boolean"},"external_kakao_enabled":{"type":"boolean"},"external_kakao_client_id":{"type":"string"},"external_kakao_secret":{"type":"string"},"external_keycloak_enabled":{"type":"boolean"},"external_keycloak_client_id":{"type":"string"},"external_keycloak_secret":{"type":"string"},"external_keycloak_url":{"type":"string"},"external_linkedin_oidc_enabled":{"type":"boolean"},"external_linkedin_oidc_client_id":{"type":"string"},"external_linkedin_oidc_secret":{"type":"string"},"external_slack_oidc_enabled":{"type":"boolean"},"external_slack_oidc_client_id":{"type":"string"},"external_slack_oidc_secret":{"type":"string"},"external_notion_enabled":{"type":"boolean"},"external_notion_client_id":{"type":"string"},"external_notion_secret":{"type":"string"},"external_slack_enabled":{"type":"boolean"},"external_slack_client_id":{"type":"string"},"external_slack_secret":{"type":"string"},"external_spotify_enabled":{"type":"boolean"},"external_spotify_client_id":{"type":"string"},"external_spotify_secret":{"type":"string"},"external_twitch_enabled":{"type":"boolean"},"external_twitch_client_id":{"type":"string"},"external_twitch_secret":{"type":"string"},"external_twitter_enabled":{"type":"boolean"},"external_twitter_client_id":{"type":"string"},"external_twitter_secret":{"type":"string"},"external_workos_enabled":{"type":"boolean"},"external_workos_client_id":{"type":"string"},"external_workos_secret":{"type":"string"},"external_workos_url":{"type":"string"},"external_zoom_enabled":{"type":"boolean"},"external_zoom_client_id":{"type":"string"},"external_zoom_secret":{"type":"string"},"db_max_pool_size":{"type":"number"},"api_max_request_duration":{"type":"number"}}},"CreateThirdPartyAuthBody":{"type":"object","properties":{"oidc_issuer_url":{"type":"string"},"jwks_url":{"type":"string"},"custom_jwks":{"type":"object"}}},"ThirdPartyAuth":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"oidc_issuer_url":{"type":"string","nullable":true},"jwks_url":{"type":"string","nullable":true},"custom_jwks":{"type":"object","nullable":true},"resolved_jwks":{"type":"object","nullable":true},"inserted_at":{"type":"string"},"updated_at":{"type":"string"},"resolved_at":{"type":"string","nullable":true}},"required":["id","type","inserted_at","updated_at"]},"V1RunQueryBody":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]},"V1CreateFunctionBody":{"type":"object","properties":{"slug":{"type":"string","pattern":"/^[A-Za-z0-9_-]+$/"},"name":{"type":"string"},"body":{"type":"string"},"verify_jwt":{"type":"boolean"}},"required":["slug","name","body"]},"FunctionResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"enum":["ACTIVE","REMOVED","THROTTLED"],"type":"string"},"version":{"type":"number"},"created_at":{"type":"number"},"updated_at":{"type":"number"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]},"FunctionSlugResponse":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"status":{"enum":["ACTIVE","REMOVED","THROTTLED"],"type":"string"},"version":{"type":"number"},"created_at":{"type":"number"},"updated_at":{"type":"number"},"verify_jwt":{"type":"boolean"},"import_map":{"type":"boolean"},"entrypoint_path":{"type":"string"},"import_map_path":{"type":"string"}},"required":["id","slug","name","status","version","created_at","updated_at"]},"V1UpdateFunctionBody":{"type":"object","properties":{"name":{"type":"string"},"body":{"type":"string"},"verify_jwt":{"type":"boolean"}}},"V1StorageBucketResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"owner":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"public":{"type":"boolean"}},"required":["id","name","owner","created_at","updated_at","public"]},"AttributeValue":{"type":"object","properties":{"default":{"oneOf":[{"type":"object"},{"type":"number"},{"type":"string"},{"type":"boolean"}]},"name":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"array":{"type":"boolean"}}},"AttributeMapping":{"type":"object","properties":{"keys":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AttributeValue"}}},"required":["keys"]},"CreateProviderBody":{"type":"object","properties":{"type":{"type":"string","enum":["saml"],"description":"What type of provider will be created"},"metadata_xml":{"type":"string"},"metadata_url":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"attribute_mapping":{"$ref":"#/components/schemas/AttributeMapping"}},"required":["type"]},"SamlDescriptor":{"type":"object","properties":{"id":{"type":"string"},"entity_id":{"type":"string"},"metadata_url":{"type":"string"},"metadata_xml":{"type":"string"},"attribute_mapping":{"$ref":"#/components/schemas/AttributeMapping"}},"required":["id","entity_id"]},"Domain":{"type":"object","properties":{"id":{"type":"string"},"domain":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"CreateProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"Provider":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"ListProvidersResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}}},"required":["items"]},"GetProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"UpdateProviderBody":{"type":"object","properties":{"metadata_xml":{"type":"string"},"metadata_url":{"type":"string"},"domains":{"type":"array","items":{"type":"string"}},"attribute_mapping":{"$ref":"#/components/schemas/AttributeMapping"}}},"UpdateProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"DeleteProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"saml":{"$ref":"#/components/schemas/SamlDescriptor"},"domains":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id"]},"V1Backup":{"type":"object","properties":{"status":{"type":"string","enum":["COMPLETED","FAILED","PENDING","REMOVED","ARCHIVED","CANCELLED"]},"is_physical_backup":{"type":"boolean"},"inserted_at":{"type":"string"}},"required":["status","is_physical_backup","inserted_at"]},"V1PhysicalBackup":{"type":"object","properties":{"earliest_physical_backup_date_unix":{"type":"number"},"latest_physical_backup_date_unix":{"type":"number"}}},"V1BackupsResponse":{"type":"object","properties":{"region":{"type":"string"},"walg_enabled":{"type":"boolean"},"pitr_enabled":{"type":"boolean"},"backups":{"type":"array","items":{"$ref":"#/components/schemas/V1Backup"}},"physical_backup_data":{"$ref":"#/components/schemas/V1PhysicalBackup"}},"required":["region","walg_enabled","pitr_enabled","backups","physical_backup_data"]},"V1RestorePitrBody":{"type":"object","properties":{"recovery_time_target_unix":{"type":"number"}},"required":["recovery_time_target_unix"]},"V1OrganizationMemberResponse":{"type":"object","properties":{"user_id":{"type":"string"},"user_name":{"type":"string"},"email":{"type":"string"},"role_name":{"type":"string"},"mfa_enabled":{"type":"boolean"}},"required":["user_id","user_name","role_name","mfa_enabled"]},"BillingPlanId":{"type":"string","enum":["free","pro","team","enterprise"]},"V1OrganizationSlugResponse":{"type":"object","properties":{"plan":{"$ref":"#/components/schemas/BillingPlanId"},"opt_in_tags":{"type":"array","items":{"type":"string","enum":["AI_SQL_GENERATOR_OPT_IN"]}},"id":{"type":"string"},"name":{"type":"string"}},"required":["opt_in_tags","id","name"]}}}} +{ + "openapi": "3.0.0", + "paths": { + "/v1/branches/{branch_id}": { + "get": { + "operationId": "v1-get-a-branch-config", + "summary": "Get database branch config", + "description": "Fetches configurations of the specified database branch", + "parameters": [ + { + "name": "branch_id", + "required": true, + "in": "path", + "description": "Branch ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchDetailResponse" + } + } + } + }, + "500": { + "description": "Failed to retrieve database branch" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "patch": { + "operationId": "v1-update-a-branch-config", + "summary": "Update database branch config", + "description": "Updates the configuration of the specified database branch", + "parameters": [ + { + "name": "branch_id", + "required": true, + "in": "path", + "description": "Branch ID", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateBranchBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchResponse" + } + } + } + }, + "500": { + "description": "Failed to update database branch" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-delete-a-branch", + "summary": "Delete a database branch", + "description": "Deletes the specified database branch", + "parameters": [ + { + "name": "branch_id", + "required": true, + "in": "path", + "description": "Branch ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchDeleteResponse" + } + } + } + }, + "500": { + "description": "Failed to delete database branch" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/branches/{branch_id}/reset": { + "post": { + "operationId": "v1-reset-a-branch", + "summary": "Resets a database branch", + "description": "Resets the specified database branch", + "parameters": [ + { + "name": "branch_id", + "required": true, + "in": "path", + "description": "Branch ID", + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchResetResponse" + } + } + } + }, + "500": { + "description": "Failed to reset database branch" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects": { + "get": { + "operationId": "v1-list-all-projects", + "summary": "List all projects", + "description": "Returns a list of all projects you've previously created.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/V1ProjectResponse" + } + } + } + } + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "post": { + "operationId": "v1-create-a-project", + "summary": "Create a project", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1CreateProjectBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1ProjectResponse" + } + } + } + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/organizations": { + "get": { + "operationId": "v1-list-all-organizations", + "summary": "List all organizations", + "description": "Returns a list of organizations that you currently belong to.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationResponseV1" + } + } + } + } + }, + "500": { + "description": "Unexpected error listing organizations" + } + }, + "tags": [ + "Organizations" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "post": { + "operationId": "v1-create-an-organization", + "summary": "Create an organization", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrganizationBodyV1" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationResponseV1" + } + } + } + }, + "500": { + "description": "Unexpected error creating an organization" + } + }, + "tags": [ + "Organizations" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/oauth/authorize": { + "get": { + "operationId": "v1-authorize-user", + "summary": "[Beta] Authorize user through oauth", + "parameters": [ + { + "name": "client_id", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "response_type", + "required": true, + "in": "query", + "schema": { + "enum": [ + "code", + "token", + "id_token token" + ], + "type": "string" + } + }, + { + "name": "redirect_uri", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "scope", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "state", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "response_mode", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "code_challenge", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "code_challenge_method", + "required": false, + "in": "query", + "schema": { + "enum": [ + "plain", + "sha256", + "S256" + ], + "type": "string" + } + } + ], + "responses": { + "303": { + "description": "" + } + }, + "tags": [ + "OAuth" + ], + "security": [ + { + "oauth2": [ + "read" + ] + } + ] + } + }, + "/v1/oauth/token": { + "post": { + "operationId": "v1-exchange-oauth-token", + "summary": "[Beta] Exchange auth code for user's access and refresh token", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/OAuthTokenBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OAuthTokenResponse" + } + } + } + } + }, + "tags": [ + "OAuth" + ], + "security": [ + { + "oauth2": [ + "write" + ] + } + ] + } + }, + "/v1/snippets": { + "get": { + "operationId": "v1-list-all-snippets", + "summary": "Lists SQL snippets for the logged in user", + "parameters": [ + { + "name": "project_ref", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetList" + } + } + } + }, + "500": { + "description": "Failed to list user's SQL snippets" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/snippets/{id}": { + "get": { + "operationId": "v1-get-a-snippet", + "summary": "Gets a specific SQL snippet", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SnippetResponse" + } + } + } + }, + "500": { + "description": "Failed to retrieve SQL snippet" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/api-keys": { + "get": { + "operationId": "v1-get-project-api-keys", + "summary": "Get project api keys", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiKeyResponse" + } + } + } + } + }, + "403": { + "description": "" + } + }, + "tags": [ + "Secrets" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/branches": { + "get": { + "operationId": "v1-list-all-branches", + "summary": "List all database branches", + "description": "Returns all database branches of the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BranchResponse" + } + } + } + } + }, + "500": { + "description": "Failed to retrieve database branches" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "post": { + "operationId": "v1-create-a-branch", + "summary": "Create a database branch", + "description": "Creates a database branch from the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBranchBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchResponse" + } + } + } + }, + "500": { + "description": "Failed to create database branch" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-disable-preview-branching", + "summary": "Disables preview branching", + "description": "Disables preview branching for the specified project", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "500": { + "description": "Failed to disable preview branching" + } + }, + "tags": [ + "Environments" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/custom-hostname": { + "get": { + "operationId": "v1-get-hostname-config", + "summary": "[Beta] Gets project's custom hostname config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCustomHostnameResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's custom hostname config" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-Delete hostname config", + "summary": "[Beta] Deletes a project's custom hostname configuration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to delete project custom hostname configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/custom-hostname/initialize": { + "post": { + "operationId": "v1-update-hostname-config", + "summary": "[Beta] Updates project's custom hostname configuration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCustomHostnameBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCustomHostnameResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project custom hostname configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/custom-hostname/reverify": { + "post": { + "operationId": "v1-verify-dns-config", + "summary": "[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCustomHostnameResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to verify project custom hostname configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/custom-hostname/activate": { + "post": { + "operationId": "v1-activate-custom-hostname", + "summary": "[Beta] Activates a custom hostname for a project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCustomHostnameResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to activate project custom hostname configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/network-bans/retrieve": { + "post": { + "operationId": "v1-list-all-network-bans", + "summary": "[Beta] Gets project's network bans", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkBanResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's network bans" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/network-bans": { + "delete": { + "operationId": "v1-delete-network-bans", + "summary": "[Beta] Remove network bans.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveNetworkBanRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to remove network bans." + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/network-restrictions": { + "get": { + "operationId": "v1-get-network-restrictions", + "summary": "[Beta] Gets project's network restrictions", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkRestrictionsResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's network restrictions" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/network-restrictions/apply": { + "post": { + "operationId": "v1-update-network-restrictions", + "summary": "[Beta] Updates project's network restrictions", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkRestrictionsRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NetworkRestrictionsResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project network restrictions" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/pgsodium": { + "get": { + "operationId": "v1-get-pgsodium-config", + "summary": "[Beta] Gets project's pgsodium config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PgsodiumConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's pgsodium config" + } + }, + "tags": [ + "Secrets" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "put": { + "operationId": "v1-update-pgsodium-config", + "summary": "[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePgsodiumConfigBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PgsodiumConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project's pgsodium config" + } + }, + "tags": [ + "Secrets" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/postgrest": { + "get": { + "operationId": "v1-get-postgrest-service-config", + "summary": "Gets project's postgrest config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PostgrestConfigWithJWTSecretResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's postgrest config" + } + }, + "tags": [ + "Rest" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "patch": { + "operationId": "v1-update-postgrest-service-config", + "summary": "Updates project's postgrest config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePostgrestConfigBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1PostgrestConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project's postgrest config" + } + }, + "tags": [ + "Rest" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}": { + "delete": { + "operationId": "v1-delete-a-project", + "summary": "Deletes the given project", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1ProjectRefResponse" + } + } + } + }, + "403": { + "description": "" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/secrets": { + "get": { + "operationId": "v1-list-all-secrets", + "summary": "List all secrets", + "description": "Returns all secrets you've previously added to the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SecretResponse" + } + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's secrets" + } + }, + "tags": [ + "Secrets" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "post": { + "operationId": "v1-bulk-create-secrets", + "summary": "Bulk create secrets", + "description": "Creates multiple secrets and adds them to the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateSecretBody" + } + } + } + } + }, + "responses": { + "201": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to create project's secrets" + } + }, + "tags": [ + "Secrets" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-bulk-delete-secrets", + "summary": "Bulk delete secrets", + "description": "Deletes all secrets with the given names from the specified project", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to delete secrets with given names" + } + }, + "tags": [ + "Secrets" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/ssl-enforcement": { + "get": { + "operationId": "v1-get-ssl-enforcement-config", + "summary": "[Beta] Get project's SSL enforcement configuration.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SslEnforcementResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's SSL enforcement config" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "put": { + "operationId": "v1-update-ssl-enforcement-config", + "summary": "[Beta] Update project's SSL enforcement configuration.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SslEnforcementRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SslEnforcementResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project's SSL enforcement configuration." + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/types/typescript": { + "get": { + "operationId": "v1-generate-typescript-types", + "summary": "Generate TypeScript types", + "description": "Returns the TypeScript types of your schema for use with supabase-js.", + "parameters": [ + { + "name": "included_schemas", + "required": false, + "in": "query", + "schema": { + "default": "public", + "type": "string" + } + }, + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TypescriptResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to generate TypeScript types" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/vanity-subdomain": { + "get": { + "operationId": "v1-get-vanity-subdomain-config", + "summary": "[Beta] Gets current vanity subdomain config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VanitySubdomainConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to get project vanity subdomain configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-deactivate-vanity-subdomain-config", + "summary": "[Beta] Deletes a project's vanity subdomain configuration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to delete project vanity subdomain configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/vanity-subdomain/check-availability": { + "post": { + "operationId": "v1-check-vanity-subdomain-availability", + "summary": "[Beta] Checks vanity subdomain availability", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VanitySubdomainBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubdomainAvailabilityResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to check project vanity subdomain configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/vanity-subdomain/activate": { + "post": { + "operationId": "v1-activate-vanity-subdomain-config", + "summary": "[Beta] Activates a vanity subdomain for a project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VanitySubdomainBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivateVanitySubdomainResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to activate project vanity subdomain configuration" + } + }, + "tags": [ + "Domains" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/upgrade": { + "post": { + "operationId": "v1-upgrade-postgres-version", + "summary": "[Beta] Upgrades the project's Postgres version", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpgradeDatabaseBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectUpgradeInitiateResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to initiate project upgrade" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/upgrade/eligibility": { + "get": { + "operationId": "v1-get-postgrest-upgrade-eligibility", + "summary": "[Beta] Returns the project's eligibility for upgrades", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectUpgradeEligibilityResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to determine project upgrade eligibility" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/upgrade/status": { + "get": { + "operationId": "v1-get-postgrest-upgrade-status", + "summary": "[Beta] Gets the latest status of the project's upgrade", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DatabaseUpgradeStatusResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project upgrade status" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/readonly": { + "get": { + "operationId": "v1-get-readonly-mode-status", + "summary": "Returns project's readonly mode status", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReadOnlyStatusResponse" + } + } + } + }, + "500": { + "description": "Failed to get project readonly mode status" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/readonly/temporary-disable": { + "post": { + "operationId": "v1-disable-readonly-mode-temporarily", + "summary": "Disables project's readonly mode for the next 15 minutes", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "" + }, + "500": { + "description": "Failed to disable project's readonly mode" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/read-replicas/setup": { + "post": { + "operationId": "v1-setup-a-read-replica", + "summary": "[Beta] Set up a read replica", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetUpReadReplicaBody" + } + } + } + }, + "responses": { + "201": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to set up read replica" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/read-replicas/remove": { + "post": { + "operationId": "v1-remove-a-read-replica", + "summary": "[Beta] Remove a read replica", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveReadReplicaBody" + } + } + } + }, + "responses": { + "201": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to remove read replica" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/health": { + "get": { + "operationId": "v1-get-services-health", + "summary": "Gets project's service health status", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "timeout_ms", + "required": false, + "in": "query", + "schema": { + "minimum": 0, + "maximum": 10000, + "type": "integer" + } + }, + { + "name": "services", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "auth", + "db", + "pooler", + "realtime", + "rest", + "storage" + ] + } + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/V1ServiceHealthResponse" + } + } + } + } + }, + "500": { + "description": "Failed to retrieve project's service health status" + } + }, + "tags": [ + "Projects" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/database/postgres": { + "get": { + "operationId": "v1-get-postgres-config", + "summary": "Gets project's Postgres config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PostgresConfigResponse" + } + } + } + }, + "500": { + "description": "Failed to retrieve project's Postgres config" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "put": { + "operationId": "v1-update-postgres-config", + "summary": "Updates project's Postgres config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePostgresConfigBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PostgresConfigResponse" + } + } + } + }, + "500": { + "description": "Failed to update project's Postgres config" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/database/pgbouncer": { + "get": { + "operationId": "v1-get-project-pgbouncer-config", + "summary": "Get project's pgbouncer config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1PgbouncerConfigResponse" + } + } + } + }, + "500": { + "description": "Failed to retrieve project's pgbouncer config" + } + }, + "tags": [ + "Database" + ] + } + }, + "/v1/projects/{ref}/config/database/pooler": { + "get": { + "operationId": "v1-get-supavisor-config", + "summary": "Gets project's supavisor config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SupavisorConfigResponse" + } + } + } + } + }, + "500": { + "description": "Failed to retrieve project's supavisor config" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "patch": { + "operationId": "v1-update-supavisor-config", + "summary": "Updates project's supavisor config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSupavisorConfigBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSupavisorConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project's supavisor config" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/auth": { + "get": { + "operationId": "v1-get-auth-service-config", + "summary": "Gets project's auth config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's auth config" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "patch": { + "operationId": "v1-update-auth-service-config", + "summary": "Updates a project's auth config", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateAuthConfigBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthConfigResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update project's auth config" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/auth/third-party-auth": { + "post": { + "operationId": "createTPAForProject", + "summary": "Creates a new third-party auth integration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateThirdPartyAuthBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThirdPartyAuth" + } + } + } + }, + "403": { + "description": "" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "get": { + "operationId": "listTPAForProject", + "summary": "[Alpha] Lists all third-party auth integrations", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ThirdPartyAuth" + } + } + } + } + }, + "403": { + "description": "" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}": { + "delete": { + "operationId": "deleteTPAForProject", + "summary": "[Alpha] Removes a third-party auth integration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "tpa_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThirdPartyAuth" + } + } + } + }, + "403": { + "description": "" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "get": { + "operationId": "getTPAForProject", + "summary": "[Alpha] Get a third-party integration", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "tpa_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThirdPartyAuth" + } + } + } + }, + "403": { + "description": "" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/database/query": { + "post": { + "operationId": "v1-run-a-query", + "summary": "[Beta] Run sql query", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1RunQueryBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to run sql query" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/database/webhooks/enable": { + "post": { + "operationId": "v1-enable-database-webhook", + "summary": "[Beta] Enables Database Webhooks on the project", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to enable Database Webhooks on the project" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/functions": { + "post": { + "operationId": "createFunction", + "summary": "Create a function", + "description": "Creates a function and adds it to the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "slug", + "required": false, + "in": "query", + "schema": { + "pattern": "/^[A-Za-z0-9_-]+$/", + "type": "string" + } + }, + { + "name": "name", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "verify_jwt", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "import_map", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "entrypoint_path", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "import_map_path", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1CreateFunctionBody" + } + }, + "application/vnd.denoland.eszip": { + "schema": { + "$ref": "#/components/schemas/V1CreateFunctionBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to create project's function" + } + }, + "tags": [ + "Edge Functions" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "get": { + "operationId": "v1-list-all-functions", + "summary": "List all functions", + "description": "Returns all functions you've previously added to the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve project's functions" + } + }, + "tags": [ + "Edge Functions" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/functions/{function_slug}": { + "get": { + "operationId": "v1-get-a-function", + "summary": "Retrieve a function", + "description": "Retrieves a function with the specified slug and project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "function_slug", + "required": true, + "in": "path", + "description": "Function slug", + "schema": { + "pattern": "/^[A-Za-z0-9_-]+$/", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionSlugResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve function with given slug" + } + }, + "tags": [ + "Edge Functions" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "patch": { + "operationId": "v1-update-a-function", + "summary": "Update a function", + "description": "Updates a function with the specified slug and project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "function_slug", + "required": true, + "in": "path", + "description": "Function slug", + "schema": { + "pattern": "/^[A-Za-z0-9_-]+$/", + "type": "string" + } + }, + { + "name": "slug", + "required": false, + "in": "query", + "schema": { + "pattern": "/^[A-Za-z0-9_-]+$/", + "type": "string" + } + }, + { + "name": "name", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "verify_jwt", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "import_map", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "entrypoint_path", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "import_map_path", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1UpdateFunctionBody" + } + }, + "application/vnd.denoland.eszip": { + "schema": { + "$ref": "#/components/schemas/V1UpdateFunctionBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FunctionResponse" + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to update function with given slug" + } + }, + "tags": [ + "Edge Functions" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-delete-a-function", + "summary": "Delete a function", + "description": "Deletes a function with the specified slug from the specified project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "function_slug", + "required": true, + "in": "path", + "description": "Function slug", + "schema": { + "pattern": "/^[A-Za-z0-9_-]+$/", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to delete function with given slug" + } + }, + "tags": [ + "Edge Functions" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/functions/{function_slug}/body": { + "get": { + "operationId": "v1-get-a-function-body", + "summary": "Retrieve a function body", + "description": "Retrieves a function body for the specified slug and project.", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "function_slug", + "required": true, + "in": "path", + "description": "Function slug", + "schema": { + "pattern": "/^[A-Za-z0-9_-]+$/", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to retrieve function body with given slug" + } + }, + "tags": [ + "Edge Functions" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/storage/buckets": { + "get": { + "operationId": "v1-list-all-buckets", + "summary": "Lists all buckets", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/V1StorageBucketResponse" + } + } + } + } + }, + "403": { + "description": "" + }, + "500": { + "description": "Failed to get list of buckets" + } + }, + "tags": [ + "Storage" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/auth/sso/providers": { + "post": { + "operationId": "v1-create-a-sso-provider", + "summary": "Creates a new SSO provider", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProviderBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProviderResponse" + } + } + } + }, + "403": { + "description": "" + }, + "404": { + "description": "SAML 2.0 support is not enabled for this project" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "get": { + "operationId": "v1-list-all-sso-provider", + "summary": "Lists all SSO providers", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListProvidersResponse" + } + } + } + }, + "403": { + "description": "" + }, + "404": { + "description": "SAML 2.0 support is not enabled for this project" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/config/auth/sso/providers/{provider_id}": { + "get": { + "operationId": "v1-get-a-sso-provider", + "summary": "Gets a SSO provider by its UUID", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "provider_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetProviderResponse" + } + } + } + }, + "403": { + "description": "" + }, + "404": { + "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "put": { + "operationId": "v1-update-a-sso-provider", + "summary": "Updates a SSO provider by its UUID", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "provider_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateProviderBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateProviderResponse" + } + } + } + }, + "403": { + "description": "" + }, + "404": { + "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + }, + "delete": { + "operationId": "v1-delete-a-sso-provider", + "summary": "Removes a SSO provider by its UUID", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + }, + { + "name": "provider_id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteProviderResponse" + } + } + } + }, + "403": { + "description": "" + }, + "404": { + "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" + } + }, + "tags": [ + "Auth" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/database/backups": { + "get": { + "operationId": "v1-list-all-backups", + "summary": "Lists all backups", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1BackupsResponse" + } + } + } + }, + "500": { + "description": "Failed to get backups" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/projects/{ref}/database/backups/restore-pitr": { + "post": { + "operationId": "v1-restore-pitr-backup", + "summary": "Restores a PITR backup for a database", + "parameters": [ + { + "name": "ref", + "required": true, + "in": "path", + "description": "Project ref", + "schema": { + "minLength": 20, + "maxLength": 20, + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1RestorePitrBody" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "Database" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/organizations/{slug}/members": { + "get": { + "operationId": "v1-list-organization-members", + "summary": "List members of an organization", + "parameters": [ + { + "name": "slug", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/V1OrganizationMemberResponse" + } + } + } + } + } + }, + "tags": [ + "Organizations" + ], + "security": [ + { + "bearer": [] + } + ] + } + }, + "/v1/organizations/{slug}": { + "get": { + "operationId": "v1-get-an-organization", + "summary": "Gets information about the organization", + "parameters": [ + { + "name": "slug", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/V1OrganizationSlugResponse" + } + } + } + } + }, + "tags": [ + "Organizations" + ], + "security": [ + { + "bearer": [] + } + ] + } + } + }, + "info": { + "title": "Supabase API (v1)", + "description": "Supabase API generated from the OpenAPI specification.\nVisit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.", + "version": "1.0.0", + "contact": {} + }, + "tags": [ + { + "name": "Auth", + "description": "Auth related endpoints" + }, + { + "name": "Database", + "description": "Database related endpoints" + }, + { + "name": "Domains", + "description": "Domains related endpoints" + }, + { + "name": "Edge Functions", + "description": "Edge related endpoints" + }, + { + "name": "Environments", + "description": "Environments related endpoints" + }, + { + "name": "OAuth", + "description": "OAuth related endpoints" + }, + { + "name": "Organizations", + "description": "Organizations related endpoints" + }, + { + "name": "Projects", + "description": "Projects related endpoints" + }, + { + "name": "Rest", + "description": "Rest related endpoints" + }, + { + "name": "Secrets", + "description": "Secrets related endpoints" + }, + { + "name": "Storage", + "description": "Storage related endpoints" + } + ], + "servers": [], + "components": { + "securitySchemes": { + "bearerAuth": { + "scheme": "bearer", + "bearerFormat": "JWT", + "type": "http", + "description": "API Key Authentication with a Bearer token. Copy your API Key from Supabase here. (e.g. 'eyJhbGciO...'" + } + }, + "schemas": { + "BranchDetailResponse": { + "type": "object", + "properties": { + "db_port": { + "type": "integer" + }, + "ref": { + "type": "string" + }, + "postgres_version": { + "type": "string" + }, + "status": { + "enum": [ + "ACTIVE_HEALTHY", + "ACTIVE_UNHEALTHY", + "COMING_UP", + "GOING_DOWN", + "INACTIVE", + "INIT_FAILED", + "REMOVED", + "RESTARTING", + "UNKNOWN", + "UPGRADING", + "PAUSING", + "RESTORING", + "RESTORE_FAILED", + "PAUSE_FAILED" + ], + "type": "string" + }, + "db_host": { + "type": "string" + }, + "db_user": { + "type": "string" + }, + "db_pass": { + "type": "string" + }, + "jwt_secret": { + "type": "string" + } + }, + "required": [ + "db_port", + "ref", + "postgres_version", + "status", + "db_host" + ] + }, + "UpdateBranchBody": { + "type": "object", + "properties": { + "branch_name": { + "type": "string" + }, + "git_branch": { + "type": "string" + }, + "reset_on_push": { + "type": "boolean" + }, + "persistent": { + "type": "boolean" + } + } + }, + "BranchResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "project_ref": { + "type": "string" + }, + "parent_project_ref": { + "type": "string" + }, + "is_default": { + "type": "boolean" + }, + "git_branch": { + "type": "string" + }, + "pr_number": { + "type": "number" + }, + "latest_check_run_id": { + "type": "number" + }, + "reset_on_push": { + "type": "boolean" + }, + "persistent": { + "type": "boolean" + }, + "status": { + "enum": [ + "CREATING_PROJECT", + "RUNNING_MIGRATIONS", + "MIGRATIONS_PASSED", + "MIGRATIONS_FAILED", + "FUNCTIONS_DEPLOYED", + "FUNCTIONS_FAILED" + ], + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "project_ref", + "parent_project_ref", + "is_default", + "reset_on_push", + "persistent", + "status", + "created_at", + "updated_at" + ] + }, + "BranchDeleteResponse": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "BranchResetResponse": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "V1DatabaseResponse": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "Database host" + }, + "version": { + "type": "string", + "description": "Database version" + } + }, + "required": [ + "host", + "version" + ] + }, + "V1ProjectResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id of your project" + }, + "organization_id": { + "type": "string", + "description": "Slug of your organization" + }, + "name": { + "type": "string", + "description": "Name of your project" + }, + "region": { + "type": "string", + "description": "Region of your project", + "example": "us-east-1" + }, + "created_at": { + "type": "string", + "description": "Creation timestamp", + "example": "2023-03-29T16:32:59Z" + }, + "database": { + "$ref": "#/components/schemas/V1DatabaseResponse" + }, + "status": { + "enum": [ + "ACTIVE_HEALTHY", + "ACTIVE_UNHEALTHY", + "COMING_UP", + "GOING_DOWN", + "INACTIVE", + "INIT_FAILED", + "REMOVED", + "RESTARTING", + "UNKNOWN", + "UPGRADING", + "PAUSING", + "RESTORING", + "RESTORE_FAILED", + "PAUSE_FAILED" + ], + "type": "string" + } + }, + "required": [ + "id", + "organization_id", + "name", + "region", + "created_at", + "status" + ] + }, + "DesiredInstanceSize": { + "type": "string", + "enum": [ + "micro", + "small", + "medium", + "large", + "xlarge", + "2xlarge", + "4xlarge", + "8xlarge", + "12xlarge", + "16xlarge" + ] + }, + "V1CreateProjectBody": { + "type": "object", + "properties": { + "db_pass": { + "type": "string", + "description": "Database password" + }, + "name": { + "type": "string", + "description": "Name of your project, should not contain dots" + }, + "organization_id": { + "type": "string", + "description": "Slug of your organization" + }, + "plan": { + "type": "string", + "enum": [ + "free", + "pro" + ], + "description": "Subscription Plan is now set on organization level and is ignored in this request", + "example": "free", + "deprecated": true + }, + "region": { + "type": "string", + "enum": [ + "us-east-1", + "us-west-1", + "us-west-2", + "ap-east-1", + "ap-southeast-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-southeast-2", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "eu-central-1", + "ca-central-1", + "ap-south-1", + "sa-east-1" + ], + "description": "Region you want your server to reside in", + "example": "us-east-1" + }, + "kps_enabled": { + "type": "boolean", + "deprecated": true, + "description": "This field is deprecated and is ignored in this request" + }, + "desired_instance_size": { + "$ref": "#/components/schemas/DesiredInstanceSize" + }, + "template_url": { + "type": "string", + "description": "Template URL used to create the project from the CLI.", + "example": "https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone" + } + }, + "required": [ + "db_pass", + "name", + "organization_id", + "region" + ] + }, + "OrganizationResponseV1": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name" + ] + }, + "CreateOrganizationBodyV1": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + }, + "OAuthTokenBody": { + "type": "object", + "properties": { + "grant_type": { + "enum": [ + "authorization_code", + "refresh_token" + ], + "type": "string" + }, + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + }, + "code": { + "type": "string" + }, + "code_verifier": { + "type": "string" + }, + "redirect_uri": { + "type": "string" + }, + "refresh_token": { + "type": "string" + } + }, + "required": [ + "grant_type", + "client_id", + "client_secret" + ] + }, + "OAuthTokenResponse": { + "type": "object", + "properties": { + "token_type": { + "type": "string", + "enum": [ + "Bearer" + ] + }, + "access_token": { + "type": "string" + }, + "refresh_token": { + "type": "string" + }, + "expires_in": { + "type": "number" + } + }, + "required": [ + "token_type", + "access_token", + "refresh_token", + "expires_in" + ] + }, + "SnippetProject": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name" + ] + }, + "SnippetUser": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "username": { + "type": "string" + } + }, + "required": [ + "id", + "username" + ] + }, + "SnippetMeta": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "inserted_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sql" + ] + }, + "visibility": { + "type": "string", + "enum": [ + "user", + "project", + "org", + "public" + ] + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "project": { + "$ref": "#/components/schemas/SnippetProject" + }, + "owner": { + "$ref": "#/components/schemas/SnippetUser" + }, + "updated_by": { + "$ref": "#/components/schemas/SnippetUser" + } + }, + "required": [ + "id", + "inserted_at", + "updated_at", + "type", + "visibility", + "name", + "project", + "owner", + "updated_by" + ] + }, + "SnippetList": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SnippetMeta" + } + } + }, + "required": [ + "data" + ] + }, + "SnippetContent": { + "type": "object", + "properties": { + "favorite": { + "type": "boolean" + }, + "schema_version": { + "type": "string" + }, + "sql": { + "type": "string" + } + }, + "required": [ + "favorite", + "schema_version", + "sql" + ] + }, + "SnippetResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "inserted_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sql" + ] + }, + "visibility": { + "enum": [ + "user", + "project", + "org", + "public" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "project": { + "$ref": "#/components/schemas/SnippetProject" + }, + "owner": { + "$ref": "#/components/schemas/SnippetUser" + }, + "updated_by": { + "$ref": "#/components/schemas/SnippetUser" + }, + "content": { + "$ref": "#/components/schemas/SnippetContent" + } + }, + "required": [ + "id", + "inserted_at", + "updated_at", + "type", + "visibility", + "name", + "project", + "owner", + "updated_by", + "content" + ] + }, + "ApiKeyResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "api_key": { + "type": "string" + } + }, + "required": [ + "name", + "api_key" + ] + }, + "CreateBranchBody": { + "type": "object", + "properties": { + "branch_name": { + "type": "string" + }, + "git_branch": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "required": [ + "branch_name" + ] + }, + "ValidationRecord": { + "type": "object", + "properties": { + "txt_name": { + "type": "string" + }, + "txt_value": { + "type": "string" + } + }, + "required": [ + "txt_name", + "txt_value" + ] + }, + "ValidationError": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + }, + "required": [ + "message" + ] + }, + "SslValidation": { + "type": "object", + "properties": { + "status": { + "type": "string" + }, + "validation_records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationRecord" + } + }, + "validation_errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationError" + } + } + }, + "required": [ + "status", + "validation_records" + ] + }, + "OwnershipVerification": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "name", + "value" + ] + }, + "CustomHostnameDetails": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "hostname": { + "type": "string" + }, + "ssl": { + "$ref": "#/components/schemas/SslValidation" + }, + "ownership_verification": { + "$ref": "#/components/schemas/OwnershipVerification" + }, + "custom_origin_server": { + "type": "string" + }, + "verification_errors": { + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string" + } + }, + "required": [ + "id", + "hostname", + "ssl", + "ownership_verification", + "custom_origin_server", + "status" + ] + }, + "CfResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "errors": { + "type": "array", + "items": { + "type": "object" + } + }, + "messages": { + "type": "array", + "items": { + "type": "object" + } + }, + "result": { + "$ref": "#/components/schemas/CustomHostnameDetails" + } + }, + "required": [ + "success", + "errors", + "messages", + "result" + ] + }, + "UpdateCustomHostnameResponse": { + "type": "object", + "properties": { + "status": { + "enum": [ + "1_not_started", + "2_initiated", + "3_challenge_verified", + "4_origin_setup_completed", + "5_services_reconfigured" + ], + "type": "string" + }, + "custom_hostname": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/CfResponse" + } + }, + "required": [ + "status", + "custom_hostname", + "data" + ] + }, + "UpdateCustomHostnameBody": { + "type": "object", + "properties": { + "custom_hostname": { + "type": "string" + } + }, + "required": [ + "custom_hostname" + ] + }, + "NetworkBanResponse": { + "type": "object", + "properties": { + "banned_ipv4_addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "banned_ipv4_addresses" + ] + }, + "RemoveNetworkBanRequest": { + "type": "object", + "properties": { + "ipv4_addresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ipv4_addresses" + ] + }, + "NetworkRestrictionsRequest": { + "type": "object", + "properties": { + "dbAllowedCidrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "dbAllowedCidrsV6": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NetworkRestrictionsResponse": { + "type": "object", + "properties": { + "entitlement": { + "enum": [ + "disallowed", + "allowed" + ], + "type": "string" + }, + "config": { + "$ref": "#/components/schemas/NetworkRestrictionsRequest" + }, + "old_config": { + "$ref": "#/components/schemas/NetworkRestrictionsRequest" + }, + "status": { + "enum": [ + "stored", + "applied" + ], + "type": "string" + } + }, + "required": [ + "entitlement", + "config", + "status" + ] + }, + "PgsodiumConfigResponse": { + "type": "object", + "properties": { + "root_key": { + "type": "string" + } + }, + "required": [ + "root_key" + ] + }, + "UpdatePgsodiumConfigBody": { + "type": "object", + "properties": { + "root_key": { + "type": "string" + } + }, + "required": [ + "root_key" + ] + }, + "PostgrestConfigWithJWTSecretResponse": { + "type": "object", + "properties": { + "max_rows": { + "type": "integer" + }, + "db_pool": { + "type": "integer", + "nullable": true, + "description": "If `null`, the value is automatically configured based on compute size." + }, + "db_schema": { + "type": "string" + }, + "db_extra_search_path": { + "type": "string" + }, + "jwt_secret": { + "type": "string" + } + }, + "required": [ + "max_rows", + "db_pool", + "db_schema", + "db_extra_search_path" + ] + }, + "UpdatePostgrestConfigBody": { + "type": "object", + "properties": { + "max_rows": { + "type": "integer", + "minimum": 0, + "maximum": 1000000 + }, + "db_pool": { + "type": "integer", + "minimum": 0, + "maximum": 1000 + }, + "db_extra_search_path": { + "type": "string" + }, + "db_schema": { + "type": "string" + } + } + }, + "V1PostgrestConfigResponse": { + "type": "object", + "properties": { + "max_rows": { + "type": "integer" + }, + "db_pool": { + "type": "integer", + "nullable": true, + "description": "If `null`, the value is automatically configured based on compute size." + }, + "db_schema": { + "type": "string" + }, + "db_extra_search_path": { + "type": "string" + } + }, + "required": [ + "max_rows", + "db_pool", + "db_schema", + "db_extra_search_path" + ] + }, + "V1ProjectRefResponse": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "ref": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "ref", + "name" + ] + }, + "SecretResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ] + }, + "CreateSecretBody": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 256, + "pattern": "/^(?!SUPABASE_).*/", + "description": "Secret name must not start with the SUPABASE_ prefix.", + "example": "string" + }, + "value": { + "type": "string", + "maxLength": 24576 + } + }, + "required": [ + "name", + "value" + ] + }, + "SslEnforcements": { + "type": "object", + "properties": { + "database": { + "type": "boolean" + } + }, + "required": [ + "database" + ] + }, + "SslEnforcementResponse": { + "type": "object", + "properties": { + "currentConfig": { + "$ref": "#/components/schemas/SslEnforcements" + }, + "appliedSuccessfully": { + "type": "boolean" + } + }, + "required": [ + "currentConfig", + "appliedSuccessfully" + ] + }, + "SslEnforcementRequest": { + "type": "object", + "properties": { + "requestedConfig": { + "$ref": "#/components/schemas/SslEnforcements" + } + }, + "required": [ + "requestedConfig" + ] + }, + "TypescriptResponse": { + "type": "object", + "properties": { + "types": { + "type": "string" + } + }, + "required": [ + "types" + ] + }, + "VanitySubdomainConfigResponse": { + "type": "object", + "properties": { + "status": { + "enum": [ + "not-used", + "custom-domain-used", + "active" + ], + "type": "string" + }, + "custom_domain": { + "type": "string" + } + }, + "required": [ + "status" + ] + }, + "VanitySubdomainBody": { + "type": "object", + "properties": { + "vanity_subdomain": { + "type": "string" + } + }, + "required": [ + "vanity_subdomain" + ] + }, + "SubdomainAvailabilityResponse": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + } + }, + "required": [ + "available" + ] + }, + "ActivateVanitySubdomainResponse": { + "type": "object", + "properties": { + "custom_domain": { + "type": "string" + } + }, + "required": [ + "custom_domain" + ] + }, + "UpgradeDatabaseBody": { + "type": "object", + "properties": { + "target_version": { + "type": "number" + } + }, + "required": [ + "target_version" + ] + }, + "ProjectUpgradeInitiateResponse": { + "type": "object", + "properties": { + "tracking_id": { + "type": "string" + } + }, + "required": [ + "tracking_id" + ] + }, + "ProjectVersion": { + "type": "object", + "properties": { + "postgres_version": { + "type": "number" + }, + "app_version": { + "type": "string" + } + }, + "required": [ + "postgres_version", + "app_version" + ] + }, + "ProjectUpgradeEligibilityResponse": { + "type": "object", + "properties": { + "eligible": { + "type": "boolean" + }, + "current_app_version": { + "type": "string" + }, + "latest_app_version": { + "type": "string" + }, + "target_upgrade_versions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectVersion" + } + }, + "potential_breaking_changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "duration_estimate_hours": { + "type": "number" + }, + "legacy_auth_custom_roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "extension_dependent_objects": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "eligible", + "current_app_version", + "latest_app_version", + "target_upgrade_versions", + "potential_breaking_changes", + "duration_estimate_hours", + "legacy_auth_custom_roles", + "extension_dependent_objects" + ] + }, + "DatabaseUpgradeStatus": { + "type": "object", + "properties": { + "initiated_at": { + "type": "string" + }, + "latest_status_at": { + "type": "string" + }, + "target_version": { + "type": "number" + }, + "error": { + "type": "string", + "enum": [ + "1_upgraded_instance_launch_failed", + "2_volume_detachchment_from_upgraded_instance_failed", + "3_volume_attachment_to_original_instance_failed", + "4_data_upgrade_initiation_failed", + "5_data_upgrade_completion_failed", + "6_volume_detachchment_from_original_instance_failed", + "7_volume_attachment_to_upgraded_instance_failed", + "8_upgrade_completion_failed", + "9_post_physical_backup_failed" + ] + }, + "progress": { + "type": "string", + "enum": [ + "0_requested", + "1_started", + "2_launched_upgraded_instance", + "3_detached_volume_from_upgraded_instance", + "4_attached_volume_to_original_instance", + "5_initiated_data_upgrade", + "6_completed_data_upgrade", + "7_detached_volume_from_original_instance", + "8_attached_volume_to_upgraded_instance", + "9_completed_upgrade", + "10_completed_post_physical_backup" + ] + }, + "status": { + "type": "number", + "enum": [ + 0, + 1, + 2 + ] + } + }, + "required": [ + "initiated_at", + "latest_status_at", + "target_version", + "status" + ] + }, + "DatabaseUpgradeStatusResponse": { + "type": "object", + "properties": { + "databaseUpgradeStatus": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/DatabaseUpgradeStatus" + } + ] + } + }, + "required": [ + "databaseUpgradeStatus" + ] + }, + "ReadOnlyStatusResponse": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "override_enabled": { + "type": "boolean" + }, + "override_active_until": { + "type": "string" + } + }, + "required": [ + "enabled", + "override_enabled", + "override_active_until" + ] + }, + "SetUpReadReplicaBody": { + "type": "object", + "properties": { + "read_replica_region": { + "type": "string", + "enum": [ + "us-east-1", + "us-west-1", + "us-west-2", + "ap-east-1", + "ap-southeast-1", + "ap-northeast-1", + "ap-northeast-2", + "ap-southeast-2", + "eu-west-1", + "eu-west-2", + "eu-west-3", + "eu-central-1", + "ca-central-1", + "ap-south-1", + "sa-east-1" + ], + "description": "Region you want your read replica to reside in", + "example": "us-east-1" + } + }, + "required": [ + "read_replica_region" + ] + }, + "RemoveReadReplicaBody": { + "type": "object", + "properties": { + "database_identifier": { + "type": "string" + } + }, + "required": [ + "database_identifier" + ] + }, + "AuthHealthResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "version", + "description" + ] + }, + "RealtimeHealthResponse": { + "type": "object", + "properties": { + "healthy": { + "type": "boolean" + }, + "db_connected": { + "type": "boolean" + }, + "connected_cluster": { + "type": "number" + } + }, + "required": [ + "healthy", + "db_connected", + "connected_cluster" + ] + }, + "V1ServiceHealthResponse": { + "type": "object", + "properties": { + "info": { + "oneOf": [ + { + "$ref": "#/components/schemas/AuthHealthResponse" + }, + { + "$ref": "#/components/schemas/RealtimeHealthResponse" + } + ] + }, + "name": { + "enum": [ + "auth", + "db", + "pooler", + "realtime", + "rest", + "storage" + ], + "type": "string" + }, + "healthy": { + "type": "boolean" + }, + "status": { + "enum": [ + "COMING_UP", + "ACTIVE_HEALTHY", + "UNHEALTHY" + ], + "type": "string" + }, + "error": { + "type": "string" + } + }, + "required": [ + "name", + "healthy", + "status" + ] + }, + "PostgresConfigResponse": { + "type": "object", + "properties": { + "statement_timeout": { + "type": "string" + }, + "effective_cache_size": { + "type": "string" + }, + "maintenance_work_mem": { + "type": "string" + }, + "max_connections": { + "type": "integer", + "minimum": 1, + "maximum": 262143 + }, + "max_locks_per_transaction": { + "type": "integer", + "minimum": 10, + "maximum": 2147483640 + }, + "max_parallel_maintenance_workers": { + "type": "integer", + "minimum": 0, + "maximum": 1024 + }, + "max_parallel_workers": { + "type": "integer", + "minimum": 0, + "maximum": 1024 + }, + "max_parallel_workers_per_gather": { + "type": "integer", + "minimum": 0, + "maximum": 1024 + }, + "max_standby_archive_delay": { + "type": "string" + }, + "max_standby_streaming_delay": { + "type": "string" + }, + "max_worker_processes": { + "type": "integer", + "minimum": 0, + "maximum": 262143 + }, + "shared_buffers": { + "type": "string" + }, + "work_mem": { + "type": "string" + }, + "session_replication_role": { + "enum": [ + "origin", + "replica", + "local" + ], + "type": "string" + } + } + }, + "UpdatePostgresConfigBody": { + "type": "object", + "properties": { + "statement_timeout": { + "type": "string" + }, + "effective_cache_size": { + "type": "string" + }, + "maintenance_work_mem": { + "type": "string" + }, + "max_connections": { + "type": "integer", + "minimum": 1, + "maximum": 262143 + }, + "max_locks_per_transaction": { + "type": "integer", + "minimum": 10, + "maximum": 2147483640 + }, + "max_parallel_maintenance_workers": { + "type": "integer", + "minimum": 0, + "maximum": 1024 + }, + "max_parallel_workers": { + "type": "integer", + "minimum": 0, + "maximum": 1024 + }, + "max_parallel_workers_per_gather": { + "type": "integer", + "minimum": 0, + "maximum": 1024 + }, + "max_standby_archive_delay": { + "type": "string" + }, + "max_standby_streaming_delay": { + "type": "string" + }, + "max_worker_processes": { + "type": "integer", + "minimum": 0, + "maximum": 262143 + }, + "shared_buffers": { + "type": "string" + }, + "work_mem": { + "type": "string" + }, + "session_replication_role": { + "enum": [ + "origin", + "replica", + "local" + ], + "type": "string" + } + } + }, + "V1PgbouncerConfigResponse": { + "type": "object", + "properties": { + "pool_mode": { + "type": "string", + "enum": [ + "transaction", + "session", + "statement" + ] + }, + "default_pool_size": { + "type": "number" + }, + "ignore_startup_parameters": { + "type": "string" + }, + "max_client_conn": { + "type": "number" + }, + "connection_string": { + "type": "string" + } + } + }, + "SupavisorConfigResponse": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "database_type": { + "enum": [ + "PRIMARY", + "READ_REPLICA" + ], + "type": "string" + }, + "is_using_scram_auth": { + "type": "boolean" + }, + "db_user": { + "type": "string" + }, + "db_host": { + "type": "string" + }, + "db_port": { + "type": "number" + }, + "db_name": { + "type": "string" + }, + "connectionString": { + "type": "string" + }, + "default_pool_size": { + "type": "number", + "nullable": true + }, + "max_client_conn": { + "type": "number", + "nullable": true + }, + "pool_mode": { + "enum": [ + "transaction", + "session" + ], + "type": "string" + } + }, + "required": [ + "identifier", + "database_type", + "is_using_scram_auth", + "db_user", + "db_host", + "db_port", + "db_name", + "connectionString", + "default_pool_size", + "max_client_conn", + "pool_mode" + ] + }, + "UpdateSupavisorConfigBody": { + "type": "object", + "properties": { + "default_pool_size": { + "type": "integer", + "nullable": true, + "minimum": 0, + "maximum": 1000 + }, + "pool_mode": { + "enum": [ + "transaction", + "session" + ], + "type": "string", + "deprecated": true, + "description": "This field is deprecated and is ignored in this request" + } + } + }, + "UpdateSupavisorConfigResponse": { + "type": "object", + "properties": { + "default_pool_size": { + "type": "number", + "nullable": true + }, + "pool_mode": { + "enum": [ + "transaction", + "session" + ], + "type": "string" + } + }, + "required": [ + "default_pool_size", + "pool_mode" + ] + }, + "AuthConfigResponse": { + "type": "object", + "properties": { + "api_max_request_duration": { + "type": "number", + "nullable": true + }, + "db_max_pool_size": { + "type": "number", + "nullable": true + }, + "disable_signup": { + "type": "boolean", + "nullable": true + }, + "external_anonymous_users_enabled": { + "type": "boolean", + "nullable": true + }, + "external_apple_additional_client_ids": { + "type": "string", + "nullable": true + }, + "external_apple_client_id": { + "type": "string", + "nullable": true + }, + "external_apple_enabled": { + "type": "boolean", + "nullable": true + }, + "external_apple_secret": { + "type": "string", + "nullable": true + }, + "external_azure_client_id": { + "type": "string", + "nullable": true + }, + "external_azure_enabled": { + "type": "boolean", + "nullable": true + }, + "external_azure_secret": { + "type": "string", + "nullable": true + }, + "external_azure_url": { + "type": "string", + "nullable": true + }, + "external_bitbucket_client_id": { + "type": "string", + "nullable": true + }, + "external_bitbucket_enabled": { + "type": "boolean", + "nullable": true + }, + "external_bitbucket_secret": { + "type": "string", + "nullable": true + }, + "external_discord_client_id": { + "type": "string", + "nullable": true + }, + "external_discord_enabled": { + "type": "boolean", + "nullable": true + }, + "external_discord_secret": { + "type": "string", + "nullable": true + }, + "external_email_enabled": { + "type": "boolean", + "nullable": true + }, + "external_facebook_client_id": { + "type": "string", + "nullable": true + }, + "external_facebook_enabled": { + "type": "boolean", + "nullable": true + }, + "external_facebook_secret": { + "type": "string", + "nullable": true + }, + "external_figma_client_id": { + "type": "string", + "nullable": true + }, + "external_figma_enabled": { + "type": "boolean", + "nullable": true + }, + "external_figma_secret": { + "type": "string", + "nullable": true + }, + "external_github_client_id": { + "type": "string", + "nullable": true + }, + "external_github_enabled": { + "type": "boolean", + "nullable": true + }, + "external_github_secret": { + "type": "string", + "nullable": true + }, + "external_gitlab_client_id": { + "type": "string", + "nullable": true + }, + "external_gitlab_enabled": { + "type": "boolean", + "nullable": true + }, + "external_gitlab_secret": { + "type": "string", + "nullable": true + }, + "external_gitlab_url": { + "type": "string", + "nullable": true + }, + "external_google_additional_client_ids": { + "type": "string", + "nullable": true + }, + "external_google_client_id": { + "type": "string", + "nullable": true + }, + "external_google_enabled": { + "type": "boolean", + "nullable": true + }, + "external_google_secret": { + "type": "string", + "nullable": true + }, + "external_google_skip_nonce_check": { + "type": "boolean", + "nullable": true + }, + "external_kakao_client_id": { + "type": "string", + "nullable": true + }, + "external_kakao_enabled": { + "type": "boolean", + "nullable": true + }, + "external_kakao_secret": { + "type": "string", + "nullable": true + }, + "external_keycloak_client_id": { + "type": "string", + "nullable": true + }, + "external_keycloak_enabled": { + "type": "boolean", + "nullable": true + }, + "external_keycloak_secret": { + "type": "string", + "nullable": true + }, + "external_keycloak_url": { + "type": "string", + "nullable": true + }, + "external_linkedin_oidc_client_id": { + "type": "string", + "nullable": true + }, + "external_linkedin_oidc_enabled": { + "type": "boolean", + "nullable": true + }, + "external_linkedin_oidc_secret": { + "type": "string", + "nullable": true + }, + "external_slack_oidc_client_id": { + "type": "string", + "nullable": true + }, + "external_slack_oidc_enabled": { + "type": "boolean", + "nullable": true + }, + "external_slack_oidc_secret": { + "type": "string", + "nullable": true + }, + "external_notion_client_id": { + "type": "string", + "nullable": true + }, + "external_notion_enabled": { + "type": "boolean", + "nullable": true + }, + "external_notion_secret": { + "type": "string", + "nullable": true + }, + "external_phone_enabled": { + "type": "boolean", + "nullable": true + }, + "external_slack_client_id": { + "type": "string", + "nullable": true + }, + "external_slack_enabled": { + "type": "boolean", + "nullable": true + }, + "external_slack_secret": { + "type": "string", + "nullable": true + }, + "external_spotify_client_id": { + "type": "string", + "nullable": true + }, + "external_spotify_enabled": { + "type": "boolean", + "nullable": true + }, + "external_spotify_secret": { + "type": "string", + "nullable": true + }, + "external_twitch_client_id": { + "type": "string", + "nullable": true + }, + "external_twitch_enabled": { + "type": "boolean", + "nullable": true + }, + "external_twitch_secret": { + "type": "string", + "nullable": true + }, + "external_twitter_client_id": { + "type": "string", + "nullable": true + }, + "external_twitter_enabled": { + "type": "boolean", + "nullable": true + }, + "external_twitter_secret": { + "type": "string", + "nullable": true + }, + "external_workos_client_id": { + "type": "string", + "nullable": true + }, + "external_workos_enabled": { + "type": "boolean", + "nullable": true + }, + "external_workos_secret": { + "type": "string", + "nullable": true + }, + "external_workos_url": { + "type": "string", + "nullable": true + }, + "external_zoom_client_id": { + "type": "string", + "nullable": true + }, + "external_zoom_enabled": { + "type": "boolean", + "nullable": true + }, + "external_zoom_secret": { + "type": "string", + "nullable": true + }, + "hook_custom_access_token_enabled": { + "type": "boolean", + "nullable": true + }, + "hook_custom_access_token_uri": { + "type": "string", + "nullable": true + }, + "hook_custom_access_token_secrets": { + "type": "string", + "nullable": true + }, + "hook_mfa_verification_attempt_enabled": { + "type": "boolean", + "nullable": true + }, + "hook_mfa_verification_attempt_uri": { + "type": "string", + "nullable": true + }, + "hook_mfa_verification_attempt_secrets": { + "type": "string", + "nullable": true + }, + "hook_password_verification_attempt_enabled": { + "type": "boolean", + "nullable": true + }, + "hook_password_verification_attempt_uri": { + "type": "string", + "nullable": true + }, + "hook_password_verification_attempt_secrets": { + "type": "string", + "nullable": true + }, + "hook_send_sms_enabled": { + "type": "boolean", + "nullable": true + }, + "hook_send_sms_uri": { + "type": "string", + "nullable": true + }, + "hook_send_sms_secrets": { + "type": "string", + "nullable": true + }, + "hook_send_email_enabled": { + "type": "boolean", + "nullable": true + }, + "hook_send_email_uri": { + "type": "string", + "nullable": true + }, + "hook_send_email_secrets": { + "type": "string", + "nullable": true + }, + "jwt_exp": { + "type": "number", + "nullable": true + }, + "mailer_allow_unverified_email_sign_ins": { + "type": "boolean", + "nullable": true + }, + "mailer_autoconfirm": { + "type": "boolean", + "nullable": true + }, + "mailer_otp_exp": { + "type": "number" + }, + "mailer_otp_length": { + "type": "number", + "nullable": true + }, + "mailer_secure_email_change_enabled": { + "type": "boolean", + "nullable": true + }, + "mailer_subjects_confirmation": { + "type": "string", + "nullable": true + }, + "mailer_subjects_email_change": { + "type": "string", + "nullable": true + }, + "mailer_subjects_invite": { + "type": "string", + "nullable": true + }, + "mailer_subjects_magic_link": { + "type": "string", + "nullable": true + }, + "mailer_subjects_reauthentication": { + "type": "string", + "nullable": true + }, + "mailer_subjects_recovery": { + "type": "string", + "nullable": true + }, + "mailer_templates_confirmation_content": { + "type": "string", + "nullable": true + }, + "mailer_templates_email_change_content": { + "type": "string", + "nullable": true + }, + "mailer_templates_invite_content": { + "type": "string", + "nullable": true + }, + "mailer_templates_magic_link_content": { + "type": "string", + "nullable": true + }, + "mailer_templates_reauthentication_content": { + "type": "string", + "nullable": true + }, + "mailer_templates_recovery_content": { + "type": "string", + "nullable": true + }, + "mfa_max_enrolled_factors": { + "type": "number", + "nullable": true + }, + "password_hibp_enabled": { + "type": "boolean", + "nullable": true + }, + "password_min_length": { + "type": "number", + "nullable": true + }, + "password_required_characters": { + "type": "string", + "nullable": true + }, + "rate_limit_anonymous_users": { + "type": "number", + "nullable": true + }, + "rate_limit_email_sent": { + "type": "number", + "nullable": true + }, + "rate_limit_sms_sent": { + "type": "number", + "nullable": true + }, + "rate_limit_token_refresh": { + "type": "number", + "nullable": true + }, + "rate_limit_verify": { + "type": "number", + "nullable": true + }, + "rate_limit_otp": { + "type": "number", + "nullable": true + }, + "refresh_token_rotation_enabled": { + "type": "boolean", + "nullable": true + }, + "saml_enabled": { + "type": "boolean", + "nullable": true + }, + "saml_external_url": { + "type": "string", + "nullable": true + }, + "security_captcha_enabled": { + "type": "boolean", + "nullable": true + }, + "security_captcha_provider": { + "type": "string", + "nullable": true + }, + "security_captcha_secret": { + "type": "string", + "nullable": true + }, + "security_manual_linking_enabled": { + "type": "boolean", + "nullable": true + }, + "security_refresh_token_reuse_interval": { + "type": "number", + "nullable": true + }, + "security_update_password_require_reauthentication": { + "type": "boolean", + "nullable": true + }, + "sessions_inactivity_timeout": { + "type": "number", + "nullable": true + }, + "sessions_single_per_user": { + "type": "boolean", + "nullable": true + }, + "sessions_tags": { + "type": "string", + "nullable": true + }, + "sessions_timebox": { + "type": "number", + "nullable": true + }, + "site_url": { + "type": "string", + "nullable": true + }, + "sms_autoconfirm": { + "type": "boolean", + "nullable": true + }, + "sms_max_frequency": { + "type": "number", + "nullable": true + }, + "sms_messagebird_access_key": { + "type": "string", + "nullable": true + }, + "sms_messagebird_originator": { + "type": "string", + "nullable": true + }, + "sms_otp_exp": { + "type": "number", + "nullable": true + }, + "sms_otp_length": { + "type": "number" + }, + "sms_provider": { + "type": "string", + "nullable": true + }, + "sms_template": { + "type": "string", + "nullable": true + }, + "sms_test_otp": { + "type": "string", + "nullable": true + }, + "sms_test_otp_valid_until": { + "type": "string", + "nullable": true + }, + "sms_textlocal_api_key": { + "type": "string", + "nullable": true + }, + "sms_textlocal_sender": { + "type": "string", + "nullable": true + }, + "sms_twilio_account_sid": { + "type": "string", + "nullable": true + }, + "sms_twilio_auth_token": { + "type": "string", + "nullable": true + }, + "sms_twilio_content_sid": { + "type": "string", + "nullable": true + }, + "sms_twilio_message_service_sid": { + "type": "string", + "nullable": true + }, + "sms_twilio_verify_account_sid": { + "type": "string", + "nullable": true + }, + "sms_twilio_verify_auth_token": { + "type": "string", + "nullable": true + }, + "sms_twilio_verify_message_service_sid": { + "type": "string", + "nullable": true + }, + "sms_vonage_api_key": { + "type": "string", + "nullable": true + }, + "sms_vonage_api_secret": { + "type": "string", + "nullable": true + }, + "sms_vonage_from": { + "type": "string", + "nullable": true + }, + "smtp_admin_email": { + "type": "string", + "nullable": true + }, + "smtp_host": { + "type": "string", + "nullable": true + }, + "smtp_max_frequency": { + "type": "number", + "nullable": true + }, + "smtp_pass": { + "type": "string", + "nullable": true + }, + "smtp_port": { + "type": "string", + "nullable": true + }, + "smtp_sender_name": { + "type": "string", + "nullable": true + }, + "smtp_user": { + "type": "string", + "nullable": true + }, + "uri_allow_list": { + "type": "string", + "nullable": true + } + }, + "required": [ + "api_max_request_duration", + "db_max_pool_size", + "disable_signup", + "external_anonymous_users_enabled", + "external_apple_additional_client_ids", + "external_apple_client_id", + "external_apple_enabled", + "external_apple_secret", + "external_azure_client_id", + "external_azure_enabled", + "external_azure_secret", + "external_azure_url", + "external_bitbucket_client_id", + "external_bitbucket_enabled", + "external_bitbucket_secret", + "external_discord_client_id", + "external_discord_enabled", + "external_discord_secret", + "external_email_enabled", + "external_facebook_client_id", + "external_facebook_enabled", + "external_facebook_secret", + "external_figma_client_id", + "external_figma_enabled", + "external_figma_secret", + "external_github_client_id", + "external_github_enabled", + "external_github_secret", + "external_gitlab_client_id", + "external_gitlab_enabled", + "external_gitlab_secret", + "external_gitlab_url", + "external_google_additional_client_ids", + "external_google_client_id", + "external_google_enabled", + "external_google_secret", + "external_google_skip_nonce_check", + "external_kakao_client_id", + "external_kakao_enabled", + "external_kakao_secret", + "external_keycloak_client_id", + "external_keycloak_enabled", + "external_keycloak_secret", + "external_keycloak_url", + "external_linkedin_oidc_client_id", + "external_linkedin_oidc_enabled", + "external_linkedin_oidc_secret", + "external_slack_oidc_client_id", + "external_slack_oidc_enabled", + "external_slack_oidc_secret", + "external_notion_client_id", + "external_notion_enabled", + "external_notion_secret", + "external_phone_enabled", + "external_slack_client_id", + "external_slack_enabled", + "external_slack_secret", + "external_spotify_client_id", + "external_spotify_enabled", + "external_spotify_secret", + "external_twitch_client_id", + "external_twitch_enabled", + "external_twitch_secret", + "external_twitter_client_id", + "external_twitter_enabled", + "external_twitter_secret", + "external_workos_client_id", + "external_workos_enabled", + "external_workos_secret", + "external_workos_url", + "external_zoom_client_id", + "external_zoom_enabled", + "external_zoom_secret", + "hook_custom_access_token_enabled", + "hook_custom_access_token_uri", + "hook_custom_access_token_secrets", + "hook_mfa_verification_attempt_enabled", + "hook_mfa_verification_attempt_uri", + "hook_mfa_verification_attempt_secrets", + "hook_password_verification_attempt_enabled", + "hook_password_verification_attempt_uri", + "hook_password_verification_attempt_secrets", + "hook_send_sms_enabled", + "hook_send_sms_uri", + "hook_send_sms_secrets", + "hook_send_email_enabled", + "hook_send_email_uri", + "hook_send_email_secrets", + "jwt_exp", + "mailer_allow_unverified_email_sign_ins", + "mailer_autoconfirm", + "mailer_otp_exp", + "mailer_otp_length", + "mailer_secure_email_change_enabled", + "mailer_subjects_confirmation", + "mailer_subjects_email_change", + "mailer_subjects_invite", + "mailer_subjects_magic_link", + "mailer_subjects_reauthentication", + "mailer_subjects_recovery", + "mailer_templates_confirmation_content", + "mailer_templates_email_change_content", + "mailer_templates_invite_content", + "mailer_templates_magic_link_content", + "mailer_templates_reauthentication_content", + "mailer_templates_recovery_content", + "mfa_max_enrolled_factors", + "password_hibp_enabled", + "password_min_length", + "password_required_characters", + "rate_limit_anonymous_users", + "rate_limit_email_sent", + "rate_limit_sms_sent", + "rate_limit_token_refresh", + "rate_limit_verify", + "rate_limit_otp", + "refresh_token_rotation_enabled", + "saml_enabled", + "saml_external_url", + "security_captcha_enabled", + "security_captcha_provider", + "security_captcha_secret", + "security_manual_linking_enabled", + "security_refresh_token_reuse_interval", + "security_update_password_require_reauthentication", + "sessions_inactivity_timeout", + "sessions_single_per_user", + "sessions_tags", + "sessions_timebox", + "site_url", + "sms_autoconfirm", + "sms_max_frequency", + "sms_messagebird_access_key", + "sms_messagebird_originator", + "sms_otp_exp", + "sms_otp_length", + "sms_provider", + "sms_template", + "sms_test_otp", + "sms_test_otp_valid_until", + "sms_textlocal_api_key", + "sms_textlocal_sender", + "sms_twilio_account_sid", + "sms_twilio_auth_token", + "sms_twilio_content_sid", + "sms_twilio_message_service_sid", + "sms_twilio_verify_account_sid", + "sms_twilio_verify_auth_token", + "sms_twilio_verify_message_service_sid", + "sms_vonage_api_key", + "sms_vonage_api_secret", + "sms_vonage_from", + "smtp_admin_email", + "smtp_host", + "smtp_max_frequency", + "smtp_pass", + "smtp_port", + "smtp_sender_name", + "smtp_user", + "uri_allow_list" + ] + }, + "UpdateAuthConfigBody": { + "type": "object", + "properties": { + "site_url": { + "type": "string", + "pattern": "/^[^,]+$/" + }, + "disable_signup": { + "type": "boolean" + }, + "jwt_exp": { + "type": "number", + "minimum": 0, + "maximum": 604800 + }, + "smtp_admin_email": { + "type": "string" + }, + "smtp_host": { + "type": "string" + }, + "smtp_port": { + "type": "string" + }, + "smtp_user": { + "type": "string" + }, + "smtp_pass": { + "type": "string" + }, + "smtp_max_frequency": { + "type": "number", + "minimum": 0, + "maximum": 32767 + }, + "smtp_sender_name": { + "type": "string" + }, + "mailer_allow_unverified_email_sign_ins": { + "type": "boolean" + }, + "mailer_autoconfirm": { + "type": "boolean" + }, + "mailer_subjects_invite": { + "type": "string" + }, + "mailer_subjects_confirmation": { + "type": "string" + }, + "mailer_subjects_recovery": { + "type": "string" + }, + "mailer_subjects_email_change": { + "type": "string" + }, + "mailer_subjects_magic_link": { + "type": "string" + }, + "mailer_subjects_reauthentication": { + "type": "string" + }, + "mailer_templates_invite_content": { + "type": "string" + }, + "mailer_templates_confirmation_content": { + "type": "string" + }, + "mailer_templates_recovery_content": { + "type": "string" + }, + "mailer_templates_email_change_content": { + "type": "string" + }, + "mailer_templates_magic_link_content": { + "type": "string" + }, + "mailer_templates_reauthentication_content": { + "type": "string" + }, + "mfa_max_enrolled_factors": { + "type": "number", + "minimum": 0, + "maximum": 2147483647 + }, + "uri_allow_list": { + "type": "string" + }, + "external_anonymous_users_enabled": { + "type": "boolean" + }, + "external_email_enabled": { + "type": "boolean" + }, + "external_phone_enabled": { + "type": "boolean" + }, + "saml_enabled": { + "type": "boolean" + }, + "saml_external_url": { + "type": "string", + "pattern": "/^[^,]+$/" + }, + "security_captcha_enabled": { + "type": "boolean" + }, + "security_captcha_provider": { + "type": "string" + }, + "security_captcha_secret": { + "type": "string" + }, + "sessions_timebox": { + "type": "number", + "minimum": 0 + }, + "sessions_inactivity_timeout": { + "type": "number", + "minimum": 0 + }, + "sessions_single_per_user": { + "type": "boolean" + }, + "sessions_tags": { + "type": "string", + "pattern": "/^\\s*([a-z0-9_-]+(\\s*,+\\s*)?)*\\s*$/i" + }, + "rate_limit_anonymous_users": { + "type": "number", + "minimum": 1, + "maximum": 2147483647 + }, + "rate_limit_email_sent": { + "type": "number", + "minimum": 1, + "maximum": 2147483647 + }, + "rate_limit_sms_sent": { + "type": "number", + "minimum": 1, + "maximum": 2147483647 + }, + "rate_limit_verify": { + "type": "number", + "minimum": 1, + "maximum": 2147483647 + }, + "rate_limit_token_refresh": { + "type": "number", + "minimum": 1, + "maximum": 2147483647 + }, + "rate_limit_otp": { + "type": "number", + "minimum": 1, + "maximum": 2147483647 + }, + "mailer_secure_email_change_enabled": { + "type": "boolean" + }, + "refresh_token_rotation_enabled": { + "type": "boolean" + }, + "password_hibp_enabled": { + "type": "boolean" + }, + "password_min_length": { + "type": "number", + "minimum": 6, + "maximum": 32767 + }, + "password_required_characters": { + "type": "string", + "enum": [ + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", + "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", + "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~", + "" + ] + }, + "security_manual_linking_enabled": { + "type": "boolean" + }, + "security_update_password_require_reauthentication": { + "type": "boolean" + }, + "security_refresh_token_reuse_interval": { + "type": "number", + "minimum": 0, + "maximum": 2147483647 + }, + "mailer_otp_exp": { + "type": "number", + "minimum": 0, + "maximum": 2147483647 + }, + "mailer_otp_length": { + "type": "number", + "minimum": 6, + "maximum": 10 + }, + "sms_autoconfirm": { + "type": "boolean" + }, + "sms_max_frequency": { + "type": "number", + "minimum": 0, + "maximum": 32767 + }, + "sms_otp_exp": { + "type": "number", + "minimum": 0, + "maximum": 2147483647 + }, + "sms_otp_length": { + "type": "number", + "minimum": 0, + "maximum": 32767 + }, + "sms_provider": { + "type": "string" + }, + "sms_messagebird_access_key": { + "type": "string" + }, + "sms_messagebird_originator": { + "type": "string" + }, + "sms_test_otp": { + "type": "string", + "pattern": "/^([0-9]{1,15}=[0-9]+,?)*$/" + }, + "sms_test_otp_valid_until": { + "type": "string" + }, + "sms_textlocal_api_key": { + "type": "string" + }, + "sms_textlocal_sender": { + "type": "string" + }, + "sms_twilio_account_sid": { + "type": "string" + }, + "sms_twilio_auth_token": { + "type": "string" + }, + "sms_twilio_content_sid": { + "type": "string" + }, + "sms_twilio_message_service_sid": { + "type": "string" + }, + "sms_twilio_verify_account_sid": { + "type": "string" + }, + "sms_twilio_verify_auth_token": { + "type": "string" + }, + "sms_twilio_verify_message_service_sid": { + "type": "string" + }, + "sms_vonage_api_key": { + "type": "string" + }, + "sms_vonage_api_secret": { + "type": "string" + }, + "sms_vonage_from": { + "type": "string" + }, + "sms_template": { + "type": "string" + }, + "hook_mfa_verification_attempt_enabled": { + "type": "boolean" + }, + "hook_mfa_verification_attempt_uri": { + "type": "string" + }, + "hook_mfa_verification_attempt_secrets": { + "type": "string" + }, + "hook_password_verification_attempt_enabled": { + "type": "boolean" + }, + "hook_password_verification_attempt_uri": { + "type": "string" + }, + "hook_password_verification_attempt_secrets": { + "type": "string" + }, + "hook_custom_access_token_enabled": { + "type": "boolean" + }, + "hook_custom_access_token_uri": { + "type": "string" + }, + "hook_custom_access_token_secrets": { + "type": "string" + }, + "hook_send_sms_enabled": { + "type": "boolean" + }, + "hook_send_sms_uri": { + "type": "string" + }, + "hook_send_sms_secrets": { + "type": "string" + }, + "hook_send_email_enabled": { + "type": "boolean" + }, + "hook_send_email_uri": { + "type": "string" + }, + "hook_send_email_secrets": { + "type": "string" + }, + "external_apple_enabled": { + "type": "boolean" + }, + "external_apple_client_id": { + "type": "string" + }, + "external_apple_secret": { + "type": "string" + }, + "external_apple_additional_client_ids": { + "type": "string" + }, + "external_azure_enabled": { + "type": "boolean" + }, + "external_azure_client_id": { + "type": "string" + }, + "external_azure_secret": { + "type": "string" + }, + "external_azure_url": { + "type": "string" + }, + "external_bitbucket_enabled": { + "type": "boolean" + }, + "external_bitbucket_client_id": { + "type": "string" + }, + "external_bitbucket_secret": { + "type": "string" + }, + "external_discord_enabled": { + "type": "boolean" + }, + "external_discord_client_id": { + "type": "string" + }, + "external_discord_secret": { + "type": "string" + }, + "external_facebook_enabled": { + "type": "boolean" + }, + "external_facebook_client_id": { + "type": "string" + }, + "external_facebook_secret": { + "type": "string" + }, + "external_figma_enabled": { + "type": "boolean" + }, + "external_figma_client_id": { + "type": "string" + }, + "external_figma_secret": { + "type": "string" + }, + "external_github_enabled": { + "type": "boolean" + }, + "external_github_client_id": { + "type": "string" + }, + "external_github_secret": { + "type": "string" + }, + "external_gitlab_enabled": { + "type": "boolean" + }, + "external_gitlab_client_id": { + "type": "string" + }, + "external_gitlab_secret": { + "type": "string" + }, + "external_gitlab_url": { + "type": "string" + }, + "external_google_enabled": { + "type": "boolean" + }, + "external_google_client_id": { + "type": "string" + }, + "external_google_secret": { + "type": "string" + }, + "external_google_additional_client_ids": { + "type": "string" + }, + "external_google_skip_nonce_check": { + "type": "boolean" + }, + "external_kakao_enabled": { + "type": "boolean" + }, + "external_kakao_client_id": { + "type": "string" + }, + "external_kakao_secret": { + "type": "string" + }, + "external_keycloak_enabled": { + "type": "boolean" + }, + "external_keycloak_client_id": { + "type": "string" + }, + "external_keycloak_secret": { + "type": "string" + }, + "external_keycloak_url": { + "type": "string" + }, + "external_linkedin_oidc_enabled": { + "type": "boolean" + }, + "external_linkedin_oidc_client_id": { + "type": "string" + }, + "external_linkedin_oidc_secret": { + "type": "string" + }, + "external_slack_oidc_enabled": { + "type": "boolean" + }, + "external_slack_oidc_client_id": { + "type": "string" + }, + "external_slack_oidc_secret": { + "type": "string" + }, + "external_notion_enabled": { + "type": "boolean" + }, + "external_notion_client_id": { + "type": "string" + }, + "external_notion_secret": { + "type": "string" + }, + "external_slack_enabled": { + "type": "boolean" + }, + "external_slack_client_id": { + "type": "string" + }, + "external_slack_secret": { + "type": "string" + }, + "external_spotify_enabled": { + "type": "boolean" + }, + "external_spotify_client_id": { + "type": "string" + }, + "external_spotify_secret": { + "type": "string" + }, + "external_twitch_enabled": { + "type": "boolean" + }, + "external_twitch_client_id": { + "type": "string" + }, + "external_twitch_secret": { + "type": "string" + }, + "external_twitter_enabled": { + "type": "boolean" + }, + "external_twitter_client_id": { + "type": "string" + }, + "external_twitter_secret": { + "type": "string" + }, + "external_workos_enabled": { + "type": "boolean" + }, + "external_workos_client_id": { + "type": "string" + }, + "external_workos_secret": { + "type": "string" + }, + "external_workos_url": { + "type": "string" + }, + "external_zoom_enabled": { + "type": "boolean" + }, + "external_zoom_client_id": { + "type": "string" + }, + "external_zoom_secret": { + "type": "string" + }, + "db_max_pool_size": { + "type": "number" + }, + "api_max_request_duration": { + "type": "number" + } + } + }, + "CreateThirdPartyAuthBody": { + "type": "object", + "properties": { + "oidc_issuer_url": { + "type": "string" + }, + "jwks_url": { + "type": "string" + }, + "custom_jwks": { + "type": "object" + } + } + }, + "ThirdPartyAuth": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + }, + "oidc_issuer_url": { + "type": "string", + "nullable": true + }, + "jwks_url": { + "type": "string", + "nullable": true + }, + "custom_jwks": { + "type": "object", + "nullable": true + }, + "resolved_jwks": { + "type": "object", + "nullable": true + }, + "inserted_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "resolved_at": { + "type": "string", + "nullable": true + } + }, + "required": [ + "id", + "type", + "inserted_at", + "updated_at" + ] + }, + "V1RunQueryBody": { + "type": "object", + "properties": { + "query": { + "type": "string" + } + }, + "required": [ + "query" + ] + }, + "V1CreateFunctionBody": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "pattern": "/^[A-Za-z0-9_-]+$/" + }, + "name": { + "type": "string" + }, + "body": { + "type": "string" + }, + "verify_jwt": { + "type": "boolean" + } + }, + "required": [ + "slug", + "name", + "body" + ] + }, + "FunctionResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "ACTIVE", + "REMOVED", + "THROTTLED" + ], + "type": "string" + }, + "version": { + "type": "number" + }, + "created_at": { + "type": "number" + }, + "updated_at": { + "type": "number" + }, + "verify_jwt": { + "type": "boolean" + }, + "import_map": { + "type": "boolean" + }, + "entrypoint_path": { + "type": "string" + }, + "import_map_path": { + "type": "string" + } + }, + "required": [ + "id", + "slug", + "name", + "status", + "version", + "created_at", + "updated_at" + ] + }, + "FunctionSlugResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "ACTIVE", + "REMOVED", + "THROTTLED" + ], + "type": "string" + }, + "version": { + "type": "number" + }, + "created_at": { + "type": "number" + }, + "updated_at": { + "type": "number" + }, + "verify_jwt": { + "type": "boolean" + }, + "import_map": { + "type": "boolean" + }, + "entrypoint_path": { + "type": "string" + }, + "import_map_path": { + "type": "string" + } + }, + "required": [ + "id", + "slug", + "name", + "status", + "version", + "created_at", + "updated_at" + ] + }, + "V1UpdateFunctionBody": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "body": { + "type": "string" + }, + "verify_jwt": { + "type": "boolean" + } + } + }, + "V1StorageBucketResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "public": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "owner", + "created_at", + "updated_at", + "public" + ] + }, + "AttributeValue": { + "type": "object", + "properties": { + "default": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "boolean" + } + ] + }, + "name": { + "type": "string" + }, + "names": { + "type": "array", + "items": { + "type": "string" + } + }, + "array": { + "type": "boolean" + } + } + }, + "AttributeMapping": { + "type": "object", + "properties": { + "keys": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AttributeValue" + } + } + }, + "required": [ + "keys" + ] + }, + "CreateProviderBody": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "saml" + ], + "description": "What type of provider will be created" + }, + "metadata_xml": { + "type": "string" + }, + "metadata_url": { + "type": "string" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "attribute_mapping": { + "$ref": "#/components/schemas/AttributeMapping" + } + }, + "required": [ + "type" + ] + }, + "SamlDescriptor": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "entity_id": { + "type": "string" + }, + "metadata_url": { + "type": "string" + }, + "metadata_xml": { + "type": "string" + }, + "attribute_mapping": { + "$ref": "#/components/schemas/AttributeMapping" + } + }, + "required": [ + "id", + "entity_id" + ] + }, + "Domain": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "CreateProviderResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "saml": { + "$ref": "#/components/schemas/SamlDescriptor" + }, + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "Provider": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "saml": { + "$ref": "#/components/schemas/SamlDescriptor" + }, + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "ListProvidersResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Provider" + } + } + }, + "required": [ + "items" + ] + }, + "GetProviderResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "saml": { + "$ref": "#/components/schemas/SamlDescriptor" + }, + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "UpdateProviderBody": { + "type": "object", + "properties": { + "metadata_xml": { + "type": "string" + }, + "metadata_url": { + "type": "string" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + } + }, + "attribute_mapping": { + "$ref": "#/components/schemas/AttributeMapping" + } + } + }, + "UpdateProviderResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "saml": { + "$ref": "#/components/schemas/SamlDescriptor" + }, + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "DeleteProviderResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "saml": { + "$ref": "#/components/schemas/SamlDescriptor" + }, + "domains": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Domain" + } + }, + "created_at": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id" + ] + }, + "V1Backup": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "COMPLETED", + "FAILED", + "PENDING", + "REMOVED", + "ARCHIVED", + "CANCELLED" + ] + }, + "is_physical_backup": { + "type": "boolean" + }, + "inserted_at": { + "type": "string" + } + }, + "required": [ + "status", + "is_physical_backup", + "inserted_at" + ] + }, + "V1PhysicalBackup": { + "type": "object", + "properties": { + "earliest_physical_backup_date_unix": { + "type": "number" + }, + "latest_physical_backup_date_unix": { + "type": "number" + } + } + }, + "V1BackupsResponse": { + "type": "object", + "properties": { + "region": { + "type": "string" + }, + "walg_enabled": { + "type": "boolean" + }, + "pitr_enabled": { + "type": "boolean" + }, + "backups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/V1Backup" + } + }, + "physical_backup_data": { + "$ref": "#/components/schemas/V1PhysicalBackup" + } + }, + "required": [ + "region", + "walg_enabled", + "pitr_enabled", + "backups", + "physical_backup_data" + ] + }, + "V1RestorePitrBody": { + "type": "object", + "properties": { + "recovery_time_target_unix": { + "type": "number" + } + }, + "required": [ + "recovery_time_target_unix" + ] + }, + "V1OrganizationMemberResponse": { + "type": "object", + "properties": { + "user_id": { + "type": "string" + }, + "user_name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "role_name": { + "type": "string" + }, + "mfa_enabled": { + "type": "boolean" + } + }, + "required": [ + "user_id", + "user_name", + "role_name", + "mfa_enabled" + ] + }, + "BillingPlanId": { + "type": "string", + "enum": [ + "free", + "pro", + "team", + "enterprise" + ] + }, + "V1OrganizationSlugResponse": { + "type": "object", + "properties": { + "plan": { + "$ref": "#/components/schemas/BillingPlanId" + }, + "opt_in_tags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "AI_SQL_GENERATOR_OPT_IN" + ] + } + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "opt_in_tags", + "id", + "name" + ] + } + } + } +} \ No newline at end of file From 5e1ebea82aca6bdf773b1d2af5e9bbb6f5b3d624 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Fri, 2 Aug 2024 15:04:29 +0000 Subject: [PATCH 10/13] update /Supabase-API.json --- Supabase-API.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Supabase-API.json b/Supabase-API.json index 8c7a2c9..aac014a 100644 --- a/Supabase-API.json +++ b/Supabase-API.json @@ -4813,7 +4813,7 @@ "maxLength": 256, "pattern": "/^(?!SUPABASE_).*/", "description": "Secret name must not start with the SUPABASE_ prefix.", - "example": "string" + "example": "BACKEND_SERVICE_" }, "value": { "type": "string", From 66d859c1c7d1b736d2a6e34f9eaa99e3b6fbade7 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Fri, 2 Aug 2024 15:07:25 +0000 Subject: [PATCH 11/13] update /Lowcoder-API-Service-API.json --- Lowcoder-API-Service-API.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Lowcoder-API-Service-API.json b/Lowcoder-API-Service-API.json index 59fb3a8..731ce0e 100644 --- a/Lowcoder-API-Service-API.json +++ b/Lowcoder-API-Service-API.json @@ -17,7 +17,7 @@ "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", @@ -28,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", @@ -42,8 +42,8 @@ } }, { - "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": [ From 7ea0d3be84a276a3b36b4948b188d989f9cd92e7 Mon Sep 17 00:00:00 2001 From: falkwolsky Date: Fri, 2 Aug 2024 15:14:03 +0000 Subject: [PATCH 12/13] update /Supabase-API.json --- Supabase-API.json | 186 +++++++++++++++++++++++++++------------------- 1 file changed, 108 insertions(+), 78 deletions(-) diff --git a/Supabase-API.json b/Supabase-API.json index aac014a..93c59fa 100644 --- a/Supabase-API.json +++ b/Supabase-API.json @@ -37,7 +37,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -86,7 +86,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -125,7 +125,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -166,7 +166,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -197,7 +197,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -232,7 +232,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -266,7 +266,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -304,7 +304,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -479,7 +479,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -518,7 +518,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -563,7 +563,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -609,7 +609,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -660,7 +660,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -694,7 +694,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -739,12 +739,12 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, "delete": { - "operationId": "v1-Delete hostname config", + "operationId": "v1-Delete-hostname-config", "summary": "[Beta] Deletes a project's custom hostname configuration", "parameters": [ { @@ -775,7 +775,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -830,7 +830,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -875,7 +875,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -920,7 +920,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -965,7 +965,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1013,7 +1013,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1058,7 +1058,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1113,7 +1113,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1158,7 +1158,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -1211,7 +1211,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1256,7 +1256,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -1309,7 +1309,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1351,7 +1351,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1400,7 +1400,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -1450,7 +1450,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -1507,7 +1507,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1552,7 +1552,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -1605,7 +1605,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1660,7 +1660,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1705,7 +1705,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -1741,7 +1741,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1796,7 +1796,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1851,7 +1851,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1906,7 +1906,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1951,7 +1951,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -1996,7 +1996,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2038,7 +2038,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2073,7 +2073,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2121,7 +2121,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2169,7 +2169,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2243,7 +2243,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2285,7 +2285,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -2335,7 +2335,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2417,7 +2417,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -2470,7 +2470,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2515,7 +2515,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -2568,7 +2568,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2620,7 +2620,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -2663,7 +2663,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2713,7 +2713,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -2761,7 +2761,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2816,7 +2816,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2854,7 +2854,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -2964,7 +2964,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -3011,7 +3011,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3067,7 +3067,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -3185,7 +3185,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -3232,7 +3232,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3281,7 +3281,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3329,7 +3329,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3384,7 +3384,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -3427,7 +3427,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3480,7 +3480,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -3541,7 +3541,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] }, @@ -3592,7 +3592,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3634,7 +3634,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3676,7 +3676,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3715,7 +3715,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3751,7 +3751,7 @@ ], "security": [ { - "bearer": [] + "bearerAuth": [] } ] } @@ -3809,7 +3809,38 @@ "description": "Storage related endpoints" } ], - "servers": [], + "servers": [ + { + "url": "{scheme}://{domain}:{port}{basePath}", + "description": "Supabase Self-hosted Installation API Access", + "variables": { + "scheme": { + "description": "HTTP scheme", + "default": "http", + "enum": [ + "http", + "https" + ] + }, + "domain": { + "description": "Supabase IP address or domain", + "default": "localhost" + }, + "port": { + "description": "Port", + "default": "8000" + }, + "basePath": { + "description": "Base path", + "default": "/" + } + } + }, + { + "url": "https://api.supabase.io", + "description": "Supabase Public Cloud API Access" + } + ], "components": { "securitySchemes": { "bearerAuth": { @@ -4199,7 +4230,7 @@ "token_type": { "type": "string", "enum": [ - "Bearer" + "bearerAuth" ] }, "access_token": { @@ -4811,7 +4842,6 @@ "name": { "type": "string", "maxLength": 256, - "pattern": "/^(?!SUPABASE_).*/", "description": "Secret name must not start with the SUPABASE_ prefix.", "example": "BACKEND_SERVICE_" }, From 39f72c518bcdee90567a4ff2f4e44468b9b1f840 Mon Sep 17 00:00:00 2001 From: Falk Wolsky Date: Sat, 3 Aug 2024 10:25:22 +0200 Subject: [PATCH 13/13] Delete Supabase-API.json --- Supabase-API.json | 7520 --------------------------------------------- 1 file changed, 7520 deletions(-) delete mode 100644 Supabase-API.json diff --git a/Supabase-API.json b/Supabase-API.json deleted file mode 100644 index 93c59fa..0000000 --- a/Supabase-API.json +++ /dev/null @@ -1,7520 +0,0 @@ -{ - "openapi": "3.0.0", - "paths": { - "/v1/branches/{branch_id}": { - "get": { - "operationId": "v1-get-a-branch-config", - "summary": "Get database branch config", - "description": "Fetches configurations of the specified database branch", - "parameters": [ - { - "name": "branch_id", - "required": true, - "in": "path", - "description": "Branch ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BranchDetailResponse" - } - } - } - }, - "500": { - "description": "Failed to retrieve database branch" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "patch": { - "operationId": "v1-update-a-branch-config", - "summary": "Update database branch config", - "description": "Updates the configuration of the specified database branch", - "parameters": [ - { - "name": "branch_id", - "required": true, - "in": "path", - "description": "Branch ID", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateBranchBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BranchResponse" - } - } - } - }, - "500": { - "description": "Failed to update database branch" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-delete-a-branch", - "summary": "Delete a database branch", - "description": "Deletes the specified database branch", - "parameters": [ - { - "name": "branch_id", - "required": true, - "in": "path", - "description": "Branch ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BranchDeleteResponse" - } - } - } - }, - "500": { - "description": "Failed to delete database branch" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/branches/{branch_id}/reset": { - "post": { - "operationId": "v1-reset-a-branch", - "summary": "Resets a database branch", - "description": "Resets the specified database branch", - "parameters": [ - { - "name": "branch_id", - "required": true, - "in": "path", - "description": "Branch ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BranchResetResponse" - } - } - } - }, - "500": { - "description": "Failed to reset database branch" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects": { - "get": { - "operationId": "v1-list-all-projects", - "summary": "List all projects", - "description": "Returns a list of all projects you've previously created.", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/V1ProjectResponse" - } - } - } - } - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "post": { - "operationId": "v1-create-a-project", - "summary": "Create a project", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1CreateProjectBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1ProjectResponse" - } - } - } - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/organizations": { - "get": { - "operationId": "v1-list-all-organizations", - "summary": "List all organizations", - "description": "Returns a list of organizations that you currently belong to.", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationResponseV1" - } - } - } - } - }, - "500": { - "description": "Unexpected error listing organizations" - } - }, - "tags": [ - "Organizations" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "post": { - "operationId": "v1-create-an-organization", - "summary": "Create an organization", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrganizationBodyV1" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationResponseV1" - } - } - } - }, - "500": { - "description": "Unexpected error creating an organization" - } - }, - "tags": [ - "Organizations" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/oauth/authorize": { - "get": { - "operationId": "v1-authorize-user", - "summary": "[Beta] Authorize user through oauth", - "parameters": [ - { - "name": "client_id", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "response_type", - "required": true, - "in": "query", - "schema": { - "enum": [ - "code", - "token", - "id_token token" - ], - "type": "string" - } - }, - { - "name": "redirect_uri", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "scope", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "state", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "response_mode", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "code_challenge", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "code_challenge_method", - "required": false, - "in": "query", - "schema": { - "enum": [ - "plain", - "sha256", - "S256" - ], - "type": "string" - } - } - ], - "responses": { - "303": { - "description": "" - } - }, - "tags": [ - "OAuth" - ], - "security": [ - { - "oauth2": [ - "read" - ] - } - ] - } - }, - "/v1/oauth/token": { - "post": { - "operationId": "v1-exchange-oauth-token", - "summary": "[Beta] Exchange auth code for user's access and refresh token", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/x-www-form-urlencoded": { - "schema": { - "$ref": "#/components/schemas/OAuthTokenBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OAuthTokenResponse" - } - } - } - } - }, - "tags": [ - "OAuth" - ], - "security": [ - { - "oauth2": [ - "write" - ] - } - ] - } - }, - "/v1/snippets": { - "get": { - "operationId": "v1-list-all-snippets", - "summary": "Lists SQL snippets for the logged in user", - "parameters": [ - { - "name": "project_ref", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SnippetList" - } - } - } - }, - "500": { - "description": "Failed to list user's SQL snippets" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/snippets/{id}": { - "get": { - "operationId": "v1-get-a-snippet", - "summary": "Gets a specific SQL snippet", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SnippetResponse" - } - } - } - }, - "500": { - "description": "Failed to retrieve SQL snippet" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/api-keys": { - "get": { - "operationId": "v1-get-project-api-keys", - "summary": "Get project api keys", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApiKeyResponse" - } - } - } - } - }, - "403": { - "description": "" - } - }, - "tags": [ - "Secrets" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/branches": { - "get": { - "operationId": "v1-list-all-branches", - "summary": "List all database branches", - "description": "Returns all database branches of the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BranchResponse" - } - } - } - } - }, - "500": { - "description": "Failed to retrieve database branches" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "post": { - "operationId": "v1-create-a-branch", - "summary": "Create a database branch", - "description": "Creates a database branch from the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateBranchBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BranchResponse" - } - } - } - }, - "500": { - "description": "Failed to create database branch" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-disable-preview-branching", - "summary": "Disables preview branching", - "description": "Disables preview branching for the specified project", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "500": { - "description": "Failed to disable preview branching" - } - }, - "tags": [ - "Environments" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/custom-hostname": { - "get": { - "operationId": "v1-get-hostname-config", - "summary": "[Beta] Gets project's custom hostname config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCustomHostnameResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's custom hostname config" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-Delete-hostname-config", - "summary": "[Beta] Deletes a project's custom hostname configuration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to delete project custom hostname configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/custom-hostname/initialize": { - "post": { - "operationId": "v1-update-hostname-config", - "summary": "[Beta] Updates project's custom hostname configuration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCustomHostnameBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCustomHostnameResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project custom hostname configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/custom-hostname/reverify": { - "post": { - "operationId": "v1-verify-dns-config", - "summary": "[Beta] Attempts to verify the DNS configuration for project's custom hostname configuration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCustomHostnameResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to verify project custom hostname configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/custom-hostname/activate": { - "post": { - "operationId": "v1-activate-custom-hostname", - "summary": "[Beta] Activates a custom hostname for a project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCustomHostnameResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to activate project custom hostname configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/network-bans/retrieve": { - "post": { - "operationId": "v1-list-all-network-bans", - "summary": "[Beta] Gets project's network bans", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NetworkBanResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's network bans" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/network-bans": { - "delete": { - "operationId": "v1-delete-network-bans", - "summary": "[Beta] Remove network bans.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RemoveNetworkBanRequest" - } - } - } - }, - "responses": { - "200": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to remove network bans." - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/network-restrictions": { - "get": { - "operationId": "v1-get-network-restrictions", - "summary": "[Beta] Gets project's network restrictions", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NetworkRestrictionsResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's network restrictions" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/network-restrictions/apply": { - "post": { - "operationId": "v1-update-network-restrictions", - "summary": "[Beta] Updates project's network restrictions", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NetworkRestrictionsRequest" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NetworkRestrictionsResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project network restrictions" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/pgsodium": { - "get": { - "operationId": "v1-get-pgsodium-config", - "summary": "[Beta] Gets project's pgsodium config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PgsodiumConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's pgsodium config" - } - }, - "tags": [ - "Secrets" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "put": { - "operationId": "v1-update-pgsodium-config", - "summary": "[Beta] Updates project's pgsodium config. Updating the root_key can cause all data encrypted with the older key to become inaccessible.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePgsodiumConfigBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PgsodiumConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project's pgsodium config" - } - }, - "tags": [ - "Secrets" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/postgrest": { - "get": { - "operationId": "v1-get-postgrest-service-config", - "summary": "Gets project's postgrest config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostgrestConfigWithJWTSecretResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's postgrest config" - } - }, - "tags": [ - "Rest" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "patch": { - "operationId": "v1-update-postgrest-service-config", - "summary": "Updates project's postgrest config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePostgrestConfigBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1PostgrestConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project's postgrest config" - } - }, - "tags": [ - "Rest" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}": { - "delete": { - "operationId": "v1-delete-a-project", - "summary": "Deletes the given project", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1ProjectRefResponse" - } - } - } - }, - "403": { - "description": "" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/secrets": { - "get": { - "operationId": "v1-list-all-secrets", - "summary": "List all secrets", - "description": "Returns all secrets you've previously added to the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SecretResponse" - } - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's secrets" - } - }, - "tags": [ - "Secrets" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "post": { - "operationId": "v1-bulk-create-secrets", - "summary": "Bulk create secrets", - "description": "Creates multiple secrets and adds them to the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CreateSecretBody" - } - } - } - } - }, - "responses": { - "201": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to create project's secrets" - } - }, - "tags": [ - "Secrets" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-bulk-delete-secrets", - "summary": "Bulk delete secrets", - "description": "Deletes all secrets with the given names from the specified project", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to delete secrets with given names" - } - }, - "tags": [ - "Secrets" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/ssl-enforcement": { - "get": { - "operationId": "v1-get-ssl-enforcement-config", - "summary": "[Beta] Get project's SSL enforcement configuration.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SslEnforcementResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's SSL enforcement config" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "put": { - "operationId": "v1-update-ssl-enforcement-config", - "summary": "[Beta] Update project's SSL enforcement configuration.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SslEnforcementRequest" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SslEnforcementResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project's SSL enforcement configuration." - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/types/typescript": { - "get": { - "operationId": "v1-generate-typescript-types", - "summary": "Generate TypeScript types", - "description": "Returns the TypeScript types of your schema for use with supabase-js.", - "parameters": [ - { - "name": "included_schemas", - "required": false, - "in": "query", - "schema": { - "default": "public", - "type": "string" - } - }, - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TypescriptResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to generate TypeScript types" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/vanity-subdomain": { - "get": { - "operationId": "v1-get-vanity-subdomain-config", - "summary": "[Beta] Gets current vanity subdomain config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VanitySubdomainConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to get project vanity subdomain configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-deactivate-vanity-subdomain-config", - "summary": "[Beta] Deletes a project's vanity subdomain configuration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to delete project vanity subdomain configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/vanity-subdomain/check-availability": { - "post": { - "operationId": "v1-check-vanity-subdomain-availability", - "summary": "[Beta] Checks vanity subdomain availability", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VanitySubdomainBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubdomainAvailabilityResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to check project vanity subdomain configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/vanity-subdomain/activate": { - "post": { - "operationId": "v1-activate-vanity-subdomain-config", - "summary": "[Beta] Activates a vanity subdomain for a project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VanitySubdomainBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ActivateVanitySubdomainResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to activate project vanity subdomain configuration" - } - }, - "tags": [ - "Domains" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/upgrade": { - "post": { - "operationId": "v1-upgrade-postgres-version", - "summary": "[Beta] Upgrades the project's Postgres version", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpgradeDatabaseBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProjectUpgradeInitiateResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to initiate project upgrade" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/upgrade/eligibility": { - "get": { - "operationId": "v1-get-postgrest-upgrade-eligibility", - "summary": "[Beta] Returns the project's eligibility for upgrades", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProjectUpgradeEligibilityResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to determine project upgrade eligibility" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/upgrade/status": { - "get": { - "operationId": "v1-get-postgrest-upgrade-status", - "summary": "[Beta] Gets the latest status of the project's upgrade", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DatabaseUpgradeStatusResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project upgrade status" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/readonly": { - "get": { - "operationId": "v1-get-readonly-mode-status", - "summary": "Returns project's readonly mode status", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReadOnlyStatusResponse" - } - } - } - }, - "500": { - "description": "Failed to get project readonly mode status" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/readonly/temporary-disable": { - "post": { - "operationId": "v1-disable-readonly-mode-temporarily", - "summary": "Disables project's readonly mode for the next 15 minutes", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "" - }, - "500": { - "description": "Failed to disable project's readonly mode" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/read-replicas/setup": { - "post": { - "operationId": "v1-setup-a-read-replica", - "summary": "[Beta] Set up a read replica", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SetUpReadReplicaBody" - } - } - } - }, - "responses": { - "201": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to set up read replica" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/read-replicas/remove": { - "post": { - "operationId": "v1-remove-a-read-replica", - "summary": "[Beta] Remove a read replica", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RemoveReadReplicaBody" - } - } - } - }, - "responses": { - "201": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to remove read replica" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/health": { - "get": { - "operationId": "v1-get-services-health", - "summary": "Gets project's service health status", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "timeout_ms", - "required": false, - "in": "query", - "schema": { - "minimum": 0, - "maximum": 10000, - "type": "integer" - } - }, - { - "name": "services", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "auth", - "db", - "pooler", - "realtime", - "rest", - "storage" - ] - } - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/V1ServiceHealthResponse" - } - } - } - } - }, - "500": { - "description": "Failed to retrieve project's service health status" - } - }, - "tags": [ - "Projects" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/database/postgres": { - "get": { - "operationId": "v1-get-postgres-config", - "summary": "Gets project's Postgres config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostgresConfigResponse" - } - } - } - }, - "500": { - "description": "Failed to retrieve project's Postgres config" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "put": { - "operationId": "v1-update-postgres-config", - "summary": "Updates project's Postgres config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePostgresConfigBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PostgresConfigResponse" - } - } - } - }, - "500": { - "description": "Failed to update project's Postgres config" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/database/pgbouncer": { - "get": { - "operationId": "v1-get-project-pgbouncer-config", - "summary": "Get project's pgbouncer config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1PgbouncerConfigResponse" - } - } - } - }, - "500": { - "description": "Failed to retrieve project's pgbouncer config" - } - }, - "tags": [ - "Database" - ] - } - }, - "/v1/projects/{ref}/config/database/pooler": { - "get": { - "operationId": "v1-get-supavisor-config", - "summary": "Gets project's supavisor config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SupavisorConfigResponse" - } - } - } - } - }, - "500": { - "description": "Failed to retrieve project's supavisor config" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "patch": { - "operationId": "v1-update-supavisor-config", - "summary": "Updates project's supavisor config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSupavisorConfigBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSupavisorConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project's supavisor config" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/auth": { - "get": { - "operationId": "v1-get-auth-service-config", - "summary": "Gets project's auth config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's auth config" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "patch": { - "operationId": "v1-update-auth-service-config", - "summary": "Updates a project's auth config", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateAuthConfigBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthConfigResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update project's auth config" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/auth/third-party-auth": { - "post": { - "operationId": "createTPAForProject", - "summary": "Creates a new third-party auth integration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateThirdPartyAuthBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThirdPartyAuth" - } - } - } - }, - "403": { - "description": "" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "get": { - "operationId": "listTPAForProject", - "summary": "[Alpha] Lists all third-party auth integrations", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ThirdPartyAuth" - } - } - } - } - }, - "403": { - "description": "" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}": { - "delete": { - "operationId": "deleteTPAForProject", - "summary": "[Alpha] Removes a third-party auth integration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "tpa_id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThirdPartyAuth" - } - } - } - }, - "403": { - "description": "" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "get": { - "operationId": "getTPAForProject", - "summary": "[Alpha] Get a third-party integration", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "tpa_id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThirdPartyAuth" - } - } - } - }, - "403": { - "description": "" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/database/query": { - "post": { - "operationId": "v1-run-a-query", - "summary": "[Beta] Run sql query", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1RunQueryBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to run sql query" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/database/webhooks/enable": { - "post": { - "operationId": "v1-enable-database-webhook", - "summary": "[Beta] Enables Database Webhooks on the project", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "201": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to enable Database Webhooks on the project" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/functions": { - "post": { - "operationId": "createFunction", - "summary": "Create a function", - "description": "Creates a function and adds it to the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "slug", - "required": false, - "in": "query", - "schema": { - "pattern": "/^[A-Za-z0-9_-]+$/", - "type": "string" - } - }, - { - "name": "name", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "verify_jwt", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "import_map", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "entrypoint_path", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "import_map_path", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1CreateFunctionBody" - } - }, - "application/vnd.denoland.eszip": { - "schema": { - "$ref": "#/components/schemas/V1CreateFunctionBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FunctionResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to create project's function" - } - }, - "tags": [ - "Edge Functions" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "get": { - "operationId": "v1-list-all-functions", - "summary": "List all functions", - "description": "Returns all functions you've previously added to the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FunctionResponse" - } - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve project's functions" - } - }, - "tags": [ - "Edge Functions" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/functions/{function_slug}": { - "get": { - "operationId": "v1-get-a-function", - "summary": "Retrieve a function", - "description": "Retrieves a function with the specified slug and project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "function_slug", - "required": true, - "in": "path", - "description": "Function slug", - "schema": { - "pattern": "/^[A-Za-z0-9_-]+$/", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FunctionSlugResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve function with given slug" - } - }, - "tags": [ - "Edge Functions" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "patch": { - "operationId": "v1-update-a-function", - "summary": "Update a function", - "description": "Updates a function with the specified slug and project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "function_slug", - "required": true, - "in": "path", - "description": "Function slug", - "schema": { - "pattern": "/^[A-Za-z0-9_-]+$/", - "type": "string" - } - }, - { - "name": "slug", - "required": false, - "in": "query", - "schema": { - "pattern": "/^[A-Za-z0-9_-]+$/", - "type": "string" - } - }, - { - "name": "name", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "verify_jwt", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "import_map", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "entrypoint_path", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "import_map_path", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1UpdateFunctionBody" - } - }, - "application/vnd.denoland.eszip": { - "schema": { - "$ref": "#/components/schemas/V1UpdateFunctionBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FunctionResponse" - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to update function with given slug" - } - }, - "tags": [ - "Edge Functions" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-delete-a-function", - "summary": "Delete a function", - "description": "Deletes a function with the specified slug from the specified project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "function_slug", - "required": true, - "in": "path", - "description": "Function slug", - "schema": { - "pattern": "/^[A-Za-z0-9_-]+$/", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to delete function with given slug" - } - }, - "tags": [ - "Edge Functions" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/functions/{function_slug}/body": { - "get": { - "operationId": "v1-get-a-function-body", - "summary": "Retrieve a function body", - "description": "Retrieves a function body for the specified slug and project.", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "function_slug", - "required": true, - "in": "path", - "description": "Function slug", - "schema": { - "pattern": "/^[A-Za-z0-9_-]+$/", - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to retrieve function body with given slug" - } - }, - "tags": [ - "Edge Functions" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/storage/buckets": { - "get": { - "operationId": "v1-list-all-buckets", - "summary": "Lists all buckets", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/V1StorageBucketResponse" - } - } - } - } - }, - "403": { - "description": "" - }, - "500": { - "description": "Failed to get list of buckets" - } - }, - "tags": [ - "Storage" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/auth/sso/providers": { - "post": { - "operationId": "v1-create-a-sso-provider", - "summary": "Creates a new SSO provider", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateProviderBody" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateProviderResponse" - } - } - } - }, - "403": { - "description": "" - }, - "404": { - "description": "SAML 2.0 support is not enabled for this project" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "get": { - "operationId": "v1-list-all-sso-provider", - "summary": "Lists all SSO providers", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListProvidersResponse" - } - } - } - }, - "403": { - "description": "" - }, - "404": { - "description": "SAML 2.0 support is not enabled for this project" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/config/auth/sso/providers/{provider_id}": { - "get": { - "operationId": "v1-get-a-sso-provider", - "summary": "Gets a SSO provider by its UUID", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "provider_id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetProviderResponse" - } - } - } - }, - "403": { - "description": "" - }, - "404": { - "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "put": { - "operationId": "v1-update-a-sso-provider", - "summary": "Updates a SSO provider by its UUID", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "provider_id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateProviderBody" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateProviderResponse" - } - } - } - }, - "403": { - "description": "" - }, - "404": { - "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - }, - "delete": { - "operationId": "v1-delete-a-sso-provider", - "summary": "Removes a SSO provider by its UUID", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - }, - { - "name": "provider_id", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteProviderResponse" - } - } - } - }, - "403": { - "description": "" - }, - "404": { - "description": "Either SAML 2.0 was not enabled for this project, or the provider does not exist" - } - }, - "tags": [ - "Auth" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/database/backups": { - "get": { - "operationId": "v1-list-all-backups", - "summary": "Lists all backups", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1BackupsResponse" - } - } - } - }, - "500": { - "description": "Failed to get backups" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/projects/{ref}/database/backups/restore-pitr": { - "post": { - "operationId": "v1-restore-pitr-backup", - "summary": "Restores a PITR backup for a database", - "parameters": [ - { - "name": "ref", - "required": true, - "in": "path", - "description": "Project ref", - "schema": { - "minLength": 20, - "maxLength": 20, - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1RestorePitrBody" - } - } - } - }, - "responses": { - "201": { - "description": "" - } - }, - "tags": [ - "Database" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/organizations/{slug}/members": { - "get": { - "operationId": "v1-list-organization-members", - "summary": "List members of an organization", - "parameters": [ - { - "name": "slug", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/V1OrganizationMemberResponse" - } - } - } - } - } - }, - "tags": [ - "Organizations" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - }, - "/v1/organizations/{slug}": { - "get": { - "operationId": "v1-get-an-organization", - "summary": "Gets information about the organization", - "parameters": [ - { - "name": "slug", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/V1OrganizationSlugResponse" - } - } - } - } - }, - "tags": [ - "Organizations" - ], - "security": [ - { - "bearerAuth": [] - } - ] - } - } - }, - "info": { - "title": "Supabase API (v1)", - "description": "Supabase API generated from the OpenAPI specification.\nVisit [https://supabase.com/docs](https://supabase.com/docs) for a complete documentation.", - "version": "1.0.0", - "contact": {} - }, - "tags": [ - { - "name": "Auth", - "description": "Auth related endpoints" - }, - { - "name": "Database", - "description": "Database related endpoints" - }, - { - "name": "Domains", - "description": "Domains related endpoints" - }, - { - "name": "Edge Functions", - "description": "Edge related endpoints" - }, - { - "name": "Environments", - "description": "Environments related endpoints" - }, - { - "name": "OAuth", - "description": "OAuth related endpoints" - }, - { - "name": "Organizations", - "description": "Organizations related endpoints" - }, - { - "name": "Projects", - "description": "Projects related endpoints" - }, - { - "name": "Rest", - "description": "Rest related endpoints" - }, - { - "name": "Secrets", - "description": "Secrets related endpoints" - }, - { - "name": "Storage", - "description": "Storage related endpoints" - } - ], - "servers": [ - { - "url": "{scheme}://{domain}:{port}{basePath}", - "description": "Supabase Self-hosted Installation API Access", - "variables": { - "scheme": { - "description": "HTTP scheme", - "default": "http", - "enum": [ - "http", - "https" - ] - }, - "domain": { - "description": "Supabase IP address or domain", - "default": "localhost" - }, - "port": { - "description": "Port", - "default": "8000" - }, - "basePath": { - "description": "Base path", - "default": "/" - } - } - }, - { - "url": "https://api.supabase.io", - "description": "Supabase Public Cloud API Access" - } - ], - "components": { - "securitySchemes": { - "bearerAuth": { - "scheme": "bearer", - "bearerFormat": "JWT", - "type": "http", - "description": "API Key Authentication with a Bearer token. Copy your API Key from Supabase here. (e.g. 'eyJhbGciO...'" - } - }, - "schemas": { - "BranchDetailResponse": { - "type": "object", - "properties": { - "db_port": { - "type": "integer" - }, - "ref": { - "type": "string" - }, - "postgres_version": { - "type": "string" - }, - "status": { - "enum": [ - "ACTIVE_HEALTHY", - "ACTIVE_UNHEALTHY", - "COMING_UP", - "GOING_DOWN", - "INACTIVE", - "INIT_FAILED", - "REMOVED", - "RESTARTING", - "UNKNOWN", - "UPGRADING", - "PAUSING", - "RESTORING", - "RESTORE_FAILED", - "PAUSE_FAILED" - ], - "type": "string" - }, - "db_host": { - "type": "string" - }, - "db_user": { - "type": "string" - }, - "db_pass": { - "type": "string" - }, - "jwt_secret": { - "type": "string" - } - }, - "required": [ - "db_port", - "ref", - "postgres_version", - "status", - "db_host" - ] - }, - "UpdateBranchBody": { - "type": "object", - "properties": { - "branch_name": { - "type": "string" - }, - "git_branch": { - "type": "string" - }, - "reset_on_push": { - "type": "boolean" - }, - "persistent": { - "type": "boolean" - } - } - }, - "BranchResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "project_ref": { - "type": "string" - }, - "parent_project_ref": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "git_branch": { - "type": "string" - }, - "pr_number": { - "type": "number" - }, - "latest_check_run_id": { - "type": "number" - }, - "reset_on_push": { - "type": "boolean" - }, - "persistent": { - "type": "boolean" - }, - "status": { - "enum": [ - "CREATING_PROJECT", - "RUNNING_MIGRATIONS", - "MIGRATIONS_PASSED", - "MIGRATIONS_FAILED", - "FUNCTIONS_DEPLOYED", - "FUNCTIONS_FAILED" - ], - "type": "string" - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "project_ref", - "parent_project_ref", - "is_default", - "reset_on_push", - "persistent", - "status", - "created_at", - "updated_at" - ] - }, - "BranchDeleteResponse": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ] - }, - "BranchResetResponse": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ] - }, - "V1DatabaseResponse": { - "type": "object", - "properties": { - "host": { - "type": "string", - "description": "Database host" - }, - "version": { - "type": "string", - "description": "Database version" - } - }, - "required": [ - "host", - "version" - ] - }, - "V1ProjectResponse": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Id of your project" - }, - "organization_id": { - "type": "string", - "description": "Slug of your organization" - }, - "name": { - "type": "string", - "description": "Name of your project" - }, - "region": { - "type": "string", - "description": "Region of your project", - "example": "us-east-1" - }, - "created_at": { - "type": "string", - "description": "Creation timestamp", - "example": "2023-03-29T16:32:59Z" - }, - "database": { - "$ref": "#/components/schemas/V1DatabaseResponse" - }, - "status": { - "enum": [ - "ACTIVE_HEALTHY", - "ACTIVE_UNHEALTHY", - "COMING_UP", - "GOING_DOWN", - "INACTIVE", - "INIT_FAILED", - "REMOVED", - "RESTARTING", - "UNKNOWN", - "UPGRADING", - "PAUSING", - "RESTORING", - "RESTORE_FAILED", - "PAUSE_FAILED" - ], - "type": "string" - } - }, - "required": [ - "id", - "organization_id", - "name", - "region", - "created_at", - "status" - ] - }, - "DesiredInstanceSize": { - "type": "string", - "enum": [ - "micro", - "small", - "medium", - "large", - "xlarge", - "2xlarge", - "4xlarge", - "8xlarge", - "12xlarge", - "16xlarge" - ] - }, - "V1CreateProjectBody": { - "type": "object", - "properties": { - "db_pass": { - "type": "string", - "description": "Database password" - }, - "name": { - "type": "string", - "description": "Name of your project, should not contain dots" - }, - "organization_id": { - "type": "string", - "description": "Slug of your organization" - }, - "plan": { - "type": "string", - "enum": [ - "free", - "pro" - ], - "description": "Subscription Plan is now set on organization level and is ignored in this request", - "example": "free", - "deprecated": true - }, - "region": { - "type": "string", - "enum": [ - "us-east-1", - "us-west-1", - "us-west-2", - "ap-east-1", - "ap-southeast-1", - "ap-northeast-1", - "ap-northeast-2", - "ap-southeast-2", - "eu-west-1", - "eu-west-2", - "eu-west-3", - "eu-central-1", - "ca-central-1", - "ap-south-1", - "sa-east-1" - ], - "description": "Region you want your server to reside in", - "example": "us-east-1" - }, - "kps_enabled": { - "type": "boolean", - "deprecated": true, - "description": "This field is deprecated and is ignored in this request" - }, - "desired_instance_size": { - "$ref": "#/components/schemas/DesiredInstanceSize" - }, - "template_url": { - "type": "string", - "description": "Template URL used to create the project from the CLI.", - "example": "https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone" - } - }, - "required": [ - "db_pass", - "name", - "organization_id", - "region" - ] - }, - "OrganizationResponseV1": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ] - }, - "CreateOrganizationBodyV1": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "OAuthTokenBody": { - "type": "object", - "properties": { - "grant_type": { - "enum": [ - "authorization_code", - "refresh_token" - ], - "type": "string" - }, - "client_id": { - "type": "string" - }, - "client_secret": { - "type": "string" - }, - "code": { - "type": "string" - }, - "code_verifier": { - "type": "string" - }, - "redirect_uri": { - "type": "string" - }, - "refresh_token": { - "type": "string" - } - }, - "required": [ - "grant_type", - "client_id", - "client_secret" - ] - }, - "OAuthTokenResponse": { - "type": "object", - "properties": { - "token_type": { - "type": "string", - "enum": [ - "bearerAuth" - ] - }, - "access_token": { - "type": "string" - }, - "refresh_token": { - "type": "string" - }, - "expires_in": { - "type": "number" - } - }, - "required": [ - "token_type", - "access_token", - "refresh_token", - "expires_in" - ] - }, - "SnippetProject": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ] - }, - "SnippetUser": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "username": { - "type": "string" - } - }, - "required": [ - "id", - "username" - ] - }, - "SnippetMeta": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "inserted_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "sql" - ] - }, - "visibility": { - "type": "string", - "enum": [ - "user", - "project", - "org", - "public" - ] - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "project": { - "$ref": "#/components/schemas/SnippetProject" - }, - "owner": { - "$ref": "#/components/schemas/SnippetUser" - }, - "updated_by": { - "$ref": "#/components/schemas/SnippetUser" - } - }, - "required": [ - "id", - "inserted_at", - "updated_at", - "type", - "visibility", - "name", - "project", - "owner", - "updated_by" - ] - }, - "SnippetList": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SnippetMeta" - } - } - }, - "required": [ - "data" - ] - }, - "SnippetContent": { - "type": "object", - "properties": { - "favorite": { - "type": "boolean" - }, - "schema_version": { - "type": "string" - }, - "sql": { - "type": "string" - } - }, - "required": [ - "favorite", - "schema_version", - "sql" - ] - }, - "SnippetResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "inserted_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "sql" - ] - }, - "visibility": { - "enum": [ - "user", - "project", - "org", - "public" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "project": { - "$ref": "#/components/schemas/SnippetProject" - }, - "owner": { - "$ref": "#/components/schemas/SnippetUser" - }, - "updated_by": { - "$ref": "#/components/schemas/SnippetUser" - }, - "content": { - "$ref": "#/components/schemas/SnippetContent" - } - }, - "required": [ - "id", - "inserted_at", - "updated_at", - "type", - "visibility", - "name", - "project", - "owner", - "updated_by", - "content" - ] - }, - "ApiKeyResponse": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "api_key": { - "type": "string" - } - }, - "required": [ - "name", - "api_key" - ] - }, - "CreateBranchBody": { - "type": "object", - "properties": { - "branch_name": { - "type": "string" - }, - "git_branch": { - "type": "string" - }, - "region": { - "type": "string" - } - }, - "required": [ - "branch_name" - ] - }, - "ValidationRecord": { - "type": "object", - "properties": { - "txt_name": { - "type": "string" - }, - "txt_value": { - "type": "string" - } - }, - "required": [ - "txt_name", - "txt_value" - ] - }, - "ValidationError": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ] - }, - "SslValidation": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "validation_records": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValidationRecord" - } - }, - "validation_errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValidationError" - } - } - }, - "required": [ - "status", - "validation_records" - ] - }, - "OwnershipVerification": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "name", - "value" - ] - }, - "CustomHostnameDetails": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "hostname": { - "type": "string" - }, - "ssl": { - "$ref": "#/components/schemas/SslValidation" - }, - "ownership_verification": { - "$ref": "#/components/schemas/OwnershipVerification" - }, - "custom_origin_server": { - "type": "string" - }, - "verification_errors": { - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "type": "string" - } - }, - "required": [ - "id", - "hostname", - "ssl", - "ownership_verification", - "custom_origin_server", - "status" - ] - }, - "CfResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - }, - "errors": { - "type": "array", - "items": { - "type": "object" - } - }, - "messages": { - "type": "array", - "items": { - "type": "object" - } - }, - "result": { - "$ref": "#/components/schemas/CustomHostnameDetails" - } - }, - "required": [ - "success", - "errors", - "messages", - "result" - ] - }, - "UpdateCustomHostnameResponse": { - "type": "object", - "properties": { - "status": { - "enum": [ - "1_not_started", - "2_initiated", - "3_challenge_verified", - "4_origin_setup_completed", - "5_services_reconfigured" - ], - "type": "string" - }, - "custom_hostname": { - "type": "string" - }, - "data": { - "$ref": "#/components/schemas/CfResponse" - } - }, - "required": [ - "status", - "custom_hostname", - "data" - ] - }, - "UpdateCustomHostnameBody": { - "type": "object", - "properties": { - "custom_hostname": { - "type": "string" - } - }, - "required": [ - "custom_hostname" - ] - }, - "NetworkBanResponse": { - "type": "object", - "properties": { - "banned_ipv4_addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "banned_ipv4_addresses" - ] - }, - "RemoveNetworkBanRequest": { - "type": "object", - "properties": { - "ipv4_addresses": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ipv4_addresses" - ] - }, - "NetworkRestrictionsRequest": { - "type": "object", - "properties": { - "dbAllowedCidrs": { - "type": "array", - "items": { - "type": "string" - } - }, - "dbAllowedCidrsV6": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "NetworkRestrictionsResponse": { - "type": "object", - "properties": { - "entitlement": { - "enum": [ - "disallowed", - "allowed" - ], - "type": "string" - }, - "config": { - "$ref": "#/components/schemas/NetworkRestrictionsRequest" - }, - "old_config": { - "$ref": "#/components/schemas/NetworkRestrictionsRequest" - }, - "status": { - "enum": [ - "stored", - "applied" - ], - "type": "string" - } - }, - "required": [ - "entitlement", - "config", - "status" - ] - }, - "PgsodiumConfigResponse": { - "type": "object", - "properties": { - "root_key": { - "type": "string" - } - }, - "required": [ - "root_key" - ] - }, - "UpdatePgsodiumConfigBody": { - "type": "object", - "properties": { - "root_key": { - "type": "string" - } - }, - "required": [ - "root_key" - ] - }, - "PostgrestConfigWithJWTSecretResponse": { - "type": "object", - "properties": { - "max_rows": { - "type": "integer" - }, - "db_pool": { - "type": "integer", - "nullable": true, - "description": "If `null`, the value is automatically configured based on compute size." - }, - "db_schema": { - "type": "string" - }, - "db_extra_search_path": { - "type": "string" - }, - "jwt_secret": { - "type": "string" - } - }, - "required": [ - "max_rows", - "db_pool", - "db_schema", - "db_extra_search_path" - ] - }, - "UpdatePostgrestConfigBody": { - "type": "object", - "properties": { - "max_rows": { - "type": "integer", - "minimum": 0, - "maximum": 1000000 - }, - "db_pool": { - "type": "integer", - "minimum": 0, - "maximum": 1000 - }, - "db_extra_search_path": { - "type": "string" - }, - "db_schema": { - "type": "string" - } - } - }, - "V1PostgrestConfigResponse": { - "type": "object", - "properties": { - "max_rows": { - "type": "integer" - }, - "db_pool": { - "type": "integer", - "nullable": true, - "description": "If `null`, the value is automatically configured based on compute size." - }, - "db_schema": { - "type": "string" - }, - "db_extra_search_path": { - "type": "string" - } - }, - "required": [ - "max_rows", - "db_pool", - "db_schema", - "db_extra_search_path" - ] - }, - "V1ProjectRefResponse": { - "type": "object", - "properties": { - "id": { - "type": "number" - }, - "ref": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "ref", - "name" - ] - }, - "SecretResponse": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "name", - "value" - ] - }, - "CreateSecretBody": { - "type": "object", - "properties": { - "name": { - "type": "string", - "maxLength": 256, - "description": "Secret name must not start with the SUPABASE_ prefix.", - "example": "BACKEND_SERVICE_" - }, - "value": { - "type": "string", - "maxLength": 24576 - } - }, - "required": [ - "name", - "value" - ] - }, - "SslEnforcements": { - "type": "object", - "properties": { - "database": { - "type": "boolean" - } - }, - "required": [ - "database" - ] - }, - "SslEnforcementResponse": { - "type": "object", - "properties": { - "currentConfig": { - "$ref": "#/components/schemas/SslEnforcements" - }, - "appliedSuccessfully": { - "type": "boolean" - } - }, - "required": [ - "currentConfig", - "appliedSuccessfully" - ] - }, - "SslEnforcementRequest": { - "type": "object", - "properties": { - "requestedConfig": { - "$ref": "#/components/schemas/SslEnforcements" - } - }, - "required": [ - "requestedConfig" - ] - }, - "TypescriptResponse": { - "type": "object", - "properties": { - "types": { - "type": "string" - } - }, - "required": [ - "types" - ] - }, - "VanitySubdomainConfigResponse": { - "type": "object", - "properties": { - "status": { - "enum": [ - "not-used", - "custom-domain-used", - "active" - ], - "type": "string" - }, - "custom_domain": { - "type": "string" - } - }, - "required": [ - "status" - ] - }, - "VanitySubdomainBody": { - "type": "object", - "properties": { - "vanity_subdomain": { - "type": "string" - } - }, - "required": [ - "vanity_subdomain" - ] - }, - "SubdomainAvailabilityResponse": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - } - }, - "required": [ - "available" - ] - }, - "ActivateVanitySubdomainResponse": { - "type": "object", - "properties": { - "custom_domain": { - "type": "string" - } - }, - "required": [ - "custom_domain" - ] - }, - "UpgradeDatabaseBody": { - "type": "object", - "properties": { - "target_version": { - "type": "number" - } - }, - "required": [ - "target_version" - ] - }, - "ProjectUpgradeInitiateResponse": { - "type": "object", - "properties": { - "tracking_id": { - "type": "string" - } - }, - "required": [ - "tracking_id" - ] - }, - "ProjectVersion": { - "type": "object", - "properties": { - "postgres_version": { - "type": "number" - }, - "app_version": { - "type": "string" - } - }, - "required": [ - "postgres_version", - "app_version" - ] - }, - "ProjectUpgradeEligibilityResponse": { - "type": "object", - "properties": { - "eligible": { - "type": "boolean" - }, - "current_app_version": { - "type": "string" - }, - "latest_app_version": { - "type": "string" - }, - "target_upgrade_versions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProjectVersion" - } - }, - "potential_breaking_changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "duration_estimate_hours": { - "type": "number" - }, - "legacy_auth_custom_roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "extension_dependent_objects": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "eligible", - "current_app_version", - "latest_app_version", - "target_upgrade_versions", - "potential_breaking_changes", - "duration_estimate_hours", - "legacy_auth_custom_roles", - "extension_dependent_objects" - ] - }, - "DatabaseUpgradeStatus": { - "type": "object", - "properties": { - "initiated_at": { - "type": "string" - }, - "latest_status_at": { - "type": "string" - }, - "target_version": { - "type": "number" - }, - "error": { - "type": "string", - "enum": [ - "1_upgraded_instance_launch_failed", - "2_volume_detachchment_from_upgraded_instance_failed", - "3_volume_attachment_to_original_instance_failed", - "4_data_upgrade_initiation_failed", - "5_data_upgrade_completion_failed", - "6_volume_detachchment_from_original_instance_failed", - "7_volume_attachment_to_upgraded_instance_failed", - "8_upgrade_completion_failed", - "9_post_physical_backup_failed" - ] - }, - "progress": { - "type": "string", - "enum": [ - "0_requested", - "1_started", - "2_launched_upgraded_instance", - "3_detached_volume_from_upgraded_instance", - "4_attached_volume_to_original_instance", - "5_initiated_data_upgrade", - "6_completed_data_upgrade", - "7_detached_volume_from_original_instance", - "8_attached_volume_to_upgraded_instance", - "9_completed_upgrade", - "10_completed_post_physical_backup" - ] - }, - "status": { - "type": "number", - "enum": [ - 0, - 1, - 2 - ] - } - }, - "required": [ - "initiated_at", - "latest_status_at", - "target_version", - "status" - ] - }, - "DatabaseUpgradeStatusResponse": { - "type": "object", - "properties": { - "databaseUpgradeStatus": { - "nullable": true, - "allOf": [ - { - "$ref": "#/components/schemas/DatabaseUpgradeStatus" - } - ] - } - }, - "required": [ - "databaseUpgradeStatus" - ] - }, - "ReadOnlyStatusResponse": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "override_enabled": { - "type": "boolean" - }, - "override_active_until": { - "type": "string" - } - }, - "required": [ - "enabled", - "override_enabled", - "override_active_until" - ] - }, - "SetUpReadReplicaBody": { - "type": "object", - "properties": { - "read_replica_region": { - "type": "string", - "enum": [ - "us-east-1", - "us-west-1", - "us-west-2", - "ap-east-1", - "ap-southeast-1", - "ap-northeast-1", - "ap-northeast-2", - "ap-southeast-2", - "eu-west-1", - "eu-west-2", - "eu-west-3", - "eu-central-1", - "ca-central-1", - "ap-south-1", - "sa-east-1" - ], - "description": "Region you want your read replica to reside in", - "example": "us-east-1" - } - }, - "required": [ - "read_replica_region" - ] - }, - "RemoveReadReplicaBody": { - "type": "object", - "properties": { - "database_identifier": { - "type": "string" - } - }, - "required": [ - "database_identifier" - ] - }, - "AuthHealthResponse": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "description" - ] - }, - "RealtimeHealthResponse": { - "type": "object", - "properties": { - "healthy": { - "type": "boolean" - }, - "db_connected": { - "type": "boolean" - }, - "connected_cluster": { - "type": "number" - } - }, - "required": [ - "healthy", - "db_connected", - "connected_cluster" - ] - }, - "V1ServiceHealthResponse": { - "type": "object", - "properties": { - "info": { - "oneOf": [ - { - "$ref": "#/components/schemas/AuthHealthResponse" - }, - { - "$ref": "#/components/schemas/RealtimeHealthResponse" - } - ] - }, - "name": { - "enum": [ - "auth", - "db", - "pooler", - "realtime", - "rest", - "storage" - ], - "type": "string" - }, - "healthy": { - "type": "boolean" - }, - "status": { - "enum": [ - "COMING_UP", - "ACTIVE_HEALTHY", - "UNHEALTHY" - ], - "type": "string" - }, - "error": { - "type": "string" - } - }, - "required": [ - "name", - "healthy", - "status" - ] - }, - "PostgresConfigResponse": { - "type": "object", - "properties": { - "statement_timeout": { - "type": "string" - }, - "effective_cache_size": { - "type": "string" - }, - "maintenance_work_mem": { - "type": "string" - }, - "max_connections": { - "type": "integer", - "minimum": 1, - "maximum": 262143 - }, - "max_locks_per_transaction": { - "type": "integer", - "minimum": 10, - "maximum": 2147483640 - }, - "max_parallel_maintenance_workers": { - "type": "integer", - "minimum": 0, - "maximum": 1024 - }, - "max_parallel_workers": { - "type": "integer", - "minimum": 0, - "maximum": 1024 - }, - "max_parallel_workers_per_gather": { - "type": "integer", - "minimum": 0, - "maximum": 1024 - }, - "max_standby_archive_delay": { - "type": "string" - }, - "max_standby_streaming_delay": { - "type": "string" - }, - "max_worker_processes": { - "type": "integer", - "minimum": 0, - "maximum": 262143 - }, - "shared_buffers": { - "type": "string" - }, - "work_mem": { - "type": "string" - }, - "session_replication_role": { - "enum": [ - "origin", - "replica", - "local" - ], - "type": "string" - } - } - }, - "UpdatePostgresConfigBody": { - "type": "object", - "properties": { - "statement_timeout": { - "type": "string" - }, - "effective_cache_size": { - "type": "string" - }, - "maintenance_work_mem": { - "type": "string" - }, - "max_connections": { - "type": "integer", - "minimum": 1, - "maximum": 262143 - }, - "max_locks_per_transaction": { - "type": "integer", - "minimum": 10, - "maximum": 2147483640 - }, - "max_parallel_maintenance_workers": { - "type": "integer", - "minimum": 0, - "maximum": 1024 - }, - "max_parallel_workers": { - "type": "integer", - "minimum": 0, - "maximum": 1024 - }, - "max_parallel_workers_per_gather": { - "type": "integer", - "minimum": 0, - "maximum": 1024 - }, - "max_standby_archive_delay": { - "type": "string" - }, - "max_standby_streaming_delay": { - "type": "string" - }, - "max_worker_processes": { - "type": "integer", - "minimum": 0, - "maximum": 262143 - }, - "shared_buffers": { - "type": "string" - }, - "work_mem": { - "type": "string" - }, - "session_replication_role": { - "enum": [ - "origin", - "replica", - "local" - ], - "type": "string" - } - } - }, - "V1PgbouncerConfigResponse": { - "type": "object", - "properties": { - "pool_mode": { - "type": "string", - "enum": [ - "transaction", - "session", - "statement" - ] - }, - "default_pool_size": { - "type": "number" - }, - "ignore_startup_parameters": { - "type": "string" - }, - "max_client_conn": { - "type": "number" - }, - "connection_string": { - "type": "string" - } - } - }, - "SupavisorConfigResponse": { - "type": "object", - "properties": { - "identifier": { - "type": "string" - }, - "database_type": { - "enum": [ - "PRIMARY", - "READ_REPLICA" - ], - "type": "string" - }, - "is_using_scram_auth": { - "type": "boolean" - }, - "db_user": { - "type": "string" - }, - "db_host": { - "type": "string" - }, - "db_port": { - "type": "number" - }, - "db_name": { - "type": "string" - }, - "connectionString": { - "type": "string" - }, - "default_pool_size": { - "type": "number", - "nullable": true - }, - "max_client_conn": { - "type": "number", - "nullable": true - }, - "pool_mode": { - "enum": [ - "transaction", - "session" - ], - "type": "string" - } - }, - "required": [ - "identifier", - "database_type", - "is_using_scram_auth", - "db_user", - "db_host", - "db_port", - "db_name", - "connectionString", - "default_pool_size", - "max_client_conn", - "pool_mode" - ] - }, - "UpdateSupavisorConfigBody": { - "type": "object", - "properties": { - "default_pool_size": { - "type": "integer", - "nullable": true, - "minimum": 0, - "maximum": 1000 - }, - "pool_mode": { - "enum": [ - "transaction", - "session" - ], - "type": "string", - "deprecated": true, - "description": "This field is deprecated and is ignored in this request" - } - } - }, - "UpdateSupavisorConfigResponse": { - "type": "object", - "properties": { - "default_pool_size": { - "type": "number", - "nullable": true - }, - "pool_mode": { - "enum": [ - "transaction", - "session" - ], - "type": "string" - } - }, - "required": [ - "default_pool_size", - "pool_mode" - ] - }, - "AuthConfigResponse": { - "type": "object", - "properties": { - "api_max_request_duration": { - "type": "number", - "nullable": true - }, - "db_max_pool_size": { - "type": "number", - "nullable": true - }, - "disable_signup": { - "type": "boolean", - "nullable": true - }, - "external_anonymous_users_enabled": { - "type": "boolean", - "nullable": true - }, - "external_apple_additional_client_ids": { - "type": "string", - "nullable": true - }, - "external_apple_client_id": { - "type": "string", - "nullable": true - }, - "external_apple_enabled": { - "type": "boolean", - "nullable": true - }, - "external_apple_secret": { - "type": "string", - "nullable": true - }, - "external_azure_client_id": { - "type": "string", - "nullable": true - }, - "external_azure_enabled": { - "type": "boolean", - "nullable": true - }, - "external_azure_secret": { - "type": "string", - "nullable": true - }, - "external_azure_url": { - "type": "string", - "nullable": true - }, - "external_bitbucket_client_id": { - "type": "string", - "nullable": true - }, - "external_bitbucket_enabled": { - "type": "boolean", - "nullable": true - }, - "external_bitbucket_secret": { - "type": "string", - "nullable": true - }, - "external_discord_client_id": { - "type": "string", - "nullable": true - }, - "external_discord_enabled": { - "type": "boolean", - "nullable": true - }, - "external_discord_secret": { - "type": "string", - "nullable": true - }, - "external_email_enabled": { - "type": "boolean", - "nullable": true - }, - "external_facebook_client_id": { - "type": "string", - "nullable": true - }, - "external_facebook_enabled": { - "type": "boolean", - "nullable": true - }, - "external_facebook_secret": { - "type": "string", - "nullable": true - }, - "external_figma_client_id": { - "type": "string", - "nullable": true - }, - "external_figma_enabled": { - "type": "boolean", - "nullable": true - }, - "external_figma_secret": { - "type": "string", - "nullable": true - }, - "external_github_client_id": { - "type": "string", - "nullable": true - }, - "external_github_enabled": { - "type": "boolean", - "nullable": true - }, - "external_github_secret": { - "type": "string", - "nullable": true - }, - "external_gitlab_client_id": { - "type": "string", - "nullable": true - }, - "external_gitlab_enabled": { - "type": "boolean", - "nullable": true - }, - "external_gitlab_secret": { - "type": "string", - "nullable": true - }, - "external_gitlab_url": { - "type": "string", - "nullable": true - }, - "external_google_additional_client_ids": { - "type": "string", - "nullable": true - }, - "external_google_client_id": { - "type": "string", - "nullable": true - }, - "external_google_enabled": { - "type": "boolean", - "nullable": true - }, - "external_google_secret": { - "type": "string", - "nullable": true - }, - "external_google_skip_nonce_check": { - "type": "boolean", - "nullable": true - }, - "external_kakao_client_id": { - "type": "string", - "nullable": true - }, - "external_kakao_enabled": { - "type": "boolean", - "nullable": true - }, - "external_kakao_secret": { - "type": "string", - "nullable": true - }, - "external_keycloak_client_id": { - "type": "string", - "nullable": true - }, - "external_keycloak_enabled": { - "type": "boolean", - "nullable": true - }, - "external_keycloak_secret": { - "type": "string", - "nullable": true - }, - "external_keycloak_url": { - "type": "string", - "nullable": true - }, - "external_linkedin_oidc_client_id": { - "type": "string", - "nullable": true - }, - "external_linkedin_oidc_enabled": { - "type": "boolean", - "nullable": true - }, - "external_linkedin_oidc_secret": { - "type": "string", - "nullable": true - }, - "external_slack_oidc_client_id": { - "type": "string", - "nullable": true - }, - "external_slack_oidc_enabled": { - "type": "boolean", - "nullable": true - }, - "external_slack_oidc_secret": { - "type": "string", - "nullable": true - }, - "external_notion_client_id": { - "type": "string", - "nullable": true - }, - "external_notion_enabled": { - "type": "boolean", - "nullable": true - }, - "external_notion_secret": { - "type": "string", - "nullable": true - }, - "external_phone_enabled": { - "type": "boolean", - "nullable": true - }, - "external_slack_client_id": { - "type": "string", - "nullable": true - }, - "external_slack_enabled": { - "type": "boolean", - "nullable": true - }, - "external_slack_secret": { - "type": "string", - "nullable": true - }, - "external_spotify_client_id": { - "type": "string", - "nullable": true - }, - "external_spotify_enabled": { - "type": "boolean", - "nullable": true - }, - "external_spotify_secret": { - "type": "string", - "nullable": true - }, - "external_twitch_client_id": { - "type": "string", - "nullable": true - }, - "external_twitch_enabled": { - "type": "boolean", - "nullable": true - }, - "external_twitch_secret": { - "type": "string", - "nullable": true - }, - "external_twitter_client_id": { - "type": "string", - "nullable": true - }, - "external_twitter_enabled": { - "type": "boolean", - "nullable": true - }, - "external_twitter_secret": { - "type": "string", - "nullable": true - }, - "external_workos_client_id": { - "type": "string", - "nullable": true - }, - "external_workos_enabled": { - "type": "boolean", - "nullable": true - }, - "external_workos_secret": { - "type": "string", - "nullable": true - }, - "external_workos_url": { - "type": "string", - "nullable": true - }, - "external_zoom_client_id": { - "type": "string", - "nullable": true - }, - "external_zoom_enabled": { - "type": "boolean", - "nullable": true - }, - "external_zoom_secret": { - "type": "string", - "nullable": true - }, - "hook_custom_access_token_enabled": { - "type": "boolean", - "nullable": true - }, - "hook_custom_access_token_uri": { - "type": "string", - "nullable": true - }, - "hook_custom_access_token_secrets": { - "type": "string", - "nullable": true - }, - "hook_mfa_verification_attempt_enabled": { - "type": "boolean", - "nullable": true - }, - "hook_mfa_verification_attempt_uri": { - "type": "string", - "nullable": true - }, - "hook_mfa_verification_attempt_secrets": { - "type": "string", - "nullable": true - }, - "hook_password_verification_attempt_enabled": { - "type": "boolean", - "nullable": true - }, - "hook_password_verification_attempt_uri": { - "type": "string", - "nullable": true - }, - "hook_password_verification_attempt_secrets": { - "type": "string", - "nullable": true - }, - "hook_send_sms_enabled": { - "type": "boolean", - "nullable": true - }, - "hook_send_sms_uri": { - "type": "string", - "nullable": true - }, - "hook_send_sms_secrets": { - "type": "string", - "nullable": true - }, - "hook_send_email_enabled": { - "type": "boolean", - "nullable": true - }, - "hook_send_email_uri": { - "type": "string", - "nullable": true - }, - "hook_send_email_secrets": { - "type": "string", - "nullable": true - }, - "jwt_exp": { - "type": "number", - "nullable": true - }, - "mailer_allow_unverified_email_sign_ins": { - "type": "boolean", - "nullable": true - }, - "mailer_autoconfirm": { - "type": "boolean", - "nullable": true - }, - "mailer_otp_exp": { - "type": "number" - }, - "mailer_otp_length": { - "type": "number", - "nullable": true - }, - "mailer_secure_email_change_enabled": { - "type": "boolean", - "nullable": true - }, - "mailer_subjects_confirmation": { - "type": "string", - "nullable": true - }, - "mailer_subjects_email_change": { - "type": "string", - "nullable": true - }, - "mailer_subjects_invite": { - "type": "string", - "nullable": true - }, - "mailer_subjects_magic_link": { - "type": "string", - "nullable": true - }, - "mailer_subjects_reauthentication": { - "type": "string", - "nullable": true - }, - "mailer_subjects_recovery": { - "type": "string", - "nullable": true - }, - "mailer_templates_confirmation_content": { - "type": "string", - "nullable": true - }, - "mailer_templates_email_change_content": { - "type": "string", - "nullable": true - }, - "mailer_templates_invite_content": { - "type": "string", - "nullable": true - }, - "mailer_templates_magic_link_content": { - "type": "string", - "nullable": true - }, - "mailer_templates_reauthentication_content": { - "type": "string", - "nullable": true - }, - "mailer_templates_recovery_content": { - "type": "string", - "nullable": true - }, - "mfa_max_enrolled_factors": { - "type": "number", - "nullable": true - }, - "password_hibp_enabled": { - "type": "boolean", - "nullable": true - }, - "password_min_length": { - "type": "number", - "nullable": true - }, - "password_required_characters": { - "type": "string", - "nullable": true - }, - "rate_limit_anonymous_users": { - "type": "number", - "nullable": true - }, - "rate_limit_email_sent": { - "type": "number", - "nullable": true - }, - "rate_limit_sms_sent": { - "type": "number", - "nullable": true - }, - "rate_limit_token_refresh": { - "type": "number", - "nullable": true - }, - "rate_limit_verify": { - "type": "number", - "nullable": true - }, - "rate_limit_otp": { - "type": "number", - "nullable": true - }, - "refresh_token_rotation_enabled": { - "type": "boolean", - "nullable": true - }, - "saml_enabled": { - "type": "boolean", - "nullable": true - }, - "saml_external_url": { - "type": "string", - "nullable": true - }, - "security_captcha_enabled": { - "type": "boolean", - "nullable": true - }, - "security_captcha_provider": { - "type": "string", - "nullable": true - }, - "security_captcha_secret": { - "type": "string", - "nullable": true - }, - "security_manual_linking_enabled": { - "type": "boolean", - "nullable": true - }, - "security_refresh_token_reuse_interval": { - "type": "number", - "nullable": true - }, - "security_update_password_require_reauthentication": { - "type": "boolean", - "nullable": true - }, - "sessions_inactivity_timeout": { - "type": "number", - "nullable": true - }, - "sessions_single_per_user": { - "type": "boolean", - "nullable": true - }, - "sessions_tags": { - "type": "string", - "nullable": true - }, - "sessions_timebox": { - "type": "number", - "nullable": true - }, - "site_url": { - "type": "string", - "nullable": true - }, - "sms_autoconfirm": { - "type": "boolean", - "nullable": true - }, - "sms_max_frequency": { - "type": "number", - "nullable": true - }, - "sms_messagebird_access_key": { - "type": "string", - "nullable": true - }, - "sms_messagebird_originator": { - "type": "string", - "nullable": true - }, - "sms_otp_exp": { - "type": "number", - "nullable": true - }, - "sms_otp_length": { - "type": "number" - }, - "sms_provider": { - "type": "string", - "nullable": true - }, - "sms_template": { - "type": "string", - "nullable": true - }, - "sms_test_otp": { - "type": "string", - "nullable": true - }, - "sms_test_otp_valid_until": { - "type": "string", - "nullable": true - }, - "sms_textlocal_api_key": { - "type": "string", - "nullable": true - }, - "sms_textlocal_sender": { - "type": "string", - "nullable": true - }, - "sms_twilio_account_sid": { - "type": "string", - "nullable": true - }, - "sms_twilio_auth_token": { - "type": "string", - "nullable": true - }, - "sms_twilio_content_sid": { - "type": "string", - "nullable": true - }, - "sms_twilio_message_service_sid": { - "type": "string", - "nullable": true - }, - "sms_twilio_verify_account_sid": { - "type": "string", - "nullable": true - }, - "sms_twilio_verify_auth_token": { - "type": "string", - "nullable": true - }, - "sms_twilio_verify_message_service_sid": { - "type": "string", - "nullable": true - }, - "sms_vonage_api_key": { - "type": "string", - "nullable": true - }, - "sms_vonage_api_secret": { - "type": "string", - "nullable": true - }, - "sms_vonage_from": { - "type": "string", - "nullable": true - }, - "smtp_admin_email": { - "type": "string", - "nullable": true - }, - "smtp_host": { - "type": "string", - "nullable": true - }, - "smtp_max_frequency": { - "type": "number", - "nullable": true - }, - "smtp_pass": { - "type": "string", - "nullable": true - }, - "smtp_port": { - "type": "string", - "nullable": true - }, - "smtp_sender_name": { - "type": "string", - "nullable": true - }, - "smtp_user": { - "type": "string", - "nullable": true - }, - "uri_allow_list": { - "type": "string", - "nullable": true - } - }, - "required": [ - "api_max_request_duration", - "db_max_pool_size", - "disable_signup", - "external_anonymous_users_enabled", - "external_apple_additional_client_ids", - "external_apple_client_id", - "external_apple_enabled", - "external_apple_secret", - "external_azure_client_id", - "external_azure_enabled", - "external_azure_secret", - "external_azure_url", - "external_bitbucket_client_id", - "external_bitbucket_enabled", - "external_bitbucket_secret", - "external_discord_client_id", - "external_discord_enabled", - "external_discord_secret", - "external_email_enabled", - "external_facebook_client_id", - "external_facebook_enabled", - "external_facebook_secret", - "external_figma_client_id", - "external_figma_enabled", - "external_figma_secret", - "external_github_client_id", - "external_github_enabled", - "external_github_secret", - "external_gitlab_client_id", - "external_gitlab_enabled", - "external_gitlab_secret", - "external_gitlab_url", - "external_google_additional_client_ids", - "external_google_client_id", - "external_google_enabled", - "external_google_secret", - "external_google_skip_nonce_check", - "external_kakao_client_id", - "external_kakao_enabled", - "external_kakao_secret", - "external_keycloak_client_id", - "external_keycloak_enabled", - "external_keycloak_secret", - "external_keycloak_url", - "external_linkedin_oidc_client_id", - "external_linkedin_oidc_enabled", - "external_linkedin_oidc_secret", - "external_slack_oidc_client_id", - "external_slack_oidc_enabled", - "external_slack_oidc_secret", - "external_notion_client_id", - "external_notion_enabled", - "external_notion_secret", - "external_phone_enabled", - "external_slack_client_id", - "external_slack_enabled", - "external_slack_secret", - "external_spotify_client_id", - "external_spotify_enabled", - "external_spotify_secret", - "external_twitch_client_id", - "external_twitch_enabled", - "external_twitch_secret", - "external_twitter_client_id", - "external_twitter_enabled", - "external_twitter_secret", - "external_workos_client_id", - "external_workos_enabled", - "external_workos_secret", - "external_workos_url", - "external_zoom_client_id", - "external_zoom_enabled", - "external_zoom_secret", - "hook_custom_access_token_enabled", - "hook_custom_access_token_uri", - "hook_custom_access_token_secrets", - "hook_mfa_verification_attempt_enabled", - "hook_mfa_verification_attempt_uri", - "hook_mfa_verification_attempt_secrets", - "hook_password_verification_attempt_enabled", - "hook_password_verification_attempt_uri", - "hook_password_verification_attempt_secrets", - "hook_send_sms_enabled", - "hook_send_sms_uri", - "hook_send_sms_secrets", - "hook_send_email_enabled", - "hook_send_email_uri", - "hook_send_email_secrets", - "jwt_exp", - "mailer_allow_unverified_email_sign_ins", - "mailer_autoconfirm", - "mailer_otp_exp", - "mailer_otp_length", - "mailer_secure_email_change_enabled", - "mailer_subjects_confirmation", - "mailer_subjects_email_change", - "mailer_subjects_invite", - "mailer_subjects_magic_link", - "mailer_subjects_reauthentication", - "mailer_subjects_recovery", - "mailer_templates_confirmation_content", - "mailer_templates_email_change_content", - "mailer_templates_invite_content", - "mailer_templates_magic_link_content", - "mailer_templates_reauthentication_content", - "mailer_templates_recovery_content", - "mfa_max_enrolled_factors", - "password_hibp_enabled", - "password_min_length", - "password_required_characters", - "rate_limit_anonymous_users", - "rate_limit_email_sent", - "rate_limit_sms_sent", - "rate_limit_token_refresh", - "rate_limit_verify", - "rate_limit_otp", - "refresh_token_rotation_enabled", - "saml_enabled", - "saml_external_url", - "security_captcha_enabled", - "security_captcha_provider", - "security_captcha_secret", - "security_manual_linking_enabled", - "security_refresh_token_reuse_interval", - "security_update_password_require_reauthentication", - "sessions_inactivity_timeout", - "sessions_single_per_user", - "sessions_tags", - "sessions_timebox", - "site_url", - "sms_autoconfirm", - "sms_max_frequency", - "sms_messagebird_access_key", - "sms_messagebird_originator", - "sms_otp_exp", - "sms_otp_length", - "sms_provider", - "sms_template", - "sms_test_otp", - "sms_test_otp_valid_until", - "sms_textlocal_api_key", - "sms_textlocal_sender", - "sms_twilio_account_sid", - "sms_twilio_auth_token", - "sms_twilio_content_sid", - "sms_twilio_message_service_sid", - "sms_twilio_verify_account_sid", - "sms_twilio_verify_auth_token", - "sms_twilio_verify_message_service_sid", - "sms_vonage_api_key", - "sms_vonage_api_secret", - "sms_vonage_from", - "smtp_admin_email", - "smtp_host", - "smtp_max_frequency", - "smtp_pass", - "smtp_port", - "smtp_sender_name", - "smtp_user", - "uri_allow_list" - ] - }, - "UpdateAuthConfigBody": { - "type": "object", - "properties": { - "site_url": { - "type": "string", - "pattern": "/^[^,]+$/" - }, - "disable_signup": { - "type": "boolean" - }, - "jwt_exp": { - "type": "number", - "minimum": 0, - "maximum": 604800 - }, - "smtp_admin_email": { - "type": "string" - }, - "smtp_host": { - "type": "string" - }, - "smtp_port": { - "type": "string" - }, - "smtp_user": { - "type": "string" - }, - "smtp_pass": { - "type": "string" - }, - "smtp_max_frequency": { - "type": "number", - "minimum": 0, - "maximum": 32767 - }, - "smtp_sender_name": { - "type": "string" - }, - "mailer_allow_unverified_email_sign_ins": { - "type": "boolean" - }, - "mailer_autoconfirm": { - "type": "boolean" - }, - "mailer_subjects_invite": { - "type": "string" - }, - "mailer_subjects_confirmation": { - "type": "string" - }, - "mailer_subjects_recovery": { - "type": "string" - }, - "mailer_subjects_email_change": { - "type": "string" - }, - "mailer_subjects_magic_link": { - "type": "string" - }, - "mailer_subjects_reauthentication": { - "type": "string" - }, - "mailer_templates_invite_content": { - "type": "string" - }, - "mailer_templates_confirmation_content": { - "type": "string" - }, - "mailer_templates_recovery_content": { - "type": "string" - }, - "mailer_templates_email_change_content": { - "type": "string" - }, - "mailer_templates_magic_link_content": { - "type": "string" - }, - "mailer_templates_reauthentication_content": { - "type": "string" - }, - "mfa_max_enrolled_factors": { - "type": "number", - "minimum": 0, - "maximum": 2147483647 - }, - "uri_allow_list": { - "type": "string" - }, - "external_anonymous_users_enabled": { - "type": "boolean" - }, - "external_email_enabled": { - "type": "boolean" - }, - "external_phone_enabled": { - "type": "boolean" - }, - "saml_enabled": { - "type": "boolean" - }, - "saml_external_url": { - "type": "string", - "pattern": "/^[^,]+$/" - }, - "security_captcha_enabled": { - "type": "boolean" - }, - "security_captcha_provider": { - "type": "string" - }, - "security_captcha_secret": { - "type": "string" - }, - "sessions_timebox": { - "type": "number", - "minimum": 0 - }, - "sessions_inactivity_timeout": { - "type": "number", - "minimum": 0 - }, - "sessions_single_per_user": { - "type": "boolean" - }, - "sessions_tags": { - "type": "string", - "pattern": "/^\\s*([a-z0-9_-]+(\\s*,+\\s*)?)*\\s*$/i" - }, - "rate_limit_anonymous_users": { - "type": "number", - "minimum": 1, - "maximum": 2147483647 - }, - "rate_limit_email_sent": { - "type": "number", - "minimum": 1, - "maximum": 2147483647 - }, - "rate_limit_sms_sent": { - "type": "number", - "minimum": 1, - "maximum": 2147483647 - }, - "rate_limit_verify": { - "type": "number", - "minimum": 1, - "maximum": 2147483647 - }, - "rate_limit_token_refresh": { - "type": "number", - "minimum": 1, - "maximum": 2147483647 - }, - "rate_limit_otp": { - "type": "number", - "minimum": 1, - "maximum": 2147483647 - }, - "mailer_secure_email_change_enabled": { - "type": "boolean" - }, - "refresh_token_rotation_enabled": { - "type": "boolean" - }, - "password_hibp_enabled": { - "type": "boolean" - }, - "password_min_length": { - "type": "number", - "minimum": 6, - "maximum": 32767 - }, - "password_required_characters": { - "type": "string", - "enum": [ - "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", - "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789", - "abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:0123456789:!@#$%^&*()_+-=[]{};'\\\\:\"|<>?,./`~", - "" - ] - }, - "security_manual_linking_enabled": { - "type": "boolean" - }, - "security_update_password_require_reauthentication": { - "type": "boolean" - }, - "security_refresh_token_reuse_interval": { - "type": "number", - "minimum": 0, - "maximum": 2147483647 - }, - "mailer_otp_exp": { - "type": "number", - "minimum": 0, - "maximum": 2147483647 - }, - "mailer_otp_length": { - "type": "number", - "minimum": 6, - "maximum": 10 - }, - "sms_autoconfirm": { - "type": "boolean" - }, - "sms_max_frequency": { - "type": "number", - "minimum": 0, - "maximum": 32767 - }, - "sms_otp_exp": { - "type": "number", - "minimum": 0, - "maximum": 2147483647 - }, - "sms_otp_length": { - "type": "number", - "minimum": 0, - "maximum": 32767 - }, - "sms_provider": { - "type": "string" - }, - "sms_messagebird_access_key": { - "type": "string" - }, - "sms_messagebird_originator": { - "type": "string" - }, - "sms_test_otp": { - "type": "string", - "pattern": "/^([0-9]{1,15}=[0-9]+,?)*$/" - }, - "sms_test_otp_valid_until": { - "type": "string" - }, - "sms_textlocal_api_key": { - "type": "string" - }, - "sms_textlocal_sender": { - "type": "string" - }, - "sms_twilio_account_sid": { - "type": "string" - }, - "sms_twilio_auth_token": { - "type": "string" - }, - "sms_twilio_content_sid": { - "type": "string" - }, - "sms_twilio_message_service_sid": { - "type": "string" - }, - "sms_twilio_verify_account_sid": { - "type": "string" - }, - "sms_twilio_verify_auth_token": { - "type": "string" - }, - "sms_twilio_verify_message_service_sid": { - "type": "string" - }, - "sms_vonage_api_key": { - "type": "string" - }, - "sms_vonage_api_secret": { - "type": "string" - }, - "sms_vonage_from": { - "type": "string" - }, - "sms_template": { - "type": "string" - }, - "hook_mfa_verification_attempt_enabled": { - "type": "boolean" - }, - "hook_mfa_verification_attempt_uri": { - "type": "string" - }, - "hook_mfa_verification_attempt_secrets": { - "type": "string" - }, - "hook_password_verification_attempt_enabled": { - "type": "boolean" - }, - "hook_password_verification_attempt_uri": { - "type": "string" - }, - "hook_password_verification_attempt_secrets": { - "type": "string" - }, - "hook_custom_access_token_enabled": { - "type": "boolean" - }, - "hook_custom_access_token_uri": { - "type": "string" - }, - "hook_custom_access_token_secrets": { - "type": "string" - }, - "hook_send_sms_enabled": { - "type": "boolean" - }, - "hook_send_sms_uri": { - "type": "string" - }, - "hook_send_sms_secrets": { - "type": "string" - }, - "hook_send_email_enabled": { - "type": "boolean" - }, - "hook_send_email_uri": { - "type": "string" - }, - "hook_send_email_secrets": { - "type": "string" - }, - "external_apple_enabled": { - "type": "boolean" - }, - "external_apple_client_id": { - "type": "string" - }, - "external_apple_secret": { - "type": "string" - }, - "external_apple_additional_client_ids": { - "type": "string" - }, - "external_azure_enabled": { - "type": "boolean" - }, - "external_azure_client_id": { - "type": "string" - }, - "external_azure_secret": { - "type": "string" - }, - "external_azure_url": { - "type": "string" - }, - "external_bitbucket_enabled": { - "type": "boolean" - }, - "external_bitbucket_client_id": { - "type": "string" - }, - "external_bitbucket_secret": { - "type": "string" - }, - "external_discord_enabled": { - "type": "boolean" - }, - "external_discord_client_id": { - "type": "string" - }, - "external_discord_secret": { - "type": "string" - }, - "external_facebook_enabled": { - "type": "boolean" - }, - "external_facebook_client_id": { - "type": "string" - }, - "external_facebook_secret": { - "type": "string" - }, - "external_figma_enabled": { - "type": "boolean" - }, - "external_figma_client_id": { - "type": "string" - }, - "external_figma_secret": { - "type": "string" - }, - "external_github_enabled": { - "type": "boolean" - }, - "external_github_client_id": { - "type": "string" - }, - "external_github_secret": { - "type": "string" - }, - "external_gitlab_enabled": { - "type": "boolean" - }, - "external_gitlab_client_id": { - "type": "string" - }, - "external_gitlab_secret": { - "type": "string" - }, - "external_gitlab_url": { - "type": "string" - }, - "external_google_enabled": { - "type": "boolean" - }, - "external_google_client_id": { - "type": "string" - }, - "external_google_secret": { - "type": "string" - }, - "external_google_additional_client_ids": { - "type": "string" - }, - "external_google_skip_nonce_check": { - "type": "boolean" - }, - "external_kakao_enabled": { - "type": "boolean" - }, - "external_kakao_client_id": { - "type": "string" - }, - "external_kakao_secret": { - "type": "string" - }, - "external_keycloak_enabled": { - "type": "boolean" - }, - "external_keycloak_client_id": { - "type": "string" - }, - "external_keycloak_secret": { - "type": "string" - }, - "external_keycloak_url": { - "type": "string" - }, - "external_linkedin_oidc_enabled": { - "type": "boolean" - }, - "external_linkedin_oidc_client_id": { - "type": "string" - }, - "external_linkedin_oidc_secret": { - "type": "string" - }, - "external_slack_oidc_enabled": { - "type": "boolean" - }, - "external_slack_oidc_client_id": { - "type": "string" - }, - "external_slack_oidc_secret": { - "type": "string" - }, - "external_notion_enabled": { - "type": "boolean" - }, - "external_notion_client_id": { - "type": "string" - }, - "external_notion_secret": { - "type": "string" - }, - "external_slack_enabled": { - "type": "boolean" - }, - "external_slack_client_id": { - "type": "string" - }, - "external_slack_secret": { - "type": "string" - }, - "external_spotify_enabled": { - "type": "boolean" - }, - "external_spotify_client_id": { - "type": "string" - }, - "external_spotify_secret": { - "type": "string" - }, - "external_twitch_enabled": { - "type": "boolean" - }, - "external_twitch_client_id": { - "type": "string" - }, - "external_twitch_secret": { - "type": "string" - }, - "external_twitter_enabled": { - "type": "boolean" - }, - "external_twitter_client_id": { - "type": "string" - }, - "external_twitter_secret": { - "type": "string" - }, - "external_workos_enabled": { - "type": "boolean" - }, - "external_workos_client_id": { - "type": "string" - }, - "external_workos_secret": { - "type": "string" - }, - "external_workos_url": { - "type": "string" - }, - "external_zoom_enabled": { - "type": "boolean" - }, - "external_zoom_client_id": { - "type": "string" - }, - "external_zoom_secret": { - "type": "string" - }, - "db_max_pool_size": { - "type": "number" - }, - "api_max_request_duration": { - "type": "number" - } - } - }, - "CreateThirdPartyAuthBody": { - "type": "object", - "properties": { - "oidc_issuer_url": { - "type": "string" - }, - "jwks_url": { - "type": "string" - }, - "custom_jwks": { - "type": "object" - } - } - }, - "ThirdPartyAuth": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - }, - "oidc_issuer_url": { - "type": "string", - "nullable": true - }, - "jwks_url": { - "type": "string", - "nullable": true - }, - "custom_jwks": { - "type": "object", - "nullable": true - }, - "resolved_jwks": { - "type": "object", - "nullable": true - }, - "inserted_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "resolved_at": { - "type": "string", - "nullable": true - } - }, - "required": [ - "id", - "type", - "inserted_at", - "updated_at" - ] - }, - "V1RunQueryBody": { - "type": "object", - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ] - }, - "V1CreateFunctionBody": { - "type": "object", - "properties": { - "slug": { - "type": "string", - "pattern": "/^[A-Za-z0-9_-]+$/" - }, - "name": { - "type": "string" - }, - "body": { - "type": "string" - }, - "verify_jwt": { - "type": "boolean" - } - }, - "required": [ - "slug", - "name", - "body" - ] - }, - "FunctionResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "slug": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "enum": [ - "ACTIVE", - "REMOVED", - "THROTTLED" - ], - "type": "string" - }, - "version": { - "type": "number" - }, - "created_at": { - "type": "number" - }, - "updated_at": { - "type": "number" - }, - "verify_jwt": { - "type": "boolean" - }, - "import_map": { - "type": "boolean" - }, - "entrypoint_path": { - "type": "string" - }, - "import_map_path": { - "type": "string" - } - }, - "required": [ - "id", - "slug", - "name", - "status", - "version", - "created_at", - "updated_at" - ] - }, - "FunctionSlugResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "slug": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "enum": [ - "ACTIVE", - "REMOVED", - "THROTTLED" - ], - "type": "string" - }, - "version": { - "type": "number" - }, - "created_at": { - "type": "number" - }, - "updated_at": { - "type": "number" - }, - "verify_jwt": { - "type": "boolean" - }, - "import_map": { - "type": "boolean" - }, - "entrypoint_path": { - "type": "string" - }, - "import_map_path": { - "type": "string" - } - }, - "required": [ - "id", - "slug", - "name", - "status", - "version", - "created_at", - "updated_at" - ] - }, - "V1UpdateFunctionBody": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "body": { - "type": "string" - }, - "verify_jwt": { - "type": "boolean" - } - } - }, - "V1StorageBucketResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "public": { - "type": "boolean" - } - }, - "required": [ - "id", - "name", - "owner", - "created_at", - "updated_at", - "public" - ] - }, - "AttributeValue": { - "type": "object", - "properties": { - "default": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "number" - }, - { - "type": "string" - }, - { - "type": "boolean" - } - ] - }, - "name": { - "type": "string" - }, - "names": { - "type": "array", - "items": { - "type": "string" - } - }, - "array": { - "type": "boolean" - } - } - }, - "AttributeMapping": { - "type": "object", - "properties": { - "keys": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/AttributeValue" - } - } - }, - "required": [ - "keys" - ] - }, - "CreateProviderBody": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "saml" - ], - "description": "What type of provider will be created" - }, - "metadata_xml": { - "type": "string" - }, - "metadata_url": { - "type": "string" - }, - "domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "attribute_mapping": { - "$ref": "#/components/schemas/AttributeMapping" - } - }, - "required": [ - "type" - ] - }, - "SamlDescriptor": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "entity_id": { - "type": "string" - }, - "metadata_url": { - "type": "string" - }, - "metadata_xml": { - "type": "string" - }, - "attribute_mapping": { - "$ref": "#/components/schemas/AttributeMapping" - } - }, - "required": [ - "id", - "entity_id" - ] - }, - "Domain": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "CreateProviderResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "saml": { - "$ref": "#/components/schemas/SamlDescriptor" - }, - "domains": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Domain" - } - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "Provider": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "saml": { - "$ref": "#/components/schemas/SamlDescriptor" - }, - "domains": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Domain" - } - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "ListProvidersResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Provider" - } - } - }, - "required": [ - "items" - ] - }, - "GetProviderResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "saml": { - "$ref": "#/components/schemas/SamlDescriptor" - }, - "domains": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Domain" - } - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "UpdateProviderBody": { - "type": "object", - "properties": { - "metadata_xml": { - "type": "string" - }, - "metadata_url": { - "type": "string" - }, - "domains": { - "type": "array", - "items": { - "type": "string" - } - }, - "attribute_mapping": { - "$ref": "#/components/schemas/AttributeMapping" - } - } - }, - "UpdateProviderResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "saml": { - "$ref": "#/components/schemas/SamlDescriptor" - }, - "domains": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Domain" - } - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "DeleteProviderResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "saml": { - "$ref": "#/components/schemas/SamlDescriptor" - }, - "domains": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Domain" - } - }, - "created_at": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "V1Backup": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "COMPLETED", - "FAILED", - "PENDING", - "REMOVED", - "ARCHIVED", - "CANCELLED" - ] - }, - "is_physical_backup": { - "type": "boolean" - }, - "inserted_at": { - "type": "string" - } - }, - "required": [ - "status", - "is_physical_backup", - "inserted_at" - ] - }, - "V1PhysicalBackup": { - "type": "object", - "properties": { - "earliest_physical_backup_date_unix": { - "type": "number" - }, - "latest_physical_backup_date_unix": { - "type": "number" - } - } - }, - "V1BackupsResponse": { - "type": "object", - "properties": { - "region": { - "type": "string" - }, - "walg_enabled": { - "type": "boolean" - }, - "pitr_enabled": { - "type": "boolean" - }, - "backups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/V1Backup" - } - }, - "physical_backup_data": { - "$ref": "#/components/schemas/V1PhysicalBackup" - } - }, - "required": [ - "region", - "walg_enabled", - "pitr_enabled", - "backups", - "physical_backup_data" - ] - }, - "V1RestorePitrBody": { - "type": "object", - "properties": { - "recovery_time_target_unix": { - "type": "number" - } - }, - "required": [ - "recovery_time_target_unix" - ] - }, - "V1OrganizationMemberResponse": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user_name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "role_name": { - "type": "string" - }, - "mfa_enabled": { - "type": "boolean" - } - }, - "required": [ - "user_id", - "user_name", - "role_name", - "mfa_enabled" - ] - }, - "BillingPlanId": { - "type": "string", - "enum": [ - "free", - "pro", - "team", - "enterprise" - ] - }, - "V1OrganizationSlugResponse": { - "type": "object", - "properties": { - "plan": { - "$ref": "#/components/schemas/BillingPlanId" - }, - "opt_in_tags": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "AI_SQL_GENERATOR_OPT_IN" - ] - } - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "opt_in_tags", - "id", - "name" - ] - } - } - } -} \ No newline at end of file