diff --git a/config/sample_xconfwebconfig.conf b/config/sample_xconfwebconfig.conf index d38e1dff..d9d4fa8b 100644 --- a/config/sample_xconfwebconfig.conf +++ b/config/sample_xconfwebconfig.conf @@ -216,6 +216,7 @@ xconfwebconfig { account_service_mac_prefix = "" // MAC prefix for account service enable_tagging_service_rfc = false // Enable tagging service for RFC enable_tagging_comparison = false // Enable COAST vs XConf tagging comparison logging + enable_account_tagging_override = true enable_fw_download_logs = true // Enable firmware download logs enable_rfc_precook = false // Enable RFC precook feature enable_rfc_precook_304 = false // Enable RFC precook 304 status diff --git a/dataapi/dataapi_common.go b/dataapi/dataapi_common.go index 4944315d..0084af00 100644 --- a/dataapi/dataapi_common.go +++ b/dataapi/dataapi_common.go @@ -325,6 +325,13 @@ func AddGroupServiceFeatureTags(ws *xhttp.XconfServer, groupName string, context for key, value := range featureTags { if keyWithoutPrefix, ok := RemovePrefix(key, prefixList); ok { if getPrefixData { + if Xc.EnableAccountTaggingOverride && strings.HasPrefix(keyWithoutPrefix, "accounttype:") { + if accountType, ok := contextMap["accountType"]; ok && accountType != "" { + delete(contextMap, common.ACCOUNT_TYPE) + } + log.WithFields(fields).Debugf("Overriding ACCOUNT_TYPE with value from GroupService tag: %s", keyWithoutPrefix) + } + contextMap[keyWithoutPrefix] = value tags = append(tags, fmt.Sprintf("%s#%s", keyWithoutPrefix, value)) } diff --git a/dataapi/router.go b/dataapi/router.go index 9e32b564..97e6ad77 100644 --- a/dataapi/router.go +++ b/dataapi/router.go @@ -90,6 +90,7 @@ type XconfConfigs struct { ValidPartnerIdRegex *regexp.Regexp SecurityTokenManagerEnabled bool EnableTaggingComparison bool + EnableAccountTaggingOverride bool } // Function to register the table name and the corresponding model/struct constructor @@ -340,6 +341,7 @@ func GetXconfConfigs(conf *conf.Config) *XconfConfigs { PartnerIdValidationEnabled: partnerIdValidationEnabled, SecurityTokenManagerEnabled: conf.GetBoolean("xconfwebconfig.xconf.security_token_manager_enabled"), EnableTaggingComparison: conf.GetBoolean("xconfwebconfig.xconf.enable_tagging_comparison"), + EnableAccountTaggingOverride: conf.GetBoolean("xconfwebconfig.xconf.enable_account_tagging_override"), } return xc }