From 6ba7317c7a129b524ba15a4e0554e32b5eceac23 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 16 May 2025 16:34:21 +0200 Subject: [PATCH] Final renames --- packages/backend-core/src/docIds/params.ts | 6 ++--- .../server/src/api/controllers/application.ts | 18 ++++++------- .../src/api/controllers/workspaceApp.ts | 26 ++++++++++--------- .../server/src/api/routes/workspaceApp.ts | 6 ++--- .../20250514133719_workspace_apps.ts | 14 +++++----- packages/server/src/constants/screens.ts | 4 +-- .../server/src/sdk/app/workspaceApps/index.ts | 12 ++++----- .../server/src/tests/utilities/structures.ts | 2 +- .../src/tests/utilities/structures/screens.ts | 6 ++--- packages/types/src/api/web/app/application.ts | 4 +-- .../types/src/api/web/app/workspaceApp.ts | 14 +++++----- packages/types/src/documents/app/screen.ts | 2 +- 12 files changed, 59 insertions(+), 55 deletions(-) diff --git a/packages/backend-core/src/docIds/params.ts b/packages/backend-core/src/docIds/params.ts index 809f252192..be22eb4092 100644 --- a/packages/backend-core/src/docIds/params.ts +++ b/packages/backend-core/src/docIds/params.ts @@ -214,9 +214,9 @@ export const getOAuth2ConfigParams = ( /** * Gets parameters for retrieving project apps, this is a utility function for the getDocParams function. */ -export const getProjectAppParams = ( - projectAppId?: string | null, +export const getWorkspaceAppParams = ( + workspaceAppId?: string | null, otherProps: Partial = {} ) => { - return getDocParams(DocumentType.WORKSPACE_APP, projectAppId, otherProps) + return getDocParams(DocumentType.WORKSPACE_APP, workspaceAppId, otherProps) } diff --git a/packages/server/src/api/controllers/application.ts b/packages/server/src/api/controllers/application.ts index 6dbb09f7fd..f5448acb73 100644 --- a/packages/server/src/api/controllers/application.ts +++ b/packages/server/src/api/controllers/application.ts @@ -184,7 +184,7 @@ async function addSampleDataDocs() { async function addSampleDataScreen() { const db = context.getAppDB() - let projectAppId: string | undefined + let workspaceAppId: string | undefined if (await features.isEnabled(FeatureFlag.WORKSPACE_APPS)) { const appMetadata = await sdk.applications.metadata.get() @@ -193,10 +193,10 @@ async function addSampleDataScreen() { urlPrefix: "/", icon: "Monitoring", }) - projectAppId = workspaceApp._id! + workspaceAppId = workspaceApp._id! } - let screen = await createSampleDataTableScreen(projectAppId) + let screen = await createSampleDataTableScreen(workspaceAppId) screen._id = generateScreenID() await db.put(screen) } @@ -285,7 +285,7 @@ export async function fetchAppPackage( let workspaceApps: FetchAppPackageResponse["workspaceApps"] = [] if (await features.flags.isEnabled(FeatureFlag.WORKSPACE_APPS)) { - workspaceApps = await extractScreensByProjectApp(screens) + workspaceApps = await extractScreensByWorkspaceApp(screens) screens = [] } @@ -305,20 +305,20 @@ export async function fetchAppPackage( } } -async function extractScreensByProjectApp( +async function extractScreensByWorkspaceApp( screens: Screen[] ): Promise { const result: FetchAppPackageResponse["workspaceApps"] = [] const workspaceApps = await sdk.workspaceApps.fetch() - const screensByProjectApp = groupBy(s => s.projectAppId, screens) - for (const projectAppId of Object.keys(screensByProjectApp)) { - const workspaceApp = workspaceApps.find(p => p._id === projectAppId) + const screensByWorkspaceApp = groupBy(s => s.workspaceAppId, screens) + for (const workspaceAppId of Object.keys(screensByWorkspaceApp)) { + const workspaceApp = workspaceApps.find(p => p._id === workspaceAppId) result.push({ ...workspaceApp!, - screens: screensByProjectApp[projectAppId], + screens: screensByWorkspaceApp[workspaceAppId], }) } diff --git a/packages/server/src/api/controllers/workspaceApp.ts b/packages/server/src/api/controllers/workspaceApp.ts index 90644e33d8..7c2aa6ae2f 100644 --- a/packages/server/src/api/controllers/workspaceApp.ts +++ b/packages/server/src/api/controllers/workspaceApp.ts @@ -1,15 +1,17 @@ import { Ctx, - InsertProjectAppRequest, - InsertProjectAppResponse, + InsertWorkspaceAppRequest, + InsertWorkspaceAppResponse, WorkspaceApp, - ProjectAppResponse, - UpdateProjectAppRequest, - UpdateProjectAppResponse, + WorkspaceAppResponse, + UpdateWorkspaceAppRequest, + UpdateWorkspaceAppResponse, } from "@budibase/types" import sdk from "../../sdk" -function toProjectAppResponse(workspaceApp: WorkspaceApp): ProjectAppResponse { +function toWorkspaceAppResponse( + workspaceApp: WorkspaceApp +): WorkspaceAppResponse { return { _id: workspaceApp._id!, _rev: workspaceApp._rev!, @@ -21,25 +23,25 @@ function toProjectAppResponse(workspaceApp: WorkspaceApp): ProjectAppResponse { } export async function create( - ctx: Ctx + ctx: Ctx ) { const { body } = ctx.request - const newProjectApp = { + const newWorkspaceApp = { name: body.name, urlPrefix: body.urlPrefix, icon: body.icon, iconColor: body.iconColor, } - const workspaceApp = await sdk.workspaceApps.create(newProjectApp) + const workspaceApp = await sdk.workspaceApps.create(newWorkspaceApp) ctx.status = 201 ctx.body = { - workspaceApp: toProjectAppResponse(workspaceApp), + workspaceApp: toWorkspaceAppResponse(workspaceApp), } } export async function edit( - ctx: Ctx + ctx: Ctx ) { const { body } = ctx.request @@ -58,7 +60,7 @@ export async function edit( const workspaceApp = await sdk.workspaceApps.update(toUpdate) ctx.body = { - workspaceApp: toProjectAppResponse(workspaceApp), + workspaceApp: toWorkspaceAppResponse(workspaceApp), } } diff --git a/packages/server/src/api/routes/workspaceApp.ts b/packages/server/src/api/routes/workspaceApp.ts index e109ff24fd..38676a19ed 100644 --- a/packages/server/src/api/routes/workspaceApp.ts +++ b/packages/server/src/api/routes/workspaceApp.ts @@ -23,7 +23,7 @@ const updateSchema = Joi.object({ ...baseSchema, }) -function projectAppValidator( +function workspaceAppValidator( schema: typeof insertSchema | typeof updateSchema ) { return middleware.joiValidator.body(schema, { allowUnknown: false }) @@ -34,13 +34,13 @@ const router: Router = new Router() router.post( "/api/workspaceApp", authorized(PermissionType.BUILDER), - projectAppValidator(insertSchema), + workspaceAppValidator(insertSchema), controller.create ) router.put( "/api/workspaceApp/:id", authorized(PermissionType.BUILDER), - projectAppValidator(updateSchema), + workspaceAppValidator(updateSchema), controller.edit ) router.delete( diff --git a/packages/server/src/appMigrations/migrations/20250514133719_workspace_apps.ts b/packages/server/src/appMigrations/migrations/20250514133719_workspace_apps.ts index a23dfa065e..066e60579c 100644 --- a/packages/server/src/appMigrations/migrations/20250514133719_workspace_apps.ts +++ b/packages/server/src/appMigrations/migrations/20250514133719_workspace_apps.ts @@ -6,24 +6,26 @@ const migration = async () => { const screens = await sdk.screens.fetch() const application = await sdk.applications.metadata.get() - const allProjectApps = await sdk.workspaceApps.fetch() - let projectAppId = allProjectApps.find(p => p.name === application.name)?._id - if (!projectAppId) { + const allWorkspaceApps = await sdk.workspaceApps.fetch() + let workspaceAppId = allWorkspaceApps.find( + p => p.name === application.name + )?._id + if (!workspaceAppId) { const workspaceApp = await sdk.workspaceApps.create({ name: application.name, urlPrefix: "/", icon: "Monitoring", }) - projectAppId = workspaceApp._id + workspaceAppId = workspaceApp._id } const db = context.getAppDB() await db.bulkDocs( screens - .filter(s => !s.projectAppId) + .filter(s => !s.workspaceAppId) .map(s => ({ ...s, - projectAppId, + workspaceAppId, })) ) } diff --git a/packages/server/src/constants/screens.ts b/packages/server/src/constants/screens.ts index e206da0f27..7be75c4073 100644 --- a/packages/server/src/constants/screens.ts +++ b/packages/server/src/constants/screens.ts @@ -3,14 +3,14 @@ import { Screen } from "@budibase/types" export const SAMPLE_DATA_SCREEN_NAME = "sample-data-inventory-screen" export function createSampleDataTableScreen( - projectAppId: string | undefined + workspaceAppId: string | undefined ): Screen { return { showNavigation: true, width: "Large", routing: { route: "/inventory", roleId: "BASIC", homeScreen: false }, name: SAMPLE_DATA_SCREEN_NAME, - projectAppId, + workspaceAppId, props: { _id: "c38f2b9f250fb4c33965ce47e12c02a80", _component: "@budibase/standard-components/container", diff --git a/packages/server/src/sdk/app/workspaceApps/index.ts b/packages/server/src/sdk/app/workspaceApps/index.ts index 971a574e1b..a9170c7268 100644 --- a/packages/server/src/sdk/app/workspaceApps/index.ts +++ b/packages/server/src/sdk/app/workspaceApps/index.ts @@ -7,9 +7,9 @@ import { } from "@budibase/types" async function guardName(name: string, id?: string) { - const existingProjectApps = await fetch() + const existingWorkspaceApps = await fetch() - if (existingProjectApps.find(p => p.name === name && p._id !== id)) { + if (existingWorkspaceApps.find(p => p.name === name && p._id !== id)) { throw new HTTPError(`App with name '${name}' is already taken.`, 400) } } @@ -17,7 +17,7 @@ async function guardName(name: string, id?: string) { export async function fetch(): Promise { const db = context.getAppDB() const docs = await db.allDocs( - docIds.getProjectAppParams(null, { include_docs: true }) + docIds.getWorkspaceAppParams(null, { include_docs: true }) ) const result = docs.rows.map(r => ({ ...r.doc!, @@ -65,16 +65,16 @@ export async function update( } export async function remove( - projectAppId: string, + workspaceAppId: string, _rev: string ): Promise { const db = context.getAppDB() try { - await db.remove(projectAppId, _rev) + await db.remove(workspaceAppId, _rev) } catch (e: any) { if (e.status === 404) { throw new HTTPError( - `Project app with id '${projectAppId}' not found.`, + `Project app with id '${workspaceAppId}' not found.`, 404 ) } diff --git a/packages/server/src/tests/utilities/structures.ts b/packages/server/src/tests/utilities/structures.ts index 7ca60f26c6..fafd7887e4 100644 --- a/packages/server/src/tests/utilities/structures.ts +++ b/packages/server/src/tests/utilities/structures.ts @@ -587,7 +587,7 @@ function createHomeScreen( roleId: config.roleId, }, name: "home-screen", - projectAppId: "projectAppId", + workspaceAppId: "workspaceAppId", } } diff --git a/packages/server/src/tests/utilities/structures/screens.ts b/packages/server/src/tests/utilities/structures/screens.ts index dd5a120fea..daf1e170a7 100644 --- a/packages/server/src/tests/utilities/structures/screens.ts +++ b/packages/server/src/tests/utilities/structures/screens.ts @@ -65,7 +65,7 @@ export function createTableScreen( homeScreen: false, }, name: "screen-id", - projectAppId: "projectAppId", + workspaceAppId: "workspaceAppId", } } @@ -117,7 +117,7 @@ export function createViewScreen(view: ViewV2): Screen { homeScreen: false, }, name: "view-id", - projectAppId: "projectAppId", + workspaceAppId: "workspaceAppId", } } @@ -173,6 +173,6 @@ export function createQueryScreen(datasourceId: string, query: Query): Screen { homeScreen: false, }, name: "screen-id", - projectAppId: "projectAppId", + workspaceAppId: "workspaceAppId", } } diff --git a/packages/types/src/api/web/app/application.ts b/packages/types/src/api/web/app/application.ts index f06559be6e..641ffdadfe 100644 --- a/packages/types/src/api/web/app/application.ts +++ b/packages/types/src/api/web/app/application.ts @@ -35,7 +35,7 @@ export interface FetchAppDefinitionResponse { libraries: string[] } -interface ProjectAppResponse extends WorkspaceApp { +interface WorkspaceAppResponse extends WorkspaceApp { screens: Screen[] } @@ -43,7 +43,7 @@ export interface FetchAppPackageResponse { application: App licenseType: PlanType screens: Screen[] - workspaceApps: ProjectAppResponse[] + workspaceApps: WorkspaceAppResponse[] layouts: Layout[] clientLibPath: string hasLock: boolean diff --git a/packages/types/src/api/web/app/workspaceApp.ts b/packages/types/src/api/web/app/workspaceApp.ts index af3ced2d1c..96dd68c727 100644 --- a/packages/types/src/api/web/app/workspaceApp.ts +++ b/packages/types/src/api/web/app/workspaceApp.ts @@ -1,4 +1,4 @@ -export interface ProjectAppResponse { +export interface WorkspaceAppResponse { _id: string _rev: string name: string @@ -7,18 +7,18 @@ export interface ProjectAppResponse { iconColor?: string } -export interface InsertProjectAppRequest { +export interface InsertWorkspaceAppRequest { name: string urlPrefix: string icon: string iconColor: string } -export interface InsertProjectAppResponse { - workspaceApp: ProjectAppResponse +export interface InsertWorkspaceAppResponse { + workspaceApp: WorkspaceAppResponse } -export interface UpdateProjectAppRequest { +export interface UpdateWorkspaceAppRequest { _id: string _rev: string name: string @@ -27,6 +27,6 @@ export interface UpdateProjectAppRequest { iconColor: string } -export interface UpdateProjectAppResponse { - workspaceApp: ProjectAppResponse +export interface UpdateWorkspaceAppResponse { + workspaceApp: WorkspaceAppResponse } diff --git a/packages/types/src/documents/app/screen.ts b/packages/types/src/documents/app/screen.ts index 1ae03cf76c..b8738db70e 100644 --- a/packages/types/src/documents/app/screen.ts +++ b/packages/types/src/documents/app/screen.ts @@ -29,7 +29,7 @@ export interface Screen extends Document { pluginAdded?: boolean onLoad?: EventHandler[] variant?: ScreenVariant - projectAppId?: string + workspaceAppId?: string } export interface ScreenRoutesViewOutput extends Document {