Skip to content

Commit 9e5628c

Browse files
committed
feat: add event processor integration with configuration validation and response handling
1 parent 5e49f55 commit 9e5628c

25 files changed

Lines changed: 386 additions & 302 deletions

backend/src/main/java/com/park/utmstack/checks/EnvironmentVariablesCheck.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ public void checkEnvironmentVariables() {
4141
missingVars.add(Constants.ENV_ENCRYPTION_KEY);
4242
if (!StringUtils.hasText(vars.get(Constants.ENV_SERVER_NAME)))
4343
missingVars.add(Constants.ENV_SERVER_NAME);
44+
if (!StringUtils.hasText(vars.get(Constants.ENV_EVENT_PROCESSOR_HOST)))
45+
missingVars.add(Constants.ENV_EVENT_PROCESSOR_HOST);
46+
if (!StringUtils.hasText(vars.get(Constants.ENV_EVENT_PROCESSOR_PORT)))
47+
missingVars.add(Constants.ENV_EVENT_PROCESSOR_PORT);
4448

4549
if (CollectionUtils.isEmpty(missingVars)) {
4650
ConsoleColors.greenBold();

backend/src/main/java/com/park/utmstack/config/Constants.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ public final class Constants {
9292
public static final String ENV_DB_PASS = "DB_PASS";
9393
public static final String ENV_DB_USER = "DB_USER";
9494
public static final String ENV_ENCRYPTION_KEY = "ENCRYPTION_KEY";
95+
public static final String ENV_EVENT_PROCESSOR_HOST = "EVENT_PROCESSOR_HOST";
96+
public static final String ENV_EVENT_PROCESSOR_PORT = "EVENT_PROCESSOR_PORT";
9597
public static final String ENV_GRPC_AGENT_MANAGER_HOST = "GRPC_AGENT_MANAGER_HOST";
9698
public static final String ENV_GRPC_AGENT_MANAGER_PORT = "GRPC_AGENT_MANAGER_PORT";
9799
public static final String ENV_INTERNAL_KEY = "INTERNAL_KEY";
@@ -111,6 +113,7 @@ public final class Constants {
111113

112114
// GRPC
113115
public static final String AGENT_MANAGER_INTERNAL_KEY_HEADER = "internal-key";
116+
public static final String EVENT_PROCESSOR_INTERNAL_KEY_HEADER = "internal-key";
114117
public static final String AGENT_HEADER = "Agent";
115118

116119
/**

backend/src/main/java/com/park/utmstack/domain/application_modules/UtmModule.java

Lines changed: 3 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.park.utmstack.domain.UtmServer;
66
import com.park.utmstack.domain.application_modules.enums.ModuleName;
77
import com.park.utmstack.domain.logstash_filter.UtmLogstashFilter;
8+
import lombok.Data;
89

910
import javax.persistence.*;
1011
import java.io.Serializable;
@@ -15,6 +16,7 @@
1516
* A UtmModule.
1617
*/
1718
@Entity
19+
@Data
1820
@Table(name = "utm_module")
1921
public class UtmModule implements Serializable {
2022

@@ -66,116 +68,12 @@ public class UtmModule implements Serializable {
6668
@OneToMany(mappedBy = "module", fetch = FetchType.LAZY)
6769
private Set<UtmLogstashFilter> filters;
6870

69-
70-
public Long getId() {
71-
return id;
72-
}
73-
74-
public void setId(Long id) {
75-
this.id = id;
76-
}
77-
78-
public Long getServerId() {
79-
return serverId;
80-
}
81-
82-
public void setServerId(Long serverId) {
83-
this.serverId = serverId;
84-
}
85-
86-
public String getPrettyName() {
87-
return prettyName;
88-
}
89-
90-
public void setPrettyName(String prettyName) {
91-
this.prettyName = prettyName;
92-
}
93-
94-
public ModuleName getModuleName() {
95-
return moduleName;
96-
}
97-
98-
public void setModuleName(ModuleName moduleName) {
99-
this.moduleName = moduleName;
100-
}
101-
102-
public String getModuleDescription() {
103-
return moduleDescription;
104-
}
105-
106-
public void setModuleDescription(String moduleDescription) {
107-
this.moduleDescription = moduleDescription;
108-
}
109-
110-
public Boolean getModuleActive() {
111-
return moduleActive;
112-
}
113-
114-
public void setModuleActive(Boolean moduleActive) {
115-
this.moduleActive = moduleActive;
116-
}
117-
118-
public String getModuleIcon() {
119-
return moduleIcon;
120-
}
121-
122-
public void setModuleIcon(String moduleIcon) {
123-
this.moduleIcon = moduleIcon;
124-
}
125-
126-
public String getModuleCategory() {
127-
return moduleCategory;
128-
}
129-
130-
public void setModuleCategory(String moduleCategory) {
131-
this.moduleCategory = moduleCategory;
132-
}
133-
134-
public Boolean getLiteVersion() {
135-
return liteVersion;
136-
}
137-
138-
public void setLiteVersion(Boolean liteVersion) {
139-
this.liteVersion = liteVersion;
140-
}
141-
142-
public Boolean getNeedsRestart() {
143-
return needsRestart;
144-
}
145-
146-
public void setNeedsRestart(Boolean needsRestart) {
147-
this.needsRestart = needsRestart;
148-
}
149-
150-
public UtmServer getServer() {
151-
return server;
152-
}
153-
154-
public void setServer(UtmServer server) {
155-
this.server = server;
156-
}
157-
158-
public Set<UtmModuleGroup> getModuleGroups() {
159-
return moduleGroups;
160-
}
161-
162-
public void setModuleGroups(Set<UtmModuleGroup> moduleGroups) {
163-
this.moduleGroups = moduleGroups;
164-
}
165-
16671
public Boolean getActivatable() {
16772
return isActivatable;
16873
}
16974

17075
public void setActivatable(Boolean activatable) {
17176
isActivatable = activatable;
17277
}
173-
174-
public Set<UtmLogstashFilter> getFilters() {
175-
return filters;
176-
}
177-
178-
public void setFilters(Set<UtmLogstashFilter> filters) {
179-
this.filters = filters;
180-
}
18178
}
79+

backend/src/main/java/com/park/utmstack/domain/application_modules/UtmModuleGroupConfiguration.java

Lines changed: 5 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
import com.fasterxml.jackson.annotation.JsonIgnore;
55
import com.park.utmstack.domain.application_modules.types.ModuleConfigurationKey;
6+
import lombok.Getter;
7+
import lombok.Setter;
68

79
import javax.persistence.*;
810
import javax.validation.constraints.NotNull;
@@ -11,6 +13,8 @@
1113
/**
1214
* A UtmModuleGroupConfiguration.
1315
*/
16+
@Setter
17+
@Getter
1418
@Entity
1519
@Table(name = "utm_module_group_configuration")
1620
public class UtmModuleGroupConfiguration implements Serializable {
@@ -64,85 +68,7 @@ public UtmModuleGroupConfiguration(ModuleConfigurationKey key) {
6468
this.confDescription = key.getConfDescription();
6569
this.confDataType = key.getConfDataType();
6670
this.confRequired = key.getConfRequired();
71+
this.confOptions = key.getConfOptions();
6772
}
6873

69-
public Long getId() {
70-
return id;
71-
}
72-
73-
public void setId(Long id) {
74-
this.id = id;
75-
}
76-
77-
public Long getGroupId() {
78-
return groupId;
79-
}
80-
81-
public void setGroupId(Long groupId) {
82-
this.groupId = groupId;
83-
}
84-
85-
public String getConfKey() {
86-
return confKey;
87-
}
88-
89-
public void setConfKey(String confKey) {
90-
this.confKey = confKey;
91-
}
92-
93-
public String getConfValue() {
94-
return confValue;
95-
}
96-
97-
public void setConfValue(String confValue) {
98-
this.confValue = confValue;
99-
}
100-
101-
public String getConfName() {
102-
return confName;
103-
}
104-
105-
public void setConfName(String confName) {
106-
this.confName = confName;
107-
}
108-
109-
public String getConfDescription() {
110-
return confDescription;
111-
}
112-
113-
public void setConfDescription(String confDescription) {
114-
this.confDescription = confDescription;
115-
}
116-
117-
public String getConfDataType() {
118-
return confDataType;
119-
}
120-
121-
public void setConfDataType(String confDataType) {
122-
this.confDataType = confDataType;
123-
}
124-
125-
public Boolean getConfRequired() {
126-
return confRequired;
127-
}
128-
129-
public void setConfRequired(Boolean confRequired) {
130-
this.confRequired = confRequired;
131-
}
132-
133-
public UtmModuleGroup getModuleGroup() {
134-
return moduleGroup;
135-
}
136-
137-
public void setModuleGroup(UtmModuleGroup moduleGroup) {
138-
this.moduleGroup = moduleGroup;
139-
}
140-
141-
public String getConfOptions() {
142-
return confOptions;
143-
}
144-
145-
public void setConfOptions(String confOptions) {
146-
this.confOptions = confOptions;
147-
}
14874
}

backend/src/main/java/com/park/utmstack/domain/application_modules/factory/IModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.park.utmstack.domain.application_modules.factory;
22

33
import com.park.utmstack.domain.application_modules.UtmModule;
4+
import com.park.utmstack.domain.application_modules.UtmModuleGroupConfiguration;
45
import com.park.utmstack.domain.application_modules.types.ModuleConfigurationKey;
56
import com.park.utmstack.domain.application_modules.types.ModuleRequirement;
67

@@ -13,4 +14,8 @@ public interface IModule {
1314
List<ModuleRequirement> checkRequirements(Long serverId) throws Exception;
1415

1516
List<ModuleConfigurationKey> getConfigurationKeys(Long groupId) throws Exception;
17+
18+
default boolean validateConfiguration(UtmModule module, List<UtmModuleGroupConfiguration> configuration) throws Exception {
19+
return true;
20+
}
1621
}

backend/src/main/java/com/park/utmstack/domain/application_modules/factory/impl/ModuleSocAi.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
11
package com.park.utmstack.domain.application_modules.factory.impl;
22

33
import com.park.utmstack.domain.application_modules.UtmModule;
4+
import com.park.utmstack.domain.application_modules.UtmModuleGroupConfiguration;
45
import com.park.utmstack.domain.application_modules.enums.ModuleName;
56
import com.park.utmstack.domain.application_modules.factory.IModule;
67
import com.park.utmstack.domain.application_modules.types.ModuleConfigurationKey;
78
import com.park.utmstack.domain.application_modules.types.ModuleRequirement;
9+
import com.park.utmstack.domain.application_modules.validators.UtmStackConfigValidator;
810
import com.park.utmstack.service.application_modules.UtmModuleService;
11+
import lombok.RequiredArgsConstructor;
912
import org.springframework.stereotype.Component;
1013

1114
import java.util.ArrayList;
1215
import java.util.Collections;
1316
import java.util.List;
17+
import java.util.stream.Collectors;
1418

1519
@Component
20+
@RequiredArgsConstructor
1621
public class ModuleSocAi implements IModule {
1722
private static final String CLASSNAME = "ModuleSocAi";
1823

1924
private final UtmModuleService moduleService;
20-
21-
public ModuleSocAi(UtmModuleService moduleService) {
22-
this.moduleService = moduleService;
23-
}
25+
private final UtmStackConfigValidator utmStackConfigValidator;
2426

2527
@Override
2628
public UtmModule getDetails(Long serverId) throws Exception {
@@ -99,4 +101,12 @@ public List<ModuleConfigurationKey> getConfigurationKeys(Long groupId) throws Ex
99101

100102
return keys;
101103
}
104+
105+
public boolean validateConfiguration(UtmModule module, List<UtmModuleGroupConfiguration> configuration) throws Exception {
106+
107+
configuration = configuration.stream()
108+
.filter(config -> config.getConfKey().equals("utmstack.socai.key"))
109+
.collect(Collectors.toList());
110+
return utmStackConfigValidator.validate(module, configuration);
111+
}
102112
}

backend/src/main/java/com/park/utmstack/domain/application_modules/types/ModuleConfigurationKey.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public static class Builder {
8080
private String confDescription;
8181
private String confDataType;
8282
private Boolean confRequired;
83+
private Boolean confVisible = true;
8384

8485
private String confOptions;
8586

0 commit comments

Comments
 (0)