-
Mohammad Torkashvand authoredMohammad Torkashvand authored
configuration.ts 2.81 KiB
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',
};
};