import Configurations from '../main/config/definitions/main/configurations'; import { LaunchMode } from './launchMode'; import { ServerState } from '../api/ServerState'; import ConfigProvider from '../main/config/management/configProvider'; import { License } from '../main/utils/licenseManager'; import ViewEngine from '../main/views/viewEngine'; import { AllowedSystemsCheckFunction } from '../main/allowedSystems/allowedSystemsChecker'; import ServiceEngine from '../main/services/serviceEngine'; import AuthConfig from '../main/auth/authConfig'; import { Server as CoreServer } from 'ziron-worker'; import Bag from '../api/Bag'; import RawSocketUpgradeFactory from '../main/socket/rawSocketUpgradeFactory'; import DataboxPrepare from '../main/databox/databoxPrepare'; import { ChannelPrepare } from '../main/channel/channelPrepare'; import SocketMapper from '../main/socket/socketMapper'; import ReceiverPrepare from '../main/receiver/receiverPrepare'; import ControllerPrepare from '../main/controller/controllerPrepare'; import PanelEngine from '../main/panel/panelEngine'; import ControllerHandler from '../main/controller/handle/controllerHandler'; import ReceiverHandler from '../main/receiver/handle/receiverHandler'; import DataboxHandler from '../main/databox/handle/databoxHandler'; import ChannelHandler from '../main/channel/handle/channelHandler'; import RemoteTaskEngine from '../main/remoteTasks/remoteTaskEngine'; import { RawSocket } from '../main/definitions/rawSocket'; import BackgroundTasksEngine from '../main/background/backgroundTasksEngine'; export default class ZationServer { static readonly minLicenseVersionRequired = 1; readonly mode: LaunchMode; readonly rootPath: string; readonly tags: [string, string?][]; readonly clusterLeader: boolean; readonly databoxSecret: string; readonly serverState: ServerState; readonly configProvider: ConfigProvider; readonly launchTimestamp: number; readonly launchedTimestamp: number; private debugStopwatch; readonly license: License | undefined; readonly coreServer: CoreServer; readonly viewEngine: ViewEngine; readonly checkAllowedSystems: AllowedSystemsCheckFunction; readonly serviceEngine: ServiceEngine; readonly authConfig: AuthConfig; readonly bag: Bag; readonly socketMapper: SocketMapper; readonly rawSocketUpgradeEngine: RawSocketUpgradeFactory; readonly databoxPrepare: DataboxPrepare; readonly channelPrepare: ChannelPrepare; readonly receiverPrepare: ReceiverPrepare; readonly controllerPrepare: ControllerPrepare; readonly panelEngine: PanelEngine; readonly remoteTaskEngine: RemoteTaskEngine; readonly backgroundTaskEngine: BackgroundTasksEngine; readonly controllerHandler: ControllerHandler; readonly receiverHandler: ReceiverHandler; readonly databoxHandler: DataboxHandler; readonly channelHandler: ChannelHandler; get id(): string; private constructor(); private static instance; static launch(configurations: Configurations, mode?: LaunchMode | any): Promise; private launch; private boot; private createCoreServer; private initCoreServerEvents; private setupClusterLeaderState; private initCoreServerMiddlewares; private setupHttpEndpoints; private checkConfigs; private checkBagExtensionsConflicts; /** * Print a launch fail. * @param error */ private printLaunchFail; private checkLicenseAndRights; private initPanelUpdateInterval; private getConnectedBrokerIds; private _dynamicServerInfoPromise; getDynamicServerStateInfoCached(): Promise; getDynamicServerStateInfo(): Promise<{ ip: string; leader: boolean; connectedToState: boolean; clientCount: number; resourceUsage: object; users: { panelUserCount: number; defaultUserGroupCount: number; authUserGroupsCounts: Record; }; httpMessageCount: number; wsMessageCount: number; invokeMessageCount: number; transmitMessageCount: number; brokers: string[]; }>; get clusterLinked(): boolean; readonly getStaticServerStateInfoCached: () => Promise<{ type: number; hostname: string; port: number; path: string; tls: boolean; appName: string | undefined; tags: [string, (string | undefined)?][]; debug: boolean; nodeVersion: string; clusterLinked: boolean; license: { l: string; t: string; h: string; e: string; mi: number; v: number; i: string; c: number; } | undefined; serverVersion: string; launchedTimestamp: number; panelAuthUserMap: Record; defaultUserName: string; }>; getStaticServerStateInfo(): Promise<{ type: number; hostname: string; port: number; path: string; tls: boolean; appName: string | undefined; tags: [string, (string | undefined)?][]; debug: boolean; nodeVersion: string; clusterLinked: boolean; license: { l: string; t: string; h: string; e: string; mi: number; v: number; i: string; c: number; } | undefined; serverVersion: string; launchedTimestamp: number; panelAuthUserMap: Record; defaultUserName: string; }>; private logLaunchedInformation; private logComponentApiTree; private updateClusterLeader; /** * Activate this server to the cluster leader. */ private activateClusterLeader; /** * Deactivate this server cluster leadership. */ private deactivateClusterLeader; private registerServerCleanup; private cleanup; }