Upgrade Guide CX4.9.4 to CX4.9.5
Before upgrading, ensure that the system is idle, i.e; all agents are logged out from the AgentDesk.
Clone the CX repository on the target server
CODE# Create CX-4.9.5 directory from root mkdir CX-4.9.5 # Navigate to CX-4.9.5 cd CX-4.9.5 # Clone the 4.9.5 branch of cim-solution repository git clone -b CX-4.9.5 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git $HOME/CX-4.9.5 # Navigate to root(previous) directory cd ..Update helm repo
CODEhelm repo update expertflowChange the directory to the current deployment of CX
CODEchange directory to following path in current deployment cd CX-4.9.4/kubernetesUpdate the Agent-Desk helm chart
CODE#Update Agent Desk helm chart Edit/update the values file helm-values/cx-agent-desk-custom-values.yaml with unified-agent Tag: 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-agent-desk --debug --values helm-values/cx-agent-desk-custom-values.yaml expertflow/agent-desk --version 4.9.5Update the Channel helm chart
CODE# Update Channel helm chart Edit/update the values file helm-values/cx-channels-custom-values.yaml with following #Add the following environment variables for linkedinconnector under extraEnvVars - name: LINKEDIN_CIM_FILE_ENGINE_URL value: "http://{{ .Values.global.efCxReleaseName }}-file-engine-svc.{{ .Release.Namespace }}.svc:8080" - name: FILE_ENGINE_BASE_FQDN value: "https://{{ .Values.global.ingressRouter }}" - name: AUTO_SCHEDULER_STARTUP value: "true" #update the following environment variables for linkedinconnector under extraEnvVars - name: linkedin.scheduler.fixed-rate value: "150" linkedinconnector Tag : 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" --debug cx-channels --values helm-values/cx-channels-custom-values.yaml expertflow/channels --version 4.9.5Update the Core helm chart
CODE#Update Core Component helm chart Edit/update the values file helm-values/ef-cx-custom-values.yaml with replace the apisix route with following changes in unified-admin # Route 1: UNSECURED GET (API) - Highest priority for the specific unsecured API call. # Previously nameSuffix was get-form-by-id-unsecured but shortened due to APISIX issue. 401. - nameSuffix: "get-form-unsecured" enabled: true priority: 150 paths: ["/unified-admin/forms/*"] methods: ["GET"] exprs: - subject: scope: Path op: RegexMatch value: "^/unified-admin/forms/[a-fA-F0-9]{24}$" backendServicePort: 3000 plugins: enableAuth: false enableRewrite: true rewriteStripPrefix: false rewriteRegexUriFrom: "^/unified-admin/forms/([a-fA-F0-9]{24})$" rewriteRegexUriTo: "/forms/$1" # Route 2: SECURED APIs - High priority to secure all required backend API endpoints. - nameSuffix: "backend-apis-secured" enabled: true priority: 25 paths: - "/unified-admin/users" - "/unified-admin/users/*" - "/unified-admin/health" - "/unified-admin/health/*" - "/unified-admin/team" - "/unified-admin/team/*" - "/unified-admin/forms" - "/unified-admin/forms/*" - "/unified-admin/metrics" - "/unified-admin/metrics/*" - "/unified-admin/reasons" - "/unified-admin/reasons/*" - "/unified-admin/pull-mode-list" - "/unified-admin/pull-mode-list/*" backendServicePort: 3000 plugins: enableAuth: false enableRewrite: true rewriteStripPrefix: false rewriteRegexUriFrom: "^/unified-admin/(.*)" rewriteRegexUriTo: "/$1" # Route 3: UNSECURED SPA Handler - Handles the initial page load for the app. - nameSuffix: "frontend-spa-routes" enabled: true priority: 0 paths: - "/unified-admin" - "/unified-admin/*" backendServicePort: 3000 plugins: enableAuth: false enableRewrite: true rewriteStripPrefix: false rewriteRegexUriFrom: "^/unified-admin/?(.*)" rewriteRegexUriTo: "/$1" enableCors: true customPlugins: - name: client-control enable: true config: max_body_size: 6291456 # Route 4: GLOBAL CATCH-ALL - Based on the original working config. # This handles the FQDN root and ALL static assets (.js, .css, etc.) without a rewrite. - nameSuffix: "global-catchall" enabled: true priority: -10 paths: ["/*"] backendServicePort: 3000 plugins: enableAuth: false enableRewrite: false - nameSuffix: "default-404-handler" enabled: false priority: -200 # Very low priority paths: ["/*"] # Catches all paths not matched by higher priority routes # No backend is needed as the mocking plugin will generate the response backendServicePort: 80 # Dummy, but APISIX schema might require it. backendServiceName: "dummy-service" # Dummy plugins: enableAuth: false # Typically, 404 pages don't require auth enableRewrite: false enableCors: false # Or configure as needed for your 404 page customPlugins: - name: "mocking" enable: false config: response_status: 404 response_headers: Content-Type: "text/html; charset=utf-8" X-Custom-Error-Page: "true" response_example: | <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Page Not Found</title> <style> body { font-family: Arial, sans-serif; text-align: center; padding: 50px; color: #333; } h1 { font-size: 48px; color: #555; } p { font-size: 18px; } a { color: #007bff; text-decoration: none; } </style> </head> <body> <h1>404 - Page Not Found</h1> <p>Sorry, the page you are looking for does not exist or has been moved.</p> <p><a href="/">Return to Homepage</a></p> <hr> <p><small>Request ID: $request_id</small></p> </body> </html> agent-manager Tag: 4.9.5 bot-framework Tag: 4.9.5 cim-backend Tag: 4.9.5 conversation-manager Tag: 4.9.5 conversation-monitor Tag: 4.9.5 file-engine Tag: 4.9.5 media-routing-engine Tag: 4.9.5 team-announcement tag: 4.9.5 web-channel-manager tag: 4.9.5 customer-channel-manager tag : 4.9.5 customer-widget Tag: 4.9.5 realtime-reports-manager Tag: 4.9.5 helm upgrade --install --namespace expertflow --create-namespace ef-cx --debug --values helm-values/ef-cx-custom-values.yaml expertflow/cx --version 4.9.5Update the Campaigns helm chart
CODE#Update Campaigns helm chart Edit/update the values file helm-values/cx-campaigns-custom-values.yaml with conversation-studio Tag: 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-campaigns --debug --values helm-values/cx-campaigns-custom-values.yaml expertflow/campaigns --version 4.9.5Update the survey helm chart
CODE#Update Surveys helm chart Edit/update the values file helm-values/cx-surveys-custom-values.yaml with survey-backend Tag : 4.9.5 survey-nodes Tag : 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-surveys --debug --values helm-values/cx-surveys-custom-values.yaml expertflow/surveys --version 4.9.5Update the Expertflow ETL helm chart
CODE#Edit/update the values file helm-values/cx-transflux-custom-values.yaml with cx-data-platform Tag: 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-transflux --debug --values helm-values/cx-transflux-custom-values.yaml expertflow/transflux --version 4.9.5Update the Reporting helm chart
CODE#Edit/update the values file helm-values/cx-reporting-scheduler-custom-values.yaml with Reporting connector Tag: 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-reporting --debug --values helm-values/cx-reporting-scheduler-custom-values.yaml expertflow/reporting --version 4.9.5