diff --git a/build.gradle.kts b/build.gradle.kts index 1dda5a3..adff0fa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -82,7 +82,7 @@ tasks.named("bootBuildImage") { dependencies { - implementation("com.knecon.fforesight:keycloak-commons:0.20.0") + implementation("com.knecon.fforesight:keycloak-commons:0.21.0") implementation("com.knecon.fforesight:swagger-commons:0.5.0") implementation("org.postgresql:postgresql:42.5.4") implementation("com.google.guava:guava:31.1-jre") diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/dev/DevTestTenantService.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/dev/DevTestTenantService.java index 5d09da3..6786360 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/dev/DevTestTenantService.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/dev/DevTestTenantService.java @@ -86,7 +86,7 @@ public class DevTestTenantService { .scheme("http") .numberOfShards("1") .numberOfReplicas("5") - .indexName("indexname") + .indexPrefix("index_prefix") .build()) .s3StorageConnection(S3StorageConnection.builder().key("minioadmin").secret("minioadmin").bucketName("redaction").endpoint("http://localhost:9000").build()) .build(); diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/entity/SearchConnectionEntity.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/entity/SearchConnectionEntity.java index 65b6545..e72aac6 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/entity/SearchConnectionEntity.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/entity/SearchConnectionEntity.java @@ -35,7 +35,7 @@ public class SearchConnectionEntity { private String numberOfShards; @Column(name = "search_number_of_replicas") private String numberOfReplicas; - @Column(name = "search_index_name") - private String indexName; + @Column(name = "search_index_prefix") + private String indexPrefix; } diff --git a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java index 2df7ccb..2050ed3 100644 --- a/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java +++ b/src/main/java/com/knecon/fforesight/tenantusermanagement/service/TenantManagementService.java @@ -91,7 +91,8 @@ public class TenantManagementService implements TenantProvider { log.info("Creating tenant: {}", tenantRequest.getTenantId()); var jdbcUrl = JDBCUtils.buildJdbcUrlWithSchema(tenantRequest.getDatabaseConnection()); validateJdbcUrl(jdbcUrl); - checkIndexName(tenantRequest.getSearchConnection().getIndexName()); + + var indexPrefix = tenantRequest.getSearchConnection().getIndexPrefix(); TenantEntity tenantEntity = TenantEntity.builder() .tenantId(tenantRequest.getTenantId()) @@ -114,7 +115,7 @@ public class TenantManagementService implements TenantProvider { .password(encryptionService.encrypt(tenantRequest.getSearchConnection().getPassword())) .numberOfShards(tenantRequest.getSearchConnection().getNumberOfShards()) .numberOfReplicas(tenantRequest.getSearchConnection().getNumberOfReplicas()) - .indexName(tenantRequest.getSearchConnection().getIndexName()) + .indexPrefix(indexPrefix != null ? indexPrefix : TenantContext.getTenantId()) .build()) .build(); @@ -401,7 +402,7 @@ public class TenantManagementService implements TenantProvider { var searchConnection = tenantRequest.getSearchConnection(); if (searchConnection != null) { - checkIndexName(searchConnection.getIndexName()); + var indexPrefix = searchConnection.getIndexPrefix(); tenantEntity.setSearchConnection(SearchConnectionEntity.builder() .hosts(searchConnection.getHosts()) .port(searchConnection.getPort()) @@ -410,7 +411,7 @@ public class TenantManagementService implements TenantProvider { .password(encryptionService.encrypt(searchConnection.getPassword())) .numberOfShards(searchConnection.getNumberOfShards()) .numberOfReplicas(searchConnection.getNumberOfReplicas()) - .indexName(searchConnection.getIndexName()) + .indexPrefix(indexPrefix != null ? indexPrefix : TenantContext.getTenantId()) .build()); } @@ -488,8 +489,6 @@ public class TenantManagementService implements TenantProvider { authDetails.setClientRoles(roleMapping.getPermissions()); authDetails.setRealmRoles(roleMapping.getAllRoles()); - checkIndexName(entity.getSearchConnection().getIndexName()); - var tenantResponse = TenantResponse.builder() .tenantId(entity.getTenantId()) .displayName(entity.getDisplayName()) @@ -514,7 +513,7 @@ public class TenantManagementService implements TenantProvider { .numberOfShards(entity.getSearchConnection().getNumberOfShards()) .numberOfReplicas(entity.getSearchConnection().getNumberOfReplicas()) .password(entity.getSearchConnection().getPassword()) - .indexName(entity.getSearchConnection().getIndexName()) + .indexPrefix(entity.getSearchConnection().getIndexPrefix()) .build()) .build(); @@ -565,12 +564,4 @@ public class TenantManagementService implements TenantProvider { } } - private void checkIndexName(String indexName) { - - if (indexName == null) { - log.warn("Indexname not set"); - // throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "You need to provide an index name"); - } - } - } diff --git a/src/main/resources/db/changelog/db.changelog-master.yaml b/src/main/resources/db/changelog/db.changelog-master.yaml index aee0958..e60c8f3 100644 --- a/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/src/main/resources/db/changelog/db.changelog-master.yaml @@ -9,3 +9,5 @@ databaseChangeLog: file: db/changelog/master/5-add-details-column.changelog.yaml - include: file: db/changelog/master/6-add-index-name-column.changelog.yaml + - include: + file: db/changelog/master/7-change-index-name-to-index-prefix.changelog.yaml diff --git a/src/main/resources/db/changelog/master/7-change-index-name-to-index-prefix.changelog.yaml b/src/main/resources/db/changelog/master/7-change-index-name-to-index-prefix.changelog.yaml new file mode 100644 index 0000000..f0ae4a7 --- /dev/null +++ b/src/main/resources/db/changelog/master/7-change-index-name-to-index-prefix.changelog.yaml @@ -0,0 +1,10 @@ +databaseChangeLog: + - changeSet: + id: rename-column-index-name-to-index-prefix + author: ali + changes: + - renameColumn: + columnDataType: TEXT + newColumnName: search_index_prefix + oldColumnName: search_index_name + tableName: tenant \ No newline at end of file diff --git a/src/test/java/com/knecon/fforesight/tests/TenantsTest.java b/src/test/java/com/knecon/fforesight/tests/TenantsTest.java index a01917f..39155b7 100644 --- a/src/test/java/com/knecon/fforesight/tests/TenantsTest.java +++ b/src/test/java/com/knecon/fforesight/tests/TenantsTest.java @@ -78,7 +78,7 @@ public class TenantsTest extends AbstractTenantUserManagementIntegrationTest { .port(123) .username("updated_username") .scheme("updated_scheme") - .indexName("indexname") + .indexPrefix("index_prefix") .build()) .databaseConnection(DatabaseConnection.builder() .database("updated_db") diff --git a/src/test/java/com/knecon/fforesight/utils/TestTenantService.java b/src/test/java/com/knecon/fforesight/utils/TestTenantService.java index 2ef7930..31cabb2 100644 --- a/src/test/java/com/knecon/fforesight/utils/TestTenantService.java +++ b/src/test/java/com/knecon/fforesight/utils/TestTenantService.java @@ -75,7 +75,7 @@ public class TestTenantService { .username(SpringPostgreSQLTestContainer.getInstance().getUsername()) .password(SpringPostgreSQLTestContainer.getInstance().getPassword()) .build()) - .searchConnection(SearchConnection.builder().hosts(Set.of("localhost")).port(9200).scheme("http").numberOfShards("1").numberOfReplicas("5").indexName("indexname").build()); + .searchConnection(SearchConnection.builder().hosts(Set.of("localhost")).port(9200).scheme("http").numberOfShards("1").numberOfReplicas("5").indexPrefix("indexprefix").build()); if (withStorage) { tenantRequest = tenantRequestBuilder.s3StorageConnection(S3StorageConnection.builder()