UNPKG

n8n

Version:

n8n Workflow Automation Tool

38 lines 2.1 kB
"use strict"; const api_types_1 = require("@n8n/api-types"); const config_1 = require("@n8n/config"); const di_1 = require("@n8n/di"); const bad_request_error_1 = require("../../../../errors/response-errors/bad-request.error"); const conflict_error_1 = require("../../../../errors/response-errors/conflict.error"); const oidc_service_ee_1 = require("../../../../modules/sso-oidc/oidc.service.ee"); const sso_oidc_mapper_1 = require("./sso-oidc.mapper"); const global_middleware_1 = require("../../shared/middlewares/global.middleware"); const ssoOidcHandlers = { getOidcConfiguration: [ (0, global_middleware_1.isLicensed)('feat:oidc'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'oidc:manage' }), async (_req, res) => { const config = await di_1.Container.get(oidc_service_ee_1.OidcService).loadConfig(); return res.json((0, sso_oidc_mapper_1.toOidcConfigurationResponse)(config)); }, ], setOidcConfiguration: [ (0, global_middleware_1.isLicensed)('feat:oidc'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'oidc:manage' }), async (req, res) => { const payload = api_types_1.UpdateOidcConfigurationDto.safeParse(req.body); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors[0]?.message ?? 'Invalid request body'); } const { ssoManagedByEnv } = di_1.Container.get(config_1.InstanceSettingsLoaderConfig); if (ssoManagedByEnv) { throw new conflict_error_1.ConflictError('SSO configuration is managed declaratively and cannot be modified through the API'); } const oidcService = di_1.Container.get(oidc_service_ee_1.OidcService); await oidcService.updateConfig(payload.data); return res.json((0, sso_oidc_mapper_1.toOidcConfigurationResponse)(await oidcService.loadConfig())); }, ], }; module.exports = ssoOidcHandlers; //# sourceMappingURL=sso-oidc.handler.js.map