Skip to content

Commit 02447d5

Browse files
Release/v11.1.4 (#1524)
* feat: add SAML2 login configuration and update Dockerfile * feat: enhance two-factor authentication UI and improve user experience Signed-off-by: Manuel Abascal <[email protected]> * feat: enhance two-factor authentication UI and improve user experience Signed-off-by: Manuel Abascal <[email protected]> * feat: remove unnecessary Nginx configuration copy from Dockerfile Signed-off-by: Manuel Abascal <[email protected]> * feat: refactor UtmLogstashPipeline class to use Lombok annotations and improve default value handling * feat: update component labels for clarity in UI Signed-off-by: Manuel Abascal <[email protected]> * fix: correct command syntax in UTM stack installer scripts Signed-off-by: Manuel Abascal <[email protected]> * fix: correct syntax error in UTM stack installation command Signed-off-by: Manuel Abascal <[email protected]> * feat: enhance download link styling for macOS agent guide Signed-off-by: Manuel Abascal <[email protected]> * chore: update release notes for UTMStack v11.1.4 and modify server API URL * fix(plugins/azure): change plugin mode from manager to worker --------- Signed-off-by: Manuel Abascal <[email protected]> Co-authored-by: JocLRojas <[email protected]>
1 parent 75a9dde commit 02447d5

File tree

12 files changed

+57
-135
lines changed

12 files changed

+57
-135
lines changed

CHANGELOG.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# UTMStack 11.1.3
2-
3-
These are the release notes for **UTMStack v11.1.3**, highlighting new features, bug fixes, and performance improvements.
4-
5-
## Fixes
6-
- Updated Nginx configuration to support SAML redirects
1+
# UTMStack 11.1.4 – Release Notes
72

3+
The **UTMStack v11.1.4** update delivers important fixes and usability improvements to enhance stability and user experience.
84

5+
## Improvements & Fixes
6+
- Refined the styling of download links to improve clarity and accessibility.
7+
- Resolved a syntax error in the UTMStack installation command, ensuring smoother setup.
8+
- Corrected the display of pipeline card statuses and improved accuracy of event processing counts.
Lines changed: 14 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
package com.park.utmstack.domain.logstash_pipeline;
22

3+
import com.park.utmstack.domain.application_modules.UtmModule;
34
import com.park.utmstack.service.logstash_pipeline.enums.PipelineStatus;
5+
import lombok.*;
6+
47
import org.hibernate.annotations.GenericGenerator;
58

69
import javax.persistence.*;
710
import javax.validation.constraints.Size;
811
import java.io.Serializable;
912

10-
/**
11-
* A UtmLogstashPipeline.
12-
*/
1313
@Entity
1414
@Table(name = "utm_logstash_pipeline")
15+
@Getter
16+
@Setter
17+
@NoArgsConstructor
18+
@AllArgsConstructor
19+
@Builder
1520
public class UtmLogstashPipeline implements Serializable {
1621

1722
private static final long serialVersionUID = 1L;
@@ -48,103 +53,14 @@ public class UtmLogstashPipeline implements Serializable {
4853
@Column(name = "events_out")
4954
private Long eventsOut;
5055

56+
@OneToOne
57+
@JoinColumn(name = "module_name", referencedColumnName = "module_name", insertable = false, updatable = false)
58+
private UtmModule utmModule;
5159

52-
public UtmLogstashPipeline(){}
53-
public UtmLogstashPipeline(Long id, String pipelineId,
54-
String pipelineName,
55-
String pipelineStatus,
56-
String moduleName,
57-
Boolean systemOwner,
58-
String pipelineDescription,
59-
Boolean pipelineInternal,
60-
Long eventsOut) {
61-
this.id = id;
62-
this.pipelineId = pipelineId;
63-
this.pipelineName = pipelineName;
64-
this.pipelineStatus = pipelineStatus;
65-
this.moduleName = moduleName;
66-
this.systemOwner = systemOwner;
67-
this.pipelineDescription = pipelineDescription;
68-
this.pipelineInternal = pipelineInternal==null?false:pipelineInternal;
69-
this.eventsOut = eventsOut==null?0L:eventsOut;
70-
}
71-
72-
public Long getId() {
73-
return id;
74-
}
75-
76-
public void setId(Long id) {
77-
this.id = id;
78-
}
79-
80-
public String getPipelineId() {
81-
return pipelineId;
82-
}
83-
84-
public void setPipelineId(String pipelineId) {
85-
this.pipelineId = pipelineId;
86-
}
87-
88-
public String getPipelineName() {
89-
return pipelineName;
90-
}
91-
92-
public void setPipelineName(String pipelineName) {
93-
this.pipelineName = pipelineName;
94-
}
95-
96-
public String getPipelineStatus() {
97-
return pipelineStatus;
98-
}
99-
100-
public void setPipelineStatus(String pipelineStatus) {
101-
this.pipelineStatus = pipelineStatus;
102-
}
103-
104-
public String getModuleName() {
105-
return moduleName;
106-
}
107-
108-
public void setModuleName(String moduleName) {
109-
this.moduleName = moduleName;
110-
}
111-
112-
public Boolean getSystemOwner() {
113-
return systemOwner;
114-
}
115-
116-
public void setSystemOwner(Boolean systemOwner) {
117-
this.systemOwner = systemOwner;
118-
}
119-
120-
public String getPipelineDescription() {
121-
return pipelineDescription;
122-
}
123-
124-
public void setPipelineDescription(String pipelineDescription) {
125-
this.pipelineDescription = pipelineDescription;
126-
}
127-
128-
public Boolean getPipelineInternal() {
129-
return pipelineInternal;
130-
}
131-
132-
public void setPipelineInternal(Boolean pipelineInternal) {
133-
this.pipelineInternal = pipelineInternal;
134-
}
135-
136-
public Long getEventsOut() {
137-
return eventsOut;
138-
}
139-
140-
public void setEventsOut(Long eventsOut) {
141-
this.eventsOut = eventsOut;
142-
}
143-
144-
public void setDefaults(){
60+
public void setDefaults() {
14561
this.systemOwner = false;
146-
this.pipelineInternal = this.pipelineInternal==null?false:this.pipelineInternal;
147-
this.eventsOut = this.eventsOut==null?0L:this.eventsOut;
62+
this.pipelineInternal = this.pipelineInternal == null ? false : this.pipelineInternal;
63+
this.eventsOut = this.eventsOut == null ? 0L : this.eventsOut;
14864
this.pipelineStatus = PipelineStatus.PIPELINE_STATUS_DOWN.get();
14965
}
15066
}

backend/src/main/java/com/park/utmstack/service/dto/logstash_pipeline/UtmLogstashPipelineDTO.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ public UtmLogstashPipelineDTO(UtmLogstashPipeline pipeline) {
5555

5656
@JsonIgnore
5757
public UtmLogstashPipeline getPipeline(UtmLogstashPipeline utmLogstashPipeline) {
58-
if (utmLogstashPipeline==null) utmLogstashPipeline = new UtmLogstashPipeline();
58+
if (utmLogstashPipeline==null){
59+
utmLogstashPipeline = new UtmLogstashPipeline();
60+
utmLogstashPipeline.setDefaults();
61+
}
5962
utmLogstashPipeline.setId(this.getId());
6063
utmLogstashPipeline.setPipelineName(this.getPipelineName());
6164
utmLogstashPipeline.setModuleName(this.getModuleName());

backend/src/main/java/com/park/utmstack/service/logstash_pipeline/UtmLogstashPipelineService.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.springframework.transaction.annotation.Transactional;
4444
import org.springframework.util.StringUtils;
4545

46+
import javax.sql.DataSource;
4647
import java.time.Duration;
4748
import java.time.Instant;
4849
import java.time.format.DateTimeFormatter;
@@ -70,13 +71,15 @@ public class UtmLogstashPipelineService {
7071
private final ElasticsearchService elasticsearchService;
7172

7273
private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
74+
private final DataSource dataSource;
7375

74-
public UtmLogstashPipelineService(UtmLogstashPipelineRepository utmLogstashPipelineRepository, RestTemplateService restTemplateService, UtmGroupLogstashPipelineFiltersRepository utmGroupLogstashPipelineFiltersRepository, UtmLogstashFilterRepository utmLogstashFilterRepository, OpensearchClientBuilder client, ElasticsearchService elasticsearchService) {
76+
public UtmLogstashPipelineService(UtmLogstashPipelineRepository utmLogstashPipelineRepository, RestTemplateService restTemplateService, UtmGroupLogstashPipelineFiltersRepository utmGroupLogstashPipelineFiltersRepository, UtmLogstashFilterRepository utmLogstashFilterRepository, OpensearchClientBuilder client, ElasticsearchService elasticsearchService, DataSource dataSource) {
7577
this.utmLogstashPipelineRepository = utmLogstashPipelineRepository;
7678
this.restTemplateService = restTemplateService;
7779
this.utmGroupLogstashPipelineFiltersRepository = utmGroupLogstashPipelineFiltersRepository;
7880
this.utmLogstashFilterRepository = utmLogstashFilterRepository;
7981
this.elasticsearchService = elasticsearchService;
82+
this.dataSource = dataSource;
8083
}
8184

8285
/**
@@ -326,7 +329,13 @@ public void pipelineStatus() {
326329

327330
try {
328331
activeByServer.forEach((p) -> {
329-
StatisticDocument pipeLine = this.getStatisticsDataType(Constants.STATISTICS_INDEX_PATTERN, p.getPipelineName());
332+
String dataType = p.getPipelineName();
333+
Set<UtmLogstashFilter> filters = p.getUtmModule() != null ? p.getUtmModule().getFilters() : null;
334+
dataType = Optional.ofNullable(filters)
335+
.flatMap(fs -> fs.stream().findFirst())
336+
.map(f -> f.getDatatype().getDataType())
337+
.orElse(dataType);
338+
StatisticDocument pipeLine = this.getStatisticsDataType(Constants.STATISTICS_INDEX_PATTERN, dataType);
330339

331340
if (!Objects.isNull(pipeLine)) {
332341
p.setEventsOut(pipeLine.getCount());

backend/src/main/java/com/park/utmstack/web/rest/logstash_pipeline/UtmLogstashPipelineResource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.park.utmstack.web.rest.errors.BadRequestAlertException;
1313
import com.park.utmstack.web.rest.util.HeaderUtil;
1414
import com.park.utmstack.web.rest.vm.UtmLogstashPipelineVM;
15+
import io.swagger.v3.oas.annotations.Hidden;
1516
import org.slf4j.Logger;
1617
import org.slf4j.LoggerFactory;
1718
import org.springdoc.api.annotations.ParameterObject;
@@ -33,6 +34,7 @@
3334
* REST controller for managing {@link UtmLogstashPipeline}.
3435
*/
3536
@RestController
37+
@Hidden
3638
@RequestMapping("/api")
3739
public class UtmLogstashPipelineResource {
3840

frontend/src/app/app-module/guides/guide-macos-agent/guide-macos-agent.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ <h4 class="card-title mb-0 text-primary">
1313
<li>
1414
<p class="step-guide">
1515
<span class="step_number">1</span>
16-
Download the <a [href]="getDownloadUrl()" download="utmstack-macos-agent.pkg"><strong>utmstack-macos-agent.pkg</strong></a> file.
16+
Download the <a [href]="getDownloadUrl()" download="utmstack-macos-agent.pkg" class="text-primary fw-semibold text-decoration-none">utmstack-macos-agent.pkg</a> file.
1717
</p>
1818
</li>
1919
<li>

frontend/src/app/app-module/guides/guide-utmstack/guide-utmstack.component.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -77,28 +77,29 @@ export class GuideUtmstackComponent implements OnInit {
7777
getCommandUbuntu(installerName: string): string {
7878
const ip = window.location.host.includes(':') ? window.location.host.split(':')[0] : window.location.host;
7979

80-
return `sudo bash -c 'apt update -y && \
81-
apt install wget -y && \
82-
mkdir -p /opt/utmstack-collector && \
83-
wget --no-check-certificate -P /opt/utmstack-collector \
84-
https://${ip}:9001/private/dependencies/collector/${installerName} && \
85-
chmod -R 755 /opt/utmstack-collector/${installerName} && \
86-
/opt/utmstack-collector/${installerName} install ${ip} <secret>${this.token}</secret>' yes'`;
80+
return `sudo bash -c "apt update -y && \
81+
apt install wget -y && \
82+
mkdir -p /opt/utmstack-collector && \
83+
wget --no-check-certificate -P /opt/utmstack-collector \
84+
https://${ip}:9001/private/dependencies/collector/${installerName} && \
85+
chmod -R 755 /opt/utmstack-collector/${installerName} && \
86+
/opt/utmstack-collector/${installerName} install ${ip} <secret>${this.token}</secret> yes"`;
8787
}
8888

8989

9090
getCommandCentos7RedHat(installerName: string): string {
9191
const ip = window.location.host.includes(':') ? window.location.host.split(':')[0] : window.location.host;
9292

9393
return `sudo bash -c "dnf update -y && \
94-
dnf install wget -y && \
95-
mkdir -p /opt/utmstack-collector && \
96-
wget --no-check-certificate -P /opt/utmstack-collector \
97-
https://${ip}:9001/private/dependencies/collector/${installerName} && \
98-
chmod -R 755 /opt/utmstack-collector/${installerName} && \
99-
/opt/utmstack-collector/${installerName} install ${ip} <secret>${this.token}</secret> yes"`;
94+
dnf install wget -y && \
95+
mkdir -p /opt/utmstack-collector && \
96+
wget --no-check-certificate -P /opt/utmstack-collector \
97+
https://${ip}:9001/private/dependencies/collector/${installerName} && \
98+
chmod -R 755 /opt/utmstack-collector/${installerName} && \
99+
/opt/utmstack-collector/${installerName} install ${ip} <secret>${this.token}</secret> yes"`;
100100
}
101101

102+
102103
getUninstallCommandUbuntu(installerName: string): string {
103104
return `sudo bash -c "/opt/utmstack-collector/${installerName} uninstall && \
104105
(systemctl stop UTMStackCollector 2>/dev/null || service UTMStackCollector stop 2>/dev/null || true) && \

frontend/src/app/logstash/logstash-pipelines/logstash-pipelines.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ <h6 class="text-blue-800 d-flex align-content-center justify-content-start mb-3"
7373
<span class="span-small-icon">
7474
<i [ngClass]="'icon-circle2 text-success-800'" class="mr-2"></i>
7575
</span>
76-
Correlation Engine</h6>
76+
Event Processor</h6>
7777

7878
<div class="wrap mt-3">
7979
<div class="modules">

frontend/src/app/shared/components/utm/elastic/elastic-metric-health/elastic-metric-health.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ <h6 class="text-blue-800 d-flex align-content-center justify-content-start">
1010
'icon-circle2 text-success-800':
1111
status === 'MEDIUM'?'icon-circle2 text-warning-800':'icon-circle2 text-danger-800'"></i>
1212
</span>
13-
Data Engine</h6>
13+
Data Storage</h6>
1414
</div>
1515

1616
<div class="w-100 d-inline-block">

frontend/src/environments/environment.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
export const environment = {
66
production: false,
7-
// SERVER_API_URL: 'https://192.168.1.18/',
8-
SERVER_API_URL: 'http://localhost:8080/',
7+
SERVER_API_URL: 'https://192.168.1.18/',
8+
//SERVER_API_URL: 'http://localhost:8080/',
99
SERVER_API_CONTEXT: '',
1010
SESSION_AUTH_TOKEN: window.location.host.split(':')[0].toLocaleUpperCase(),
1111
WEBSOCKET_URL: '//localhost:8080',

0 commit comments

Comments
 (0)