diff --git a/packages/builder/src/pages/builder/portal/settings/auth/scim.svelte b/packages/builder/src/pages/builder/portal/settings/auth/scim.svelte index ff2654abf1..a0b114b79a 100644 --- a/packages/builder/src/pages/builder/portal/settings/auth/scim.svelte +++ b/packages/builder/src/pages/builder/portal/settings/auth/scim.svelte @@ -24,7 +24,9 @@ try { await API.saveConfig({ type: configType, - enabled: scimEnabled, + config: { + enabled: scimEnabled, + }, }) notifications.success(`Settings saved`) } catch (e) { @@ -36,7 +38,7 @@ async function fetchConfig() { try { const scimConfig = await API.getConfig(configType) - scimEnabled = scimConfig?.enabled + scimEnabled = scimConfig?.config?.enabled } catch (error) { console.error(error) notifications.error("Error fetching SCIM config") diff --git a/packages/builder/src/stores/portal/features.js b/packages/builder/src/stores/portal/features.js index 977453e6e6..4334fda3c4 100644 --- a/packages/builder/src/stores/portal/features.js +++ b/packages/builder/src/stores/portal/features.js @@ -39,7 +39,7 @@ export const createFeatureStore = () => { ...state, scim: { ...state.scim, - isConfigFlagEnabled: scimConfig.enabled, + isConfigFlagEnabled: scimConfig?.config?.enabled, }, })) }, diff --git a/packages/worker/src/api/routes/global/configs.ts b/packages/worker/src/api/routes/global/configs.ts index 88c6bfbe7d..fcab2b58e0 100644 --- a/packages/worker/src/api/routes/global/configs.ts +++ b/packages/worker/src/api/routes/global/configs.ts @@ -58,6 +58,13 @@ function oidcValidation() { }).unknown(true) } +function scimValidation() { + // prettier-ignore + return Joi.object({ + enabled: Joi.boolean().required(), + }).unknown(true) +} + function buildConfigSaveValidation() { // prettier-ignore return auth.joiValidator.body(Joi.object({ @@ -74,7 +81,8 @@ function buildConfigSaveValidation() { { is: ConfigType.SETTINGS, then: settingValidation() }, { is: ConfigType.ACCOUNT, then: Joi.object().unknown(true) }, { is: ConfigType.GOOGLE, then: googleValidation() }, - { is: ConfigType.OIDC, then: oidcValidation() } + { is: ConfigType.OIDC, then: oidcValidation() }, + { is: ConfigType.SCIM, then: scimValidation() } ], }), }).required().unknown(true),