diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessorTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessorTest.java
index 88ae2eb824d303690fde4dc47f16d544ef85a5a8..90a141eb646a3046486a6ca9de444f6773e37d1e 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessorTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessorTest.java
@@ -15,7 +15,9 @@
 package org.opengroup.osdu.indexer.schema.converter;
 
 import com.google.common.collect.ImmutableMap;
+import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
 import org.opengroup.osdu.indexer.schema.converter.config.SchemaConverterPropertiesConfig;
@@ -25,48 +27,66 @@ import org.opengroup.osdu.indexer.schema.converter.tags.Definitions;
 import org.opengroup.osdu.indexer.schema.converter.tags.Items;
 import org.opengroup.osdu.indexer.schema.converter.tags.TypeProperty;
 
+import java.io.IOException;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
 import static org.opengroup.osdu.indexer.config.IndexerConfigurationProperties.MAP_BOOL2STRING_FEATURE_NAME;
 import org.opengroup.osdu.core.common.feature.IFeatureFlag;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import static org.opengroup.osdu.indexer.config.IndexerConfigurationProperties.MAP_BOOL2STRING_FEATURE_NAME;
-
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.annotation.Import;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@Import({IFeatureFlag.class})
+@ContextConfiguration(classes = {PropertiesProcessorTest.class, IFeatureFlag.class})
+@SpringBootTest(classes = {IFeatureFlag.class})
 public class PropertiesProcessorTest {
 
     private static final String PATH = "given_path";
     private static final String DEFINITIONS_PREFIX = "#/definitions/";
 
-    @Autowired
+    @MockBean
     private IFeatureFlag featureFlagChecker;
 
+    private SchemaConverterPropertiesConfig schemaConverterConfig;
+
+    @Before
+    public void setup() throws IOException {
+        initMocks(this);
+        schemaConverterConfig = new SchemaConverterPropertiesConfig(featureFlagChecker);
+    }
+
     @Test
     public void should_fail_on_bad_reference_definition() {
-        PropertiesProcessor propertiesProcessor = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig());
+        PropertiesProcessor propertiesProcessor = new PropertiesProcessor(Mockito.mock(Definitions.class),
+                schemaConverterConfig);
         propertiesProcessor.processRef(DEFINITIONS_PREFIX + "unknownDefinition");
         assertEquals(1, propertiesProcessor.getErrors().size());
     }
 
     @Test
     public void should_fail_on_wrong_definition_format() {
-        PropertiesProcessor propertiesProcessor = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig());
+        PropertiesProcessor propertiesProcessor = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig);
         propertiesProcessor.processRef("unknownDefinition");
         assertEquals(1, propertiesProcessor.getErrors().size());
     }
 
     @Test
     public void should_not_process_special_reference() {
-        assertFalse(new PropertiesProcessor(null, new SchemaConverterPropertiesConfig())
+        assertFalse(new PropertiesProcessor(null, schemaConverterConfig)
                 .processRef(DEFINITIONS_PREFIX + "a:b:anyCrsGeoJsonFeatureCollection:1.0.0").findAny().isPresent());
     }
 
     @Test
     public void should_return_special_type() {
-        String res = new PropertiesProcessor(null, PATH, new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(null, PATH, schemaConverterConfig)
                 .processRef(DEFINITIONS_PREFIX + "a:b:core_dl_geopoint:1.0.0").map(Object::toString).reduce("", String::concat);
         assertEquals("{path=" + PATH + ", kind=core:dl:geopoint:1.0.0}", res);
     }
@@ -90,7 +110,7 @@ public class PropertiesProcessorTest {
         String defName = "a:b:defName:1.0.0";
         definitions.add(defName, definition);
 
-        String res = new PropertiesProcessor(definitions, PATH, new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(definitions, PATH, schemaConverterConfig)
                 .processRef(DEFINITIONS_PREFIX + defName).map(Object::toString).reduce("", String::concat);
         assertEquals(res, "{path="+ PATH + "." + propertyName + ", kind=string}");
     }
@@ -108,15 +128,29 @@ public class PropertiesProcessorTest {
         properties.put(PATH, property);
         allOfItem.setProperties(properties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
                 .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
         assertEquals("{path=" + PATH + ", kind=int}", res);
     }
 
     @Test
-    public void should_return_boolean_from_boolean_item() {
+    public void should_return_boolean_from_boolean_item_FF_OFF() {
         // in the earlier versions boolean was translated to bool and 
         // this caused mapping boolean values like text as entry in StorageType entry in map is boolean
+        internal_should_return_boolean_from_boolean_item(false);
+    }
+
+    @Test
+    public void should_return_boolean_from_boolean_item_FF_ON() {
+        // in the earlier versions boolean was translated to bool and
+        // this caused mapping boolean values like text as entry in StorageType entry in map is boolean
+        internal_should_return_boolean_from_boolean_item(true);
+    }
+
+    private void internal_should_return_boolean_from_boolean_item(boolean ffFlag) {
+        when(this.featureFlagChecker.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME)).thenReturn(ffFlag);
+        when(schemaConverterConfig.getFeatureFlagChecker().isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME)).thenReturn(ffFlag);
+        schemaConverterConfig.resetToDefault();
         AllOfItem allOfItem = new AllOfItem();
         JaxRsDpsLog log = Mockito.mock(JaxRsDpsLog.class);
 
@@ -127,10 +161,11 @@ public class PropertiesProcessorTest {
         properties.put(PATH, property);
         allOfItem.setProperties(properties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
-                .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
-        String preferredType = (this.featureFlagChecker.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME))?"string":"boolean";
-        assertEquals("{{path=${PATH}, kind=${preferredType}}}", res);
+        assertEquals(
+                "{path="+PATH+", kind="+ (ffFlag?"boolean":"bool")+"}",
+                new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
+                        .processItem(allOfItem).map(Object::toString).reduce("", String::concat)
+        );
     }
 
     @Test
@@ -146,9 +181,9 @@ public class PropertiesProcessorTest {
         properties.put(PATH, property);
         allOfItem.setProperties(properties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
                 .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
-        assertEquals("{path=" + PATH + ", kind=boolean}", res);
+        assertEquals("{path=" + PATH + ", kind=bool}", res);
     }
 
     @Test
@@ -174,7 +209,7 @@ public class PropertiesProcessorTest {
         AllOfItem allOfItem = new AllOfItem();
         allOfItem.setProperties(allOfItemProperties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
             .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
         assertEquals("{path="+ PATH + ", kind=nested, properties=[{path="+ PATH + ", kind=int}]}",res);
     }
@@ -202,7 +237,7 @@ public class PropertiesProcessorTest {
         AllOfItem allOfItem = new AllOfItem();
         allOfItem.setProperties(allOfItemProperties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
             .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
         assertEquals("{path="+ PATH + ", kind=flattened}",res);
     }
@@ -229,7 +264,7 @@ public class PropertiesProcessorTest {
         AllOfItem allOfItem = new AllOfItem();
         allOfItem.setProperties(allOfItemProperties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
             .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
         assertEquals("{path="+ PATH + ", kind=[]object}",res);
     }
@@ -251,7 +286,7 @@ public class PropertiesProcessorTest {
         AllOfItem allOfItem = new AllOfItem();
         allOfItem.setProperties(allOfItemProperties);
 
-        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), new SchemaConverterPropertiesConfig())
+        String res = new PropertiesProcessor(Mockito.mock(Definitions.class), schemaConverterConfig)
             .processItem(allOfItem).map(Object::toString).reduce("", String::concat);
         assertEquals("{path="+ PATH + ", kind=[]int}",res);
     }
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImplTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImplTest.java
index ea24acdc42810af48f38a03b46f0b7289347c736..d4141cd80d9d3fbabe79c99560752650846917fb 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImplTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImplTest.java
@@ -16,6 +16,7 @@ package org.opengroup.osdu.indexer.schema.converter;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.inject.Inject;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -23,10 +24,14 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
+import org.opengroup.osdu.core.common.feature.IFeatureFlag;
 import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
 import org.opengroup.osdu.indexer.cache.partitionsafe.VirtualPropertiesSchemaCache;
 import org.opengroup.osdu.indexer.schema.converter.config.SchemaConverterPropertiesConfig;
 import org.opengroup.osdu.indexer.schema.converter.exeption.SchemaProcessingException;
+import static org.opengroup.osdu.indexer.config.IndexerConfigurationProperties.MAP_BOOL2STRING_FEATURE_NAME;
+
+import org.springframework.context.annotation.Configuration;
 import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
 import org.springframework.test.context.junit4.SpringRunner;
 
@@ -42,10 +47,10 @@ import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.*;
 
 @RunWith(SpringRunner.class)
+@Configuration
 public class SchemaToStorageFormatImplTest {
 
     private static final String KIND = "KIND_VAL";
@@ -54,17 +59,22 @@ public class SchemaToStorageFormatImplTest {
 
     private JaxRsDpsLog jaxRsDpsLog = Mockito.mock(JaxRsDpsLog.class);
 
-    @InjectMocks
-    private SchemaToStorageFormatImpl schemaToStorageFormatImpl
-            = new SchemaToStorageFormatImpl(objectMapper, jaxRsDpsLog
-            , new SchemaConverterPropertiesConfig());
+    private SchemaToStorageFormatImpl schemaToStorageFormatImpl;
 
-    @Mock
     private VirtualPropertiesSchemaCache virtualPropertiesSchemaCache;
 
+    private IFeatureFlag featureFlag;
+
     @Before
     public void init() {
         MockitoAnnotations.initMocks(this);
+        featureFlag = Mockito.mock(IFeatureFlag.class);
+        when(featureFlag.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME)).thenReturn(true);
+        virtualPropertiesSchemaCache = Mockito.mock(VirtualPropertiesSchemaCache.class);
+//        when(virtualPropertiesSchemaCache.put(Mockito.anyString(), Mockito.any())).doNothing();
+        schemaToStorageFormatImpl
+                = new SchemaToStorageFormatImpl(objectMapper, jaxRsDpsLog,
+                    new SchemaConverterPropertiesConfig(featureFlag), virtualPropertiesSchemaCache);
     }
 
     @Test
@@ -175,11 +185,19 @@ public class SchemaToStorageFormatImplTest {
         String json = getSchemaFromSchemaService(filename);
 
         Map<String, Object> converted = schemaToStorageFormatImpl.convertToMap(json, kind);
-        Map<String, Object> expected = getStorageSchema(filename + ".res");
+        String resource = filename +
+                ((featureFlag.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME))?".FF":"")+
+                ".res";
+        if (!existsStorageSchema(resource)) resource = filename + ".res";
+        Map<String, Object> expected = getStorageSchema(resource);
 
         compareSchemas(expected, converted, filename);
     }
 
+    private boolean existsStorageSchema(String s) {
+        return null != this.getClass().getResource(s);
+    }
+
     private Map<String, Object> getStorageSchema(String s) {
 
         TypeReference<Map<String, Object>> typeRef
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageIndexerPayloadMapperTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageIndexerPayloadMapperTest.java
index ba5696d3302b0935766f9b566f36b6ed6b492da3..79a7c9602d9c83fdedccdcf0fa071e644d634437 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageIndexerPayloadMapperTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageIndexerPayloadMapperTest.java
@@ -40,6 +40,7 @@ import java.util.*;
 
 import static org.junit.Assert.*;
 import static org.mockito.Mockito.when;
+import static org.opengroup.osdu.indexer.config.IndexerConfigurationProperties.MAP_BOOL2STRING_FEATURE_NAME;
 import static org.opengroup.osdu.indexer.model.Constants.AS_INGESTED_COORDINATES_FEATURE_NAME;
 
 @RunWith(SpringRunner.class)
@@ -48,7 +49,8 @@ import static org.opengroup.osdu.indexer.model.Constants.AS_INGESTED_COORDINATES
         GeometryDecimator.class, PointExtractor.class, GeometryConversionService.class, FeatureFlagCache.class,
         DpsHeaders.class, JobStatus.class, SchemaConverterPropertiesConfig.class, JaxRsDpsLog.class,
         ServiceAccountJwtClientMock.class, VirtualPropertiesSchemaCacheMock.class, VirtualPropertiesSchemaCache.class, RequestInfoMock.class,
-        IFeatureFlag.class, StringParser.class})
+        IFeatureFlag.class, StringParser.class}
+)
 public class StorageIndexerPayloadMapperTest {
 
     public static final String FIRST_OBJECT_INNER_PROPERTY = "FirstObjectInnerProperty";
@@ -282,6 +284,7 @@ public class StorageIndexerPayloadMapperTest {
     @Test
     public void mapDataPayloadTestAsIngestedCoordinates() {
         when(this.asIngestedCoordinatesFeatureFlag.isFeatureEnabled(AS_INGESTED_COORDINATES_FEATURE_NAME)).thenReturn(true);
+        when(this.asIngestedCoordinatesFeatureFlag.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME)).thenReturn(true);
 
         ArrayList<String> asIngestedCoordinatesPaths = new ArrayList<>(Arrays.asList("SpatialLocation.AsIngestedCoordinates"));
         Map<String, Object> storageRecordData = new HashMap<>();
@@ -318,6 +321,7 @@ public class StorageIndexerPayloadMapperTest {
     @Test
     public void mapDataPayloadTestAsIngestedCoordinatesGeographicBottomHoleLocationAndSpatialLocation() {
         when(this.asIngestedCoordinatesFeatureFlag.isFeatureEnabled(AS_INGESTED_COORDINATES_FEATURE_NAME)).thenReturn(true);
+        when(this.asIngestedCoordinatesFeatureFlag.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME)).thenReturn(true);
 
         ArrayList<String> asIngestedCoordinatesPaths = new ArrayList<>(Arrays.asList("GeographicBottomHoleLocation.AsIngestedCoordinates", "SpatialLocation.AsIngestedCoordinates"));
         Map<String, Object> storageRecordData = new HashMap<>();
@@ -381,6 +385,7 @@ public class StorageIndexerPayloadMapperTest {
     @Test
     public void mapDataPayloadTestAsIngestedCoordinatesWithEmptyZCoordinate() {
         when(this.asIngestedCoordinatesFeatureFlag.isFeatureEnabled(AS_INGESTED_COORDINATES_FEATURE_NAME)).thenReturn(true);
+        when(this.asIngestedCoordinatesFeatureFlag.isFeatureEnabled(MAP_BOOL2STRING_FEATURE_NAME)).thenReturn(true);
 
         ArrayList<String> asIngestedCoordinatesPaths = new ArrayList<>(Arrays.asList("SpatialLocation.AsIngestedCoordinates"));
         Map<String, Object> storageRecordData = new HashMap<>();
diff --git a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res
index c354504c354f1aa77a4768544abc68e2de1b6ea8..44a5a89ecec8ec9b421c8e322f5decb27fc12431 100644
--- a/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res
+++ b/indexer-core/src/test/resources/converter/R3-json-schema/Generated/file/File.1.0.0.json.res
@@ -26,7 +26,7 @@
       "path": "Endian"
     },
     {
-      "kind": "boolean",
+      "kind": "bool",
       "path": "LossyCompressionIndicator"
     },
     {
diff --git a/indexer-core/src/test/resources/converter/wks/slb_wke_wellbore.json.res b/indexer-core/src/test/resources/converter/wks/slb_wke_wellbore.json.res
index 37d499f5d0a6a1aed03a480bdaea813ffff66726..e8d480d2f11f9c322899dec60c390aabeef753a1 100644
--- a/indexer-core/src/test/resources/converter/wks/slb_wke_wellbore.json.res
+++ b/indexer-core/src/test/resources/converter/wks/slb_wke_wellbore.json.res
@@ -70,7 +70,7 @@
       "path": "hasAchievedTotalDepth"
     },
     {
-      "kind": "boolean",
+      "kind": "bool",
       "path": "isActive"
     },
     {
@@ -354,4 +354,4 @@
       "path": "wellboreType"
     }
   ]
-}
\ No newline at end of file
+}