- switch (uiServerConfiguration?.type ?? Configuration.getUIServer().type) {
- case ApplicationProtocol.WS:
- return new UIWebSocketServer(uiServerConfiguration ?? Configuration.getUIServer());
+ if (
+ uiServerConfiguration.type === ApplicationProtocol.HTTP &&
+ uiServerConfiguration.authentication?.enabled === true &&
+ uiServerConfiguration.authentication.type === AuthenticationType.PROTOCOL_BASIC_AUTH
+ ) {
+ throw new BaseError(
+ `'${uiServerConfiguration.authentication.type}' authentication type with application protocol type '${uiServerConfiguration.type}' is not supported in '${ConfigurationSection.uiServer}' configuration section`
+ )
+ }
+ if (
+ uiServerConfiguration.authentication?.enabled !== true &&
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ !isLoopback(uiServerConfiguration.options!.host!)
+ ) {
+ const logMsg = `Non loopback address in '${ConfigurationSection.uiServer}' configuration section without authentication enabled. This is not recommended`
+ logger.warn(`${UIServerFactory.logPrefix()} ${logMsg}`)
+ console.warn(chalk.yellow(logMsg))
+ }
+ if (
+ uiServerConfiguration.type === ApplicationProtocol.WS &&
+ uiServerConfiguration.version !== ApplicationProtocolVersion.VERSION_11
+ ) {
+ const logMsg = `Only version ${ApplicationProtocolVersion.VERSION_11} with application protocol type '${uiServerConfiguration.type}' is supported in '${ConfigurationSection.uiServer}' configuration section. Falling back to version ${ApplicationProtocolVersion.VERSION_11}`
+ logger.warn(`${UIServerFactory.logPrefix()} ${logMsg}`)
+ console.warn(chalk.yellow(logMsg))
+ uiServerConfiguration.version = ApplicationProtocolVersion.VERSION_11
+ }
+ switch (uiServerConfiguration.type) {