Tenant Configuration values varchar to text - support bigger values f… (#2938)
* Tenant Configuration values varchar to text - support bigger values for configs access_control_context varchar to text - support bigger values for configs * Add size constraint in App for Tenant 'conf.value' and rollout/target_filter_query 'access_control_context * add explicitly not null constraint for clarity
This commit is contained in:
@@ -34,6 +34,11 @@ public interface Rollout extends NamedEntity {
|
|||||||
*/
|
*/
|
||||||
int APPROVAL_REMARK_MAX_SIZE = 255;
|
int APPROVAL_REMARK_MAX_SIZE = 255;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum length of access control context.
|
||||||
|
*/
|
||||||
|
int ACCESS_CONTROL_CONTEXT_MAX_SIZE = 32768;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return <code>true</code> if the rollout is deleted and only kept for
|
* @return <code>true</code> if the rollout is deleted and only kept for
|
||||||
* history purposes.
|
* history purposes.
|
||||||
|
|||||||
@@ -46,6 +46,11 @@ public interface TargetFilterQuery extends TenantAwareBaseEntity {
|
|||||||
*/
|
*/
|
||||||
int QUERY_MAX_SIZE = 1024;
|
int QUERY_MAX_SIZE = 1024;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maximum length of access control context.
|
||||||
|
*/
|
||||||
|
int ACCESS_CONTROL_CONTEXT_MAX_SIZE = 32768;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allowed values for auto-assign action type
|
* Allowed values for auto-assign action type
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public interface TenantConfiguration extends TenantAwareBaseEntity {
|
|||||||
/**
|
/**
|
||||||
* Maximum length of tenant configuration value.
|
* Maximum length of tenant configuration value.
|
||||||
*/
|
*/
|
||||||
int VALUE_MAX_SIZE = 512;
|
int VALUE_MAX_SIZE = 32768;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return key of the entry
|
* @return key of the entry
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ CREATE TABLE sp_tenant_configuration (
|
|||||||
optlock_revision BIGINT,
|
optlock_revision BIGINT,
|
||||||
tenant VARCHAR(40) NOT NULL,
|
tenant VARCHAR(40) NOT NULL,
|
||||||
conf_key VARCHAR(128) NOT NULL,
|
conf_key VARCHAR(128) NOT NULL,
|
||||||
conf_value VARCHAR(512) NOT NULL,
|
conf_value CLOB NOT NULL,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
||||||
@@ -244,7 +244,7 @@ CREATE TABLE sp_rollout (
|
|||||||
approval_decided_by VARCHAR(64),
|
approval_decided_by VARCHAR(64),
|
||||||
approval_remark VARCHAR(255),
|
approval_remark VARCHAR(255),
|
||||||
weight INTEGER NOT NULL,
|
weight INTEGER NOT NULL,
|
||||||
access_control_context VARCHAR(4096),
|
access_control_context CLOB,
|
||||||
is_dynamic BOOLEAN,
|
is_dynamic BOOLEAN,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
@@ -305,7 +305,7 @@ CREATE TABLE sp_target_filter_query (
|
|||||||
auto_assign_weight INTEGER NOT NULL,
|
auto_assign_weight INTEGER NOT NULL,
|
||||||
auto_assign_initiated_by VARCHAR(64),
|
auto_assign_initiated_by VARCHAR(64),
|
||||||
confirmation_required BOOLEAN,
|
confirmation_required BOOLEAN,
|
||||||
access_control_context VARCHAR(4096),
|
access_control_context CLOB,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant);
|
CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant);
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE sp_tenant_configuration ALTER COLUMN conf_value CLOB NOT NULL;
|
||||||
|
ALTER TABLE sp_target_filter_query ALTER COLUMN access_control_context CLOB;
|
||||||
|
ALTER TABLE sp_rollout ALTER COLUMN access_control_context CLOB;
|
||||||
@@ -111,7 +111,7 @@ CREATE TABLE sp_tenant_configuration (
|
|||||||
optlock_revision BIGINT,
|
optlock_revision BIGINT,
|
||||||
tenant VARCHAR(40) NOT NULL,
|
tenant VARCHAR(40) NOT NULL,
|
||||||
conf_key VARCHAR(128) NOT NULL,
|
conf_key VARCHAR(128) NOT NULL,
|
||||||
conf_value VARCHAR(512) NOT NULL,
|
conf_value TEXT NOT NULL,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
||||||
@@ -244,7 +244,7 @@ CREATE TABLE sp_rollout (
|
|||||||
approval_decided_by VARCHAR(64),
|
approval_decided_by VARCHAR(64),
|
||||||
approval_remark VARCHAR(255),
|
approval_remark VARCHAR(255),
|
||||||
weight INTEGER NOT NULL,
|
weight INTEGER NOT NULL,
|
||||||
access_control_context VARCHAR(4096),
|
access_control_context TEXT,
|
||||||
is_dynamic BOOLEAN,
|
is_dynamic BOOLEAN,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
@@ -305,7 +305,7 @@ CREATE TABLE sp_target_filter_query (
|
|||||||
auto_assign_weight INTEGER NOT NULL,
|
auto_assign_weight INTEGER NOT NULL,
|
||||||
auto_assign_initiated_by VARCHAR(64),
|
auto_assign_initiated_by VARCHAR(64),
|
||||||
confirmation_required BOOLEAN,
|
confirmation_required BOOLEAN,
|
||||||
access_control_context VARCHAR(4096),
|
access_control_context TEXT,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant);
|
CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant);
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE sp_tenant_configuration MODIFY conf_value TEXT NOT NULL;
|
||||||
|
ALTER TABLE sp_target_filter_query MODIFY access_control_context TEXT;
|
||||||
|
ALTER TABLE sp_rollout MODIFY access_control_context TEXT;
|
||||||
@@ -111,7 +111,7 @@ CREATE TABLE sp_tenant_configuration (
|
|||||||
optlock_revision BIGINT,
|
optlock_revision BIGINT,
|
||||||
tenant VARCHAR(40) NOT NULL,
|
tenant VARCHAR(40) NOT NULL,
|
||||||
conf_key VARCHAR(128) NOT NULL,
|
conf_key VARCHAR(128) NOT NULL,
|
||||||
conf_value VARCHAR(512) NOT NULL,
|
conf_value TEXT NOT NULL,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
CREATE UNIQUE INDEX uk_tenant_configuration ON sp_tenant_configuration (conf_key, tenant);
|
||||||
@@ -244,7 +244,7 @@ CREATE TABLE sp_rollout (
|
|||||||
approval_decided_by VARCHAR(64),
|
approval_decided_by VARCHAR(64),
|
||||||
approval_remark VARCHAR(255),
|
approval_remark VARCHAR(255),
|
||||||
weight INTEGER NOT NULL,
|
weight INTEGER NOT NULL,
|
||||||
access_control_context VARCHAR(4096),
|
access_control_context TEXT,
|
||||||
is_dynamic BOOLEAN,
|
is_dynamic BOOLEAN,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
@@ -305,7 +305,7 @@ CREATE TABLE sp_target_filter_query (
|
|||||||
auto_assign_weight INTEGER NOT NULL,
|
auto_assign_weight INTEGER NOT NULL,
|
||||||
auto_assign_initiated_by VARCHAR(64),
|
auto_assign_initiated_by VARCHAR(64),
|
||||||
confirmation_required BOOLEAN,
|
confirmation_required BOOLEAN,
|
||||||
access_control_context VARCHAR(4096),
|
access_control_context TEXT,
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant);
|
CREATE UNIQUE INDEX uk_target_filter_query ON sp_target_filter_query (name, tenant);
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE sp_tenant_configuration
|
||||||
|
ALTER COLUMN conf_value TYPE TEXT,
|
||||||
|
ALTER COLUMN conf_value SET NOT NULL;
|
||||||
|
ALTER TABLE sp_target_filter_query ALTER COLUMN access_control_context TYPE TEXT;
|
||||||
|
ALTER TABLE sp_rollout ALTER COLUMN access_control_context TYPE TEXT;
|
||||||
@@ -22,6 +22,7 @@ import jakarta.persistence.Converter;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.FetchType;
|
import jakarta.persistence.FetchType;
|
||||||
import jakarta.persistence.JoinColumn;
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.Lob;
|
||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.NamedAttributeNode;
|
import jakarta.persistence.NamedAttributeNode;
|
||||||
import jakarta.persistence.NamedEntityGraph;
|
import jakarta.persistence.NamedEntityGraph;
|
||||||
@@ -147,6 +148,8 @@ public class JpaRollout extends AbstractJpaNamedEntity implements Rollout, Event
|
|||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
@Column(name = "access_control_context")
|
@Column(name = "access_control_context")
|
||||||
|
@Lob
|
||||||
|
@Size(max = Rollout.ACCESS_CONTROL_CONTEXT_MAX_SIZE)
|
||||||
private String accessControlContext;
|
private String accessControlContext;
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import jakarta.persistence.Convert;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.FetchType;
|
import jakarta.persistence.FetchType;
|
||||||
import jakarta.persistence.JoinColumn;
|
import jakarta.persistence.JoinColumn;
|
||||||
|
import jakarta.persistence.Lob;
|
||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
@@ -73,6 +74,8 @@ public class JpaTargetFilterQuery extends AbstractJpaTenantAwareBaseEntity imple
|
|||||||
private boolean confirmationRequired;
|
private boolean confirmationRequired;
|
||||||
|
|
||||||
@Column(name = "access_control_context")
|
@Column(name = "access_control_context")
|
||||||
|
@Lob
|
||||||
|
@Size(max = TargetFilterQuery.ACCESS_CONTROL_CONTEXT_MAX_SIZE)
|
||||||
private String accessControlContext;
|
private String accessControlContext;
|
||||||
|
|
||||||
public JpaTargetFilterQuery(final String name, final String query, final DistributionSet autoAssignDistributionSet,
|
public JpaTargetFilterQuery(final String name, final String query, final DistributionSet autoAssignDistributionSet,
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.eclipse.hawkbit.repository.jpa.model;
|
package org.eclipse.hawkbit.repository.jpa.model;
|
||||||
|
|
||||||
import jakarta.persistence.Basic;
|
|
||||||
import jakarta.persistence.Column;
|
import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Lob;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
@@ -42,8 +42,8 @@ public class JpaTenantConfiguration extends AbstractJpaTenantAwareBaseEntity imp
|
|||||||
@NotNull
|
@NotNull
|
||||||
private String key;
|
private String key;
|
||||||
|
|
||||||
@Column(name = "conf_value", length = TenantConfiguration.VALUE_MAX_SIZE, nullable = false)
|
@Column(name = "conf_value", nullable = false)
|
||||||
@Basic
|
@Lob
|
||||||
@Size(max = TenantConfiguration.VALUE_MAX_SIZE)
|
@Size(max = TenantConfiguration.VALUE_MAX_SIZE)
|
||||||
@NotNull
|
@NotNull
|
||||||
private String value;
|
private String value;
|
||||||
|
|||||||
Reference in New Issue
Block a user