Skip to content

Commit 1b05a0e

Browse files
authored
Merge branch 'dev' into feature/aliyun-oss
2 parents ab18284 + 5cbb9eb commit 1b05a0e

File tree

4,854 files changed

+1623037
-81081
lines changed

Some content is hidden

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

4,854 files changed

+1623037
-81081
lines changed

.github/workflows/docker-images.yml

+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
name: Build lowcoder docker images
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
imageTag:
7+
type: choice
8+
description: 'Choose a tag for built docker image(s)'
9+
required: true
10+
default: 'latest'
11+
options:
12+
- latest
13+
- test
14+
build_allinone:
15+
type: boolean
16+
description: 'Build the All-In-One image'
17+
default: true
18+
build_frontend:
19+
type: boolean
20+
description: 'Build the Frontend image'
21+
default: true
22+
build_nodeservice:
23+
type: boolean
24+
description: 'Build the Node service image'
25+
default: true
26+
build_apiservice:
27+
type: boolean
28+
description: 'Build the API service image'
29+
default: true
30+
push:
31+
branches: dev
32+
paths:
33+
- 'client/**'
34+
- 'server/**'
35+
- 'deploy/docker/**'
36+
release:
37+
types: [released]
38+
39+
jobs:
40+
build:
41+
runs-on: ubuntu-latest
42+
steps:
43+
- name: Set environment variables
44+
shell: bash
45+
run: |
46+
# Get the short SHA of last commit
47+
echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}"
48+
49+
# Get branch name - we don't use github.ref_head_name since we don't build on PRs
50+
echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}"
51+
52+
# Set docker image tag
53+
echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}"
54+
55+
# Control which images to build
56+
echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}"
57+
echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}"
58+
echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}"
59+
echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}"
60+
61+
- name: Checkout lowcoder source
62+
uses: actions/checkout@v4
63+
with:
64+
ref: ${{ env.BRANCH_NAME }}
65+
66+
- name: Log into Docker Hub
67+
uses: docker/login-action@v3
68+
with:
69+
username: ${{ secrets.DOCKER_LOGIN }}
70+
password: ${{ secrets.DOCKER_PASSWORD }}
71+
72+
- name: Setup Docker Buildx with cloud driver
73+
uses: docker/setup-buildx-action@v3
74+
with:
75+
version: "lab:latest"
76+
driver: cloud
77+
endpoint: "lowcoderorg/lowcoder-cloud-builder"
78+
79+
- name: Build and push the all-in-one image
80+
if: ${{ env.BUILD_ALLINONE == 'true' }}
81+
uses: docker/build-push-action@v6
82+
env:
83+
NODE_ENV: production
84+
with:
85+
file: ./deploy/docker/Dockerfile
86+
build-args: |
87+
REACT_APP_ENV=production
88+
REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}"
89+
platforms: |
90+
linux/amd64
91+
linux/arm64
92+
push: true
93+
tags: lowcoderorg/lowcoder-ce:${{ env.IMAGE_TAG }}
94+
95+
- name: Build and push the frontend image
96+
if: ${{ env.BUILD_FRONTEND == 'true' }}
97+
uses: docker/build-push-action@v6
98+
env:
99+
NODE_ENV: production
100+
with:
101+
file: ./deploy/docker/Dockerfile
102+
target: lowcoder-ce-frontend
103+
build-args: |
104+
REACT_APP_ENV=production
105+
REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}"
106+
platforms: |
107+
linux/amd64
108+
linux/arm64
109+
push: true
110+
tags: lowcoderorg/lowcoder-ce-frontend:${{ env.IMAGE_TAG }}
111+
112+
- name: Build and push the node service image
113+
if: ${{ env.BUILD_NODESERVICE == 'true' }}
114+
uses: docker/build-push-action@v6
115+
with:
116+
file: ./deploy/docker/Dockerfile
117+
target: lowcoder-ce-node-service
118+
platforms: |
119+
linux/amd64
120+
linux/arm64
121+
push: true
122+
tags: lowcoderorg/lowcoder-ce-node-service:${{ env.IMAGE_TAG }}
123+
124+
- name: Build and push the API service image
125+
if: ${{ env.BUILD_APISERVICE == 'true' }}
126+
uses: docker/build-push-action@v6
127+
with:
128+
file: ./deploy/docker/Dockerfile
129+
target: lowcoder-ce-api-service
130+
platforms: |
131+
linux/amd64
132+
linux/arm64
133+
push: true
134+
tags: lowcoderorg/lowcoder-ce-api-service:${{ env.IMAGE_TAG }}
135+

.gitignore

+8
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,11 @@ client/packages/lowcoder-plugin-demo/.yarn/install-state.gz
1010
client/packages/lowcoder-plugin-demo/yarn.lock
1111
client/packages/lowcoder-plugin-demo/.yarn/cache/@types-node-npm-16.18.68-56f72825c0-094ae9ed80.zip
1212
application-dev.yml
13+
application-lowcoder.yml
14+
application-debug.yaml
15+
application-dev-localhost.yaml
16+
.vscode/settings.json
17+
.vscode/launch.json
18+
server/api-service/lowcoder-server/src/main/resources/application-local-dev.yaml
19+
translations/locales/node_modules/
20+
.vscode/settings.json

.vscode/settings.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@
33
"activityBar.background": "#2A3012",
44
"titleBar.activeBackground": "#3B431A",
55
"titleBar.activeForeground": "#F9FAF2"
6-
}
6+
},
7+
"java.debug.settings.onBuildFailureProceed": true,
8+
"java.configuration.updateBuildConfiguration": "automatic"
79
}

README.md

+24-13
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
44
<div align="center">
55
<h1 style="border-bottom: none; margin-bottom: 0">Lowcoder</h1>
6-
<h3 style="margin-top: 0">This is the only Platform, which closes the gap between App Development, Website Development and Slide-Presentations.</h3>
6+
<h3 style="margin-top: 0">This is the only Platform, which closes the gap between App Development, Website Development, interactive Slides/Presentations and Collaboration Tools!</h3>
77
<p>
88
Create software applications (internal and customer-facing!) and Meeting/Collaboration tools for your Company and your Customers with minimal coding experience.
99
</p>
@@ -12,40 +12,42 @@
1212

1313
<img src="https://1167272343-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjNgeI0mUzgw6Re92iTOw%2Fuploads%2FnwXJC1XBqP2MvTQitPyo%2FApp%20Editor%20%7C%20Main%20Screeen%20clean.png?alt=media&token=e5fba81b-82a7-4c0e-a15d-baa781d5b13a"/>
1414

15+
1516
## 📢 Use Lowcoder in 3 steps
1617
1. Connect to any data sources or APIs.
17-
2. Build UI with 60+ components.
18+
2. Build flexible and responsive UI with 100+ components and free layout / design possibilities.
1819
3. Share with colleagues and customers.
1920

2021
## 💡 Why Lowcoder
21-
It's cumbersome to create a single app. You had to design user interfaces, write code in multiple languages and frameworks, and understand how all of that code works together.
22+
One platform for everything instead so many different softwares. (like Website Builders, CMS, CRM, POS, ERP, Dashboards & Data Story Visualization, Collaboration Tools).
2223

23-
Low-code/No-code platforms are fast to get started with but quickly become unmaintainable and inflexible. This creates more problems than it solves.
24+
It's cumbersome to create a single app. You had to design user interfaces, write code in multiple languages and frameworks, and understand how all of that code works together.
2425

2526
NewGen Lowcode Platforms like Retool and others are great for their simplicity and flexibility - like Lowcoder too, but they can also be limited in different ways, especially when it comes to "external" applications for everyone.
2627

2728
Lowcoder wants to take a step forward. More specifically, Lowcoder is:
2829
- An all-in-one IDE to create internal or customer-facing (external) apps.
29-
- A place to create, build and share building blocks of web applications.
30+
- A place to create, build and share building blocks of web applications and whole websites.
3031
- The tool and community to support your business, and lower the cost and time to develop interactive applications.
3132
- The only platform to embed Lowcode Apps natively in Websites (no iFrame!)
3233
- The only platform where you can build your own Meeting Tool - like Teams, Zoom or Google Meets, - just in the Lowcode way.
34+
- The only platform which has extensibility plugin architecture [Check Community Contributions](https://www.npmjs.com/search?q=lowcoder-comp)
3335

3436
## 🪄 Features
35-
- **Visual UI builder** with 50+ built-in components. Save 90% of time to build apps.
36-
- **Modules** for reusable (!) component sets in the UI builder.
37-
- **Embed Lowcoder Apps as native parts of any Website** instead of iFrame (!). [Demo](https://github.com/lowcoder-org/lowcoder-sdk-demo)
37+
- **Visual UI builder** with 100+ built-in components. Save 90% of time to build apps.
38+
- **Modules** for reusable (!) embedable component sets in the UI builder.
39+
- **Embed Lowcoder Apps as native parts of any Website** instead of iFrame (!). [Demo](https://lowcoder.cloud/about), [Docu](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/native-embed-sdk)
3840
- **Video Meeting Components** to create your own individual Web-Meeting tool.
3941
- **Query Library** for reusable data queries of your data sources.
4042
- **Custom components** to develop own components and use them in the UI builder.
4143
- **Native Data connections** to PostgreSQL, MongoDB, MySQL, Redis, Elasticsearch, REST API, SMTP, etc.
42-
- **Stream Data connections** to Websockets for realtime data updates & collaboration
44+
- **Stream Data connections** to Websockets for realtime data updates & collaboration! [Docu](https://docs.lowcoder.cloud/lowcoder-documentation/connect-your-data/data-sources-in-lowcoder/websocket-datasource)
4345
- **JavaScript supported everywhere** to transform data, control components, etc.
44-
- **Role-based access control (RBAC)** for granular permission management.
46+
- **Role-based access control (RBAC)** for granular permission management. [Docu](https://docs.lowcoder.cloud/lowcoder-documentation/workspaces-and-teamwork/members-and-groups)
4547
- **Auto-saved and restorable history** for release and version control.
4648
- **App Themes and Theme Editor** to precisely align with your company's brand guidelines.
4749

48-
- **Self Hosting** to use Lowcoder in your internal company network, even behind the firewall.
50+
- **Self Hosting** to use Lowcoder in your internal company network, even behind the firewall. [Docu](https://docs.lowcoder.cloud/lowcoder-documentation/setup-and-run/self-hosting)
4951
- **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://app.lowcoder.cloud)
5052

5153
## 🏆 Comparisons
@@ -59,6 +61,7 @@ Lowcoder wants to take a step forward. More specifically, Lowcoder is:
5961
- Lowcoder is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software.
6062
- In Lowcoder, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool
6163
- Lowcoder is free and you can contribute!
64+
- With Lowcoder you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards.
6265
- The EE Version of Lowcoder comes with a much better pricing model, so you have no "per-user costs".
6366
### Lowcoder vs Appsmith, Tooljet
6467
- Lowcoder has more components and richer configuration than Appsmith and Tooljet.
@@ -87,16 +90,24 @@ And we mean it... Day by day!
8790
## 💻 Deployment Options
8891
[![Deploy to AWS using Stitch](https://img.shields.io/badge/deploy_with-Stitch-%23E369F7?logo=amazonaws&color=%23E369F7)](https://deploy.stitch.tech/lowcoder/lowcoder)
8992

93+
[![Deploy to Elestio](https://img.shields.io/badge/Deploy_to-Elestio-%23E369F7?color=orange)](https://elest.io/open-source/lowcoder)
94+
9095
You can access Lowcoder from [cloud-hosted version](https://app.lowcoder.cloud/) at any time, or use the following resources for self-host Lowcoder on different platforms:
9196
- [Docker](https://docs.lowcoder.cloud/lowcoder-documentation/setup-and-run/self-hosting)
9297

9398
## 💪 Contributing
9499
- Language support: If you have experience with a language that isn't currently supported by our product, send us a pull request.
95100
- Create and share components or demos: If you've created something that might be useful to others, add the link here.
96-
- [Frontend contributing guide](https://github.com/lowcoder-org/lowcoder/tree/main/client)
101+
- [Contributing guide](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/opensource-contribution)
102+
103+
Special tanks goes to [@sjhoeksma](https://github.com/sjhoeksma), [@mousheng](https://github.com/mousheng), [@mat02](https://github.com/mat02), [@jomedya](https://github.com/jomedya) and many other contributors!
97104

98105
## 🥇 Sponsors
99106
Accelerate the growth of Lowcoder and unleash its potential with your Sponsorship – together, we're shaping the future of Lowcode for everyone!
100107
[Be a Sponsor](https://github.com/sponsors/lowcoder-org)
101108

102-
Like ... [@spacegoats-io](https://github.com/spacegoats-io), [@Jomedya](https://github.com/Jomedya), [@CHSchuepfer](https://github.com/CHSchuepfer), Thank you very much!!
109+
Like ... [@Darkjamin](https://github.com/Darkjamin), [@spacegoats-io](https://github.com/spacegoats-io), [@Jomedya](https://github.com/Jomedya), [@CHSchuepfer](https://github.com/CHSchuepfer), Thank you very much!!
110+
111+
## Intro Video
112+
113+
[![Watch the video](https://i.ytimg.com/vi/s4ltAqS0hzM/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGD0gSShyMA8=&rs=AOn4CLAlPOIFdtauythoBKNPXhi6XGwlDQ)](https://youtu.be/s4ltAqS0hzM?feature=shared)

app.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lowcoder",
3-
"description": "An all-in-one IDE to create internal or customer-facing apps. · Visual UI builder with 50+ built-in components",
3+
"description": "A Visual App builder with 120+ built-in components. Create software applications (internal and customer-facing!) and Meeting/Collaboration tools for your Company and your Customers with minimal coding experience.",
44
"repository": "https://github.com/lowcoder-org/lowcoder",
55
"logo": "https://lowcoder.cloud/images/webclip.png",
66
"keywords": [

client/VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.3.1
1+
2.4.7

client/package.json

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "lowcoder-root",
3-
"version": "2.3.1",
2+
"name": "lowcoder-frontend",
3+
"version": "2.4.7",
44
"type": "module",
55
"private": true,
66
"workspaces": [
@@ -13,6 +13,7 @@
1313
"start": "yarn workspace lowcoder start",
1414
"start-win": "LOWCODER_API_SERVICE_URL=http://localhost:3000 yarn start",
1515
"start:ee": "REACT_APP_EDITION=enterprise yarn workspace lowcoder start",
16+
"translate": "node --loader ts-node/esm ./scripts/translate.js",
1617
"build": "yarn node ./scripts/build.js",
1718
"test": "jest && yarn workspace lowcoder-comps test",
1819
"prepare": "yarn workspace lowcoder prepare",
@@ -23,7 +24,7 @@
2324
"devDependencies": {
2425
"@babel/preset-env": "^7.20.2",
2526
"@babel/preset-typescript": "^7.18.6",
26-
"@rollup/plugin-typescript": "^8.5.0",
27+
"@rollup/plugin-typescript": "^12.1.0",
2728
"@testing-library/jest-dom": "^5.16.5",
2829
"@types/file-saver": "^2.0.5",
2930
"@types/jest": "^29.2.2",
@@ -53,6 +54,7 @@
5354
"rimraf": "^3.0.2",
5455
"shelljs": "^0.8.5",
5556
"svgo": "^3.0.0",
57+
"ts-node": "^10.4.0",
5658
"typescript": "^4.8.4",
5759
"whatwg-fetch": "^3.6.2"
5860
},
@@ -71,15 +73,18 @@
7173
"dependencies": {
7274
"@lottiefiles/react-lottie-player": "^3.5.3",
7375
"@remixicon/react": "^4.1.1",
76+
"@supabase/supabase-js": "^2.45.4",
7477
"@testing-library/react": "^14.1.2",
7578
"@testing-library/user-event": "^14.5.1",
7679
"@types/styled-components": "^5.1.34",
7780
"antd-mobile": "^5.34.0",
7881
"chalk": "4",
82+
"flag-icons": "^7.2.1",
7983
"number-precision": "^1.6.0",
84+
"react-countup": "^6.5.3",
8085
"react-player": "^2.11.0",
8186
"resize-observer-polyfill": "^1.5.1",
82-
"rollup": "^4.13.0",
87+
"rollup": "^4.22.5",
8388
"simplebar": "^6.2.5",
8489
"tui-image-editor": "^3.15.3"
8590
}

client/packages/lowcoder-cli-template-typescript/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"react-dom": "^18.2.0",
3333
"react-resize-detector": "^7.0.0",
3434
"typescript": "5.3.3",
35-
"vite": "^4.5.2"
35+
"vite": "^4.5.5"
3636
},
3737
"keywords": [
3838
"Lowcoder, Component, Template, Plugin, Demonstrator"

client/packages/lowcoder-cli-template-typescript/src/i18n/comps/index.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export function getEchartsLocale() {
1414
switch (locale.language) {
1515
case "en":
1616
return "EN";
17+
case "pt":
18+
return "PT";
1719
case "zh":
1820
return "ZH";
1921
}
@@ -24,6 +26,8 @@ export function getCalendarLocale() {
2426
switch (language) {
2527
case "zh":
2628
return "zh-cn";
29+
case "pt":
30+
return "pt-br";
2731
default:
2832
return "en-gb";
2933
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import {en} from "./en"
2+
export const pt: typeof en = {
3+
...en,
4+
"style": {
5+
"textColor": "Cor do Texto",
6+
"contrastText": "Cor de Contraste do Texto",
7+
"accent": "Acento",
8+
"border": "Cor da Borda",
9+
"borderRadius": "Raio da Borda",
10+
"borderWidth": "Grossura da Borda",
11+
"backgroundColor": "Cor de Fundo",
12+
"headerBackground": "Cor do Header",
13+
"footerBackground": "Cor do Footer",
14+
"checkedBackground": "Cor com Seleção",
15+
"uncheckedBackground": "Cor sem Seleção",
16+
"uncheckedBorder": "Borda sem Seleção",
17+
"indicatorBackground": "Cor de Indicação",
18+
"toolbarBackground": "Cor de Fundo da Barra de Informações",
19+
"margin": "Margem",
20+
"padding": "Preenchimento",
21+
"marginLeft": "Margem Esquerda",
22+
"marginRight": "Margem Direita",
23+
"marginTop": "Margem Superior",
24+
"marginBottom": "Margem Inferior",
25+
"minWidth": "Largura Mínima",
26+
"aspectRatio": "Proporção de Tela",
27+
"textSize": "Tamanho do Texto",
28+
},
29+
"component": {
30+
"data": "Dados Hillchart",
31+
},
32+
"methods": {
33+
"setPoint": "Definir Ponto",
34+
"invalidInput": "Entrada Inválida",
35+
"requiredField": "{field} é obrigatório",
36+
}
37+
};

0 commit comments

Comments
 (0)