Skip to content

Commit 7b22680

Browse files
committed
pull from dev
2 parents 03fdbd8 + ad40b5f commit 7b22680

File tree

153 files changed

+726
-3928
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+726
-3928
lines changed

client/packages/lowcoder/src/i18n/locales/de copy_

Lines changed: 0 additions & 2948 deletions
This file was deleted.

client/packages/lowcoder/src/i18n/locales/de.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2433,6 +2433,8 @@ export const de: typeof en = {
24332433
"home": {
24342434
...en.home,
24352435
"profile": "Profil",
2436+
"news": "News",
2437+
"newsLoading": "Das Laden dauert ein wenig...",
24362438
"allApplications": "Alle Apps",
24372439
"allModules": "Alle Module",
24382440
"allFolders": "Alle Ordner",

client/packages/lowcoder/src/i18n/locales/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2924,6 +2924,7 @@ export const en = {
29242924
"home": {
29252925
"profile": "Your Profile",
29262926
"news": "News",
2927+
"newsLoading": "It will load some seconds.",
29272928
"orgHome" : "Homepage (Org)",
29282929
"yourOrg": "Your Organization",
29292930
"orgHomeTitle": "Organization Homepage",

client/packages/lowcoder/src/pages/ApplicationV2/NewsLayout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export function NewsLayout() {
9393
<h1 style={{color: "#ffffff", marginTop : "12px"}}>Lowcoder {trans("home.news")}</h1>
9494
</StyleNewsCover>
9595
<Card style={{ marginBottom: "20px", minHeight : "800px" }}>
96+
<h4>{trans("home.newsLoading")}</h4>
9697
<iframe
9798
style={{ border: "none" }}
9899
title="Lowcoder News"

client/packages/lowcoder/src/pages/ApplicationV2/UserProfileLayout.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import { default as Divider } from "antd/es/divider";
1818

1919
import { Avatar, Button, Card, Col, Row, Space, Typography, Select, Tooltip } from "antd";
2020

21+
import { fullAvatarUrl } from "util/urlUtils";
22+
2123
import {
2224
BlurFinishInput,
2325
OtpFormInput, // maybe to use
@@ -231,7 +233,7 @@ export function UserProfileLayout(props: UserProfileLayoutProps) {
231233
<StyleProfileContent>
232234
<Row gutter={[24, 24]} style={{ display: 'flex', alignItems: 'end' }}>
233235
<Col lg={4}>
234-
<StyleAvatar src={<img src={user.avatarUrl ?? `https://eu.ui-avatars.com/api/?name=${user.username}&size=250`} alt="avatar" />} shape="square" size={120} />
236+
<StyleAvatar src={<img src={user.avatarUrl ? fullAvatarUrl(user.avatarUrl) : `https://eu.ui-avatars.com/api/?name=${user.username}&size=250`} alt="avatar" />} shape="square" size={120} />
235237
</Col>
236238
<Col lg={20}>
237239
<Space style={{paddingLeft : "80px"}}>

client/packages/lowcoder/src/pages/ApplicationV2/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,7 @@ export default function ApplicationHome() {
365365
routeComp: NewsView,
366366
icon: ({ selected, ...otherProps }) => selected ? <NewsIcon {...otherProps} width={"24px"}/> : <NewsIcon {...otherProps} width={"24px"}/>,
367367
visible: ({ user }) => user.orgDev,
368+
style: { color: "red" },
368369
},
369370
{
370371
text: <TabLabel>{trans("home.orgHome")}</TabLabel>,

client/packages/lowcoder/src/pages/userAuth/authComponents.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import styled from "styled-components";
66
import ReactHotkeys from "util/hotkeys";
77
import { StyledLink } from "pages/common/styledComponent";
88
import { trans } from "i18n";
9+
import { favicon } from "assets/images";
910

1011
const AuthCardContainer = styled.div`
1112
display: flex;
@@ -152,7 +153,7 @@ export const AuthContainer = (props: {
152153
<AuthCard>{props.children}</AuthCard>
153154
{ props.subHeading && (
154155
<AuthCardSubFooter>
155-
<img src="/src/assets/images/Lowcoder-Logo.svg" alt={"Lowcoder | " + trans("productDesc")} width="20px"/>
156+
<img src={favicon} alt={"Lowcoder | " + trans("productDesc")} width="20px"/>
156157
<a href="https://lowcoder.cloud" target="_blank" rel="noreferrer">
157158
{props.subHeading}
158159
</a>

deploy/docker/README.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ Image can be configured by setting environment variables.
3636
| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` |
3737
| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` |
3838
| `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` |
39+
| `LOWCODER_PUBLIC_URL` | The URL of the public User Interface | `localhost:3000` |
3940
| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` |
4041
| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` |
42+
| `LOWCODER_API_RATE_LIMIT` | Number of max Request per Second | `100` |
4143
| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` |
4244
| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` |
4345
| `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` |
@@ -47,16 +49,20 @@ Image can be configured by setting environment variables.
4749
| `LOWCODER_MAX_DEVELOPERS` | Default maximum developers | `100` |
4850
| `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` |
4951
| `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` |
50-
| `LOWCODER_CREATE_WORKSPACE_ON_SIGNUP` | IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up | `true` |
52+
| `LOWCODER_CREATE_WORKSPACE_ON_SIGNUP` | IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up | `true` |
5153
| `LOWCODER_MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` |
54+
| `LOWCODER_SUPERUSER_USERNAME` | Username of the Super-User of an Lowcoder Installation | `admin@localhost` |
55+
| `LOWCODER_SUPERUSER_PASSWORD` | Control if not to show Apps on the local Marketplace to anonymous users | |
56+
5257

5358
Also you should set the API-KEY secret, whcih should be a string of at least 32 random characters. (from Lowcoder v2.3.x on)
5459
On linux/mac, generate one eg. with: head /dev/urandom | head -c 30 | shasum -a 256
5560

56-
| Environment variable | Description | Default-Value |
61+
| Environment variable | Description | Default-Value |
5762
|-------------------------------------| ----------------------------------------------------------------------- | ----------------------------------------------------- |
5863
| `LOWCODER_API_KEY_SECRET` | String to encrypt/sign API Keys that users may create | |
5964

65+
6066
To enable secure Password Reset flow for the users, you need to configure your own SMTP Server. You can do this with the following Variables (from Lowcoder v2.4.x on):
6167

6268
| Environment Variable | Description | Default Value |
@@ -69,7 +75,7 @@ To enable secure Password Reset flow for the users, you need to configure your o
6975
| `LOWCODER_ADMIN_SMTP_SSL_ENABLED` | Enable SSL encryption | `false` |
7076
| `LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED` | Enable STARTTLS encryption | `true` |
7177
| `LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED` | Require STARTTLS encryption | `true` |
72-
78+
| `LOWCODER_LOST_PASSWORD_EMAIL_SENDER` | "from" Email address of the password Reset Email Sender | `service@lowcoder.cloud` |
7379

7480

7581
## Building api-service image
@@ -94,9 +100,10 @@ Image can be configured by setting environment variables.
94100
| `LOWCODER_PGID` | ID of group of the user running services. | `9001` |
95101
| `LOWCODER_MONGODB_URL` | Mongo database connection string | `mongodb://localhost:27017/lowcoder?authSource=admin` |
96102
| `LOWCODER_REDIS_URL` | Redis server URL | `redis://localhost:6379` |
97-
| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` |
98-
| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` |
103+
| `LOWCODER_DB_ENCRYPTION_PASSWORD` | Encryption password | `lowcoder.org` |
104+
| `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` |
99105
| `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` |
106+
| `LOWCODER_PUBLIC_URL` | The URL of the public User Interface | `localhost:3000` |
100107
| `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` |
101108
| `LOWCODER_MAX_MEMBERS_PER_ORG` | Default maximum members per organization | `1000` |
102109
| `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` |
@@ -106,6 +113,10 @@ Image can be configured by setting environment variables.
106113
| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` |
107114
| `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` |
108115
| `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control is users can create their own Workspace when Sign Up | `true` |
116+
| `LOWCODER_CREATE_WORKSPACE_ON_SIGNUP` | IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up | `true` |
117+
| `LOWCODER_MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` |
118+
| `LOWCODER_SUPERUSER_USERNAME` | Username of the Super-User of an Lowcoder Installation | `admin@localhost` |
119+
| `LOWCODER_SUPERUSER_PASSWORD` | Control if not to show Apps on the local Marketplace to anonymous users | |
109120

110121
Also you should set the API-KEY secret, whcih should be a string of at least 32 random characters. (from Lowcoder v2.3.x on)
111122
On linux/mac, generate one eg. with: head /dev/urandom | head -c 30 | shasum -a 256
@@ -127,6 +138,7 @@ To enable secure Password Reset flow for the users, you need to configure your o
127138
| `LOWCODER_ADMIN_SMTP_SSL_ENABLED` | Enable SSL encryption | `false` |
128139
| `LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED` | Enable STARTTLS encryption | `true` |
129140
| `LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED` | Require STARTTLS encryption | `true` |
141+
| `LOWCODER_LOST_PASSWORD_EMAIL_SENDER` | "from" Email address of the password Reset Email Sender | `service@lowcoder.cloud` |
130142

131143
## Building node-service image
132144

node_modules/.yarn-integrity

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/authentication/AuthenticationServiceImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.lowcoder.sdk.config.CommonConfig;
1111
import org.lowcoder.sdk.constants.AuthSourceConstants;
1212
import org.lowcoder.sdk.constants.WorkspaceMode;
13-
import org.springframework.beans.factory.annotation.Autowired;
1413
import org.springframework.stereotype.Service;
1514
import reactor.core.publisher.Flux;
1615
import reactor.core.publisher.Mono;

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/configurations/MongoConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.lowcoder.domain.user.model.User;
1313
import org.lowcoder.sdk.config.MaterialProperties;
1414
import org.lowcoder.sdk.models.HasIdAndAuditing;
15-
import org.springframework.beans.factory.annotation.Autowired;
1615
import org.springframework.context.ApplicationContext;
1716
import org.springframework.context.annotation.Bean;
1817
import org.springframework.context.annotation.Configuration;

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/model/OrganizationDomain.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package org.lowcoder.domain.organization.model;
22

3-
import java.util.ArrayList;
4-
import java.util.List;
5-
3+
import com.fasterxml.jackson.core.type.TypeReference;
4+
import lombok.Getter;
5+
import lombok.Setter;
66
import org.lowcoder.domain.mongodb.MongodbInterceptorContext;
77
import org.lowcoder.sdk.auth.AbstractAuthConfig;
8-
import org.lowcoder.sdk.config.SerializeConfig.JsonViews;
8+
import org.lowcoder.sdk.config.JsonViews;
99
import org.lowcoder.sdk.util.JsonUtils;
1010
import org.springframework.data.annotation.Transient;
1111

12-
import com.fasterxml.jackson.core.type.TypeReference;
13-
14-
import lombok.Getter;
15-
import lombok.Setter;
12+
import java.util.ArrayList;
13+
import java.util.List;
1614

1715
public class OrganizationDomain implements EnterpriseConnectionConfig {
1816

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrgMemberServiceImpl.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,13 @@
11
package org.lowcoder.domain.organization.service;
22

3-
import static org.lowcoder.infra.birelation.BiRelationBizType.ORG_MEMBER;
4-
5-
import java.util.Collection;
6-
import java.util.HashSet;
7-
import java.util.List;
8-
import java.util.Map;
9-
103
import lombok.RequiredArgsConstructor;
4+
import lombok.extern.slf4j.Slf4j;
115
import org.apache.commons.lang3.StringUtils;
126
import org.bson.Document;
137
import org.lowcoder.domain.group.model.GroupMember;
148
import org.lowcoder.domain.group.service.GroupMemberService;
159
import org.lowcoder.domain.group.service.GroupService;
16-
import org.lowcoder.domain.organization.model.MemberRole;
17-
import org.lowcoder.domain.organization.model.OrgMember;
18-
import org.lowcoder.domain.organization.model.OrgMemberState;
19-
import org.lowcoder.domain.organization.model.Organization;
20-
import org.lowcoder.domain.organization.model.OrganizationState;
10+
import org.lowcoder.domain.organization.model.*;
2111
import org.lowcoder.infra.annotation.PossibleEmptyMono;
2212
import org.lowcoder.infra.birelation.BiRelation;
2313
import org.lowcoder.infra.birelation.BiRelationService;
@@ -26,15 +16,19 @@
2616
import org.lowcoder.sdk.config.CommonConfig;
2717
import org.lowcoder.sdk.config.CommonConfig.Workspace;
2818
import org.lowcoder.sdk.constants.WorkspaceMode;
29-
import org.springframework.beans.factory.annotation.Autowired;
3019
import org.springframework.context.annotation.Lazy;
3120
import org.springframework.data.domain.PageRequest;
3221
import org.springframework.stereotype.Service;
33-
34-
import lombok.extern.slf4j.Slf4j;
3522
import reactor.core.publisher.Flux;
3623
import reactor.core.publisher.Mono;
3724

25+
import java.util.Collection;
26+
import java.util.HashSet;
27+
import java.util.List;
28+
import java.util.Map;
29+
30+
import static org.lowcoder.infra.birelation.BiRelationBizType.ORG_MEMBER;
31+
3832
@Slf4j
3933
@Service
4034
@RequiredArgsConstructor

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/QueryExecutionServiceImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.lowcoder.sdk.models.QueryExecutionResult;
1717
import org.lowcoder.sdk.query.QueryExecutionContext;
1818
import org.lowcoder.sdk.query.QueryVisitorContext;
19-
import org.springframework.beans.factory.annotation.Autowired;
2019
import org.springframework.stereotype.Service;
2120
import reactor.core.publisher.Mono;
2221

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import org.lowcoder.domain.mongodb.AfterMongodbRead;
1414
import org.lowcoder.domain.mongodb.BeforeMongodbWrite;
1515
import org.lowcoder.domain.mongodb.MongodbInterceptorContext;
16-
import org.lowcoder.sdk.config.SerializeConfig;
16+
import org.lowcoder.sdk.config.JsonViews;
1717
import org.lowcoder.sdk.constants.UiConstants;
1818
import org.lowcoder.sdk.models.HasIdAndAuditing;
1919
import org.lowcoder.sdk.util.JsonUtils;
@@ -143,7 +143,7 @@ public void markAsDeleted() {
143143
public void beforeMongodbWrite(MongodbInterceptorContext context) {
144144
if (CollectionUtils.isNotEmpty(this.apiKeysList)) {
145145
this.apiKeysList.forEach(apiKey -> apiKey.doEncrypt(s -> context.encryptionService().encryptString(s)));
146-
apiKeys = JsonUtils.fromJsonSafely(JsonUtils.toJsonSafely(apiKeysList, SerializeConfig.JsonViews.Internal.class), new TypeReference<>() {
146+
apiKeys = JsonUtils.fromJsonSafely(JsonUtils.toJsonSafely(apiKeysList, JsonViews.Internal.class), new TypeReference<>() {
147147
}, new ArrayList<>());
148148
}
149149
}

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/EmailCommunicationServiceImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import lombok.RequiredArgsConstructor;
55
import lombok.extern.slf4j.Slf4j;
66
import org.lowcoder.sdk.config.CommonConfig;
7-
import org.springframework.beans.factory.annotation.Autowired;
87
import org.springframework.mail.javamail.JavaMailSender;
98
import org.springframework.mail.javamail.MimeMessageHelper;
109
import org.springframework.stereotype.Service;

server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelation.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
package org.lowcoder.infra.birelation;
22

3-
import com.fasterxml.jackson.annotation.JsonIgnore;
4-
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.google.common.base.MoreObjects;
55
import lombok.AllArgsConstructor;
66
import lombok.NoArgsConstructor;
7-
import lombok.Value;
87
import lombok.experimental.SuperBuilder;
98
import lombok.extern.jackson.Jacksonized;
109
import org.lowcoder.sdk.models.HasIdAndAuditing;
1110
import org.springframework.data.mongodb.core.mapping.Document;
1211

13-
import com.fasterxml.jackson.annotation.JsonCreator;
14-
import com.google.common.base.MoreObjects;
15-
16-
import lombok.Builder;
17-
1812
@SuperBuilder
1913
@Jacksonized
2014
@Document

server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package org.lowcoder.infra.birelation;
22

3-
import java.util.Collection;
4-
53
import org.springframework.data.domain.Pageable;
64
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
7-
85
import reactor.core.publisher.Flux;
96
import reactor.core.publisher.Mono;
107

8+
import java.util.Collection;
9+
1110
public interface BiRelationRepository extends ReactiveMongoRepository<BiRelation, String> {
1211

1312
Flux<BiRelation> findByBizTypeAndSourceId(BiRelationBizType bizType, String sourceId);

server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationServiceImpl.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
package org.lowcoder.infra.birelation;
22

3-
import static com.google.common.base.Strings.nullToEmpty;
4-
import static org.apache.commons.lang3.StringUtils.isNotBlank;
5-
import static org.springframework.data.mongodb.core.query.Criteria.where;
6-
7-
import java.util.Collection;
8-
import java.util.List;
9-
3+
import com.google.common.base.Preconditions;
104
import lombok.RequiredArgsConstructor;
115
import org.lowcoder.infra.mongo.MongoUpsertHelper;
126
import org.springframework.data.domain.Pageable;
137
import org.springframework.data.mongodb.core.query.Criteria;
148
import org.springframework.data.mongodb.core.query.Query;
159
import org.springframework.stereotype.Service;
16-
17-
import com.google.common.base.Preconditions;
18-
1910
import reactor.core.publisher.Flux;
2011
import reactor.core.publisher.Mono;
2112

13+
import java.util.Collection;
14+
import java.util.List;
15+
16+
import static com.google.common.base.Strings.nullToEmpty;
17+
import static org.apache.commons.lang3.StringUtils.isNotBlank;
18+
import static org.springframework.data.mongodb.core.query.Criteria.where;
19+
2220
@Service
2321
@RequiredArgsConstructor
2422
public class BiRelationServiceImpl implements BiRelationService {

0 commit comments

Comments
 (0)