diff --git a/provider/indexer-gcp/docs/anthos/README.md b/provider/indexer-gcp/docs/anthos/README.md
index 161d29778edc9b36c9cbb4dd20fa979163414b31..fdbeeba8f4790558cb78627a08fdf98484c04218 100644
--- a/provider/indexer-gcp/docs/anthos/README.md
+++ b/provider/indexer-gcp/docs/anthos/README.md
@@ -6,40 +6,40 @@ Define the following environment variables.
 
 Must have:
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `SPRING_PROFILES_ACTIVE` | ex `anthos` | Spring profile that activate default configuration for Google Cloud environment | false | - |
-| `OPENID_PROVIDER_CLIENT_ID` | `*****` |  Client id that represents this service and serves to request tokens, example `workload-identity-legal` |yes| - |
-| `OPENID_PROVIDER_CLIENT_SECRET` | `*****` | This client secret that serves to request tokens| yes | - |
-| `OPENID_PROVIDER_URL` | `https://keycloack.com/auth/realms/master` | URL of OpenID Connect provider, it will be used as `<OpenID URL> + /.well-known/openid-configuration` to auto configure endpoint for token request  | no | - |
-| `<ELASTICSEARCH_USER_ENV_VARIABLE_NAME>` | ex `user` | Elasticsearch user, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service)  | yes | - |
-| `<ELASTICSEARCH_PASSWORD_ENV_VARIABLE_NAME>` | ex `password` | Elasticsearch password, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service) | false | - |
+| name                                         | value                                      | description                                                                                                                                                                                                                                                                                               | sensitive? | source |
+|----------------------------------------------|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------|
+| `SPRING_PROFILES_ACTIVE`                     | ex `anthos`                                | Spring profile that activate default configuration for Google Cloud environment                                                                                                                                                                                                                           | false      | -      |
+| `OPENID_PROVIDER_CLIENT_ID`                  | `*****`                                    | Client id that represents this service and serves to request tokens, example `workload-identity-legal`                                                                                                                                                                                                    | yes        | -      |
+| `OPENID_PROVIDER_CLIENT_SECRET`              | `*****`                                    | This client secret that serves to request tokens                                                                                                                                                                                                                                                          | yes        | -      |
+| `OPENID_PROVIDER_URL`                        | `https://keycloack.com/auth/realms/master` | URL of OpenID Connect provider, it will be used as `<OpenID URL> + /.well-known/openid-configuration` to auto configure endpoint for token request                                                                                                                                                        | no         | -      |
+| `<ELASTICSEARCH_USER_ENV_VARIABLE_NAME>`     | ex `user`                                  | Elasticsearch user, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service)     | yes        | -      |
+| `<ELASTICSEARCH_PASSWORD_ENV_VARIABLE_NAME>` | ex `password`                              | Elasticsearch password, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service) | false      | -      |
 
 Defined in default application property file but possible to override:
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `LOG_PREFIX` | `service` | Logging prefix | no | - |
-| `LOG_LEVEL` | `****` | Logging level | no | - |
-| `SECURITY_HTTPS_CERTIFICATE_TRUST` | ex `false` | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true' | false | output of infrastructure deployment |
-| `REDIS_SEARCH_HOST` | ex `127.0.0.1` | Redis host for search | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `REDIS_SEARCH_PORT` | ex `6379` | Redis host for search | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `REDIS_GROUP_HOST` | ex `127.0.0.1` | Redis host for groups | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `REDIS_GROUP_PORT` | ex `6379` | Redis host for search | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `PARTITION_HOST` | ex `https://partition.com` | Partition host | no | output of infrastructure deployment |
-| `ENTITLEMENTS_HOST` | ex `https://entitlements.com` | Entitlements host | no | output of infrastructure deployment |
-| `STORAGE_HOST` | ex `https://storage.com` | Storage host | no | output of infrastructure deployment |
-| `SCHEMA_BASE_HOST` | ex `https://schema.com` | Schema service host | no | output of infrastructure deployment |
-| `RABBITMQ_RETRY_LIMIT` | ex `3` | Limit number of retry attempts | no | output of infrastructure deployment |
+| name                               | value                                                                     | description                                                               | sensitive? | source                              |
+|------------------------------------|---------------------------------------------------------------------------|---------------------------------------------------------------------------|------------|-------------------------------------|
+| `LOG_PREFIX`                       | `service`                                                                 | Logging prefix                                                            | no         | -                                   |
+| `LOG_LEVEL`                        | `****`                                                                    | Logging level                                                             | no         | -                                   |
+| `SECURITY_HTTPS_CERTIFICATE_TRUST` | ex `false`                                                                | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true' | false      | output of infrastructure deployment |
+| `REDIS_SEARCH_HOST`                | ex `127.0.0.1`                                                            | Redis host                                                                | no         |                                     |
+| `REDIS_SEARCH_PORT`                | ex `6379`                                                                 | Redis host port                                                           | no         |                                     |
+| `REDIS_SEARCH_PASSWORD`            | ex `*****`                                                                | Redis host password                                                       | yes        |                                     |
+| `REDIS_SEARCH_WITH_SSL`            | ex `true` or `false`                                                      | Redis host ssl config                                                     | no         |                                     |
+| `REDIS_SEARCH_EXPIRATION`          | ex `30`                                                                   | Redis cache expiration in seconds                                         | no         |                                     |
+| `PARTITION_HOST`                   | ex `https://partition.com`                                                | Partition host                                                            | no         | output of infrastructure deployment |
+| `ENTITLEMENTS_HOST`                | ex `https://entitlements.com`                                             | Entitlements host                                                         | no         | output of infrastructure deployment |
+| `STORAGE_HOST`                     | ex `https://storage.com`                                                  | Storage host                                                              | no         | output of infrastructure deployment |
+| `SCHEMA_BASE_HOST`                 | ex `https://schema.com`                                                   | Schema service host                                                       | no         | output of infrastructure deployment |
 
 These variables define service behavior, and are used to switch between `anthos` or `gcp` environments, their overriding and usage in mixed mode was not tested.
 Usage of spring profiles is preferred.
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `PARTITION_AUTH_ENABLED` | ex `true` or `false` | Disable or enable auth token provisioning for requests to Partition service | no | - |
-| `OQMDRIVER` | `rabbitmq` or `pubsub` | Oqm driver mode that defines which message broker will be used | no | - |
-| `SERVICE_TOKEN_PROVIDER` | `GCP` or `OPENID` |Service account token provider, `GCP` means use Google service account `OPEIND` means use OpenId provider like `Keycloak` | no | - |
+| name                     | value                  | description                                                                                                               | sensitive? | source |
+|--------------------------|------------------------|---------------------------------------------------------------------------------------------------------------------------|------------|--------|
+| `PARTITION_AUTH_ENABLED` | ex `true` or `false`   | Disable or enable auth token provisioning for requests to Partition service                                               | no         | -      |
+| `OQMDRIVER`              | `rabbitmq` or `pubsub` | Oqm driver mode that defines which message broker will be used                                                            | no         | -      |
+| `SERVICE_TOKEN_PROVIDER` | `GCP` or `OPENID`      | Service account token provider, `GCP` means use Google service account `OPEIND` means use OpenId provider like `Keycloak` | no         | -      |
 
 ### Properties set in Partition service:
 
@@ -70,12 +70,12 @@ It can be overridden by:
 
 **Propertyset:**
 
-| Property | Description |
-| --- | --- |
-| elasticsearch.host | server URL |
-| elasticsearch.port | server port |
-| elasticsearch.user | username |
-| elasticsearch.password | password |
+| Property               | Description |
+|------------------------|-------------|
+| elasticsearch.host     | server URL  |
+| elasticsearch.port     | server port |
+| elasticsearch.user     | username    |
+| elasticsearch.password | password    |
 
 <details><summary>Example of a definition for a single tenant</summary></details>
 
@@ -114,19 +114,19 @@ It can be overridden by:
 
 **Propertyset** (for two types of connection: messaging and admin operations):
 
-| Property | Description |
-| --- | --- |
-| oqm.rabbitmq.amqp.host | messaging hostnameorIP |
-| oqm.rabbitmq.amqp.port | - port |
-| oqm.rabbitmq.amqp.path | - path |
-| oqm.rabbitmq.amqp.username | - username |
-| oqm.rabbitmq.amqp.password | - password |
-| oqm.rabbitmq.admin.schema | admin host schema |
-| oqm.rabbitmq.admin.host | - host name |
-| oqm.rabbitmq.admin.port | - port |
-| oqm.rabbitmq.admin.path | - path |
-| oqm.rabbitmq.admin.username | - username |
-| oqm.rabbitmq.admin.password | - password |
+| Property                    | Description            |
+|-----------------------------|------------------------|
+| oqm.rabbitmq.amqp.host      | messaging hostnameorIP |
+| oqm.rabbitmq.amqp.port      | - port                 |
+| oqm.rabbitmq.amqp.path      | - path                 |
+| oqm.rabbitmq.amqp.username  | - username             |
+| oqm.rabbitmq.amqp.password  | - password             |
+| oqm.rabbitmq.admin.schema   | admin host schema      |
+| oqm.rabbitmq.admin.host     | - host name            |
+| oqm.rabbitmq.admin.port     | - port                 |
+| oqm.rabbitmq.admin.path     | - path                 |
+| oqm.rabbitmq.admin.username | - username             |
+| oqm.rabbitmq.admin.password | - password             |
 
 <details><summary>Example of a single tenant definition</summary>
 
@@ -236,24 +236,24 @@ Give `client-id` and `client-secret` to services, which should be authorized wit
 
 You will need to have the following environment variables defined.
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `ELASTIC_PASSWORD` | `********` | Password for Elasticsearch | yes | output of infrastructure deployment |
-| `ELASTIC_USER_NAME` | `********` | User name for Elasticsearch | yes | output of infrastructure deployment |
-| `ELASTIC_HOST` | ex `elastic.domain.com` | Host Elasticsearch | yes | output of infrastructure deployment |
-| `ELASTIC_PORT` | ex `9243` | Port Elasticsearch | yes | output of infrastructure deployment |
-| `INDEXER_HOST` | ex `https://os-indexer-dot-opendes.appspot.com/api/indexer/v2/` | Indexer API endpoint | no | output of infrastructure deployment |
-| `ENTITLEMENTS_DOMAIN` | ex `opendes-gcp.projects.com` | OSDU R2 to run tests under  | no | - |
-| `OTHER_RELEVANT_DATA_COUNTRIES` | ex `US` | valid legal tag with a other relevant data countries | no | - |
-| `LEGAL_TAG` | ex `opendes-demo-legaltag` | valid legal tag with a other relevant data countries from `DEFAULT_OTHER_RELEVANT_DATA_COUNTRIES` | no | - |
-| `DEFAULT_DATA_PARTITION_ID_TENANT1` | ex `opendes` | HTTP Header 'Data-Partition-ID'  | no | - |
-| `DEFAULT_DATA_PARTITION_ID_TENANT2` | ex `opendes` | HTTP Header 'Data-Partition-ID'  | no | - |
-| `SEARCH_HOST` | ex `http://localhost:8080/api/search/v2/` | Endpoint of search service | no | - |
-| `STORAGE_HOST` | ex `http://os-storage-dot-opendes.appspot.com/api/storage/v2/` | Storage API endpoint | no | output of infrastructure deployment |
-| `SECURITY_HTTPS_CERTIFICATE_TRUST` | ex `false` | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true' | false | output of infrastructure deployment |
-| `TEST_OPENID_PROVIDER_CLIENT_ID` | `********` | Client Id for `$INTEGRATION_TESTER` | yes | -- |
-| `TEST_OPENID_PROVIDER_CLIENT_SECRET` | `********` |  | Client secret for `$INTEGRATION_TESTER` | -- |
-| `TEST_OPENID_PROVIDER_URL` | `https://keycloak.com/auth/realms/osdu` | OpenID provider url | yes | -- |
+| name                                 | value                                                           | description                                                                                       | sensitive?                              | source                              |
+|--------------------------------------|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------|-----------------------------------------|-------------------------------------|
+| `ELASTIC_PASSWORD`                   | `********`                                                      | Password for Elasticsearch                                                                        | yes                                     | output of infrastructure deployment |
+| `ELASTIC_USER_NAME`                  | `********`                                                      | User name for Elasticsearch                                                                       | yes                                     | output of infrastructure deployment |
+| `ELASTIC_HOST`                       | ex `elastic.domain.com`                                         | Host Elasticsearch                                                                                | yes                                     | output of infrastructure deployment |
+| `ELASTIC_PORT`                       | ex `9243`                                                       | Port Elasticsearch                                                                                | yes                                     | output of infrastructure deployment |
+| `INDEXER_HOST`                       | ex `https://os-indexer-dot-opendes.appspot.com/api/indexer/v2/` | Indexer API endpoint                                                                              | no                                      | output of infrastructure deployment |
+| `ENTITLEMENTS_DOMAIN`                | ex `opendes-gcp.projects.com`                                   | OSDU R2 to run tests under                                                                        | no                                      | -                                   |
+| `OTHER_RELEVANT_DATA_COUNTRIES`      | ex `US`                                                         | valid legal tag with a other relevant data countries                                              | no                                      | -                                   |
+| `LEGAL_TAG`                          | ex `opendes-demo-legaltag`                                      | valid legal tag with a other relevant data countries from `DEFAULT_OTHER_RELEVANT_DATA_COUNTRIES` | no                                      | -                                   |
+| `DEFAULT_DATA_PARTITION_ID_TENANT1`  | ex `opendes`                                                    | HTTP Header 'Data-Partition-ID'                                                                   | no                                      | -                                   |
+| `DEFAULT_DATA_PARTITION_ID_TENANT2`  | ex `opendes`                                                    | HTTP Header 'Data-Partition-ID'                                                                   | no                                      | -                                   |
+| `SEARCH_HOST`                        | ex `http://localhost:8080/api/search/v2/`                       | Endpoint of search service                                                                        | no                                      | -                                   |
+| `STORAGE_HOST`                       | ex `http://os-storage-dot-opendes.appspot.com/api/storage/v2/`  | Storage API endpoint                                                                              | no                                      | output of infrastructure deployment |
+| `SECURITY_HTTPS_CERTIFICATE_TRUST`   | ex `false`                                                      | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true'                         | false                                   | output of infrastructure deployment |
+| `TEST_OPENID_PROVIDER_CLIENT_ID`     | `********`                                                      | Client Id for `$INTEGRATION_TESTER`                                                               | yes                                     | --                                  |
+| `TEST_OPENID_PROVIDER_CLIENT_SECRET` | `********`                                                      |                                                                                                   | Client secret for `$INTEGRATION_TESTER` | --                                  |
+| `TEST_OPENID_PROVIDER_URL`           | `https://keycloak.com/auth/realms/osdu`                         | OpenID provider url                                                                               | yes                                     | --                                  |
 
 **Entitlements configuration for integration accounts**
 
diff --git a/provider/indexer-gcp/docs/gcp/README.md b/provider/indexer-gcp/docs/gcp/README.md
index e08fb94b496aef4b8cbfbc71a6f9b8b7a17d9e4e..5155b44defb39ecc82083efe4f82e54a6e1e57e0 100644
--- a/provider/indexer-gcp/docs/gcp/README.md
+++ b/provider/indexer-gcp/docs/gcp/README.md
@@ -6,38 +6,40 @@ Define the following environment variables.
 
 Must have:
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `GOOGLE_AUDIENCES` | ex `*****.apps.googleusercontent.com` | Client ID for getting access to cloud resources | yes | https://console.cloud.google.com/apis/credentials |
-| `SPRING_PROFILES_ACTIVE` | ex `gcp` | Spring profile that activate default configuration for Google Cloud environment | false | - |
-| `<ELASTICSEARCH_USER_ENV_VARIABLE_NAME>` | ex `user` | Elasticsearch user, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service)  | yes | - |
-| `<ELASTICSEARCH_PASSWORD_ENV_VARIABLE_NAME>` | ex `password` | Elasticsearch password, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service) | false | - |
+| name                                         | value                                 | description                                                                                                                                                                                                                                                                                               | sensitive? | source                                            |
+|----------------------------------------------|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|---------------------------------------------------|
+| `GOOGLE_AUDIENCES`                           | ex `*****.apps.googleusercontent.com` | Client ID for getting access to cloud resources                                                                                                                                                                                                                                                           | yes        | https://console.cloud.google.com/apis/credentials |
+| `SPRING_PROFILES_ACTIVE`                     | ex `gcp`                              | Spring profile that activate default configuration for Google Cloud environment                                                                                                                                                                                                                           | false      | -                                                 |
+| `<ELASTICSEARCH_USER_ENV_VARIABLE_NAME>`     | ex `user`                             | Elasticsearch user, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service)     | yes        | -                                                 |
+| `<ELASTICSEARCH_PASSWORD_ENV_VARIABLE_NAME>` | ex `password`                         | Elasticsearch password, name of that variable not defined at the service level, the name will be received through partition service. Each tenant can have it's own ENV name value, and it must be present in ENV of Indexer service, see [Partition properties set](#Properties-set-in-Partition-service) | false      | -                                                 |
 
 Defined in default application property file but possible to override:
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `LOG_PREFIX` | `service` | Logging prefix | no | - |
-| `LOG_LEVEL` | `****` | Logging level | no | - |
-| `SECURITY_HTTPS_CERTIFICATE_TRUST` | ex `false` | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true' | false | output of infrastructure deployment |
-| `REDIS_SEARCH_HOST` | ex `127.0.0.1` | Redis host for search | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `REDIS_SEARCH_PORT` | ex `6379` | Redis host for search | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `REDIS_GROUP_HOST` | ex `127.0.0.1` | Redis host for groups | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `REDIS_GROUP_PORT` | ex `6379` | Redis host for search | no | https://console.cloud.google.com/memorystore/redis/instances |
-| `PARTITION_HOST` | ex `https://partition.com` | Partition host | no | output of infrastructure deployment |
-| `ENTITLEMENTS_HOST` | ex `https://entitlements.com` | Entitlements host | no | output of infrastructure deployment |
-| `STORAGE_HOST` | ex `https://storage.com` | Storage host | no | output of infrastructure deployment |
-| `SCHEMA_BASE_HOST` | ex `https://schema.com` | Schema service host | no | output of infrastructure deployment |
-| `GOOGLE_APPLICATION_CREDENTIALS` | ex `/path/to/directory/service-key.json` | Service account credentials, you only need this if running locally | yes | https://console.cloud.google.com/iam-admin/serviceaccounts |
+| name                               | value                                                                     | description                                                               | sensitive? | source                                                     |
+|------------------------------------|---------------------------------------------------------------------------|---------------------------------------------------------------------------|------------|------------------------------------------------------------|
+| `LOG_PREFIX`                       | `service`                                                                 | Logging prefix                                                            | no         | -                                                          |
+| `LOG_LEVEL`                        | `****`                                                                    | Logging level                                                             | no         | -                                                          |
+| `SECURITY_HTTPS_CERTIFICATE_TRUST` | ex `false`                                                                | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true' | false      | output of infrastructure deployment                        |
+| `REDIS_SEARCH_HOST`                | ex `127.0.0.1`                                                            | Redis host                                                                | no         |                                                            |
+| `REDIS_SEARCH_PORT`                | ex `6379`                                                                 | Redis host port                                                           | no         |                                                            |
+| `REDIS_SEARCH_PASSWORD`            | ex `*****`                                                                | Redis host password                                                       | yes        |                                                            |
+| `REDIS_SEARCH_WITH_SSL`            | ex `true` or `false`                                                      | Redis host ssl config                                                     | no         |                                                            |
+| `REDIS_SEARCH_EXPIRATION`          | ex `30`                                                                   | Redis cache expiration in seconds                                         | no         |                                                            |
+| `PARTITION_HOST`                   | ex `https://partition.com`                                                | Partition host                                                            | no         | output of infrastructure deployment                        |
+| `ENTITLEMENTS_HOST`                | ex `https://entitlements.com`                                             | Entitlements host                                                         | no         | output of infrastructure deployment                        |
+| `STORAGE_HOST`                     | ex `https://storage.com`                                                  | Storage host                                                              | no         | output of infrastructure deployment                        |
+| `INDEXER_QUEUE_HOST`               | ex `http://indexer-queue/api/indexer-queue/v1/_dps/task-handlers/enqueue` | Indexer-Queue host endpoint used for reprocessing tasks                   | no         | output of infrastructure deployment                        |
+| `SCHEMA_BASE_HOST`                 | ex `https://schema.com`                                                   | Schema service host                                                       | no         | output of infrastructure deployment                        |
+| `GOOGLE_APPLICATION_CREDENTIALS`   | ex `/path/to/directory/service-key.json`                                  | Service account credentials, you only need this if running locally        | yes        | https://console.cloud.google.com/iam-admin/serviceaccounts |
 
 These variables define service behavior, and are used to switch between `anthos` or `gcp` environments, their overriding and usage in mixed mode was not tested.
 Usage of spring profiles is preferred.
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `PARTITION_AUTH_ENABLED` | ex `true` or `false` | Disable or enable auth token provisioning for requests to Partition service | no | - |
-| `OQMDRIVER` | `rabbitmq` or `pubsub` | Oqm driver mode that defines which message broker will be used | no | - |
-| `SERVICE_TOKEN_PROVIDER` | `GCP` or `OPENID` |Service account token provider, `GCP` means use Google service account `OPEIND` means use OpenId provider like `Keycloak` | no | - |
+| name                     | value                  | description                                                                                                               | sensitive? | source |
+|--------------------------|------------------------|---------------------------------------------------------------------------------------------------------------------------|------------|--------|
+| `PARTITION_AUTH_ENABLED` | ex `true` or `false`   | Disable or enable auth token provisioning for requests to Partition service                                               | no         | -      |
+| `OQMDRIVER`              | `rabbitmq` or `pubsub` | Oqm driver mode that defines which message broker will be used                                                            | no         | -      |
+| `SERVICE_TOKEN_PROVIDER` | `GCP` or `OPENID`      | Service account token provider, `GCP` means use Google service account `OPEIND` means use OpenId provider like `Keycloak` | no         | -      |
 
 ## Pubsub configuration:
 
@@ -83,12 +85,12 @@ It can be overridden by:
 
 **Propertyset:**
 
-| Property | Description |
-| --- | --- |
-| elasticsearch.host | server URL |
-| elasticsearch.port | server port |
-| elasticsearch.user | username |
-| elasticsearch.password | password |
+| Property               | Description |
+|------------------------|-------------|
+| elasticsearch.host     | server URL  |
+| elasticsearch.port     | server port |
+| elasticsearch.user     | username    |
+| elasticsearch.password | password    |
 
 <details><summary>Example of a definition for a single tenant</summary></details>
 
@@ -121,36 +123,36 @@ curl -L -X PATCH 'http://partition.com/api/partition/v1/partitions/opendes' -H '
 TBD
 
 | Required roles |
-| ---    |
-| - |
+|----------------|
+| -              |
 
 ### Running E2E Tests
 
 You will need to have the following environment variables defined.
 
-| name | value | description | sensitive? | source |
-| ---  | ---   | ---         | ---        | ---    |
-| `ELASTIC_PASSWORD` | `********` | Password for Elasticsearch | yes | output of infrastructure deployment |
-| `ELASTIC_USER_NAME` | `********` | User name for Elasticsearch | yes | output of infrastructure deployment |
-| `ELASTIC_HOST` | ex `elastic.domain.com` | Host Elasticsearch | yes | output of infrastructure deployment |
-| `ELASTIC_PORT` | ex `9243` | Port Elasticsearch | yes | output of infrastructure deployment |
-| `GCLOUD_PROJECT` | ex `opendes` | Google Cloud Project Id| no | output of infrastructure deployment |
-| `INDEXER_HOST` | ex `https://os-indexer-dot-opendes.appspot.com/api/indexer/v2/` | Indexer API endpoint | no | output of infrastructure deployment |
-| `ENTITLEMENTS_DOMAIN` | ex `opendes-gcp.projects.com` | OSDU R2 to run tests under  | no | - |
-| `INTEGRATION_TEST_AUDIENCE` | `********` | client application ID | yes | https://console.cloud.google.com/apis/credentials |
-| `OTHER_RELEVANT_DATA_COUNTRIES` | ex `US` | valid legal tag with a other relevant data countries | no | - |
-| `LEGAL_TAG` | ex `opendes-demo-legaltag` | valid legal tag with a other relevant data countries from `DEFAULT_OTHER_RELEVANT_DATA_COUNTRIES` | no | - |
-| `DEFAULT_DATA_PARTITION_ID_TENANT1` | ex `opendes` | HTTP Header 'Data-Partition-ID'  | no | - |
-| `DEFAULT_DATA_PARTITION_ID_TENANT2` | ex `opendes` | HTTP Header 'Data-Partition-ID'  | no | - |
-| `SEARCH_INTEGRATION_TESTER` | `********` | Service account for API calls. Note: this user must have entitlements configured already | yes | https://console.cloud.google.com/iam-admin/serviceaccounts |
-| `SEARCH_HOST` | ex `http://localhost:8080/api/search/v2/` | Endpoint of search service | no | - |
-| `STORAGE_HOST` | ex `http://os-storage-dot-opendes.appspot.com/api/storage/v2/` | Storage API endpoint | no | output of infrastructure deployment |
-| `SECURITY_HTTPS_CERTIFICATE_TRUST` | ex `false` | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true' | false | output of infrastructure deployment |
+| name                                | value                                                           | description                                                                                       | sensitive? | source                                                     |
+|-------------------------------------|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------|------------|------------------------------------------------------------|
+| `ELASTIC_PASSWORD`                  | `********`                                                      | Password for Elasticsearch                                                                        | yes        | output of infrastructure deployment                        |
+| `ELASTIC_USER_NAME`                 | `********`                                                      | User name for Elasticsearch                                                                       | yes        | output of infrastructure deployment                        |
+| `ELASTIC_HOST`                      | ex `elastic.domain.com`                                         | Host Elasticsearch                                                                                | yes        | output of infrastructure deployment                        |
+| `ELASTIC_PORT`                      | ex `9243`                                                       | Port Elasticsearch                                                                                | yes        | output of infrastructure deployment                        |
+| `GCLOUD_PROJECT`                    | ex `opendes`                                                    | Google Cloud Project Id                                                                           | no         | output of infrastructure deployment                        |
+| `INDEXER_HOST`                      | ex `https://os-indexer-dot-opendes.appspot.com/api/indexer/v2/` | Indexer API endpoint                                                                              | no         | output of infrastructure deployment                        |
+| `ENTITLEMENTS_DOMAIN`               | ex `opendes-gcp.projects.com`                                   | OSDU R2 to run tests under                                                                        | no         | -                                                          |
+| `INTEGRATION_TEST_AUDIENCE`         | `********`                                                      | client application ID                                                                             | yes        | https://console.cloud.google.com/apis/credentials          |
+| `OTHER_RELEVANT_DATA_COUNTRIES`     | ex `US`                                                         | valid legal tag with a other relevant data countries                                              | no         | -                                                          |
+| `LEGAL_TAG`                         | ex `opendes-demo-legaltag`                                      | valid legal tag with a other relevant data countries from `DEFAULT_OTHER_RELEVANT_DATA_COUNTRIES` | no         | -                                                          |
+| `DEFAULT_DATA_PARTITION_ID_TENANT1` | ex `opendes`                                                    | HTTP Header 'Data-Partition-ID'                                                                   | no         | -                                                          |
+| `DEFAULT_DATA_PARTITION_ID_TENANT2` | ex `opendes`                                                    | HTTP Header 'Data-Partition-ID'                                                                   | no         | -                                                          |
+| `SEARCH_INTEGRATION_TESTER`         | `********`                                                      | Service account for API calls. Note: this user must have entitlements configured already          | yes        | https://console.cloud.google.com/iam-admin/serviceaccounts |
+| `SEARCH_HOST`                       | ex `http://localhost:8080/api/search/v2/`                       | Endpoint of search service                                                                        | no         | -                                                          |
+| `STORAGE_HOST`                      | ex `http://os-storage-dot-opendes.appspot.com/api/storage/v2/`  | Storage API endpoint                                                                              | no         | output of infrastructure deployment                        |
+| `SECURITY_HTTPS_CERTIFICATE_TRUST`  | ex `false`                                                      | Elastic client connection uses TrustSelfSignedStrategy(), if it is 'true'                         | false      | output of infrastructure deployment                        |
 
 **Entitlements configuration for integration accounts**
 
-| INTEGRATION_TESTER | NO_DATA_ACCESS_TESTER | 
-| ---  | ---   |
+| INTEGRATION_TESTER                                                                                                                                                                                                | NO_DATA_ACCESS_TESTER | 
+|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|
 | users<br/>users.datalake.ops<br/>service.storage.creator<br/>service.entitlements.user<br/>service.search.user<br/>service.search.admin<br/>data.test1<br/>data.integration.test<br/>users@{tenant1}@{domain}.com |
 
 Execute following command to build code and run all the integration tests:
diff --git a/provider/indexer-gcp/pom.xml b/provider/indexer-gcp/pom.xml
index 85109ee61a9b4d5b5508a471ab5096d704bdc782..cff175ab689e4581911d43dd009b130e567fa285 100644
--- a/provider/indexer-gcp/pom.xml
+++ b/provider/indexer-gcp/pom.xml
@@ -19,7 +19,7 @@
         <dependency>
             <groupId>org.opengroup.osdu</groupId>
             <artifactId>core-lib-gcp</artifactId>
-            <version>0.15.0</version>
+            <version>0.19.0-rc2</version>
         </dependency>
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf26b9d587a5d87717cf79ac0b44aa753b6f5891
--- /dev/null
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java
@@ -0,0 +1,79 @@
+/*
+ *  Copyright 2020-2022 Google LLC
+ *  Copyright 2020-2022 EPAM Systems, Inc
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.opengroup.osdu.indexer.provider.gcp.common.cache;
+
+import lombok.RequiredArgsConstructor;
+import org.opengroup.osdu.core.common.cache.RedisCache;
+import org.opengroup.osdu.core.common.model.search.ClusterSettings;
+import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache;
+import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache;
+import org.opengroup.osdu.core.gcp.cache.RedisCacheBuilder;
+import org.opengroup.osdu.indexer.provider.gcp.common.di.GcpConfigurationProperties;
+import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@RequiredArgsConstructor
+public class CacheConfig {
+
+    @Bean
+    public ISchemaCache fieldTypeMappingCache(GcpConfigurationProperties appProperties) {
+        RedisCacheBuilder<String, String> cacheBuilder = new RedisCacheBuilder<>();
+        RedisCache<String, String> schemaCache = cacheBuilder.buildRedisCache(
+            appProperties.getRedisSearchHost(),
+            Integer.parseInt(appProperties.getRedisSearchPort()),
+            appProperties.getRedisSearchPassword(),
+            appProperties.getRedisSearchExpiration(),
+            appProperties.getRedisSearchWithSsl(),
+            String.class,
+            String.class
+        );
+        return new SchemaCache(schemaCache);
+    }
+
+    @Bean
+    public IElasticCredentialsCache<String, ClusterSettings> elasticCredentialsCache(GcpConfigurationProperties gcpAppServiceConfig) {
+        RedisCacheBuilder<String, ClusterSettings> cacheBuilder = new RedisCacheBuilder<>();
+        RedisCache<String, ClusterSettings> clusterSettingCache = cacheBuilder.buildRedisCache(
+            gcpAppServiceConfig.getRedisSearchHost(),
+            Integer.parseInt(gcpAppServiceConfig.getRedisSearchPort()),
+            gcpAppServiceConfig.getRedisSearchPassword(),
+            gcpAppServiceConfig.getRedisSearchExpiration(),
+            gcpAppServiceConfig.getRedisSearchWithSsl(),
+            String.class,
+            ClusterSettings.class
+        );
+        return new ElasticCredentialsCache(clusterSettingCache);
+    }
+
+    @Bean
+    public IIndexCache cursorCache(GcpConfigurationProperties gcpAppServiceConfig) {
+        RedisCacheBuilder<String, Boolean> cacheBuilder = new RedisCacheBuilder<>();
+        RedisCache<String, Boolean> indexCache = cacheBuilder.buildRedisCache(
+            gcpAppServiceConfig.getRedisSearchHost(),
+            Integer.parseInt(gcpAppServiceConfig.getRedisSearchPort()),
+            gcpAppServiceConfig.getRedisSearchPassword(),
+            gcpAppServiceConfig.getRedisSearchExpiration(),
+            gcpAppServiceConfig.getRedisSearchWithSsl(),
+            String.class,
+            Boolean.class
+        );
+        return new IndexCache(indexCache);
+    }
+}
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/ElasticCredentialsCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/ElasticCredentialsCache.java
index 9f72882a0e61d73158102f00c7f3a3d414b56c2e..ab5af737b666b656c27b62ac6d3ea836a0e7516b 100644
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/ElasticCredentialsCache.java
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/ElasticCredentialsCache.java
@@ -17,44 +17,34 @@
 
 package org.opengroup.osdu.indexer.provider.gcp.common.cache;
 
-import com.google.gson.Gson;
-import java.util.Objects;
-import javax.inject.Inject;
+import com.lambdaworks.redis.RedisException;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.opengroup.osdu.core.common.cache.RedisCache;
 import org.opengroup.osdu.core.common.model.search.ClusterSettings;
 import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache;
-import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
-import org.springframework.stereotype.Component;
 
-@Component
+@Slf4j
+@RequiredArgsConstructor
 public class ElasticCredentialsCache implements IElasticCredentialsCache<String, ClusterSettings>, AutoCloseable {
 
-    private RedisCache<String, String> cache;
-
-    @Inject
-    public ElasticCredentialsCache(final IndexerConfigurationProperties properties) {
-        this.cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
-            properties.getElasticCacheExpiration() * 60, String.class, String.class);
-    }
-
-    @Override
-    public void close() throws Exception {
-        this.cache.close();
-    }
+    private final RedisCache<String, ClusterSettings> cache;
 
     @Override
-    public void put(String s, ClusterSettings o) {
-        String jsonSettings = new Gson().toJson(o);
-        this.cache.put(s, jsonSettings);
+    public void put(String key, ClusterSettings value) {
+        this.cache.put(key, value);
     }
 
     @Override
-    public ClusterSettings get(String s) {
-        String jsonSettings = this.cache.get(s);
-        if (Objects.isNull(jsonSettings) || jsonSettings.isEmpty()) {
+    public ClusterSettings get(String key) {
+        try {
+            return this.cache.get(key);
+        } catch (RedisException ex) {
+            //In case the format of cache changes then clean the cache
+            log.error("Unable to get value from Redis, trying to clean up by key.", ex);
+            this.cache.delete(key);
             return null;
         }
-        return new Gson().fromJson(jsonSettings, ClusterSettings.class);
     }
 
     @Override
@@ -66,4 +56,9 @@ public class ElasticCredentialsCache implements IElasticCredentialsCache<String,
     public void clearAll() {
         this.cache.clearAll();
     }
+
+    @Override
+    public void close() {
+        this.cache.close();
+    }
 }
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/IndexCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/IndexCache.java
index 736f3b663b25bec4463fc32753abecb71dc17ae4..e47c951dd7c4d7aadf9c2983cb0212bed7c20a39 100644
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/IndexCache.java
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/IndexCache.java
@@ -1,38 +1,30 @@
 /*
- *  Copyright 2020-2022 Google LLC
- *  Copyright 2020-2022 EPAM Systems, Inc
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+  Copyright 2020 Google LLC
+  Copyright 2020 EPAM Systems, Inc
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
  */
 
 package org.opengroup.osdu.indexer.provider.gcp.common.cache;
 
-import javax.inject.Inject;
+import lombok.RequiredArgsConstructor;
 import org.opengroup.osdu.core.common.cache.RedisCache;
 import org.opengroup.osdu.core.common.provider.interfaces.IIndexCache;
-import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
-import org.springframework.stereotype.Component;
 
-@Component
+@RequiredArgsConstructor
 public class IndexCache implements IIndexCache<String, Boolean>, AutoCloseable {
 
-    private RedisCache<String, Boolean> cache;
-
-    @Inject
-    public IndexCache(final IndexerConfigurationProperties properties) {
-        cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
-            properties.getElasticCacheExpiration() * 60, String.class, Boolean.class);
-    }
+    private final RedisCache<String, Boolean> cache;
 
     @Override
     public void close() throws Exception {
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/JwtCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/JwtCache.java
deleted file mode 100644
index ef546c586a32ad4987711c100fc2ec68460525da..0000000000000000000000000000000000000000
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/JwtCache.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  Copyright 2020-2022 Google LLC
- *  Copyright 2020-2022 EPAM Systems, Inc
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.opengroup.osdu.indexer.provider.gcp.common.cache;
-
-import javax.inject.Inject;
-import org.opengroup.osdu.core.common.cache.RedisCache;
-import org.opengroup.osdu.core.common.model.search.IdToken;
-import org.opengroup.osdu.core.common.provider.interfaces.IJwtCache;
-import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-public class JwtCache implements IJwtCache<String, IdToken>, AutoCloseable {
-
-    RedisCache<String, IdToken> cache;
-
-
-    // google service account id_token can be requested only for 1 hr
-    private static final int EXPIRED_AFTER = 59;
-
-    @Inject
-    public JwtCache(final IndexerConfigurationProperties properties) {
-        cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
-            EXPIRED_AFTER * 60, String.class, IdToken.class);
-    }
-
-    @Override
-    public void close() throws Exception {
-        this.cache.close();
-    }
-
-    @Override
-    public void put(String s, IdToken o) {
-        this.cache.put(s, o);
-    }
-
-    @Override
-    public IdToken get(String s) {
-        return this.cache.get(s);
-    }
-
-    @Override
-    public void delete(String s) {
-        this.cache.delete(s);
-    }
-
-    @Override
-    public void clearAll() {
-        this.cache.clearAll();
-    }
-}
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/KindsCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/KindsCache.java
deleted file mode 100644
index 3e8c072c6aa969ee33ba81de41af96611ef277da..0000000000000000000000000000000000000000
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/KindsCache.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- *  Copyright 2020-2022 Google LLC
- *  Copyright 2020-2022 EPAM Systems, Inc
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.opengroup.osdu.indexer.provider.gcp.common.cache;
-
-import java.util.Set;
-import javax.inject.Inject;
-import org.opengroup.osdu.core.common.cache.RedisCache;
-import org.opengroup.osdu.core.common.provider.interfaces.IKindsCache;
-import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-public class KindsCache implements IKindsCache<String, Set>, AutoCloseable {
-
-    private RedisCache<String, Set> cache;
-
-    @Inject
-    public KindsCache(final IndexerConfigurationProperties properties) {
-        cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
-            properties.getKindsCacheExpiration() * 60,
-            properties.getKindsRedisDatabase(), String.class, Set.class);
-    }
-
-    @Override
-    public void close() throws Exception {
-        this.cache.close();
-    }
-
-    @Override
-    public void put(String s, Set o) {
-        this.cache.put(s, o);
-    }
-
-    @Override
-    public Set get(String s) {
-        return this.cache.get(s);
-    }
-
-    @Override
-    public void delete(String s) {
-        this.cache.delete(s);
-    }
-
-    @Override
-    public void clearAll() {
-        this.cache.clearAll();
-    }
-}
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/SchemaCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/SchemaCache.java
index a3b139f3df6659341863e524a4b7d39fde4d88fe..48d76fabf2aa7a35c8c5d81c87148f97193cb7d5 100644
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/SchemaCache.java
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/SchemaCache.java
@@ -1,38 +1,30 @@
 /*
- *  Copyright 2020-2022 Google LLC
- *  Copyright 2020-2022 EPAM Systems, Inc
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+  Copyright 2020 Google LLC
+  Copyright 2020 EPAM Systems, Inc
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
  */
 
 package org.opengroup.osdu.indexer.provider.gcp.common.cache;
 
-import javax.inject.Inject;
+import lombok.RequiredArgsConstructor;
 import org.opengroup.osdu.core.common.cache.RedisCache;
-import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
 import org.opengroup.osdu.indexer.provider.interfaces.ISchemaCache;
-import org.springframework.stereotype.Component;
 
-@Component
+@RequiredArgsConstructor
 public class SchemaCache implements ISchemaCache<String, String>, AutoCloseable {
 
-    private RedisCache<String, String> cache;
-
-    @Inject
-    public SchemaCache(final IndexerConfigurationProperties properties) {
-        cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
-            properties.getElasticCacheExpiration() * 60, String.class, String.class);
-    }
+    private final RedisCache<String, String> cache;
 
     @Override
     public void close() throws Exception {
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfig.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfig.java
index 9d10958a0d02ab35e64b6c5b44b4fe27553695bd..9ef3bc8585f45297d42a54f4a51863e893ec3133 100644
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfig.java
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfig.java
@@ -28,7 +28,7 @@ import org.springframework.context.annotation.Configuration;
 public class ElasticSearchConfig {
 
     @Bean
-    public IElasticRepository elasticRepository(ElasticSearchConfigurationProperties properties,
+    public IElasticRepository elasticRepository(GcpConfigurationProperties properties,
         IPartitionProvider partitionProvider, IPartitionPropertyResolver propertyResolver) {
         return new ElasticSearchDestinationResolver(properties.getElasticsearchPropertiesPrefix(), partitionProvider, propertyResolver);
     }
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfigurationProperties.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/GcpConfigurationProperties.java
similarity index 67%
rename from provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfigurationProperties.java
rename to provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/GcpConfigurationProperties.java
index 08b162fd535c8b35637141fa133888aa0d557ecd..2e651575e99ea4d4b7a6f1f7ec1c61f6cb7ed117 100644
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/ElasticSearchConfigurationProperties.java
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/di/GcpConfigurationProperties.java
@@ -19,14 +19,25 @@ package org.opengroup.osdu.indexer.provider.gcp.common.di;
 
 import lombok.Getter;
 import lombok.Setter;
+import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
 
+@Primary
 @Configuration
 @ConfigurationProperties
 @Getter
 @Setter
-public class ElasticSearchConfigurationProperties {
+public class GcpConfigurationProperties extends IndexerConfigurationProperties {
 
     private String elasticsearchPropertiesPrefix = "elasticsearch";
+
+    private String redisGroupPassword;
+    private Integer redisGroupExpiration = 30;
+    private Boolean redisGroupWithSsl = false;
+
+    private String redisSearchPassword;
+    private Integer redisSearchExpiration = 60 * 60;
+    private Boolean redisSearchWithSsl = false;
 }
diff --git a/provider/indexer-gcp/src/main/resources/application.properties b/provider/indexer-gcp/src/main/resources/application.properties
index 0618f86a7b9ed9baea29cd761d75a8016cfd6110..97b51a86fc5888af5f762c9150618314254a075a 100644
--- a/provider/indexer-gcp/src/main/resources/application.properties
+++ b/provider/indexer-gcp/src/main/resources/application.properties
@@ -14,9 +14,6 @@ JAVA_GC_OPTS=-XX:+UseG1GC -XX:+UseStringDeduplication -XX:InitiatingHeapOccupanc
 schema-cache-expiration=60
 index-cache-expiration=60
 elastic-cache-expiration=1440
-cursor-cache-expiration=60
-# Kinds Cache expiration 2*24*60
-kinds-cache-expiration=2880
 # Attributes Cache expiration 2*24*60
 attributes-cache-expiration=2880
 kinds-redis-database=1
@@ -30,9 +27,6 @@ security.https.certificate.trust=false
 storage-records-by-kind-batch-size=20
 storage-records-batch-size=20
 
-REDIS_GROUP_PORT=6379
-REDIS_GROUP_HOST=redis-cache-groups
-
 REDIS_SEARCH_PORT=6379
 REDIS_SEARCH_HOST=redis-cache-search