Skip to content

Commit 2459677

Browse files
committed
pull from dev
2 parents b8cd0d9 + ad40b5f commit 2459677

File tree

151 files changed

+710
-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.

151 files changed

+710
-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
@@ -2917,6 +2917,7 @@ export const en = {
29172917
"home": {
29182918
"profile": "Your Profile",
29192919
"news": "News",
2920+
"newsLoading": "It will load some seconds.",
29202921
"orgHome" : "Homepage (Org)",
29212922
"yourOrg": "Your Organization",
29222923
"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

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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy