Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4ee0e7e

Browse files
th37roseludomikula
th37rose
authored andcommitted
store ENV variables to serverSettings collection.
create new api endpoint: /api/serverSettings
1 parentaee0d43 commit4ee0e7e

File tree

8 files changed

+153
-0
lines changed

8 files changed

+153
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
packageorg.lowcoder.domain.serversetting.model;
2+
3+
importjakarta.persistence.Id;
4+
importlombok.Getter;
5+
importlombok.NoArgsConstructor;
6+
importlombok.Setter;
7+
importlombok.experimental.SuperBuilder;
8+
importlombok.extern.jackson.Jacksonized;
9+
importorg.lowcoder.sdk.models.HasIdAndAuditing;
10+
importorg.springframework.data.mongodb.core.mapping.Document;
11+
importorg.springframework.http.MediaType;
12+
13+
@Document(collection ="serverSettings")
14+
@Jacksonized
15+
@Getter
16+
@Setter
17+
@SuperBuilder
18+
@NoArgsConstructor
19+
publicclassServerSetting {
20+
21+
@Id
22+
privateStringkey;
23+
privateStringvalue;
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
packageorg.lowcoder.domain.serversetting.service;
2+
3+
importorg.lowcoder.domain.serversetting.model.ServerSetting;
4+
importorg.springframework.data.mongodb.repository.ReactiveMongoRepository;
5+
6+
publicinterfaceServerSettingRepositoryextendsReactiveMongoRepository<ServerSetting,String> {
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
packageorg.lowcoder.domain.serversetting.service;
2+
3+
importorg.lowcoder.domain.serversetting.model.ServerSetting;
4+
importreactor.core.publisher.Flux;
5+
6+
publicinterfaceServerSettingService {
7+
8+
Flux<ServerSetting>findAll();
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
packageorg.lowcoder.domain.serversetting.service;
2+
3+
importlombok.extern.slf4j.Slf4j;
4+
importorg.lowcoder.domain.serversetting.model.ServerSetting;
5+
importorg.lowcoder.sdk.exception.BizError;
6+
importorg.lowcoder.sdk.exception.BizException;
7+
importorg.springframework.beans.factory.annotation.Autowired;
8+
importorg.springframework.stereotype.Service;
9+
importreactor.core.publisher.Flux;
10+
importreactor.core.publisher.Mono;
11+
12+
importjavax.annotation.PostConstruct;
13+
importjava.util.List;
14+
importjava.util.Map;
15+
16+
17+
@Slf4j
18+
@Service
19+
publicclassServerSettingServiceImplimplementsServerSettingService {
20+
privatefinalServerSettingRepositoryrepository;
21+
privatefinalList<String>EXCLUDED_KEYS =List.of("LOWCODER_MONGODB_EXPOSED",
22+
"LOWCODER_PUID",
23+
"LOWCODER_PGID",
24+
"LOWCODER_MONGODB_URL",
25+
"LOWCODER_REDIS_URL",
26+
"LOWCODER_DB_ENCRYPTION_PASSWORD",
27+
"LOWCODER_DB_ENCRYPTION_SALT",
28+
"LOWCODER_API_KEY_SECRET",
29+
"LOWCODER_ADMIN_SMTP_HOST",
30+
"LOWCODER_ADMIN_SMTP_PORT",
31+
"LOWCODER_ADMIN_SMTP_USERNAME",
32+
"LOWCODER_ADMIN_SMTP_PASSWORD",
33+
"LOWCODER_SUPERADMIN_PASSWORD",
34+
"LOWCODER_SUPERADMIN_USERNAME");
35+
36+
@Autowired
37+
publicServerSettingServiceImpl(ServerSettingRepositoryrepository) {
38+
this.repository =repository;
39+
}
40+
41+
@Override
42+
publicFlux<ServerSetting>findAll() {
43+
returnrepository.findAll();
44+
}
45+
46+
@PostConstruct
47+
publicvoidsaveEnvironmentVariables() {
48+
Map<String,String>envVariables =System.getenv();
49+
Flux.fromIterable(envVariables.keySet())
50+
.map(key -> {
51+
Stringvalue =envVariables.getOrDefault(key,"");
52+
if(EXCLUDED_KEYS.contains(key)) {
53+
value ="stored on the server";
54+
}
55+
returnServerSetting.builder()
56+
.key(key)
57+
.value(value)
58+
.build();
59+
})
60+
.flatMap(repository::save)
61+
.subscribe();
62+
}
63+
}

‎server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ private NewUrl() {
1010
publicstaticfinalStringDATASOURCE_URL =PREFIX +"/datasources";
1111
publicstaticfinalStringUSER_URL =PREFIX +"/users";
1212
publicstaticfinalStringCONFIG_URL =PREFIX +"/configs";
13+
publicstaticfinalStringSERVER_SETTING_URL =PREFIX +"/serverSettings";
1314
publicstaticfinalStringGROUP_URL =PREFIX +"/groups";
1415
publicstaticfinalStringASSET_URL =PREFIX +"/assets";
1516

‎server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/Url.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public final class Url {
77
publicstaticfinalStringDATASOURCE_URL =BASE_URL +VERSION +"/datasources";
88
publicstaticfinalStringUSER_URL =BASE_URL +VERSION +"/users";
99
publicstaticfinalStringCONFIG_URL =BASE_URL +VERSION +"/configs";
10+
publicstaticfinalStringSERVER_SETTING_URL =BASE_URL +VERSION +"/serverSettings";
1011
publicstaticfinalStringGROUP_URL =BASE_URL +VERSION +"/groups";
1112
publicstaticfinalStringASSET_URL =BASE_URL +VERSION +"/assets";
1213

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
packageorg.lowcoder.api.config;
2+
3+
importlombok.RequiredArgsConstructor;
4+
importorg.lowcoder.api.framework.view.ResponseView;
5+
importorg.lowcoder.domain.serversetting.model.ServerSetting;
6+
importorg.lowcoder.domain.serversetting.service.ServerSettingRepository;
7+
importorg.lowcoder.domain.serversetting.service.ServerSettingService;
8+
importorg.springframework.web.bind.annotation.RestController;
9+
importreactor.core.publisher.Flux;
10+
11+
@RequiredArgsConstructor
12+
@RestController
13+
publicclassServerSettingControllerimplementsServerSettingEndpoints
14+
{
15+
privatefinalServerSettingServiceserverSettingService;
16+
@Override
17+
publicFlux<ServerSetting>getServerSettings() {
18+
returnserverSettingService.findAll();
19+
}
20+
21+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
packageorg.lowcoder.api.config;
2+
3+
importio.swagger.v3.oas.annotations.Operation;
4+
importorg.lowcoder.api.framework.view.ResponseView;
5+
importorg.lowcoder.domain.serversetting.model.ServerSetting;
6+
importorg.lowcoder.infra.constant.NewUrl;
7+
importorg.lowcoder.infra.constant.Url;
8+
importorg.springframework.web.bind.annotation.GetMapping;
9+
importorg.springframework.web.bind.annotation.RequestMapping;
10+
importorg.springframework.web.bind.annotation.RestController;
11+
importreactor.core.publisher.Flux;
12+
13+
@RestController
14+
@RequestMapping(value = {Url.SERVER_SETTING_URL,NewUrl.SERVER_SETTING_URL})
15+
publicinterfaceServerSettingEndpoints
16+
{
17+
StringTAG_SERVER_SETTING_MANAGEMENT ="Server Setting APIs";
18+
19+
@Operation(
20+
tags =TAG_SERVER_SETTING_MANAGEMENT,
21+
operationId ="serverSettings",
22+
summary ="Get Lowcoder server settings",
23+
description ="Retrieve the list of server settings for Lowcoder."
24+
)
25+
@GetMapping
26+
Flux<ServerSetting>getServerSettings();
27+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp