diff --git a/packages/entities/entities-redis-configurations/docs/redis-configuration-form.md b/packages/entities/entities-redis-configurations/docs/redis-configuration-form.md
index 29201491c4..44a09d13d9 100644
--- a/packages/entities/entities-redis-configurations/docs/redis-configuration-form.md
+++ b/packages/entities/entities-redis-configurations/docs/redis-configuration-form.md
@@ -93,6 +93,12 @@ A form component for Redis Configurations.
- default: `undefined`
- Whether the server_name field can accept vault references.
+ - `isCEFieldsReferenceable`
+ - type: `boolean`
+ - required: `false`
+ - default: `undefined`
+ - Whether the CE partial fields can accept vault references.
+
The base konnect or kongManger config.
#### `partialId`
diff --git a/packages/entities/entities-redis-configurations/sandbox/pages/RedisConfigurationFormPage.vue b/packages/entities/entities-redis-configurations/sandbox/pages/RedisConfigurationFormPage.vue
index b31825c81a..ff95e11af3 100644
--- a/packages/entities/entities-redis-configurations/sandbox/pages/RedisConfigurationFormPage.vue
+++ b/packages/entities/entities-redis-configurations/sandbox/pages/RedisConfigurationFormPage.vue
@@ -49,6 +49,7 @@ const kongManagerConfig: KongManagerRedisConfigurationFormConfig = {
isPortReferenceable: true,
isHostReferenceable: true,
isServerNameReferenceable: true,
+ isCEFieldsReferenceable: true,
cancelRoute: { name: 'redis-configuration-list' },
}
diff --git a/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.cy.ts b/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.cy.ts
index 899e35df2d..ddf1d6f3c4 100644
--- a/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.cy.ts
+++ b/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.cy.ts
@@ -18,6 +18,7 @@ const baseConfigKM: KongManagerRedisConfigurationFormConfig = {
isPortReferenceable: true,
isHostReferenceable: true,
isServerNameReferenceable: true,
+ isCEFieldsReferenceable: true,
cancelRoute,
}
@@ -29,6 +30,7 @@ const baseConfigKonnect: KonnectRedisConfigurationFormConfig = {
isPortReferenceable: true,
isHostReferenceable: true,
isServerNameReferenceable: true,
+ isCEFieldsReferenceable: false,
cancelRoute,
}
@@ -175,9 +177,12 @@ describe('', {
cy.getTestId('redis-connection-is-proxied-checkbox').should('not.exist')
cy.getTestId('redis-host-input').should('be.visible')
+ cy.getTestId('secret-picker-provider-for-host').should(config.isCEFieldsReferenceable ? 'be.visible' : 'not.exist')
cy.getTestId('redis-port-input').should('be.visible')
+ cy.getTestId('secret-picker-provider-for-port').should(config.isCEFieldsReferenceable ? 'be.visible' : 'not.exist')
cy.getTestId('redis-timeout-input').should('be.visible')
cy.getTestId('redis-auth-provider-select').should('be.visible')
+ cy.getTestId('secret-picker-provider-for-server_name').should(config.isCEFieldsReferenceable ? 'be.visible' : 'not.exist')
// Host/Port EE fields
cy.getTestId('redis-type-select').click()
diff --git a/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.vue b/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.vue
index b846ed1250..3141c70ba9 100644
--- a/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.vue
+++ b/packages/entities/entities-redis-configurations/src/components/RedisConfigurationForm.vue
@@ -222,7 +222,7 @@
:readonly="form.readonly"
/>
('json')
+const isReferenceable = computed<{ host: boolean, port: boolean, serverName: boolean }>(() => {
+ const canReferenceFields =
+ redisType.value === RedisType.HOST_PORT_EE ||
+ (redisType.value === RedisType.HOST_PORT_CE && !!props.config.isCEFieldsReferenceable)
+
+ return {
+ host: canReferenceFields && !!props.config.isHostReferenceable,
+ port: canReferenceFields && !!props.config.isPortReferenceable,
+ serverName: canReferenceFields && !!props.config.isServerNameReferenceable,
+ }
+})
+
const typeOptions = computed(() => {
return [
{
diff --git a/packages/entities/entities-redis-configurations/src/composables/useRedisConfigurationForm.ts b/packages/entities/entities-redis-configurations/src/composables/useRedisConfigurationForm.ts
index e3b57286ef..457c24dec5 100644
--- a/packages/entities/entities-redis-configurations/src/composables/useRedisConfigurationForm.ts
+++ b/packages/entities/entities-redis-configurations/src/composables/useRedisConfigurationForm.ts
@@ -126,7 +126,9 @@ export const useRedisConfigurationForm = (options: Options) => {
config: {
cloud_authentication: getCloudAuthConfig(),
host: form.fields.config.host,
- port: s.int(form.fields.config.port),
+ port: Number.isNaN(Number(form.fields.config.port))
+ ? form.fields.config.port
+ : s.int(form.fields.config.port),
timeout: s.int(form.fields.config.timeout),
username: s.str(form.fields.config.username, null),
database: s.int(form.fields.config.database),
diff --git a/packages/entities/entities-redis-configurations/src/types/redis-configuration-form.ts b/packages/entities/entities-redis-configurations/src/types/redis-configuration-form.ts
index a2723d0781..1c3ac2a553 100644
--- a/packages/entities/entities-redis-configurations/src/types/redis-configuration-form.ts
+++ b/packages/entities/entities-redis-configurations/src/types/redis-configuration-form.ts
@@ -19,6 +19,10 @@ export interface BaseRedisConfigurationFormConfig {
* Whether the server_name field can accept vault references
*/
isServerNameReferenceable?: boolean
+ /**
+ * Whether the above three fields can accept vault references in Redis CE partials
+ */
+ isCEFieldsReferenceable?: boolean
}
export interface KonnectRedisConfigurationFormConfig extends KonnectBaseFormConfig, BaseRedisConfigurationFormConfig { }