diff --git a/image/cli/mascli/functions/internal/save_config b/image/cli/mascli/functions/internal/save_config index 37d19bd4a6b..d20732bde93 100644 --- a/image/cli/mascli/functions/internal/save_config +++ b/image/cli/mascli/functions/internal/save_config @@ -31,6 +31,10 @@ export MAS_CHANNEL=$MAS_CHANNEL export MAS_ICR_CP=$MAS_ICR_CP export MAS_ICR_CPOPEN=$MAS_ICR_CPOPEN +export MAS_FEATURE_USAGE=$MAS_FEATURE_USAGE +export MAS_USABILITY_METRICS=$MAS_USABILITY_METRICS +export MAS_DEPLOYMENT_PROGRESSION=$MAS_DEPLOYMENT_PROGRESSION + export MAS_SUPERUSER_USERNAME=$MAS_SUPERUSER_USERNAME export MAS_SUPERUSER_PASSWORD=$MAS_SUPERUSER_PASSWORD diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index e0674e9b045..bca00fb4523 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -469,6 +469,30 @@ def configSpecialCharacters(self): ]) self.yesOrNo("Allow special characters for user IDs and usernames", "mas_special_characters") + @logMethodCall + def configReportAdoptionMetricsFlag(self): + if self.showAdvancedOptions and isVersionEqualOrAfter('9.1.0', self.getParam("mas_channel")): + self.printH1("Adoption Metrics Reporting") + self.printDescription([ + "Adoption Metrics are used by IBM to measure feature adoption, user engagement, and the success of product initiatives.", + "You can control three types of metrics:", + " - Feature Adoption: Tracks feature usage to understand adoption and improve the product", + " - Deployment Progression: Tracks progression of tasks and workflows within the product", + " - Usability: Tracks user interface interactions to improve usability", + "", + "When enabled (y), you permit IBM to capture and analyze these metrics to help improve the Maximo Application Suite experience.", + "When disabled (n), you are opting out of sending that specific metric type to IBM." + ]) + + if not self.yesOrNo("Enable feature adoption metrics"): + self.setParam("mas_feature_usage", "false") + + if not self.yesOrNo("Enable deployment progression metrics"): + self.setParam("mas_deployment_progression", "false") + + if not self.yesOrNo("Enable usability metrics"): + self.setParam("mas_usability_metrics", "false") + @logMethodCall def configCP4D(self): if self.getParam("mas_catalog_version") in self.catalogOptions: @@ -557,6 +581,7 @@ def configMAS(self): self.configDNSAndCerts() self.configSSOProperties() self.configSpecialCharacters() + self.configReportAdoptionMetricsFlag() self.configGuidedTour() @logMethodCall diff --git a/python/src/mas/cli/install/argBuilder.py b/python/src/mas/cli/install/argBuilder.py index b3178f3bf23..c2a174d733a 100644 --- a/python/src/mas/cli/install/argBuilder.py +++ b/python/src/mas/cli/install/argBuilder.py @@ -1,5 +1,5 @@ # ***************************************************************************** -# Copyright (c) 2024 IBM Corporation and other Contributors. +# Copyright (c) 2024, 2026 IBM Corporation and other Contributors. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 @@ -128,6 +128,15 @@ def buildCommand(self) -> str: if self.getParam('mas_enable_walkme') == "false": command += f" --disable-walkme{newline}" + if self.getParam('mas_feature_usage') == "false": + command += f" --disable-feature-usage{newline}" + + if self.getParam('mas_usability_metrics') == "false": + command += f" --disable-usability-metrics{newline}" + + if self.getParam('mas_deployment_progression') == "false": + command += f" --disable-deployment-progression{newline}" + if self.getParam('enable_ipv6') is True: command += f" --enable-ipv6{newline}" diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index 4e10f6f556d..d53e5b622a9 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -1,5 +1,5 @@ # ***************************************************************************** -# Copyright (c) 2024 IBM Corporation and other Contributors. +# Copyright (c) 2024, 2026 IBM Corporation and other Contributors. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 @@ -202,6 +202,30 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str: action="store_const", const="false" ) +masAdvancedArgGroup.add_argument( + "--disable-feature-usage", + dest="mas_feature_usage", + required=False, + help="Disable feature adoption metrics reporting", + action="store_const", + const="false" +) +masAdvancedArgGroup.add_argument( + "--disable-deployment-progression", + dest="mas_deployment_progression", + required=False, + help="Disable deployment progression metrics reporting", + action="store_const", + const="false" +) +masAdvancedArgGroup.add_argument( + "--disable-usability-metrics", + dest="mas_usability_metrics", + required=False, + help="Disable usability metrics reporting", + action="store_const", + const="false" +) masAdvancedArgGroup.add_argument( "--dns-provider", diff --git a/python/src/mas/cli/install/params.py b/python/src/mas/cli/install/params.py index dcb00fadb67..a4b7a779054 100644 --- a/python/src/mas/cli/install/params.py +++ b/python/src/mas/cli/install/params.py @@ -150,6 +150,9 @@ "artifactory_token", # Guided Tour "mas_enable_walkme", + "mas_feature_usage", + "mas_usability_metrics", + "mas_deployment_progression", # Facilities "mas_ws_facilities_size", "mas_ws_facilities_routes_timeout", diff --git a/python/src/mas/cli/install/summarizer.py b/python/src/mas/cli/install/summarizer.py index ba74561de71..18fa5020104 100644 --- a/python/src/mas/cli/install/summarizer.py +++ b/python/src/mas/cli/install/summarizer.py @@ -1,5 +1,5 @@ # ***************************************************************************** -# Copyright (c) 2024 IBM Corporation and other Contributors. +# Copyright (c) 2024, 2026 IBM Corporation and other Contributors. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 @@ -105,6 +105,15 @@ def masSummary(self) -> None: self.printParamSummary("IBM Entitled Registry", "mas_icr_cp") self.printParamSummary("IBM Open Registry", "mas_icr_cpopen") + print() + self.printParamSummary("Enable feature adoption metrics", "mas_feature_usage") + + print() + self.printParamSummary("Enable deployment progression metrics", "mas_deployment_progression") + + print() + self.printParamSummary("Enable usability metrics", "mas_usability_metrics") + print() self.printParamSummary("Trust Default Cert Authorities", "mas_trust_default_cas") diff --git a/tekton/src/params/install.yml.j2 b/tekton/src/params/install.yml.j2 index 32a24709146..0eca9d8e899 100644 --- a/tekton/src/params/install.yml.j2 +++ b/tekton/src/params/install.yml.j2 @@ -433,6 +433,18 @@ - name: mas_icr_cpopen type: string default: "" +- name: mas_feature_usage + type: string + description: Flag to control feature adoption metrics used to understand feature usage and improve the product + default: "True" +- name: mas_usability_metrics + type: string + description: Flag to control user interface interaction metrics to improve usability + default: "True" +- name: mas_deployment_progression + type: string + description: Flag to control metrics used to understand progression of tasks and workflows within the product + default: "True" - name: mas_annotations type: string default: "" diff --git a/tekton/src/pipelines/taskdefs/core/suite-install.yml.j2 b/tekton/src/pipelines/taskdefs/core/suite-install.yml.j2 index 980083e483d..a8ead0028eb 100644 --- a/tekton/src/pipelines/taskdefs/core/suite-install.yml.j2 +++ b/tekton/src/pipelines/taskdefs/core/suite-install.yml.j2 @@ -24,6 +24,12 @@ value: $(params.mas_channel) - name: mas_catalog_source value: $(params.mas_catalog_source) + - name: mas_feature_usage + value: $(params.mas_feature_usage) + - name: mas_usability_metrics + value: $(params.mas_usability_metrics) + - name: mas_deployment_progression + value: $(params.mas_deployment_progression) - name: mas_icr_cp value: $(params.mas_icr_cp) - name: mas_icr_cpopen diff --git a/tekton/src/tasks/suite-install.yml.j2 b/tekton/src/tasks/suite-install.yml.j2 index 376c373a9e9..ee9e715ccab 100644 --- a/tekton/src/tasks/suite-install.yml.j2 +++ b/tekton/src/tasks/suite-install.yml.j2 @@ -82,6 +82,19 @@ spec: type: string default: "" + - name: mas_feature_usage + type: string + description: Flag to control feature adoption metrics used to understand feature usage and improve the product + default: "True" + - name: mas_usability_metrics + type: string + description: Flag to control user interface interaction metrics to improve usability + default: "True" + - name: mas_deployment_progression + type: string + description: Flag to control metrics used to understand progression of tasks and workflows within the product + default: "True" + - name: ibm_entitlement_key type: string @@ -193,6 +206,13 @@ spec: - name: MAS_ICR_CPOPEN value: $(params.mas_icr_cpopen) + - name: MAS_FEATURE_USAGE + value: $(params.mas_feature_usage) + - name: MAS_USABILITY_METRICS + value: $(params.mas_usability_metrics) + - name: MAS_DEPLOYMENT_PROGRESSION + value: $(params.mas_deployment_progression) + - name: IBM_ENTITLEMENT_KEY value: $(params.ibm_entitlement_key)