diff --git a/packages/client/src/components/MadeInBudibase.svelte b/packages/client/src/components/FreeLogo.svelte similarity index 96% rename from packages/client/src/components/MadeInBudibase.svelte rename to packages/client/src/components/FreeLogo.svelte index ef31a9cfb5..2a5a936cdb 100644 --- a/packages/client/src/components/MadeInBudibase.svelte +++ b/packages/client/src/components/FreeLogo.svelte @@ -8,7 +8,7 @@ >
Budibase -

Made In Budibase

+

Made with Budibase

diff --git a/packages/client/src/components/app/Layout.svelte b/packages/client/src/components/app/Layout.svelte index 7897782b3e..a317da1f0f 100644 --- a/packages/client/src/components/app/Layout.svelte +++ b/packages/client/src/components/app/Layout.svelte @@ -5,7 +5,7 @@ import { FieldTypes } from "constants" import active from "svelte-spa-router/active" import { RoleUtils } from "@budibase/frontend-core" - import MadeInBudibase from "../MadeInBudibase.svelte" + import FreeLogo from "../FreeLogo.svelte" import licensing from "../../licensing" const sdk = getContext("sdk") @@ -236,7 +236,7 @@ {/if} {#if !$builderStore.inBuilder && licensing.logoEnabled() && $environmentStore.cloud} - + {/if}
diff --git a/packages/server/src/api/routes/application.ts b/packages/server/src/api/routes/application.ts index 0ebdf548e3..8627dd024c 100644 --- a/packages/server/src/api/routes/application.ts +++ b/packages/server/src/api/routes/application.ts @@ -20,7 +20,7 @@ router .put( "/api/applications/:appId", authorized(BUILDER), - applicationValidator(), + applicationValidator({ isCreate: false }), controller.update ) .post( diff --git a/packages/server/src/api/routes/utils/validators.js b/packages/server/src/api/routes/utils/validators.js index 000c9655bc..ab9f2afaf0 100644 --- a/packages/server/src/api/routes/utils/validators.js +++ b/packages/server/src/api/routes/utils/validators.js @@ -210,15 +210,35 @@ exports.automationValidator = (existing = false) => { }).unknown(true)) } -exports.applicationValidator = () => { +exports.applicationValidator = (opts = { isCreate: true }) => { // prettier-ignore - return joiValidator.body(Joi.object({ + const base = { _id: OPTIONAL_STRING, _rev: OPTIONAL_STRING, - name: Joi.string().pattern(new RegExp(APP_NAME_REGEX)).required().error(new Error('App name must be letters, numbers and spaces only')), url: OPTIONAL_STRING, template: Joi.object({ templateString: OPTIONAL_STRING, - }).unknown(true), - }).unknown(true)) + }) + } + + const appNameValidator = Joi.string() + .pattern(new RegExp(APP_NAME_REGEX)) + .error(new Error("App name must be letters, numbers and spaces only")) + if (opts.isCreate) { + base.name = appNameValidator.required() + } else { + base.name = appNameValidator.optional() + } + + return joiValidator.body( + Joi.object({ + _id: OPTIONAL_STRING, + _rev: OPTIONAL_STRING, + name: appNameValidator, + url: OPTIONAL_STRING, + template: Joi.object({ + templateString: OPTIONAL_STRING, + }).unknown(true), + }).unknown(true) + ) }