2023-09-20 00:45:24 +12:00
|
|
|
import { sdk } from "@budibase/shared-core"
|
|
|
|
|
2022-01-20 22:40:53 +13:00
|
|
|
export const buildAppEndpoints = API => ({
|
|
|
|
/**
|
|
|
|
* Fetches screen definition for an app.
|
2022-01-26 05:54:55 +13:00
|
|
|
* @param appId the ID of the app to fetch from
|
2022-01-20 22:40:53 +13:00
|
|
|
*/
|
|
|
|
fetchAppPackage: async appId => {
|
|
|
|
return await API.get({
|
|
|
|
url: `/api/applications/${appId}/appPackage`,
|
|
|
|
})
|
|
|
|
},
|
2022-01-21 07:42:30 +13:00
|
|
|
|
|
|
|
/**
|
2022-01-21 08:53:55 +13:00
|
|
|
* Saves and patches metadata about an app.
|
2022-01-25 03:32:27 +13:00
|
|
|
* @param appId the ID of the app to update
|
2022-01-21 07:42:30 +13:00
|
|
|
* @param metadata the app metadata to save
|
|
|
|
*/
|
2022-01-25 03:32:27 +13:00
|
|
|
saveAppMetadata: async ({ appId, metadata }) => {
|
2022-01-21 07:42:30 +13:00
|
|
|
return await API.put({
|
2022-01-25 03:32:27 +13:00
|
|
|
url: `/api/applications/${appId}`,
|
2022-01-21 07:42:30 +13:00
|
|
|
body: metadata,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
fixes for google sheets, admin checklist, and deleting an app from API (#8846)
* fixes for google sheets, admin checklist, and deleting an app from API
* code review
* splitting unpublish endpoint, moving deploy endpoint to applications controller. Still to do public API work and move deployment controller into application controller
* updating REST method for unpublish in API test
* unpublish and publish endpoint on public API, delete endpoint unpublishes and deletes app
* removing skip_setup from prodAppDb call
* removing commented code
* unit tests and open API spec updates
* unpublish, publish unit tests - delete still in progress
* remove line updating app name in API test
* unit tests
* v2.1.46
* Update pro version to 2.1.46
* v2.2.0
* Update pro version to 2.2.0
* Fix for budibase plugin skeleton, which utilises the old import style.
* Fix side nav styles
* v2.2.1
* Update pro version to 2.2.1
* using dist folder to allow importing constants for openAPI specs
* v2.2.2
* Update pro version to 2.2.2
* Fix for user enrichment call (updating to @budibase/nano fork) (#9038)
* Fix for #9029 - this should fix the issue users have been experiencing with user enrichment calls in apps, essentially it utilises a fork of the nano library we use to interact with CouchDB, which has been updated to use a POST request rather than a GET request as it supports a larger set of data being sent as query parameters.
* Incrementing Nano version to attempt to fix yarn registry issues.
* v2.2.3
* Update pro version to 2.2.3
* Fix SQL table `_id` filtering (#9030)
* Re-add support for filtering on _id using external SQL tables and fix filter key prefixes not working with _id field
* Remove like operator from internal tables and only allow basic operators on SQL table _id column
* Update data section filtering to respect new rules
* Update automation section filtering to respect new rules
* Update dynamic filter component to respect new rules
* v2.2.4
* Update pro version to 2.2.4
* lock changes (#9047)
* v2.2.5
* Update pro version to 2.2.5
* Make looping arrow point in right direction (#9053)
* v2.2.6
* Update pro version to 2.2.6
* Types/attaching license to account (#9065)
* adding license type to account
* removing planDuration
* v2.2.7
* Update pro version to 2.2.7
* Environment variable type coercion fix (#9074)
* Environment variable type coercion fix
* Update .gitignore
* v2.2.8
* Update pro version to 2.2.8
* tests passing
* all tests passing, updates to public API response
* update unpublish call to return 204, openAPI spec and unit
* fixing API tests
Co-authored-by: Budibase Release Bot <>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Andrew Kingston <andrew@kingston.dev>
Co-authored-by: melohagan <101575380+melohagan@users.noreply.github.com>
Co-authored-by: Rory Powell <rory.codes@gmail.com>
2022-12-20 02:18:00 +13:00
|
|
|
* Publishes the current app.
|
2022-01-21 07:42:30 +13:00
|
|
|
*/
|
fixes for google sheets, admin checklist, and deleting an app from API (#8846)
* fixes for google sheets, admin checklist, and deleting an app from API
* code review
* splitting unpublish endpoint, moving deploy endpoint to applications controller. Still to do public API work and move deployment controller into application controller
* updating REST method for unpublish in API test
* unpublish and publish endpoint on public API, delete endpoint unpublishes and deletes app
* removing skip_setup from prodAppDb call
* removing commented code
* unit tests and open API spec updates
* unpublish, publish unit tests - delete still in progress
* remove line updating app name in API test
* unit tests
* v2.1.46
* Update pro version to 2.1.46
* v2.2.0
* Update pro version to 2.2.0
* Fix for budibase plugin skeleton, which utilises the old import style.
* Fix side nav styles
* v2.2.1
* Update pro version to 2.2.1
* using dist folder to allow importing constants for openAPI specs
* v2.2.2
* Update pro version to 2.2.2
* Fix for user enrichment call (updating to @budibase/nano fork) (#9038)
* Fix for #9029 - this should fix the issue users have been experiencing with user enrichment calls in apps, essentially it utilises a fork of the nano library we use to interact with CouchDB, which has been updated to use a POST request rather than a GET request as it supports a larger set of data being sent as query parameters.
* Incrementing Nano version to attempt to fix yarn registry issues.
* v2.2.3
* Update pro version to 2.2.3
* Fix SQL table `_id` filtering (#9030)
* Re-add support for filtering on _id using external SQL tables and fix filter key prefixes not working with _id field
* Remove like operator from internal tables and only allow basic operators on SQL table _id column
* Update data section filtering to respect new rules
* Update automation section filtering to respect new rules
* Update dynamic filter component to respect new rules
* v2.2.4
* Update pro version to 2.2.4
* lock changes (#9047)
* v2.2.5
* Update pro version to 2.2.5
* Make looping arrow point in right direction (#9053)
* v2.2.6
* Update pro version to 2.2.6
* Types/attaching license to account (#9065)
* adding license type to account
* removing planDuration
* v2.2.7
* Update pro version to 2.2.7
* Environment variable type coercion fix (#9074)
* Environment variable type coercion fix
* Update .gitignore
* v2.2.8
* Update pro version to 2.2.8
* tests passing
* all tests passing, updates to public API response
* update unpublish call to return 204, openAPI spec and unit
* fixing API tests
Co-authored-by: Budibase Release Bot <>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Andrew Kingston <andrew@kingston.dev>
Co-authored-by: melohagan <101575380+melohagan@users.noreply.github.com>
Co-authored-by: Rory Powell <rory.codes@gmail.com>
2022-12-20 02:18:00 +13:00
|
|
|
publishAppChanges: async appId => {
|
2022-01-21 07:42:30 +13:00
|
|
|
return await API.post({
|
fixes for google sheets, admin checklist, and deleting an app from API (#8846)
* fixes for google sheets, admin checklist, and deleting an app from API
* code review
* splitting unpublish endpoint, moving deploy endpoint to applications controller. Still to do public API work and move deployment controller into application controller
* updating REST method for unpublish in API test
* unpublish and publish endpoint on public API, delete endpoint unpublishes and deletes app
* removing skip_setup from prodAppDb call
* removing commented code
* unit tests and open API spec updates
* unpublish, publish unit tests - delete still in progress
* remove line updating app name in API test
* unit tests
* v2.1.46
* Update pro version to 2.1.46
* v2.2.0
* Update pro version to 2.2.0
* Fix for budibase plugin skeleton, which utilises the old import style.
* Fix side nav styles
* v2.2.1
* Update pro version to 2.2.1
* using dist folder to allow importing constants for openAPI specs
* v2.2.2
* Update pro version to 2.2.2
* Fix for user enrichment call (updating to @budibase/nano fork) (#9038)
* Fix for #9029 - this should fix the issue users have been experiencing with user enrichment calls in apps, essentially it utilises a fork of the nano library we use to interact with CouchDB, which has been updated to use a POST request rather than a GET request as it supports a larger set of data being sent as query parameters.
* Incrementing Nano version to attempt to fix yarn registry issues.
* v2.2.3
* Update pro version to 2.2.3
* Fix SQL table `_id` filtering (#9030)
* Re-add support for filtering on _id using external SQL tables and fix filter key prefixes not working with _id field
* Remove like operator from internal tables and only allow basic operators on SQL table _id column
* Update data section filtering to respect new rules
* Update automation section filtering to respect new rules
* Update dynamic filter component to respect new rules
* v2.2.4
* Update pro version to 2.2.4
* lock changes (#9047)
* v2.2.5
* Update pro version to 2.2.5
* Make looping arrow point in right direction (#9053)
* v2.2.6
* Update pro version to 2.2.6
* Types/attaching license to account (#9065)
* adding license type to account
* removing planDuration
* v2.2.7
* Update pro version to 2.2.7
* Environment variable type coercion fix (#9074)
* Environment variable type coercion fix
* Update .gitignore
* v2.2.8
* Update pro version to 2.2.8
* tests passing
* all tests passing, updates to public API response
* update unpublish call to return 204, openAPI spec and unit
* fixing API tests
Co-authored-by: Budibase Release Bot <>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Andrew Kingston <andrew@kingston.dev>
Co-authored-by: melohagan <101575380+melohagan@users.noreply.github.com>
Co-authored-by: Rory Powell <rory.codes@gmail.com>
2022-12-20 02:18:00 +13:00
|
|
|
url: `/api/applications/${appId}/publish`,
|
2022-01-21 07:42:30 +13:00
|
|
|
})
|
|
|
|
},
|
2022-01-21 08:27:15 +13:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Reverts an app to a previous version.
|
|
|
|
* @param appId the app ID to revert
|
|
|
|
*/
|
2022-01-21 22:10:59 +13:00
|
|
|
revertAppChanges: async appId => {
|
2022-01-21 08:27:15 +13:00
|
|
|
return await API.post({
|
|
|
|
url: `/api/dev/${appId}/revert`,
|
|
|
|
})
|
|
|
|
},
|
2022-01-21 08:53:55 +13:00
|
|
|
|
2022-01-21 22:10:59 +13:00
|
|
|
/**
|
|
|
|
* Updates an app's version of the client library.
|
|
|
|
* @param appId the app ID to update
|
|
|
|
*/
|
|
|
|
updateAppClientVersion: async appId => {
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/client/update`,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reverts an app's version of the client library to the previous version.
|
|
|
|
* @param appId the app ID to revert
|
|
|
|
*/
|
|
|
|
revertAppClientVersion: async appId => {
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/client/revert`,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2022-01-21 08:53:55 +13:00
|
|
|
/**
|
|
|
|
* Gets a list of app deployments.
|
|
|
|
*/
|
|
|
|
getAppDeployments: async () => {
|
|
|
|
return await API.get({
|
|
|
|
url: "/api/deployments",
|
|
|
|
})
|
|
|
|
},
|
2022-01-21 22:10:59 +13:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates an app.
|
|
|
|
* @param app the app to create
|
|
|
|
*/
|
|
|
|
createApp: async app => {
|
|
|
|
return await API.post({
|
|
|
|
url: "/api/applications",
|
|
|
|
body: app,
|
2022-01-25 08:06:18 +13:00
|
|
|
json: false,
|
2022-01-21 22:10:59 +13:00
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2024-02-23 04:00:16 +13:00
|
|
|
/**
|
|
|
|
* Duplicate an existing app
|
|
|
|
* @param app the app to dupe
|
|
|
|
*/
|
|
|
|
duplicateApp: async (app, appId) => {
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/duplicate`,
|
|
|
|
body: app,
|
|
|
|
json: false,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2023-09-20 00:45:24 +12:00
|
|
|
/**
|
|
|
|
* Update an application using an export - the body
|
|
|
|
* should be of type FormData, with a "file" and a "password" if encrypted.
|
|
|
|
* @param appId The ID of the app to update - this will always be
|
|
|
|
* converted to development ID.
|
|
|
|
* @param body a FormData body with a file and password.
|
|
|
|
*/
|
|
|
|
updateAppFromExport: async (appId, body) => {
|
|
|
|
const devId = sdk.applications.getDevAppID(appId)
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${devId}/import`,
|
|
|
|
body,
|
|
|
|
json: false,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2022-01-21 22:10:59 +13:00
|
|
|
/**
|
|
|
|
* Imports an export of all apps.
|
|
|
|
* @param apps the FormData containing the apps to import
|
|
|
|
*/
|
|
|
|
importApps: async apps => {
|
|
|
|
return await API.post({
|
|
|
|
url: "/api/cloud/import",
|
|
|
|
body: apps,
|
|
|
|
json: false,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Unpublishes a published app.
|
|
|
|
* @param appId the production ID of the app to unpublish
|
|
|
|
*/
|
|
|
|
unpublishApp: async appId => {
|
fixes for google sheets, admin checklist, and deleting an app from API (#8846)
* fixes for google sheets, admin checklist, and deleting an app from API
* code review
* splitting unpublish endpoint, moving deploy endpoint to applications controller. Still to do public API work and move deployment controller into application controller
* updating REST method for unpublish in API test
* unpublish and publish endpoint on public API, delete endpoint unpublishes and deletes app
* removing skip_setup from prodAppDb call
* removing commented code
* unit tests and open API spec updates
* unpublish, publish unit tests - delete still in progress
* remove line updating app name in API test
* unit tests
* v2.1.46
* Update pro version to 2.1.46
* v2.2.0
* Update pro version to 2.2.0
* Fix for budibase plugin skeleton, which utilises the old import style.
* Fix side nav styles
* v2.2.1
* Update pro version to 2.2.1
* using dist folder to allow importing constants for openAPI specs
* v2.2.2
* Update pro version to 2.2.2
* Fix for user enrichment call (updating to @budibase/nano fork) (#9038)
* Fix for #9029 - this should fix the issue users have been experiencing with user enrichment calls in apps, essentially it utilises a fork of the nano library we use to interact with CouchDB, which has been updated to use a POST request rather than a GET request as it supports a larger set of data being sent as query parameters.
* Incrementing Nano version to attempt to fix yarn registry issues.
* v2.2.3
* Update pro version to 2.2.3
* Fix SQL table `_id` filtering (#9030)
* Re-add support for filtering on _id using external SQL tables and fix filter key prefixes not working with _id field
* Remove like operator from internal tables and only allow basic operators on SQL table _id column
* Update data section filtering to respect new rules
* Update automation section filtering to respect new rules
* Update dynamic filter component to respect new rules
* v2.2.4
* Update pro version to 2.2.4
* lock changes (#9047)
* v2.2.5
* Update pro version to 2.2.5
* Make looping arrow point in right direction (#9053)
* v2.2.6
* Update pro version to 2.2.6
* Types/attaching license to account (#9065)
* adding license type to account
* removing planDuration
* v2.2.7
* Update pro version to 2.2.7
* Environment variable type coercion fix (#9074)
* Environment variable type coercion fix
* Update .gitignore
* v2.2.8
* Update pro version to 2.2.8
* tests passing
* all tests passing, updates to public API response
* update unpublish call to return 204, openAPI spec and unit
* fixing API tests
Co-authored-by: Budibase Release Bot <>
Co-authored-by: mike12345567 <me@michaeldrury.co.uk>
Co-authored-by: Andrew Kingston <andrew@kingston.dev>
Co-authored-by: melohagan <101575380+melohagan@users.noreply.github.com>
Co-authored-by: Rory Powell <rory.codes@gmail.com>
2022-12-20 02:18:00 +13:00
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/unpublish`,
|
2022-01-21 22:10:59 +13:00
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Deletes a dev app.
|
|
|
|
* @param appId the dev app ID to delete
|
|
|
|
*/
|
|
|
|
deleteApp: async appId => {
|
|
|
|
return await API.delete({
|
|
|
|
url: `/api/applications/${appId}`,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Releases the lock on a dev app.
|
|
|
|
* @param appId the dev app ID to unlock
|
|
|
|
*/
|
|
|
|
releaseAppLock: async appId => {
|
|
|
|
return await API.delete({
|
|
|
|
url: `/api/dev/${appId}/lock`,
|
|
|
|
})
|
|
|
|
},
|
2022-01-22 04:09:27 +13:00
|
|
|
|
2023-06-09 06:50:29 +12:00
|
|
|
/**
|
2023-06-11 03:16:52 +12:00
|
|
|
* Gets budibase platform debug information.
|
2023-06-09 06:50:29 +12:00
|
|
|
*/
|
2023-06-11 03:16:52 +12:00
|
|
|
fetchSystemDebugInfo: async () => {
|
2023-06-09 06:50:29 +12:00
|
|
|
return await API.get({
|
2023-07-07 03:41:45 +12:00
|
|
|
url: `/api/debug/diagnostics`,
|
2023-06-09 06:50:29 +12:00
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2022-01-22 04:09:27 +13:00
|
|
|
/**
|
|
|
|
* Syncs an app with the production database.
|
|
|
|
* @param appId the ID of the app to sync
|
|
|
|
*/
|
|
|
|
syncApp: async appId => {
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/sync`,
|
|
|
|
})
|
|
|
|
},
|
2022-01-25 03:32:27 +13:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets a list of apps.
|
|
|
|
*/
|
|
|
|
getApps: async () => {
|
|
|
|
return await API.get({
|
|
|
|
url: "/api/applications?status=all",
|
|
|
|
})
|
|
|
|
},
|
2022-01-25 05:38:36 +13:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Fetches the definitions for component library components. This includes
|
|
|
|
* their props and other metadata from components.json.
|
|
|
|
* @param {string} appId - ID of the currently running app
|
|
|
|
*/
|
|
|
|
fetchComponentLibDefinitions: async appId => {
|
|
|
|
return await API.get({
|
|
|
|
url: `/api/${appId}/components/definitions`,
|
|
|
|
})
|
|
|
|
},
|
2023-05-30 23:54:57 +12:00
|
|
|
|
|
|
|
addSampleData: async appId => {
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/sample`,
|
|
|
|
})
|
|
|
|
},
|
2024-03-26 05:39:42 +13:00
|
|
|
|
|
|
|
setRevertableVersion: async (appId, revertableVersion) => {
|
|
|
|
return await API.post({
|
|
|
|
url: `/api/applications/${appId}/setRevertableVersion`,
|
|
|
|
body: {
|
|
|
|
revertableVersion,
|
|
|
|
},
|
|
|
|
})
|
|
|
|
},
|
2022-01-20 22:40:53 +13:00
|
|
|
})
|