import { getEnvironmentVariables } from '@/utils/getEnvironmentVariables'; import { Environment, OrchestratorConfig, } from '@orchestrator-ui/orchestrator-ui-components'; const DEFAULT_GRAPHQL_CORE_ENDPOINT = 'http://localhost:8080/api/graphql'; const DEFAULT_ORCHESTRATOR_API_BASE_URL = 'http://localhost:8080/api'; const DEFAULT_ORCHESTRATOR_WEBSOCKET_URL = 'ws://localhost:8080'; const ENGINE_STATUS_ENDPOINT = '/settings/status'; const PROCESSES_ENDPOINT = '/processes'; const SUBSCRIPTION_PROCESSES_ENDPOINT = '/processes/process-subscriptions-by-subscription-id'; const DEFAULT_WORKFLOW_INFORMATION_LINK_URL = 'http://localhost:8080'; type OrchestratorEnvVars = { ORCHESTRATOR_GRAPHQL_HOST: string; ORCHESTRATOR_GRAPHQL_PATH: string; ORCHESTRATOR_API_HOST: string; ORCHESTRATOR_API_PATH: string; ENVIRONMENT_NAME: string; ORCHESTRATOR_WEBSOCKET_URL: string; AUTH_ACTIVE: string; USE_WEB_SOCKETS: string; USE_THEME_TOGGLE: string; WORKFLOW_INFORMATION_LINK_URL: string; SHOW_WORKFLOW_INFORMATION_LINK: string; }; export const getInitialOrchestratorConfig = (): OrchestratorConfig => { const env = getEnvironmentVariables<OrchestratorEnvVars>([ 'ORCHESTRATOR_GRAPHQL_HOST', 'ORCHESTRATOR_GRAPHQL_PATH', 'ORCHESTRATOR_API_HOST', 'ORCHESTRATOR_API_PATH', 'ENVIRONMENT_NAME', 'ORCHESTRATOR_WEBSOCKET_URL', 'AUTH_ACTIVE', 'USE_WEB_SOCKETS', 'USE_THEME_TOGGLE', 'WORKFLOW_INFORMATION_LINK_URL', 'SHOW_WORKFLOW_INFORMATION_LINK', ]); const orchestratorGraphqlBaseUrl = env.ORCHESTRATOR_GRAPHQL_HOST && env.ORCHESTRATOR_GRAPHQL_PATH ? `${env.ORCHESTRATOR_GRAPHQL_HOST}${env.ORCHESTRATOR_GRAPHQL_PATH}` : DEFAULT_GRAPHQL_CORE_ENDPOINT; const orchestratorApiBaseUrl = env.ORCHESTRATOR_API_HOST && env.ORCHESTRATOR_API_PATH ? `${env.ORCHESTRATOR_API_HOST}${env.ORCHESTRATOR_API_PATH}` : DEFAULT_ORCHESTRATOR_API_BASE_URL; return { orchestratorApiBaseUrl, engineStatusEndpoint: `${orchestratorApiBaseUrl}${ENGINE_STATUS_ENDPOINT}`, graphqlEndpointCore: orchestratorGraphqlBaseUrl, processesEndpoint: `${orchestratorApiBaseUrl}${PROCESSES_ENDPOINT}`, environmentName: env.ENVIRONMENT_NAME ?? Environment.DEVELOPMENT, subscriptionProcessesEndpoint: `${orchestratorApiBaseUrl}${SUBSCRIPTION_PROCESSES_ENDPOINT}`, orchestratorWebsocketUrl: env.ORCHESTRATOR_WEBSOCKET_URL ?? DEFAULT_ORCHESTRATOR_WEBSOCKET_URL, authActive: env.AUTH_ACTIVE?.toLowerCase() !== 'false', useWebSockets: env.USE_WEB_SOCKETS?.toLowerCase() === 'true', useThemeToggle: env.USE_THEME_TOGGLE?.toLowerCase() === 'true', workflowInformationLinkUrl: env.WORKFLOW_INFORMATION_LINK_URL ?? DEFAULT_WORKFLOW_INFORMATION_LINK_URL, showWorkflowInformationLink: env.SHOW_WORKFLOW_INFORMATION_LINK?.toLowerCase() === 'true', }; };