From 26d115faf66a291bd1514eed5b3729f03cf8127c Mon Sep 17 00:00:00 2001 From: Flowerappeng-org Date: Wed, 18 Sep 2024 12:10:13 -0400 Subject: [PATCH 01/36] Update docker-images.yml --- .github/workflows/docker-images.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index 6303e7fee3..e20ef9364e 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -74,7 +74,7 @@ jobs: with: version: "lab:latest" driver: cloud - endpoint: "lowcoderorg/lowcoder-cloud-builder" + endpoint: "haighis/lowcoder-cloud-builder" - name: Build and push the all-in-one image if: ${{ env.BUILD_ALLINONE == 'true' }} @@ -90,7 +90,7 @@ jobs: linux/amd64 linux/arm64 push: true - tags: lowcoderorg/lowcoder-ce:${{ env.IMAGE_TAG }} + tags: haighis/lowcoder-ce:${{ env.IMAGE_TAG }} - name: Build and push the frontend image if: ${{ env.BUILD_FRONTEND == 'true' }} @@ -107,7 +107,7 @@ jobs: linux/amd64 linux/arm64 push: true - tags: lowcoderorg/lowcoder-ce-frontend:${{ env.IMAGE_TAG }} + tags: haighis/lowcoder-ce-frontend:${{ env.IMAGE_TAG }} - name: Build and push the node service image if: ${{ env.BUILD_NODESERVICE == 'true' }} @@ -119,7 +119,7 @@ jobs: linux/amd64 linux/arm64 push: true - tags: lowcoderorg/lowcoder-ce-node-service:${{ env.IMAGE_TAG }} + tags: haighis/lowcoder-ce-node-service:${{ env.IMAGE_TAG }} - name: Build and push the API service image if: ${{ env.BUILD_APISERVICE == 'true' }} @@ -131,5 +131,5 @@ jobs: linux/amd64 linux/arm64 push: true - tags: lowcoderorg/lowcoder-ce-api-service:${{ env.IMAGE_TAG }} + tags: haighis/lowcoder-ce-api-service:${{ env.IMAGE_TAG }} From 593db19d62e2f2ef7c3069d3e8634276f676fa86 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Sun, 22 Sep 2024 09:40:30 -0400 Subject: [PATCH 02/36] Introducing OpenFlower --- README.md | 54 +--- client/README.md | 4 +- .../packages/lowcoder/src/i18n/locales/de.ts | 2 +- .../packages/lowcoder/src/i18n/locales/en.ts | 28 +- .../packages/lowcoder/src/i18n/locales/pt.ts | 20 +- .../packages/lowcoder/src/i18n/locales/zh.ts | 18 +- .../lowcoder/src/pages/common/help.tsx | 30 +- .../src/pages/setting/settingHome.tsx | 106 +++---- .../src/pages/setting/theme/detail/index.tsx | 2 +- .../src/pages/userAuth/authComponents.tsx | 4 +- .../lowcoder/src/pages/userAuth/register.tsx | 2 +- .../lowcoder/src/util/tutorialUtils.ts | 2 +- deploy/docker/README.md | 36 +-- docs/README.md | 20 +- docs/SUMMARY.md | 16 +- docs/build-applications/app-editor/README.md | 2 +- .../app-editor/bulk-editing.md | 2 +- .../data-selection-and-javascript.md | 8 +- .../app-editor/date-handling.md | 6 +- .../app-editor/keyboard-shortcuts.md | 6 +- docs/build-applications/app-editor/layers.md | 6 +- .../app-editor/use-markdown.md | 10 +- .../app-editor/visual-components/README.md | 2 +- .../app-editor/visual-components/calendar.md | 2 +- .../visual-components/charts-and-graphs.md | 8 +- .../common-component-settings.md | 10 +- .../app-editor/visual-components/drawer.md | 2 +- .../visual-components/file-upload.md | 10 +- .../visual-components/google-maps.md | 18 +- .../app-editor/visual-components/image.md | 2 +- .../visual-components/option-lists.md | 2 +- .../app-editor/visual-components/table.md | 2 +- .../app-interaction/event-handlers.md | 6 +- docs/build-applications/app-navigation.md | 2 +- .../create-a-new-app/README.md | 4 +- .../create-a-new-app/modules.md | 4 +- .../version-and-release-management.md | 2 +- .../themes-and-styling/README.md | 16 +- .../component-styling-possibilities.md | 4 +- .../themes-and-styling/customize-styles.md | 18 +- ...ign-an-efficient-and-user-friendly-form.md | 8 +- .../video-calls-in-lowcoder.md | 18 +- .../write-javascript/built-in-js-functions.md | 6 +- .../write-javascript/javascript-query.md | 4 +- .../write-javascript/temporary-state.md | 14 +- .../data-source-basics/README.md | 8 +- .../configure-ip-allowlists.md | 4 +- .../data-sources-in-lowcoder/README.md | 4 +- .../apis-as-datasource/google-sheets.md | 4 +- .../apis-as-datasource/graphql.md | 6 +- .../apis-as-datasource/rest-api.md | 12 +- .../bigdata-and-olap/big-query.md | 4 +- .../bigdata-and-olap/clickhouse.md | 4 +- .../bigdata-and-olap/elasticsearch.md | 4 +- .../bigdata-and-olap/snowflake.md | 4 +- .../file-storages/README.md | 2 +- .../inmemory-databases/redis.md | 4 +- .../nosql-databases/couchdb.md | 4 +- .../nosql-databases/dynamodb.md | 4 +- .../nosql-databases/mongodb.md | 4 +- .../sql-databases/mariadb.md | 4 +- .../sql-databases/microsoft-sql-server.md | 4 +- .../sql-databases/mysql.md | 4 +- .../sql-databases/oracle.md | 4 +- .../sql-databases/postgresql.md | 4 +- .../websocket-datasource.md | 8 +- docs/connect-your-data/query-basics/README.md | 12 +- .../bind-query-data-to-components.md | 8 +- .../query-basics/query-library.md | 4 +- docs/lowcoder-extension/custom-component.md | 18 +- .../lowcoder-open-rest-api.md | 40 +-- .../opensource-contribution/README.md | 30 +- .../develop-data-source-plugins.md | 14 +- .../develop-ui-components-for-apps.md | 10 +- .../README.md | 14 +- .../day.js-date-handling.md | 4 +- .../custom-branding.md | 12 +- .../lowcoder-overview/the-hello-world-walk.md | 12 +- docs/publish-apps/embedd-an-app/README.md | 16 +- .../embedd-an-app/embed-app-in-html-pages.md | 4 +- .../embedd-an-app/embed-apps-in-react.md | 18 +- .../embedd-an-app/native-embed-sdk/README.md | 14 +- .../build-the-sdk-from-source.md | 2 +- docs/publish-apps/publish-an-app.md | 8 +- docs/publish-apps/share-an-app.md | 8 +- docs/setup-and-run/cloud-and-private-cloud.md | 10 +- docs/setup-and-run/security.md | 28 +- docs/setup-and-run/self-hosting/README.md | 36 +-- .../access-local-database-or-api.md | 10 +- .../self-hosting/google-cloud-platform.md | 2 +- docs/setup-and-run/self-hosting/heroku.md | 8 +- .../self-hosting/lowcoder-version-update.md | 38 +-- .../self-hosting/migration-from-openblocks.md | 12 +- .../self-hosting/raspberry-pi.md | 2 +- .../self-hosting/traefik-loadbalancer.md | 4 +- .../self-hosting/update-mongodb-versions.md | 4 +- docs/workflows/README.md | 10 +- docs/workflows/n8n-integration.md | 86 ++--- .../lowcoder-marketplace.md | 12 +- .../members-and-groups.md | 12 +- docs/workspaces-and-teamwork/oauth/README.md | 8 +- .../oauth/generic-oauth-provider.md | 16 +- docs/workspaces-and-teamwork/oauth/github.md | 4 +- docs/workspaces-and-teamwork/oauth/google.md | 4 +- .../workspaces-and-teamwork/oauth/keycloak.md | 10 +- .../permissions-for-resources.md | 8 +- docs/workspaces-and-teamwork/query-library.md | 8 +- docs/workspaces-and-teamwork/workspaces.md | 8 +- server/api-service/README.md | 2 +- .../service/OrganizationService.java | 2 +- server/node-service/README.md | 4 +- .../src/plugins/lowcoder/lowcoder.spec.json | 296 +++++++++--------- 112 files changed, 757 insertions(+), 783 deletions(-) diff --git a/README.md b/README.md index f599bcb0af..00f567d416 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,10 @@ -> **Note** -> Lowcoder continues from the abandoned Openblocks project. For more information [read our manifesto](MANIFESTO.md). -
-

Lowcoder

-

This is the only Platform, which closes the gap between App Development, Website Development, interactive Slides/Presentations and Collaboration Tools!

-

- Create software applications (internal and customer-facing!) and Meeting/Collaboration tools for your Company and your Customers with minimal coding experience. -

-

Lowcoder is the best Retool, Appsmith or Tooljet Alternative.

-
- - - - -## 📢 Use Lowcoder in 3 steps +## 📢 Use OpenFlower in 3 steps 1. Connect to any data sources or APIs. 2. Build flexible and responsive UI with 100+ components and free layout / design possibilities. 3. Share with colleagues and customers. -## 💡 Why Lowcoder +## 💡 Why OpenFlower One platform for everything instead so many different softwares. (like Website Builders, CMS, CRM, POS, ERP, Dashboards & Data Story Visualization, Collaboration Tools). 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. @@ -36,19 +22,19 @@ Lowcoder wants to take a step forward. More specifically, Lowcoder is: ## 🪄 Features - **Visual UI builder** with 100+ built-in components. Save 90% of time to build apps. - **Modules** for reusable (!) embedable component sets in the UI builder. -- **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) +- **Embed Lowcoder Apps as native parts of any Website** instead of iFrame (!). [Demo](todo), [Docu](https://docs.openflower.org//lowcoder-extension/native-embed-sdk) - **Video Meeting Components** to create your own individual Web-Meeting tool. - **Query Library** for reusable data queries of your data sources. - **Custom components** to develop own components and use them in the UI builder. - **Native Data connections** to PostgreSQL, MongoDB, MySQL, Redis, Elasticsearch, REST API, SMTP, etc. -- **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) +- **Stream Data connections** to Websockets for realtime data updates & collaboration! [Docu](https://docs.openflower.org/connect-your-data/data-sources-in-lowcoder/websocket-datasource) - **JavaScript supported everywhere** to transform data, control components, etc. -- **Role-based access control (RBAC)** for granular permission management. [Docu](https://docs.lowcoder.cloud/lowcoder-documentation/workspaces-and-teamwork/members-and-groups) +- **Role-based access control (RBAC)** for granular permission management. [Docu](https://docs.openflower.org/workspaces-and-teamwork/members-and-groups) - **Auto-saved and restorable history** for release and version control. - **App Themes and Theme Editor** to precisely align with your company's brand guidelines. -- **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) -- **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://app.lowcoder.cloud) +- **Self Hosting** to use Lowcoder in your internal company network, even behind the firewall. [Docu](https://docs.openflower.org/setup-and-run/self-hosting) +- **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://todo) ## 🏆 Comparisons ### Lowcoder vs Teams, Google Meets, Zoom @@ -81,33 +67,21 @@ Lowcoder wants to take a step forward. More specifically, Lowcoder is: If you have any questions, please feel free to contact us or share them with our community. Our team is here ready to help. And we mean it... Day by day! -📮 Best way is to chat with us on [Discord](https://discord.gg/qMG9uTmAx2) - -📑 Search for solutions in our [Documentation](https://docs.lowcoder.cloud/lowcoder-documentation/) +📑 Search for solutions in our [Documentation](https://docs.openflower.org/) -🔎 Submit an issue here on [GitHub](https://github.com/lowcoder-org/lowcoder/issues) +🔎 Submit an issue here on [GitHub](https://github.com/flowerappeng-org/openflower/issues) ## 💻 Deployment Options -[![Deploy to AWS using Stitch](https://img.shields.io/badge/deploy_with-Stitch-%23E369F7?logo=amazonaws&color=%23E369F7)](https://deploy.stitch.tech/lowcoder/lowcoder) +todo -[![Deploy in minutes on Elest.io](https://raw.githubusercontent.com/elestio-examples/element/main/deploy-on-elestio.png)](https://elest.io/open-source/lowcoder) - -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: -- [Docker](https://docs.lowcoder.cloud/lowcoder-documentation/setup-and-run/self-hosting) +You can access Lowcoder from [cloud-hosted demo version](https://demo.openflower.orgTODO/) at any time, or use the following resources for self-host Lowcoder on different platforms: +- [Docker](https://docs.openflower.org/setup-and-run/self-hosting) ## 💪 Contributing - Language support: If you have experience with a language that isn't currently supported by our product, send us a pull request. - Create and share components or demos: If you've created something that might be useful to others, add the link here. -- [Contributing guide](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/opensource-contribution) - -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! - -## 🥇 Sponsors -Accelerate the growth of Lowcoder and unleash its potential with your Sponsorship – together, we're shaping the future of Lowcode for everyone! -[Be a Sponsor](https://github.com/sponsors/lowcoder-org) - -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!! +- [Contributing guide](https://docs.openflower.org/lowcoder-extension/opensource-contribution) ## Intro Video -[![Watch the video](https://i.ytimg.com/vi/s4ltAqS0hzM/maxresdefault.jpg?sqp=-oaymwEmCIAKENAF8quKqQMa8AEB-AH-CYAC0AWKAgwIABABGD0gSShyMA8=&rs=AOn4CLAlPOIFdtauythoBKNPXhi6XGwlDQ)](https://youtu.be/s4ltAqS0hzM?feature=shared) \ No newline at end of file +todo \ No newline at end of file diff --git a/client/README.md b/client/README.md index 2c848ec18f..9bfae63381 100644 --- a/client/README.md +++ b/client/README.md @@ -12,7 +12,7 @@ Simply run the below command to start a backend server. docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce ``` -For more information, view our [docs](https://docs.lowcoder.cloud/lowcoder-documentation/setup-and-run/self-hosting) +For more information, view our [docs](https://docs.openflower.org/lowcoder-documentation/setup-and-run/self-hosting) #### Build Docker image from source @@ -92,7 +92,7 @@ yarn start ``` After executing yarn start, the browser is automatically opened and you enter the component development environment. -Please find more information in our [docs](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/develop-ui-components-for-apps) +Please find more information in our [docs](https://docs.openflower.org/lowcoder-documentation/lowcoder-extension/develop-ui-components-for-apps) 2. Export components diff --git a/client/packages/lowcoder/src/i18n/locales/de.ts b/client/packages/lowcoder/src/i18n/locales/de.ts index 1850c43916..58a90ea0f3 100644 --- a/client/packages/lowcoder/src/i18n/locales/de.ts +++ b/client/packages/lowcoder/src/i18n/locales/de.ts @@ -2398,7 +2398,7 @@ export const de: typeof en = { "jsLibraryDownloadError": "Fehler beim Herunterladen der JavaScript-Bibliothek", "jsLibraryInstallSuccess": "Die JavaScript-Bibliothek wurde erfolgreich installiert", "jsLibraryInstallFailed": "Installation der JavaScript-Bibliothek fehlgeschlagen", - "jsLibraryInstallFailedCloud": "Vielleicht ist die Bibliothek in der Sandbox nicht verfügbar, [Dokumentation](https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", + "jsLibraryInstallFailedCloud": "Vielleicht ist die Bibliothek in der Sandbox nicht verfügbar, [Dokumentation](https://docs.openflower.org/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", "jsLibraryInstallFailedHost": "{message}", "add": "Neu hinzufügen", "jsHelpText": "Füge eine globale Methode oder Variable zur aktuellen Anwendung hinzu.", diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 768b27c28b..bd8a0d5b0f 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -2951,7 +2951,7 @@ export const en = { "jsLibraryDownloadError": "JavaScript Library Download Error", "jsLibraryInstallSuccess": "JavaScript Library Installed Successfully", "jsLibraryInstallFailed": "JavaScript Library Installation Failed", - "jsLibraryInstallFailedCloud": "Perhaps the Library is Not Available in the Sandbox, [Documentation](https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", + "jsLibraryInstallFailedCloud": "Perhaps the Library is Not Available in the Sandbox, [Documentation](https://docs.openflower.org/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", "jsLibraryInstallFailedHost": "{message}", "add": "Add New", "jsHelpText": "Add a Global Method or Variable to the Current Application.", @@ -3658,21 +3658,21 @@ export const en = { }, docUrls: { - docHome: "https://docs.lowcoder.cloud/", - apiDocHome: "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", - components: "https://app.lowcoder.cloud/components/{compType}", - module: "https://docs.lowcoder.cloud/lowcoder-documentation/build-applications/create-a-new-app/modules", + docHome: "https://docs.openflower.org/", + apiDocHome: "https://docs.openflower.org/lowcoder-extension/lowcoder-open-rest-api", + components: "https://flower-us1.bitwebservices.com/components/{compType}", + module: "https://docs.openflower.org/build-applications/create-a-new-app/modules", optionList: "", terms: "https://lowcoder.cloud/terms", privacy: "https://lowcoder.cloud/privacy", aboutUs: "https://lowcoder.cloud/about", - changeLog: "https://github.com/lowcoder-org/lowcoder/releases", + changeLog: "https://github.com/flowerappeng-org/openflower/releases", introVideo: "", - devNpmPlugin: "https://github.com/lowcoder-org/lowcoder-create-component-plugin", + devNpmPlugin: "https://github.com/Flowerappeng-org/openflower-create-component-plugin", devNpmPluginText: "How to develop npm plugin", - useHost: "https://docs.lowcoder.cloud/setup-and-run/self-hosting/access-local-database-or-api", - eventHandlerSlowdown: "https://docs.lowcoder.cloud/build-applications/app-interaction/event-handlers", - thirdLib: "https://docs.lowcoder.cloud/lowcoder-extension/use-third-party-libraries-in-apps", + useHost: "https://docs.openflower.org/setup-and-run/self-hosting/access-local-database-or-api", + eventHandlerSlowdown: "https://docs.openflower.org/build-applications/app-interaction/event-handlers", + thirdLib: "https://docs.openflower.org/lowcoder-extension/use-third-party-libraries-in-apps", thirdLibUrlText: "Use third-party libraries", }, datasourceTutorial: { @@ -3686,9 +3686,9 @@ export const en = { }, queryTutorial: { js: "", - transformer: "https://docs.lowcoder.cloud/business-logic-in-apps/write-javascript/transformers", - tempState: "https://docs.lowcoder.cloud/business-logic-in-apps/write-javascript/temporary-state", - dataResponder: "https://docs.lowcoder.cloud/lowcoder-documentation/business-logic-in-apps/write-javascript/data-responder", + transformer: "https://docs.openflower.org/business-logic-in-apps/write-javascript/transformers", + tempState: "https://docs.openflower.org/business-logic-in-apps/write-javascript/temporary-state", + dataResponder: "https://docs.openflower.org/lowcoder-documentation/business-logic-in-apps/write-javascript/data-responder", }, customComponent: { entryUrl: "https://sdk.lowcoder.cloud/custom_component.html", @@ -3697,7 +3697,7 @@ export const en = { cloneUrl: "/apps/template-import/", }, lowcoderUrl: { - createIssue: "https://github.com/lowcoder-org/lowcoder/issues", + createIssue: "https://github.com/flowerappeng-org/openflower/issues", discord: "https://discord.com/invite/qMG9uTmAx2", }, diff --git a/client/packages/lowcoder/src/i18n/locales/pt.ts b/client/packages/lowcoder/src/i18n/locales/pt.ts index 80a3369b66..0379c5c7ba 100644 --- a/client/packages/lowcoder/src/i18n/locales/pt.ts +++ b/client/packages/lowcoder/src/i18n/locales/pt.ts @@ -3012,7 +3012,7 @@ export const pt: typeof en = { "jsLibraryDownloadError": "Erro ao baixar a biblioteca JavaScript", "jsLibraryInstallSuccess": "Biblioteca JavaScript instalada com sucesso", "jsLibraryInstallFailed": "Falha na instalação da biblioteca JavaScript", - "jsLibraryInstallFailedCloud": "Talvez a biblioteca não esteja disponível na Sandbox, [Documentação](https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", + "jsLibraryInstallFailedCloud": "Talvez a biblioteca não esteja disponível na Sandbox, [Documentação](https://docs.openflower.org/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", "jsLibraryInstallFailedHost": "{message}", "add": "Adicionar Novo", "jsHelpText": "Adicione um método ou variável global ao aplicativo atual.", @@ -3685,10 +3685,10 @@ export const pt: typeof en = { docUrls: { ...en.docUrls, - docHome: "https://docs.lowcoder.cloud/", - apiDocHome: "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", + docHome: "https://docs.openflower.org/", + apiDocHome: "https://docs.openflower.org/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", components: "https://app.lowcoder.cloud/components/{compType}", - module: "https://docs.lowcoder.cloud/lowcoder-documentation/build-applications/create-a-new-app/modules", + module: "https://docs.openflower.org/lowcoder-documentation/build-applications/create-a-new-app/modules", optionList: "", terms: "https://lowcoder.cloud/terms", privacy: "https://lowcoder.cloud/privacy", @@ -3697,9 +3697,9 @@ export const pt: typeof en = { introVideo: "", devNpmPlugin: "https://github.com/lowcoder-org/lowcoder-create-component-plugin", devNpmPluginText: "How to develop npm plugin", - useHost: "https://docs.lowcoder.cloud/setup-and-run/self-hosting/access-local-database-or-api", - eventHandlerSlowdown: "https://docs.lowcoder.cloud/build-applications/app-interaction/event-handlers", - thirdLib: "https://docs.lowcoder.cloud/lowcoder-extension/use-third-party-libraries-in-apps", + useHost: "https://docs.openflower.org/setup-and-run/self-hosting/access-local-database-or-api", + eventHandlerSlowdown: "https://docs.openflower.org/build-applications/app-interaction/event-handlers", + thirdLib: "https://docs.openflower.org/lowcoder-extension/use-third-party-libraries-in-apps", thirdLibUrlText: "Use third-party libraries", }, datasourceTutorial: { @@ -3715,9 +3715,9 @@ export const pt: typeof en = { queryTutorial: { ...en.queryTutorial, js: "", - transformer: "https://docs.lowcoder.cloud/business-logic-in-apps/write-javascript/transformers", - tempState: "https://docs.lowcoder.cloud/business-logic-in-apps/write-javascript/temporary-state", - dataResponder: "https://docs.lowcoder.cloud/lowcoder-documentation/business-logic-in-apps/write-javascript/data-responder", + transformer: "https://docs.openflower.org/business-logic-in-apps/write-javascript/transformers", + tempState: "https://docs.openflower.org/business-logic-in-apps/write-javascript/temporary-state", + dataResponder: "https://docs.openflower.org/lowcoder-documentation/business-logic-in-apps/write-javascript/data-responder", }, customComponent: { ...en.customComponent, diff --git a/client/packages/lowcoder/src/i18n/locales/zh.ts b/client/packages/lowcoder/src/i18n/locales/zh.ts index 2354095615..9323c27c50 100644 --- a/client/packages/lowcoder/src/i18n/locales/zh.ts +++ b/client/packages/lowcoder/src/i18n/locales/zh.ts @@ -2391,7 +2391,7 @@ export const zh: typeof en = { jsLibraryDownloadError: "JavaScript库下载错误", jsLibraryInstallSuccess: "JavaScript库安装成功", jsLibraryInstallFailed: "JavaScript库安装失败", - jsLibraryInstallFailedCloud: "可能该库在沙盒中不可用,[文档](https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", + jsLibraryInstallFailedCloud: "可能该库在沙盒中不可用,[文档](https://docs.openflower.org/build-apps/write-javascript/use-third-party-libraries#manually-import-libraries)\n{message}", jsLibraryInstallFailedHost: "{message}", add: "新增", jsHelpText: "向当前应用程序添加全局方法或变量.", @@ -2556,7 +2556,7 @@ export const zh: typeof en = { }, docUrls: { ...en.docUrls, - docHome: "https://docs.lowcoder.cloud/", + docHome: "https://docs.openflower.org/", components: "https://app.lowcoder.cloud/components/{compType}", module: "", optionList: "", @@ -2565,12 +2565,12 @@ export const zh: typeof en = { aboutUs: "", changeLog: "", introVideo: "", - devNpmPlugin: "https://docs.lowcoder.cloud/build-plugins/develop-your-first-plugin", + devNpmPlugin: "https://docs.openflower.org/build-plugins/develop-your-first-plugin", devNpmPluginText: "如何开发npm插件?", - useHost: "https://docs.lowcoder.cloud/self-hosting/access-local-database-or-api", + useHost: "https://docs.openflower.org/self-hosting/access-local-database-or-api", eventHandlerSlowdown: - "https://docs.lowcoder.cloud/build-apps/event-handlers#debounce-and-throttle", - thirdLib: "https://docs.lowcoder.cloud/build-apps/write-javascript/use-third-party-libraries", + "https://docs.openflower.org/build-apps/event-handlers#debounce-and-throttle", + thirdLib: "https://docs.openflower.org/build-apps/write-javascript/use-third-party-libraries", thirdLibUrlText: "使用第三方插件库", }, datasourceTutorial: { @@ -2586,9 +2586,9 @@ export const zh: typeof en = { queryTutorial: { ...en.queryTutorial, js: "", - transformer: "https://docs.lowcoder.cloud/business-logic-in-apps/write-javascript/transformers", - tempState: "https://docs.lowcoder.cloud/business-logic-in-apps/write-javascript/temporary-state", - dataResponder: "https://docs.lowcoder.cloud/lowcoder-documentation/business-logic-in-apps/write-javascript/data-responder", + transformer: "https://docs.openflower.org/business-logic-in-apps/write-javascript/transformers", + tempState: "https://docs.openflower.org/business-logic-in-apps/write-javascript/temporary-state", + dataResponder: "https://docs.openflower.org/lowcoder-documentation/business-logic-in-apps/write-javascript/data-responder", }, customComponent: { ...en.customComponent, diff --git a/client/packages/lowcoder/src/pages/common/help.tsx b/client/packages/lowcoder/src/pages/common/help.tsx index 2baaba2259..14193fb7f5 100644 --- a/client/packages/lowcoder/src/pages/common/help.tsx +++ b/client/packages/lowcoder/src/pages/common/help.tsx @@ -179,7 +179,7 @@ const docHomeUrl = trans("docUrls.docHome"); const changeLogDocUrl = trans("docUrls.changeLog"); const introVideoUrl = trans("docUrls.introVideo"); const issueUrl = trans("lowcoderUrl.createIssue"); -const discordUrl = trans("lowcoderUrl.discord"); +//const discordUrl = trans("lowcoderUrl.discord"); export function HelpDropdown(props: HelpDropdownProps) { const [showHelp, setShowHelp] = useState(true); @@ -256,9 +256,9 @@ export function HelpDropdown(props: HelpDropdownProps) { case "issue": window.open(issueUrl); return; - case "discord": - window.open(discordUrl); - return; + // case "discord": + // window.open(discordUrl); + // return; case "shortcutList": props.setShowShortcutList?.(true); return; @@ -318,17 +318,17 @@ export function HelpDropdown(props: HelpDropdownProps) { ), } : null, - discordUrl - ? { - key: "discord", - label: ( - - - {trans("help.chat")} - - ), - } - : null, + // discordUrl + // ? { + // key: "discord", + // label: ( + // + // + // {trans("help.chat")} + // + // ), + // } + // : null, { key: "editorTutorial", label: ( diff --git a/client/packages/lowcoder/src/pages/setting/settingHome.tsx b/client/packages/lowcoder/src/pages/setting/settingHome.tsx index 086cfe55c3..13c9255897 100644 --- a/client/packages/lowcoder/src/pages/setting/settingHome.tsx +++ b/client/packages/lowcoder/src/pages/setting/settingHome.tsx @@ -78,57 +78,57 @@ export function SettingHome() { // Premium features - { - key: SettingPageEnum.Environments, - label: ( - - {trans("settings.environments")} - - - ), - disabled: true, - }, - { - key: SettingPageEnum.AppUsage, - label: ( - - {trans("settings.appUsage")} - - - ), - disabled: true, - }, - { - key: SettingPageEnum.Audit, - label: ( - - {trans("settings.audit")} - {(!showAuditLog(config) || !currentOrgAdmin(user)) && ( - - )} - - ), - disabled: !showAuditLog(config) || !currentOrgAdmin(user), - }, - { - key: SettingPageEnum.Branding, - label: ( - - {trans("settings.branding")} - {(!isEE() || - !currentOrgAdmin(user) || - !enableCustomBrand(config) || - (!isSelfDomain(config) && !isEnterpriseMode(config))) && ( - - )} - - ), - disabled: - !isEE() || - !currentOrgAdmin(user) || - !enableCustomBrand(config) || - (!isSelfDomain(config) && !isEnterpriseMode(config)), - }, + // { + // key: SettingPageEnum.Environments, + // label: ( + // + // {trans("settings.environments")} + // + // + // ), + // disabled: true, + // }, + // { + // key: SettingPageEnum.AppUsage, + // label: ( + // + // {trans("settings.appUsage")} + // + // + // ), + // disabled: true, + // }, + // { + // key: SettingPageEnum.Audit, + // label: ( + // + // {trans("settings.audit")} + // {(!showAuditLog(config) || !currentOrgAdmin(user)) && ( + // + // )} + // + // ), + // disabled: !showAuditLog(config) || !currentOrgAdmin(user), + // }, + // { + // key: SettingPageEnum.Branding, + // label: ( + // + // {trans("settings.branding")} + // {(!isEE() || + // !currentOrgAdmin(user) || + // !enableCustomBrand(config) || + // (!isSelfDomain(config) && !isEnterpriseMode(config))) && ( + // + // )} + // + // ), + // disabled: + // !isEE() || + // !currentOrgAdmin(user) || + // !enableCustomBrand(config) || + // (!isSelfDomain(config) && !isEnterpriseMode(config)), + // }, ]; {/* { @@ -151,9 +151,9 @@ export function SettingHome() { } } items={items} /> - + {/*
If you are interested in early access to the upcoming Enterprise Edition, please contact us: service@lowcoder.cloud
-
+
*/} {selectKey === SettingPageEnum.UserGroups && } {selectKey === SettingPageEnum.Organization && } diff --git a/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx b/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx index 513a598cfc..69504f8fad 100644 --- a/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx +++ b/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx @@ -437,7 +437,7 @@ class ThemeDetailPage extends React.Component
Currently, the preview of Font-Family here in the Theme Settings may now show the right font. However, the Font Family Attribute comes into effect in all your apps, which uses this Theme. -

Remember, you neded to set the CSS inclue at App- or Workspace Level
+

Remember, you neded to set the CSS inclue at App- or Workspace Level
))} diff --git a/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx b/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx index 9254b520d4..8106900e3b 100644 --- a/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx @@ -153,10 +153,10 @@ export const AuthContainer = (props: { {props.children} { props.subHeading && ( - {"Lowcoder + {/* {"Lowcoder {props.subHeading} - + */} )} diff --git a/client/packages/lowcoder/src/pages/userAuth/register.tsx b/client/packages/lowcoder/src/pages/userAuth/register.tsx index 88e6cadd7f..f68a5c567f 100644 --- a/client/packages/lowcoder/src/pages/userAuth/register.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/register.tsx @@ -107,7 +107,7 @@ function UserRegister() { > {trans("userAuth.register")} - setSubmitBtnDisable(!e.target.checked)} /> + {/* setSubmitBtnDisable(!e.target.checked)} /> */} {organizationId && ( > = { es: trans("datasourceTutorial.es"), smtp: trans("datasourceTutorial.smtp"), clickHouse: trans("datasourceTutorial.clickHouse"), - googleSheets: "https://docs.lowcoder.cloud/connect-your-data/apis-as-datasource/google-sheets", + googleSheets: "https://docs.openflower.org/connect-your-data/apis-as-datasource/google-sheets", }; export const getDatasourceTutorial = (datasourceType: DatasourceType) => { diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 607aa7fbb3..a2205184ff 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -1,4 +1,4 @@ -# Lowcoder docker image +# OpenFlower docker image Included Dockerfile can be used to build an **all-in-one** image with all required services installed and running within one container, or separate images for frontend and backend services. @@ -7,7 +7,7 @@ For examples on running the all-in-one image or the multi image deployment see * ## all-in-one image -This image contains all services needed to run Lowcoder platform in one container. +This image contains all services needed to run OpenFlower platform in one container. ### Building the image @@ -37,11 +37,11 @@ Image can be configured by setting environment variables. | `LOWCODER_DB_ENCRYPTION_SALT` | Salt used for encrypting password | `lowcoder.org` | | `LOWCODER_CORS_DOMAINS` | CORS allowed domains | `*` | | `LOWCODER_PUBLIC_URL` | The URL of the public User Interface | `localhost:3000` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | -| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | +| `LOWCODER_MAX_REQUEST_SIZE` | OpenFlower max request size | `20m` | +| `LOWCODER_MAX_QUERY_TIMEOUT` | OpenFlower max query timeout (in seconds) | `120` | | `LOWCODER_API_RATE_LIMIT` | Number of max Request per Second | `100` | -| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | -| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | +| `LOWCODER_API_SERVICE_URL` | OpenFlower API service URL | `http://localhost:8080` | +| `LOWCODER_NODE_SERVICE_URL` | OpenFlower Node service (js executor) URL | `http://localhost:6060` | | `LOWCODER_MAX_ORGS_PER_USER` | Default maximum organizations per user | `100` | | `LOWCODER_MAX_MEMBERS_PER_ORG` | Default maximum members per organization | `1000` | | `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` | @@ -51,7 +51,7 @@ Image can be configured by setting environment variables. | `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control if users create their own Workspace automatic when Sign Up | `true` | | `LOWCODER_CREATE_WORKSPACE_ON_SIGNUP` | IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up | `true` | | `LOWCODER_MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` | -| `LOWCODER_SUPERUSER_USERNAME` | Username of the Super-User of an Lowcoder Installation | `admin@localhost` | +| `LOWCODER_SUPERUSER_USERNAME` | Username of the Super-User of an OpenFlower Installation | `admin@localhost` | | `LOWCODER_SUPERUSER_PASSWORD` | Control if not to show Apps on the local Marketplace to anonymous users | | @@ -80,7 +80,7 @@ To enable secure Password Reset flow for the users, you need to configure your o ## Building api-service image -Standalone Lowcoder api-service image. +Standalone OpenFlower api-service image. ### Building the image @@ -109,13 +109,13 @@ Image can be configured by setting environment variables. | `LOWCODER_MAX_GROUPS_PER_ORG` | Default maximum groups per organization | `100` | | `LOWCODER_MAX_APPS_PER_ORG` | Default maximum applications per organization | `1000` | | `LOWCODER_MAX_DEVELOPERS` | Default maximum developers | `100` | -| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | +| `LOWCODER_MAX_QUERY_TIMEOUT` | OpenFlower max query timeout (in seconds) | `120` | +| `LOWCODER_MAX_REQUEST_SIZE` | OpenFlower max request size | `20m` | | `LOWCODER_WORKSPACE_MODE` | SAAS to activate, ENTERPRISE to switch off - Workspaces | `SAAS` | | `LOWCODER_EMAIL_SIGNUP_ENABLED` | Control is users can create their own Workspace when Sign Up | `true` | | `LOWCODER_CREATE_WORKSPACE_ON_SIGNUP` | IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up | `true` | | `LOWCODER_MARKETPLACE_PRIVATE_MODE` | Control if not to show Apps on the local Marketplace to anonymous users | `true` | -| `LOWCODER_SUPERUSER_USERNAME` | Username of the Super-User of an Lowcoder Installation | `admin@localhost` | +| `LOWCODER_SUPERUSER_USERNAME` | Username of the Super-User of an OpenFlower Installation | `admin@localhost` | | `LOWCODER_SUPERUSER_PASSWORD` | Control if not to show Apps on the local Marketplace to anonymous users | | 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) @@ -142,7 +142,7 @@ To enable secure Password Reset flow for the users, you need to configure your o ## Building node-service image -Standalone Lowcoder node-service (JS executor) image. +Standalone OpenFlower node-service (JS executor) image. ### Building the image @@ -160,11 +160,11 @@ Image can be configured by setting environment variables. | --------------------------------| --------------------------------------------------------------------| ------------------------------------------------------- | | `LOWCODER_PUID` | ID of user running services. It will own all created logs and data. | `9001` | | `LOWCODER_PGID` | ID of group of the user running services. | `9001` | -| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | +| `LOWCODER_API_SERVICE_URL` | OpenFlower API service URL | `http://localhost:8080` | ## Building web frontend image -Standalone Lowcoder web frontend image. +Standalone OpenFlower web frontend image. ### Building the image @@ -182,9 +182,9 @@ Image can be configured by setting environment variables. | --------------------------------| --------------------------------------------------------------------| ------------------------------------------------------- | | `LOWCODER_PUID` | ID of user running services. It will own all created logs and data. | `9001` | | `LOWCODER_PGID` | ID of group of the user running services. | `9001` | -| `LOWCODER_MAX_QUERY_TIMEOUT` | Lowcoder max query timeout (in seconds) | `120` | -| `LOWCODER_MAX_REQUEST_SIZE` | Lowcoder max request size | `20m` | -| `LOWCODER_API_SERVICE_URL` | Lowcoder API service URL | `http://localhost:8080` | -| `LOWCODER_NODE_SERVICE_URL` | Lowcoder Node service (js executor) URL | `http://localhost:6060` | +| `LOWCODER_MAX_QUERY_TIMEOUT` | OpenFlower max query timeout (in seconds) | `120` | +| `LOWCODER_MAX_REQUEST_SIZE` | OpenFlower max request size | `20m` | +| `LOWCODER_API_SERVICE_URL` | OpenFlower API service URL | `http://localhost:8080` | +| `LOWCODER_NODE_SERVICE_URL` | OpenFlower Node service (js executor) URL | `http://localhost:6060` | diff --git a/docs/README.md b/docs/README.md index 490bec541e..fc3b8a5ef0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,28 +1,28 @@ -# Lowcoder overview +# OpenFlower overview -## What is Lowcoder? +## What is OpenFlower? -Lowcoder is an easy-to-use open-source low-code platform to build internal & customer-facing, embeddable apps within minutes. +OpenFlower is an easy-to-use open-source low-code platform to build internal & customer-facing, embeddable apps within minutes. -Traditionally, building an app requires complex frontend and backend interactions with hundreds and thousands of lines of code, not to mention work on packaging, integration, and deployment. Lowcoder significantly reduces the work you need to do to build and publish an app. +Traditionally, building an app requires complex frontend and backend interactions with hundreds and thousands of lines of code, not to mention work on packaging, integration, and deployment. OpenFlower significantly reduces the work you need to do to build and publish an app. -In Lowcoder, all you need to do is drag and drop pre-built or self-customized components onto the What-You-See-Is-What-You-Get (WYSIWYG) canvas, along with ready-to-connect databases and APIs, Lowcoder helps you build an app quickly and focus on business logic. +In OpenFlower, all you need to do is drag and drop pre-built or self-customized components onto the What-You-See-Is-What-You-Get (WYSIWYG) canvas, along with ready-to-connect databases and APIs, OpenFlower helps you build an app quickly and focus on business logic.
-## Why choose Lowcoder? +## Why choose OpenFlower? * **Open source:** For cloud and self-hosted deployment. Makes your ideas more feasible. * **All-in-one platform:** Connection to all kinds of data sources and APIs such as Databases, Streaming sources, and Restful APIs, and ensures your data security. -* **Embed Apps everywhere:** Apps, that are created with Lowcoder can get embedded natively into Websites, Apps, and Mobile Apps. +* **Embed Apps everywhere:** Apps, that are created with OpenFlower can get embedded natively into Websites, Apps, and Mobile Apps. * **High scalability:** The deployment options allow a single container image, but also a scalable multi-container deployment, so any kind of load is manageable. -* **Extensibility:** Add functionality in Lowcoder at multiple places. From simple custom components and external libraries to new data source plugins. +* **Extensibility:** Add functionality in OpenFlower at multiple places. From simple custom components and external libraries to new data source plugins. * **Clean design:** Follows the principles of [Ant Design](https://ant.design/) and supports display on screens of different sizes for Desktop and Mobile Applications. * **Built-in features:** Multi-tenant management, Multi-workspaces management, theming, mobile screen, navigation support, fine-grained access control, and audit logs. -## How to build Apps in Lowcoder? +## How to build Apps in OpenFlower? -Building an app [takes 5 steps](lowcoder-overview/the-hello-world-walk.md): +Building an app [takes 5 steps](OpenFlower-overview/the-hello-world-walk.md): 1. Quickly and securely connect to your data sources, including PostgreSQL, MongoDB, and online APIs. 2. Create Data queries visually or by SQL or set up request parameters to connect APIs. diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index ea287bdf1d..cb32a3d674 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,6 +1,6 @@ # Table of contents -* [Lowcoder overview](README.md) +* [OpenFlower overview](README.md) * [The "Hello World" walk](lowcoder-overview/the-hello-world-walk.md) ## 🆕 Setup and run @@ -13,7 +13,7 @@ * [Raspberry Pi](setup-and-run/self-hosting/raspberry-pi.md) * [Migration from Openblocks](setup-and-run/self-hosting/migration-from-openblocks.md) * [Update MongoDB Versions](setup-and-run/self-hosting/update-mongodb-versions.md) - * [Lowcoder Version Update](setup-and-run/self-hosting/lowcoder-version-update.md) + * [OpenFlower Version Update](setup-and-run/self-hosting/lowcoder-version-update.md) * [Traefik loadbalancer](setup-and-run/self-hosting/traefik-loadbalancer.md) * [SMTP Server](setup-and-run/self-hosting/smtp-server.md) * [Security](setup-and-run/security.md) @@ -29,7 +29,7 @@ * [GitHub](workspaces-and-teamwork/oauth/github.md) * [Generic OAuth Provider](workspaces-and-teamwork/oauth/generic-oauth-provider.md) * [Query library](workspaces-and-teamwork/query-library.md) -* [Lowcoder Marketplace](workspaces-and-teamwork/lowcoder-marketplace.md) +* [OpenFlower Marketplace](workspaces-and-teamwork/lowcoder-marketplace.md) ## ✨ Build Applications @@ -62,13 +62,13 @@ * [Design an efficient and user-friendly form](build-applications/themes-and-styling/design-an-efficient-and-user-friendly-form.md) * [Customize Styles](build-applications/themes-and-styling/customize-styles.md) * [Component Styling Possibilities](build-applications/themes-and-styling/component-styling-possibilities.md) -* [Video Calls in Lowcoder](build-applications/video-calls-in-lowcoder.md) +* [Video Calls in OpenFlower](build-applications/video-calls-in-lowcoder.md) ## 🚀 Connect your Data * [Data source basics](connect-your-data/data-source-basics/README.md) * [Configure IP allowlists](connect-your-data/data-source-basics/configure-ip-allowlists.md) -* [Data sources in Lowcoder](connect-your-data/data-sources-in-lowcoder/README.md) +* [Data sources in OpenFlower](connect-your-data/data-sources-in-lowcoder/README.md) * [APIs as Datasource](connect-your-data/data-sources-in-lowcoder/apis-as-datasource/README.md) * [REST API](connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md) * [GraphQL](connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md) @@ -121,7 +121,7 @@ * [Native embed SDK](publish-apps/embedd-an-app/native-embed-sdk/README.md) * [Build the SDK from Source](publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md) -## 🔥 Lowcoder Extension +## 🔥 OpenFlower Extension * [Opensource Contribution](lowcoder-extension/opensource-contribution/README.md) * [Develop UI components for Apps](lowcoder-extension/opensource-contribution/develop-ui-components-for-apps.md) @@ -130,8 +130,8 @@ * [Day.js Date handling](lowcoder-extension/use-third-party-libraries-in-apps/day.js-date-handling.md) * [Import your own JavaScript Library](lowcoder-extension/use-third-party-libraries-in-apps/import-your-own-javascript-library.md) * [Custom component](lowcoder-extension/custom-component.md) -* [Lowcoder Open REST API](lowcoder-extension/lowcoder-open-rest-api.md) +* [OpenFlower Open REST API](lowcoder-extension/lowcoder-open-rest-api.md) -## Lowcoder for Enterprise +## OpenFlower for Enterprise * [Custom branding](lowcoder-for-enterprise/custom-branding.md) diff --git a/docs/build-applications/app-editor/README.md b/docs/build-applications/app-editor/README.md index c08cf4b69b..416f59351d 100644 --- a/docs/build-applications/app-editor/README.md +++ b/docs/build-applications/app-editor/README.md @@ -1,6 +1,6 @@ # App Editor -In Lowcoder, the app editor is where you assemble components, create queries to interact with data, and publish your apps. It consists of five areas: +In OpenFlower, the app editor is where you assemble components, create queries to interact with data, and publish your apps. It consists of five areas: 1. Toolbar on top 2. Canvas (yellow) diff --git a/docs/build-applications/app-editor/bulk-editing.md b/docs/build-applications/app-editor/bulk-editing.md index 13c3f52b0a..075c7ffead 100644 --- a/docs/build-applications/app-editor/bulk-editing.md +++ b/docs/build-applications/app-editor/bulk-editing.md @@ -1,6 +1,6 @@ # Bulk Editing -Settings & Properties for components can sometimes be repetitive. That means you would like, for example, to change the Background Color for some components. Till Lowcoder Version 2.3.1 you needed to set up this for each Component individually, which means a lot of Clicks. +Settings & Properties for components can sometimes be repetitive. That means you would like, for example, to change the Background Color for some components. Till OpenFlower Version 2.3.1 you needed to set up this for each Component individually, which means a lot of Clicks. With Version 2.3.1 we introduce the ability to edit Properties for many selected Components at once. diff --git a/docs/build-applications/app-editor/data-selection-and-javascript.md b/docs/build-applications/app-editor/data-selection-and-javascript.md index 6fd5c828a2..9e2220c2f6 100644 --- a/docs/build-applications/app-editor/data-selection-and-javascript.md +++ b/docs/build-applications/app-editor/data-selection-and-javascript.md @@ -1,6 +1,6 @@ # Data selection & Javascript -When building apps in Lowcoder, you can use JavaScript (JS) to access and transform data from objects, including components, queries, and global parameters. When writing JavaScript inside SQL editor, component property's input box, table column settings, etc., always remember to enclose all your JS code inside double curly braces, such as \ +When building apps in OpenFlower, you can use JavaScript (JS) to access and transform data from objects, including components, queries, and global parameters. When writing JavaScript inside SQL editor, component property's input box, table column settings, etc., always remember to enclose all your JS code inside double curly braces, such as \ `{{'hello, ' + currentUser.name}}`. ## Access data @@ -9,7 +9,7 @@ Objects have globally unique names, such as `input1`, `query1`, and `table1`. Yo ### Access data in an object -Lowcoder supports you accessing the data in an object using dot notation (`objectName.keyName`). For example,`{{userInfo.selectedRow.userName}}` accesses the `userName` value in the currently selected row of **Table** `userInfo`. +OpenFlower supports you accessing the data in an object using dot notation (`objectName.keyName`). For example,`{{userInfo.selectedRow.userName}}` accesses the `userName` value in the currently selected row of **Table** `userInfo`. When writing JS in `{{ }}` to access values in an object, add a `.` after the object name to trigger an autosuggest menu in case you are not sure about objects' built-in properties or methods. @@ -72,7 +72,7 @@ The following JS code examples are illegal in `{{ }}`. }} ``` -If you wish to orchestrate multiple lines of JavaScript, Lowcoder supports you writing such code in transformers. +If you wish to orchestrate multiple lines of JavaScript, OpenFlower supports you writing such code in transformers. ```javascript // codes inside a transformer @@ -87,7 +87,7 @@ return "Option 3"; ## View data -Data from queries can be complicated and nested in real cases. Viewing data provides you with the detailed structure of data in objects and helps you understand your data better. Before accessing or transforming data, you may need to view the data and its structure first. Lowcoder offers three ways to view data. +Data from queries can be complicated and nested in real cases. Viewing data provides you with the detailed structure of data in objects and helps you understand your data better. Before accessing or transforming data, you may need to view the data and its structure first. OpenFlower offers three ways to view data. ### View query result diff --git a/docs/build-applications/app-editor/date-handling.md b/docs/build-applications/app-editor/date-handling.md index c369d99b51..cc85f50946 100644 --- a/docs/build-applications/app-editor/date-handling.md +++ b/docs/build-applications/app-editor/date-handling.md @@ -2,7 +2,7 @@ Day.js is a lightweight JavaScript library for parsing, validating, manipulating, and formatting dates and times, designed to be a simpler and smaller alternative to Moment.js. -Day.js is already included in Lowcoder, so you can directly begin using it to work with dates and times by creating Day.js objects using `dayjs()`. This function accepts various formats, including strings, Date objects, and UNIX timestamps, allowing for flexible date and time manipulation such as adding or subtracting time, formatting dates, and comparing dates. +Day.js is already included in OpenFlower, so you can directly begin using it to work with dates and times by creating Day.js objects using `dayjs()`. This function accepts various formats, including strings, Date objects, and UNIX timestamps, allowing for flexible date and time manipulation such as adding or subtracting time, formatting dates, and comparing dates. {% hint style="info" %} You can read how to use Day.js in their excellent Documentation here: [https://day.js.org/docs/en/get-set/get](https://day.js.org/docs/en/get-set/get) @@ -12,13 +12,13 @@ You can read how to use Day.js in their excellent Documentation here: [https://d To enhance Day.js's functionality, developers can utilize its plugin system, which allows for the inclusion of additional features not available in the core library. -Since Lowcoder Version 2.3.1, we load all DayJS plugins automatically +Since OpenFlower Version 2.3.1, we load all DayJS plugins automatically {% hint style="info" %} An overview of Day.js Plugins: [https://day.js.org/docs/en/plugin/plugin](https://day.js.org/docs/en/plugin/plugin) {% endhint %} -You can use Day.js Plugins at all places in Lowcoder that support \{{ \}} Handlebar notation. +You can use Day.js Plugins at all places in OpenFlower that support \{{ \}} Handlebar notation. ```javascript Quarter: {{dayjs().format('Q')}} diff --git a/docs/build-applications/app-editor/keyboard-shortcuts.md b/docs/build-applications/app-editor/keyboard-shortcuts.md index d7e80cd743..1fede535bf 100644 --- a/docs/build-applications/app-editor/keyboard-shortcuts.md +++ b/docs/build-applications/app-editor/keyboard-shortcuts.md @@ -4,11 +4,11 @@ Keyboard shortcuts are a powerful tool that can greatly improve productivity and efficiency when working on a computer. With the ability to assign custom keystrokes to frequently used commands, tasks can be completed quickly and with minimal effort. This is particularly useful for individuals who rely heavily on keyboard input, such as programmers, writers, or designers. -Keyboard shortcuts have been around for decades, and most software applications come with a set of default shortcuts. Lowcoder offers built-in keyboard shortcuts to help you work on the interface faster and more efficiently with improved controlling precision. +Keyboard shortcuts have been around for decades, and most software applications come with a set of default shortcuts. OpenFlower offers built-in keyboard shortcuts to help you work on the interface faster and more efficiently with improved controlling precision. ### Global -Global keyboard shortcuts across Lowcoder interfaces. +Global keyboard shortcuts across OpenFlower interfaces. | Shortcut | Description | | -------- | ------------------------- | @@ -67,5 +67,5 @@ Keyboard shortcuts in the Text editor. You can define custom keyboard shortcuts at app-level. Go to ⚙️ on the left side-bar > **App settings** > **Custom shortcuts**. Click **+ Add** to add new shortcuts for specific actions. Then, you can click a custom shortcut to midify it or click the three dots `···` to delete it. {% hint style="info" %} -Lowcoder keyboard shortcuts are better set to avoid conflicts with the browser's keyboard shortcuts, in case they can not be successfully triggered. +OpenFlower keyboard shortcuts are better set to avoid conflicts with the browser's keyboard shortcuts, in case they can not be successfully triggered. {% endhint %} diff --git a/docs/build-applications/app-editor/layers.md b/docs/build-applications/app-editor/layers.md index cab8bc317d..5d8384e83c 100644 --- a/docs/build-applications/app-editor/layers.md +++ b/docs/build-applications/app-editor/layers.md @@ -1,10 +1,10 @@ # Layers -Lowcoder offers the fantastic feature of enabling a mode where components can freely overlap on the canvas, combined with precise control over the layering of these components. This advanced functionality diverges from traditional grid-based placement constraints, offering developers and designers unparalleled UI/UX creation flexibility. +OpenFlower offers the fantastic feature of enabling a mode where components can freely overlap on the canvas, combined with precise control over the layering of these components. This advanced functionality diverges from traditional grid-based placement constraints, offering developers and designers unparalleled UI/UX creation flexibility. -The control over component layering empowers you to build interfaces that are not only highly functional but also aesthetically pleasing. Layers are an essential step towards the Vision of Lowcoder to merge the ability to create "Apps, Websites, Presentations, and Collaboration Tools" inside a single Lowcode Platform. +The control over component layering empowers you to build interfaces that are not only highly functional but also aesthetically pleasing. Layers are an essential step towards the Vision of OpenFlower to merge the ability to create "Apps, Websites, Presentations, and Collaboration Tools" inside a single Lowcode Platform. -From Version 2.3.1 on we introduce this feature in several steps and develop it further by the feedback of the Lowcoder Community. +From Version 2.3.1 on we introduce this feature in several steps and develop it further by the feedback of the OpenFlower Community. ### Step 1 - Simple Layers diff --git a/docs/build-applications/app-editor/use-markdown.md b/docs/build-applications/app-editor/use-markdown.md index e82feee993..f886904572 100644 --- a/docs/build-applications/app-editor/use-markdown.md +++ b/docs/build-applications/app-editor/use-markdown.md @@ -1,6 +1,6 @@ # Use Markdown -Lowcoder supports you using the lightweight markup language Markdown to format texts in your app, such as changing the font size, inserting code, and adding a list. You can also embed HTML-formatted text in Markdown for more styling options. +OpenFlower supports you using the lightweight markup language Markdown to format texts in your app, such as changing the font size, inserting code, and adding a list. You can also embed HTML-formatted text in Markdown for more styling options. Use Markdown in **Text** and **Table** components. @@ -9,7 +9,7 @@ Use Markdown in **Text** and **Table** components. ## Markdown basics -All Markdown syntax is valid in Lowcoder. +All Markdown syntax is valid in OpenFlower. * **Headings**: Use hashtag (#) before heading. More hashtags, lower heading level. * **Paragraphs**: Use a blank line to separate texts into paragraphs. @@ -19,7 +19,7 @@ All Markdown syntax is valid in Lowcoder. * **Lists**: Use hyphen (-), asterisk (∗), or plus sign (+) followed by a whitespace to create an unordered list, and use numbers followed by a period (.) to create an ordered list. * **Code**: Use backticks (\`) before and after code to denote `` `code` `` in plain text, and three backticks (\`\`\`) to present ` ```code block``` `. * **Horizontal rules**: Use at least three asterisks (∗∗∗), hyphens (---), or underscores (\_ \_ \_) at the beginning of a line to create a horizontal rule. -* **Links**: Use square brackets (\[]) for the display text and parenthesis (()) for the link address. Note that no space should be inbetween. For example, `[Lowcoder](https://docs.Lowcoder.cloud)`. +* **Links**: Use square brackets (\[]) for the display text and parenthesis (()) for the link address. Note that no space should be inbetween. For example, `[OpenFlower](https://docs.openflower.org)`. * **Images**: Use an exclamation mark (!) to start an image shiinsertion, and then use square bracket (\[]) for the alternative text and parenthesis (()) for the link address or source path. The caption can follow the parentheses or start at a new line. * **Escaping characters**: Use backslash (\\) to display the special symbols that Markdown uses. For instance, to print ` `` ` in plain text, you should use `` \`\` `` in Markdown. @@ -36,10 +36,10 @@ You can also use GitHub Flavored Markdown (GFM) extensions for additional syntax ## HTML support -In Lowcoder, you can use most HTML tags and properties. For more information, see [Embed HTML in Markdown](https://www.markdownguide.org/basic-syntax/#html). +In OpenFlower, you can use most HTML tags and properties. For more information, see [Embed HTML in Markdown](https://www.markdownguide.org/basic-syntax/#html). {% hint style="warning" %} -For security reasons, a few HTML tags including **iframe** and **script** are not permitted in Lowcoder. +For security reasons, a few HTML tags including **iframe** and **script** are not permitted in OpenFlower. {% endhint %} ### Appendix: Supported HTML tags diff --git a/docs/build-applications/app-editor/visual-components/README.md b/docs/build-applications/app-editor/visual-components/README.md index 1adf73ef74..5d83dceb2d 100644 --- a/docs/build-applications/app-editor/visual-components/README.md +++ b/docs/build-applications/app-editor/visual-components/README.md @@ -4,7 +4,7 @@ We maintain a list of all components that are available or planned. {% embed url="https://app.lowcoder.cloud/apps/648cd237a0308d4efcc64571/view" %} -With Version 2.0.0 of Lowcoder there are 56 Components. +With Version 2.0.0 of OpenFlower there are 56 Components. These components share a number of [common settings and configurations](common-component-settings.md). diff --git a/docs/build-applications/app-editor/visual-components/calendar.md b/docs/build-applications/app-editor/visual-components/calendar.md index 95ddcedfd8..17480646a6 100644 --- a/docs/build-applications/app-editor/visual-components/calendar.md +++ b/docs/build-applications/app-editor/visual-components/calendar.md @@ -1,6 +1,6 @@ # Calendar -The Calendar Component is a feature-rich way to organize and edit date and calendar entries in Lowcoder. To offer the best experience for Calendars, we integrated the [fullcalendar.io](https://fullcalendar.io/docs) Project. +The Calendar Component is a feature-rich way to organize and edit date and calendar entries in OpenFlower. To offer the best experience for Calendars, we integrated the [fullcalendar.io](https://fullcalendar.io/docs) Project. You can refer to the documentation like this: [https://fullcalendar.io/docs](https://fullcalendar.io/docs) diff --git a/docs/build-applications/app-editor/visual-components/charts-and-graphs.md b/docs/build-applications/app-editor/visual-components/charts-and-graphs.md index 6e6b82f178..5add53f8d0 100644 --- a/docs/build-applications/app-editor/visual-components/charts-and-graphs.md +++ b/docs/build-applications/app-editor/visual-components/charts-and-graphs.md @@ -2,7 +2,7 @@ Charts and graphs are visual representations of data that are used to simplify complex information and make it easier to understand. They can help highlight key insights and provide a quick summary of data that would otherwise be difficult to interpret. Charts and graphs come in different forms, such as bar graphs, line graphs, pie charts, scatter plots, and more, each suited for different types of data and analytical purposes. -Lowcoder allows you to insert multiple forms of charts and graphs into your apps to satisfy your needs in different use cases. +OpenFlower allows you to insert multiple forms of charts and graphs into your apps to satisfy your needs in different use cases. ## UI mode @@ -55,17 +55,17 @@ Then reference the value of the transformer `{{transformer1.value}}` as the data ### Chart type -Lowcoder supports four types of charts: bar chart, line chart, scatter chart, and pie chart. You can select the chart type in **Properties** > **Data** > **Chart type**. You can also customize the layout and style of your chart in **Properties** tab. +OpenFlower supports four types of charts: bar chart, line chart, scatter chart, and pie chart. You can select the chart type in **Properties** > **Data** > **Chart type**. You can also customize the layout and style of your chart in **Properties** tab. ### X-axis Bar charts, line charts, and pie charts map values to categorical variables. Thus, in such charts, the X-axis usually shows non-numeric data—for example, date or department. -By default, Lowcoder automatically detects the X-axis data and its type. You can also manually select one among "Category axis", "Value axis", "Time axis", or "Log axis". For detailed information, see [X axis type](https://echarts.apache.org/en/option.html#xAxis.type). +By default, OpenFlower automatically detects the X-axis data and its type. You can also manually select one among "Category axis", "Value axis", "Time axis", or "Log axis". For detailed information, see [X axis type](https://echarts.apache.org/en/option.html#xAxis.type). ### Chart series -In most types of charts, the **Chart series** (Y-axis) presents numeric values for the categories on X-axis. By default, Lowcoder populates all numeric fields to Y-axis. You can hide unnecessary fields in **Properties** > **Chart series**. +In most types of charts, the **Chart series** (Y-axis) presents numeric values for the categories on X-axis. By default, OpenFlower populates all numeric fields to Y-axis. You can hide unnecessary fields in **Properties** > **Chart series**. ## Echarts JSON diff --git a/docs/build-applications/app-editor/visual-components/common-component-settings.md b/docs/build-applications/app-editor/visual-components/common-component-settings.md index b31ab0c447..d0a99ffb1f 100644 --- a/docs/build-applications/app-editor/visual-components/common-component-settings.md +++ b/docs/build-applications/app-editor/visual-components/common-component-settings.md @@ -1,6 +1,6 @@ # Common Component Settings -The visual Components of Lowcoder share some general Settings and Configurations. You may find nevertheless Components, for which these or that Setting may not apply - and so it's not shown in the Application Editor. +The visual Components of OpenFlower share some general Settings and Configurations. You may find nevertheless Components, for which these or that Setting may not apply - and so it's not shown in the Application Editor.

Click on any Component opens the Properties panel to show all Settings & Configurations.

@@ -36,7 +36,7 @@ Many Components have the possibility to show Labels for the user, so it is cleal #### Internationalization -Based on the language information of the browser, one can translate text in Lowcoder on the fly. +Based on the language information of the browser, one can translate text in OpenFlower on the fly.

get the User-Language from the Browser

@@ -119,12 +119,12 @@ You can now place other components in the same vertical place as the hidden Comp

Components that are hidden can pe placed vertically at the same position.

{% hint style="info" %} -In Lowcoder v2.0.0 the fields "Hidden" and "Disabled" are unfortunately at different places in the Properties Panel across the components. We will fix and order this in a future version. +In OpenFlower v2.0.0 the fields "Hidden" and "Disabled" are unfortunately at different places in the Properties Panel across the components. We will fix and order this in a future version. {% endhint %} ### Event handlers -One of the powerful concepts of Lowcoder are the Event handlers. Based on User interaction almost every Component can release Events, on which you can react with different actions. +One of the powerful concepts of OpenFlower are the Event handlers. Based on User interaction almost every Component can release Events, on which you can react with different actions.

For each components a set of possible User interaction Events is accessible

@@ -165,7 +165,7 @@ Each Event handler has an Action out of a list of possible Actions. Each action #### Order of Event Actions {% hint style="info" %} -In a future version of Lowcoder, we will make sure it is possible to change the order of the Event Handlers. As for now, it is not possible and you would need to plan the order of Event Actions if your App needs multiple Event Handlers for a single Component. +In a future version of OpenFlower, we will make sure it is possible to change the order of the Event Handlers. As for now, it is not possible and you would need to plan the order of Event Actions if your App needs multiple Event Handlers for a single Component. {% endhint %} ### Style diff --git a/docs/build-applications/app-editor/visual-components/drawer.md b/docs/build-applications/app-editor/visual-components/drawer.md index 5e4ffeb616..3bac19bd00 100644 --- a/docs/build-applications/app-editor/visual-components/drawer.md +++ b/docs/build-applications/app-editor/visual-components/drawer.md @@ -1,6 +1,6 @@ # Drawer -In Lowcoder, **Drawer** is an overlay sidebar to display information or perform operations, without interrupting the workflow on the main window. +In OpenFlower, **Drawer** is an overlay sidebar to display information or perform operations, without interrupting the workflow on the main window. The following example builds a shopping cart using a drawer. diff --git a/docs/build-applications/app-editor/visual-components/file-upload.md b/docs/build-applications/app-editor/visual-components/file-upload.md index 252bdd3a41..27315f4020 100644 --- a/docs/build-applications/app-editor/visual-components/file-upload.md +++ b/docs/build-applications/app-editor/visual-components/file-upload.md @@ -4,7 +4,7 @@ ## Basics -The File upload helps you to able users to upload binary and text Files and process this data further in Lowcoder to send it to local or remote Storage and other Backends. +The File upload helps you to able users to upload binary and text Files and process this data further in OpenFlower to send it to local or remote Storage and other Backends. ### File type @@ -34,15 +34,15 @@ The upload list presents the file names of all uploaded files in chronological o ### Parse files -Toggle **Parse files** and Lowcoder will try to parse the uploaded file data structure into objects, arrays, or strings. This does not work with binary data but with structured text data like Excel, JSON, and CSV files. +Toggle **Parse files** and OpenFlower will try to parse the uploaded file data structure into objects, arrays, or strings. This does not work with binary data but with structured text data like Excel, JSON, and CSV files. -

Lowcoder can try to parse the content of the files so you can directly access it.

+

OpenFlower can try to parse the content of the files so you can directly access it.

You can access the parsed result via the property `parsedValue`. -For each uploaded file Lowcoder will try to parse and you can access the data of the files then in the array. +For each uploaded file OpenFlower will try to parse and you can access the data of the files then in the array. -
// access the structured content of an uploaded File in Lowcoder Apps
+
// access the structured content of an uploaded File in OpenFlower Apps
 file1.parsedValue[0]
 // the array contains the data for each uploaded file.
 file1.parsedValue[0], file1.parsedValue[1], file1.parsedValue[2]
diff --git a/docs/build-applications/app-editor/visual-components/google-maps.md b/docs/build-applications/app-editor/visual-components/google-maps.md
index 675f11b93d..3e7031d5f5 100644
--- a/docs/build-applications/app-editor/visual-components/google-maps.md
+++ b/docs/build-applications/app-editor/visual-components/google-maps.md
@@ -1,16 +1,16 @@
 # Google Maps
 
-Lowcoder offers an innovative approach to integrating Geomaps from Google with an advanced geo-data-based overlay of eCharts, providing a dynamic and interactive mapping solution. This integration is particularly powerful for applications requiring real-time data visualization on geographical maps.
+OpenFlower offers an innovative approach to integrating Geomaps from Google with an advanced geo-data-based overlay of eCharts, providing a dynamic and interactive mapping solution. This integration is particularly powerful for applications requiring real-time data visualization on geographical maps.
 
-The core feature of this integration is the seamless combination of Google Geomaps with eCharts overlays. Google Geomaps provides a robust and familiar mapping interface, known for its detailed and accurate geographical data. By overlaying eCharts, Lowcoder enables the addition of rich, interactive data visualizations directly onto these maps. This overlay capability is not just about static data representation; it supports dynamic, real-time data updates, making it ideal for applications that require up-to-the-minute information, such as traffic monitoring, weather updates, or tracking movements in logistics.
+The core feature of this integration is the seamless combination of Google Geomaps with eCharts overlays. Google Geomaps provides a robust and familiar mapping interface, known for its detailed and accurate geographical data. By overlaying eCharts, OpenFlower enables the addition of rich, interactive data visualizations directly onto these maps. This overlay capability is not just about static data representation; it supports dynamic, real-time data updates, making it ideal for applications that require up-to-the-minute information, such as traffic monitoring, weather updates, or tracking movements in logistics.
 
-

Distribution of Lowcoder Users worldwide (10.2023)

+

Distribution of OpenFlower Users worldwide (10.2023)

-Lowcoder ensures that the data displayed in the eCharts overlay is not only current but can also be updated in real-time with the [Stream Query](../../../connect-your-data/data-sources-in-lowcoder/websocket-datasource.md). This is crucial for scenarios where timely data is essential for decision-making. Users can see changes as they happen, providing an interactive and engaging experience. +OpenFlower ensures that the data displayed in the eCharts overlay is not only current but can also be updated in real-time with the [Stream Query](../../../connect-your-data/data-sources-in-lowcoder/websocket-datasource.md). This is crucial for scenarios where timely data is essential for decision-making. Users can see changes as they happen, providing an interactive and engaging experience. -The eCharts overlay on Google Geomaps in Lowcoder also offers a high degree of customization and interactivity. Users can zoom in and out, pan across different regions, and interact with the data points on the map. This interactivity is enhanced with tooltips, clickable elements, and various chart types like heatmaps, scatter plots, or line graphs, all geo-referenced and layered over the map. +The eCharts overlay on Google Geomaps in OpenFlower also offers a high degree of customization and interactivity. Users can zoom in and out, pan across different regions, and interact with the data points on the map. This interactivity is enhanced with tooltips, clickable elements, and various chart types like heatmaps, scatter plots, or line graphs, all geo-referenced and layered over the map. -### Using Geomap in Lowcoder +### Using Geomap in OpenFlower As the first step, place a new Chart from the right Components panel on the canvas. @@ -22,13 +22,13 @@ Now you can select in the Component Properties the type "Map" You can use the Properties "Zoomlevel, Longitude, and Latitude" to define the first impression of the GeoMap when the App is displayed. -In Version Lowcoder 2.1.x the eCharts Map is configurable like other eCharts by the "Options JSON" +In Version OpenFlower 2.1.x the eCharts Map is configurable like other eCharts by the "Options JSON" {% hint style="info" %} For more and deeper information check the eCharts documentation. [https://echarts.apache.org/en/api.html#echartsInstance.setOption](https://echarts.apache.org/en/api.html#echartsInstance.setOption) {% endhint %} -As eCharts is already integrated into Lowcoder, you only need to prepare and set the Options-JSON Data. The configuration follows the standard eCharts notation. +As eCharts is already integrated into OpenFlower, you only need to prepare and set the Options-JSON Data. The configuration follows the standard eCharts notation. In the data section, you have nevertheless the possibility not only to set chart data but also the geo-point (lat, long), where the chart data should be displayed. Each Object in the data array will be one chart element on the map. @@ -78,7 +78,7 @@ The section "encode" helps to tell the eCharts Map, which entry (array index num ### Dynamic Data & Function binding -As in other components of Lowcoder, you can bind data and functions dynamically to the map. +As in other components of OpenFlower, you can bind data and functions dynamically to the map. ```javascript { diff --git a/docs/build-applications/app-editor/visual-components/image.md b/docs/build-applications/app-editor/visual-components/image.md index 2a12c04ab4..476db3c930 100644 --- a/docs/build-applications/app-editor/visual-components/image.md +++ b/docs/build-applications/app-editor/visual-components/image.md @@ -1,6 +1,6 @@ # Image -Use the **Image** component to present information in your apps in a vivic way. Lowcoder supports you adding an image via URL and base64 encoded data. +Use the **Image** component to present information in your apps in a vivic way. OpenFlower supports you adding an image via URL and base64 encoded data. ## URL diff --git a/docs/build-applications/app-editor/visual-components/option-lists.md b/docs/build-applications/app-editor/visual-components/option-lists.md index 4fcb9d6ea4..eb2a997f62 100644 --- a/docs/build-applications/app-editor/visual-components/option-lists.md +++ b/docs/build-applications/app-editor/visual-components/option-lists.md @@ -1,6 +1,6 @@ # Option lists -A drop menu ensures easy and error-free user input by offering a list of possible options. Lowcoder supports implementing option lists using components such as **Select** and **Multiselect**. You can configure an option list either manually or by mapping data from your data sources. +A drop menu ensures easy and error-free user input by offering a list of possible options. OpenFlower supports implementing option lists using components such as **Select** and **Multiselect**. You can configure an option list either manually or by mapping data from your data sources. ## Properties diff --git a/docs/build-applications/app-editor/visual-components/table.md b/docs/build-applications/app-editor/visual-components/table.md index 949fcfbb26..aa6a21922e 100644 --- a/docs/build-applications/app-editor/visual-components/table.md +++ b/docs/build-applications/app-editor/visual-components/table.md @@ -2,7 +2,7 @@ The Standard Table is a highly functional and feature-rich component. It is recommended for Server-Side paging and filtering when data display for tables needs many individual settings. -The Lowcoder Table supports auto-size as a component as well as fixed size, where the Header and Toolbar can be fixed when the Table-Body is scrollable. +The OpenFlower Table supports auto-size as a component as well as fixed size, where the Header and Toolbar can be fixed when the Table-Body is scrollable. {% embed url="https://app.supademo.com/demo/NEYc5eNZNchrXkpjo2GJs" %} Header & Toolbar can be fixed diff --git a/docs/build-applications/app-interaction/event-handlers.md b/docs/build-applications/app-interaction/event-handlers.md index afce92d0bb..70b1cd6888 100644 --- a/docs/build-applications/app-interaction/event-handlers.md +++ b/docs/build-applications/app-interaction/event-handlers.md @@ -1,6 +1,6 @@ # Event handlers -In Lowcoder, event handlers are responsible for collecting and processing events from components and queries, and executing subsequent actions. For example, for a **Button** component, you can add an event handler to trigger the **Run query** action \*\*\*\* in response to the button **Click** event. +In OpenFlower, event handlers are responsible for collecting and processing events from components and queries, and executing subsequent actions. For example, for a **Button** component, you can add an event handler to trigger the **Run query** action \*\*\*\* in response to the button **Click** event. Set event handlers wisely to provide a reactive and responsive user experience (UX). For example, triggering a **get-all** query after **insert-new-data** query finishes enables table automatically refresh. @@ -22,7 +22,7 @@ Running a query can result in success or failure, so queries have two events: ** ## Actions -There are a number of event handler actions available in Lowcoder for handling different scenarios. Set them in the **Action** dropdown list in an event handler. +There are a number of event handler actions available in OpenFlower for handling different scenarios. Set them in the **Action** dropdown list in an event handler. {% hint style="info" %} See advanced on this page to know advanced settings. @@ -42,7 +42,7 @@ Store data in a temporary state. ### Go to app -Navigate to an Lowcoder app with optional query or hash parameters. +Navigate to an OpenFlower app with optional query or hash parameters. | Parameter | Function | | -------------------- | --------------------------------------------------------------------------------------------------- | diff --git a/docs/build-applications/app-navigation.md b/docs/build-applications/app-navigation.md index fbfeb86468..b1ae5134a8 100644 --- a/docs/build-applications/app-navigation.md +++ b/docs/build-applications/app-navigation.md @@ -2,7 +2,7 @@ **Navigation** aggregates your apps onto the left sidebar and guides you to quickly find the needed app. -On Lowcoder homepage, click **New** and select **Navigation** to create a navigation page. +On OpenFlower homepage, click **New** and select **Navigation** to create a navigation page. ## Menu items diff --git a/docs/build-applications/create-a-new-app/README.md b/docs/build-applications/create-a-new-app/README.md index b29e55e60f..6defb4f5ba 100644 --- a/docs/build-applications/create-a-new-app/README.md +++ b/docs/build-applications/create-a-new-app/README.md @@ -2,7 +2,7 @@ ## App or Module? -A [Module](modules.md) is a special type of App, which can be **re-used** inside of other Modules or Apps and especially it is possible to [embed](../../publish-apps/embedd-an-app/) the Module directly in your native Web-Application outside of Lowcoder. +A [Module](modules.md) is a special type of App, which can be **re-used** inside of other Modules or Apps and especially it is possible to [embed](../../publish-apps/embedd-an-app/) the Module directly in your native Web-Application outside of OpenFlower. The Editor for Apps and Modules is the same, only Modules have some extra settings and parameters regarding the embedding. @@ -14,7 +14,7 @@ Be aware that nested Modules "in each other" can cause a slowdown of the Applica ## Create a new Application or Module -Click **New > App** (or **Module**) on the upper right of Lowcoder Admin Page. The App or Module will get created and the view switches automatically to the App Editor. +Click **New > App** (or **Module**) on the upper right of OpenFlower Admin Page. The App or Module will get created and the view switches automatically to the App Editor. Only workspace **admins** and members of **Developers** group can create apps. diff --git a/docs/build-applications/create-a-new-app/modules.md b/docs/build-applications/create-a-new-app/modules.md index 938797ca61..c317045b6b 100644 --- a/docs/build-applications/create-a-new-app/modules.md +++ b/docs/build-applications/create-a-new-app/modules.md @@ -1,6 +1,6 @@ # Modules -One of the most **powerful concepts of Lowcoder** is **Modules**. Lowcoder Modules are Applications, that can get **included and repeated** in other Applications. You can insert a module into an app or other modules (referred to as _external apps_ in the rest of this document) and it **functions just like a single component**. Also, Modules can get [**integrated/embedded natively in other Web Applications**](../../publish-apps/embedd-an-app/)**!** +One of the most **powerful concepts of OpenFlower** is **Modules**. OpenFlower Modules are Applications, that can get **included and repeated** in other Applications. You can insert a module into an app or other modules (referred to as _external apps_ in the rest of this document) and it **functions just like a single component**. Also, Modules can get [**integrated/embedded natively in other Web Applications**](../../publish-apps/embedd-an-app/)**!** When building an app, you want to reuse a bundle of components and queries across different apps. Imagine a User-Profile Card. Profile-Image, Name, Contacts. If you create these Elements inside of a Module, you can integrate this in all other Apps as it would be a single component. @@ -140,7 +140,7 @@ End users are automatically granted permission to view modules in apps or other ## Releases and versions -Lowcoder stores the historical versions of your modules for your reference. Click **Preview > Publish** at the top right. The release management of a module is identical to that of an app. For detailed information, see [version history](version-and-release-management.md). +OpenFlower stores the historical versions of your modules for your reference. Click **Preview > Publish** at the top right. The release management of a module is identical to that of an app. For detailed information, see [version history](version-and-release-management.md). {% hint style="info" %} For an unpublished module, the apps and modules use its latest version; while for a published one, you need to publish it again to sync your latest changes. diff --git a/docs/build-applications/create-a-new-app/version-and-release-management.md b/docs/build-applications/create-a-new-app/version-and-release-management.md index 47cf72a500..65bb5278bd 100644 --- a/docs/build-applications/create-a-new-app/version-and-release-management.md +++ b/docs/build-applications/create-a-new-app/version-and-release-management.md @@ -6,7 +6,7 @@ By default, end users interact with the latest version of your app. After drafti ## History versions -Lowcoder automatically stores all your history changes during the construction of an app, such as the addition or deletion of the components, adjustment of the property of the components, rearrangement of the layout, and update of a custom function. You can use it to refer to your earlier ideas or revert to a previous version. +OpenFlower automatically stores all your history changes during the construction of an app, such as the addition or deletion of the components, adjustment of the property of the components, rearrangement of the layout, and update of a custom function. You can use it to refer to your earlier ideas or revert to a previous version. App history versions are only accessible to editors and admins. diff --git a/docs/build-applications/themes-and-styling/README.md b/docs/build-applications/themes-and-styling/README.md index 96bb27c809..9c31bf6c69 100644 --- a/docs/build-applications/themes-and-styling/README.md +++ b/docs/build-applications/themes-and-styling/README.md @@ -1,6 +1,6 @@ # Themes & Styling -Good user interface (UI) improves user experience (UX) and increases user involvement. You can customize the style of each component in Lowcoder and use the theme feature to design the interface on a per-app or workspace basis. Features such as icon configuration and hint messages make the app interaction more user-friendly. +Good user interface (UI) improves user experience (UX) and increases user involvement. You can customize the style of each component in OpenFlower and use the theme feature to design the interface on a per-app or workspace basis. Features such as icon configuration and hint messages make the app interaction more user-friendly. ## Component styles @@ -16,7 +16,7 @@ The [theme feature](https://cloud.lowcoder.dev/setting/theme) helps you quickly ### Create a theme -Workspace admins have access to theme settings. On Lowcoder homepage, go to **Settings** > **Themes**, and click **+ Create theme**. Enter the theme name, and select one of the preset default themes as the starting point. +Workspace admins have access to theme settings. On OpenFlower homepage, go to **Settings** > **Themes**, and click **+ Create theme**. Enter the theme name, and select one of the preset default themes as the starting point. Preview the real-time theme effect on the right. @@ -26,7 +26,7 @@ For charts you can insert or modify the ECharts style JSON. Find a good way to c In the app editor, switch the theme by clicking ⚙️ on the left side-bar. Select a theme from **Theme setting**. -You can also set the default theme for all your apps within a workspace in **Settings** > **Themes** on Lowcoder homepage. +You can also set the default theme for all your apps within a workspace in **Settings** > **Themes** on OpenFlower homepage. ### Switching themes dynamically @@ -53,7 +53,7 @@ Follow the steps below to include this function in your app. ## Custom CSS -Lowcoder provides a custom CSS feature for more flexible and customized UI styling. +OpenFlower provides a custom CSS feature for more flexible and customized UI styling. ### App-level CSS @@ -67,7 +67,7 @@ It is recommended to modify the component styles in **Properties** > **Style** b ### Preload CSS -In Lowcoder, workspace admins can also set pre-loaded CSS styles for all apps within the workspace. Open the **Settings**, and click **Advanced** > **Preload CSS**. +In OpenFlower, workspace admins can also set pre-loaded CSS styles for all apps within the workspace. Open the **Settings**, and click **Advanced** > **Preload CSS**. It is highly recommended to use CSS selectors as follows: @@ -135,7 +135,7 @@ imageEditor scanner ``` -Avoid using class names that may change with iterations, such as `sc-dkiQaF bfTYCO`.Lowcoder supports [CSS pre-processor](https://stylis.js.org/), you can use CSS nesting to improve efficiency, for example: +Avoid using class names that may change with iterations, such as `sc-dkiQaF bfTYCO`.OpenFlower supports [CSS pre-processor](https://stylis.js.org/), you can use CSS nesting to improve efficiency, for example: ```css .text1 { @@ -182,7 +182,7 @@ To use custom font family, you need to define it first and then apply it. Insert ## User-friendly interaction -Lowcoder always lives up to efficiency, security, and easy-to-use design. +OpenFlower always lives up to efficiency, security, and easy-to-use design. ### Hide UI components @@ -217,7 +217,7 @@ Notifications are messages directly sent to your users to remind them of the sta #### Global notifications -Global notifications for certain user interactions give users timely feedback. Lowcoder offers four types of global notificaitons: **Information**, **Success**, **Warning** and **Error**. +Global notifications for certain user interactions give users timely feedback. OpenFlower offers four types of global notificaitons: **Information**, **Success**, **Warning** and **Error**. You can set global notifications in three ways: diff --git a/docs/build-applications/themes-and-styling/component-styling-possibilities.md b/docs/build-applications/themes-and-styling/component-styling-possibilities.md index 5d86a88a44..fbab3a0458 100644 --- a/docs/build-applications/themes-and-styling/component-styling-possibilities.md +++ b/docs/build-applications/themes-and-styling/component-styling-possibilities.md @@ -1,8 +1,8 @@ # Component Styling Possibilities -Lowcoder allows you to style your components in many ways and so enables you to build beautiful and customized applications. +OpenFlower allows you to style your components in many ways and so enables you to build beautiful and customized applications. -Since Lowcoder 2.3.0 we support more style attributes. +Since OpenFlower 2.3.0 we support more style attributes. * Text Size * Font Weight diff --git a/docs/build-applications/themes-and-styling/customize-styles.md b/docs/build-applications/themes-and-styling/customize-styles.md index 17121bf0f1..314234b8f7 100644 --- a/docs/build-applications/themes-and-styling/customize-styles.md +++ b/docs/build-applications/themes-and-styling/customize-styles.md @@ -2,7 +2,7 @@ ## Using Webfonts -Based on the @import statement you can use external hosted Webfonts with Lowcoder.\ +Based on the @import statement you can use external hosted Webfonts with OpenFlower.\ \ In the Workspace CSS or App CSS editor, you can add Font Family Import Statements @@ -21,39 +21,39 @@ You can use the interactive Demo to see the Steps based on the Component "Divide With CSS you can further customize the Design of Components. You can use the same CSS Editor for every app or on the Workspace for all apps. {% hint style="info" %} -To set CSS Styles for all apps in a Workspace, use the Editors in the Advanced Settings. <[yourLowcoderURL>/setting/advanced](https://app.lowcoder.cloud/setting/advanced) +To set CSS Styles for all apps in a Workspace, use the Editors in the Advanced Settings. <[yourOpenFlowerURL>/setting/advanced](https://app.lowcoder.cloud/setting/advanced) {% endhint %} -Lowcoder Allows you to define Styles at "global Level". That means, you also can customize the style of the Admin Area and the Editor. +OpenFlower Allows you to define Styles at "global Level". That means, you also can customize the style of the Admin Area and the Editor. To limit the effect of a customized Styling to your Apps only, you can use the prefix class "root-container" in your selectors.
// Use the prefix-class in your Selectors to limit the customized CSS to your Apps only.
 
-// will have an effect for all Buttons of Lowcoder (Editor + Apps)
+// will have an effect for all Buttons of OpenFlower (Editor + Apps)
 .button1 {
     border-radius: 50px;
 }
 
-// will have an effect for all Buttons of your Lowcoder Apps only
+// will have an effect for all Buttons of your OpenFlower Apps only
 .root-container .button1 {
     border-radius: 50px;
 }
 
 // from version v2.3.2 on this class get a new name
-// will have an effect for all Buttons of your Lowcoder Apps only
+// will have an effect for all Buttons of your OpenFlower Apps only
 .lowcoder-app-canvas .button {
     border-radius: 50px;
 }
 
-Each Lowcoder Component has a root element with the CSS class name "lowcoder-\. This identifies the class, not the individual item. In styles that you develop for components, you can use this global class identifier to make sure your styles apply only to all children of a component type. +Each OpenFlower Component has a root element with the CSS class name "lowcoder-\. This identifies the class, not the individual item. In styles that you develop for components, you can use this global class identifier to make sure your styles apply only to all children of a component type.

CSS Class names for Types of Components

-To address a specific instance of a Lowcoder Component, you can use the CSS Class which is available in the further tree. +To address a specific instance of a OpenFlower Component, you can use the CSS Class which is available in the further tree. -

Address specific instances of a Lowcoder Component

+

Address specific instances of a OpenFlower Component

```css // will apply to all Buttons in your App diff --git a/docs/build-applications/themes-and-styling/design-an-efficient-and-user-friendly-form.md b/docs/build-applications/themes-and-styling/design-an-efficient-and-user-friendly-form.md index 5b96edb5c6..014cd9da4c 100644 --- a/docs/build-applications/themes-and-styling/design-an-efficient-and-user-friendly-form.md +++ b/docs/build-applications/themes-and-styling/design-an-efficient-and-user-friendly-form.md @@ -2,7 +2,7 @@ ### Select proper input components -The UX design of input components in a form is crucial to the form's efficiency. Properly chosen components can save users effort and lead to better results. Lowcoder offers a variety of input components, including text input, number input, option list, and radio buttons, each of which works for different scenarios. +The UX design of input components in a form is crucial to the form's efficiency. Properly chosen components can save users effort and lead to better results. OpenFlower offers a variety of input components, including text input, number input, option list, and radio buttons, each of which works for different scenarios. For example, when the input is generated from data, use the option list to let users quickly fill in the input. @@ -14,15 +14,15 @@ Number input is also a commonly used component type—for example, in an order m Keep all input field lengths the same to make the form visually neat, and put all input fields into a single column to achieve better readability. -### Group content with Lowcoder divider +### Group content with OpenFlower divider -Use the Lowcoder **Divider** component to group relevant input fields to help users process information in an organized way. +Use the OpenFlower **Divider** component to group relevant input fields to help users process information in an organized way. ### Add user feedback Form component is quite often used for CRUD operations, which sometimes can be risky due to human errors. To avoid harmful CRUD operations, you can add a confirmation modal before the users submit the form. -Similarly, a notification after users' submission gives users timely feedback. You can add a global notication to the Submit button. In Lowcoder, you can add global notifications in three ways. See global notification for details. +Similarly, a notification after users' submission gives users timely feedback. You can add a global notication to the Submit button. In OpenFlower, you can add global notifications in three ways. See global notification for details. ### Clear input fields on submission diff --git a/docs/build-applications/video-calls-in-lowcoder.md b/docs/build-applications/video-calls-in-lowcoder.md index 6ccd741fe7..0fd214e94e 100644 --- a/docs/build-applications/video-calls-in-lowcoder.md +++ b/docs/build-applications/video-calls-in-lowcoder.md @@ -1,4 +1,4 @@ -# Video Calls in Lowcoder +# Video Calls in OpenFlower Collaboration features, especially interactive video calls, in customer-facing and internal employee apps are crucial for modern Applications. @@ -6,7 +6,7 @@ For customer-facing apps, this enhances engagement, provides immediate support, For internal apps, it streamlines communication, enables real-time problem-solving, and promotes team cohesion, boosting productivity and innovation. Combining these collaboration tools ensures seamless interaction, reduces response times, and creates a more connected and efficient workflow, which is essential for maintaining a competitive edge and achieving business success. -We wanted to give you, as an application developer, the maximum freedom at the smallest cost possible. After a research phase, we decided to integrate Agora SDK in Lowcoder so that you can build Video-Meeting Experiences inside your Apps. +We wanted to give you, as an application developer, the maximum freedom at the smallest cost possible. After a research phase, we decided to integrate Agora SDK in OpenFlower so that you can build Video-Meeting Experiences inside your Apps. {% embed url="https://agora.io/" %} @@ -16,7 +16,7 @@ To make the docs readable, we will name the user who is in a Video Meeting "**Yo ## Preparation -To use Video Meetings based on Agora SDKs in Lowcoder, you need to create an Account with Agora. +To use Video Meetings based on Agora SDKs in OpenFlower, you need to create an Account with Agora. {% embed url="https://console.agora.io" %} @@ -69,7 +69,7 @@ To use the App Certificate (a token-based additional security layer for your mee {% embed url="https://github.com/AgoraIO-Community/agora-token-service" %} -You can read more details about Agora [Token Management here](https://docs.agora.io/en/video-calling/get-started/authentication-workflow?platform=web). However, the public docker image and the ready integration in Lowcoder make it truly easy. +You can read more details about Agora [Token Management here](https://docs.agora.io/en/video-calling/get-started/authentication-workflow?platform=web). However, the public docker image and the ready integration in OpenFlower make it truly easy. The public Standard Docker Image of the Token Server needs 3 ENV Variables: @@ -144,11 +144,11 @@ The following settings are mandatory: * Agora Application ID (copied from the Agora Project Console. Must be identical to the one used at the Agora Token Server) * Meeting Name: This is the Meeting Room Name. Everyone who knows this name can attend the Meeting. It should be a dynamic value, and you need to manage in your own Backend / Database the management of the Meeting Room Names -* Host User ID: This is the Unique Identifier for a User in Agora Meetings. It _could_ be the UserID of Lowcoder Users - if your scenario offers Meetings only for Lowcoder Users. It should be a dynamic value, and you need to manage it in your own Backend / Database the management of the User IDs. +* Host User ID: This is the Unique Identifier for a User in Agora Meetings. It _could_ be the UserID of OpenFlower Users - if your scenario offers Meetings only for OpenFlower Users. It should be a dynamic value, and you need to manage it in your own Backend / Database the management of the User IDs. * RTM and RTC Token are used when an Agore App Certificate and a Token Server is used. For each meeting instance, you need a fresh Token Pair. {% hint style="warning" %} -A Meeting Room can be used for multiple Meetings. The Room is "open" as soon as created. Users who specify the same _channel name_ (In Lowcoder: "Meeting Name") join a common channel and interact with each other. "A channel is created when the first user joins. It ceases to exist when the last user leaves." The [Agora Docs](https://docs.agora.io/en/video-calling/overview/core-concepts?platform=web) can give more & deeper information to it. +A Meeting Room can be used for multiple Meetings. The Room is "open" as soon as created. Users who specify the same _channel name_ (In OpenFlower: "Meeting Name") join a common channel and interact with each other. "A channel is created when the first user joins. It ceases to exist when the last user leaves." The [Agora Docs](https://docs.agora.io/en/video-calling/overview/core-concepts?platform=web) can give more & deeper information to it. {% endhint %} {% hint style="warning" %} @@ -156,7 +156,7 @@ Tokens have to be generated at each start of a meeting for a meeting attendee. W {% endhint %} {% hint style="warning" %} -Meeting Name (Meeting Room) & Host User ID have to be managed in your own Backend / Database. In regards to the Lowcoder App, they must be dynamic - as multiple Users may want to join the meeting - which is based on the same single Lowcoder App. +Meeting Name (Meeting Room) & Host User ID have to be managed in your own Backend / Database. In regards to the OpenFlower App, they must be dynamic - as multiple Users may want to join the meeting - which is based on the same single OpenFlower App. {% endhint %} ### Meeting Controller Data & Functions @@ -237,7 +237,7 @@ the Data Object **messages** will contain only the latest 100 Messages. As App C -## Why Video Meetings in Lowcoder? +## Why Video Meetings in OpenFlower?
@@ -245,7 +245,7 @@ A picture says more than 100 words. Or? Despite all the amazing Developments in IT, the bridge between Meeting and "Working" or "Shopping," "Learning," or any other online Activity is not made. -We encourage you to use Lowcoder and the first fully Lowcode Meeting App Generator in it, to create completely new and useful experiences for your App Users and Customers. +We encourage you to use OpenFlower and the first fully Lowcode Meeting App Generator in it, to create completely new and useful experiences for your App Users and Customers. * Face-to-face online Support * Social Shopping - but together diff --git a/docs/business-logic-in-apps/write-javascript/built-in-js-functions.md b/docs/business-logic-in-apps/write-javascript/built-in-js-functions.md index 06325f8268..79ab4c8d92 100644 --- a/docs/business-logic-in-apps/write-javascript/built-in-js-functions.md +++ b/docs/business-logic-in-apps/write-javascript/built-in-js-functions.md @@ -23,7 +23,7 @@ utils.openUrl("https://www.google.com", { newTab: true }) ### utils.openApp() -Open an Lowcoder app. +Open an OpenFlower app. ```javascript // Syntax @@ -38,10 +38,10 @@ utils.openApp( applicationId: string, options?: { queryParams?: {"key":"value"}, | newTab | Optional. A **Boolean** value that, when **True**, specifies the url is to open in a new tab. The default value is **True**. | ```javascript -// Example: Open an Lowcoder app in a new tab. +// Example: Open an OpenFlower app in a new tab. utils.openApp("632bddc33bb9722fb888f6c0", { newTab: true }) -// Example: Open an Lowcoder app and pass in "id" parameter. +// Example: Open an OpenFlower app and pass in "id" parameter. utils.openApp("632bddc33bb9722fb888f6c0", { queryParams: { "id": table1.selectedRow.id }, } ) diff --git a/docs/business-logic-in-apps/write-javascript/javascript-query.md b/docs/business-logic-in-apps/write-javascript/javascript-query.md index ab3cfd1848..1b64526445 100644 --- a/docs/business-logic-in-apps/write-javascript/javascript-query.md +++ b/docs/business-logic-in-apps/write-javascript/javascript-query.md @@ -191,7 +191,7 @@ function getCurrentDate() { ## Add preloaded scripts -Lowcoder supports importing third-party JS libraries and adding predefined JS code, such as adding global methods or variables for reuse either at **app-level** or **workspace-level**. You can find the app-level settings in ⚙️ > **Other** > **Scripts and style**. +OpenFlowerer supports importing third-party JS libraries and adding predefined JS code, such as adding global methods or variables for reuse either at **app-level** or **workspace-level**. You can find the app-level settings in ⚙️ > **Other** > **Scripts and style**. For workspace-level, go to ⚙️ **Settings** > **Advanced**. @@ -199,4 +199,4 @@ In **JavaScript** tab, you can add preloaded JavaScript code to define global me ## Restrictions -For security reasons, several global variables and functions of **window** are disabled in Lowcoder. Please report to our [GitHub](https://github.com/lowcoder-org/lowcoder/issues) or [Discord](https://discord.gg/3JKuvhWzTx) if you encounter any issues. +For security reasons, several global variables and functions of **window** are disabled in OpenFlowerer. Please report to our [GitHub](https://github.com/lowcoder-org/lowcoder/issues) or [Discord](https://discord.gg/3JKuvhWzTx) if you encounter any issues. diff --git a/docs/business-logic-in-apps/write-javascript/temporary-state.md b/docs/business-logic-in-apps/write-javascript/temporary-state.md index b0afb2a0c8..64ebac5d9d 100644 --- a/docs/business-logic-in-apps/write-javascript/temporary-state.md +++ b/docs/business-logic-in-apps/write-javascript/temporary-state.md @@ -1,19 +1,19 @@ # Temporary state -Temporary states in Lowcoder are a powerful feature used to manage complex variables that dynamically update the state of components in your application. These states act as intermediary or transient storage for data that can change over time due to user interactions or other processes. +Temporary states in OpenFlower are a powerful feature used to manage complex variables that dynamically update the state of components in your application. These states act as intermediary or transient storage for data that can change over time due to user interactions or other processes. -In Lowcoder, temporary states are particularly useful when dealing with scenarios where the state of a component needs to be updated based on user input or other dynamic conditions. By binding these states to components using Handlebars syntax, you can create highly interactive and responsive user interfaces. +In OpenFlower, temporary states are particularly useful when dealing with scenarios where the state of a component needs to be updated based on user input or other dynamic conditions. By binding these states to components using Handlebars syntax, you can create highly interactive and responsive user interfaces. -Here's a brief overview of how temporary states work in Lowcoder: +Here's a brief overview of how temporary states work in OpenFlower: -1. **Definition and Initialization**: Temporary states are defined within the Lowcoder environment. They are initialized with a default value, which can be a simple data type like a string or number, or more complex objects and arrays. +1. **Definition and Initialization**: Temporary states are defined within the OpenFlower environment. They are initialized with a default value, which can be a simple data type like a string or number, or more complex objects and arrays. 2. **Binding to Components**: These states are then bound to UI components using Handlebars syntax. For example, `{{tempState}}` would bind the value of `tempState` to a component. This binding ensures that any changes to the temporary state are immediately reflected in the component. 3. **Dynamic Updates**: As users interact with the application, actions such as clicking a button, entering text, or selecting an option from a dropdown can trigger updates to these temporary states. This could be as simple as updating a text value or as complex as altering an array or object structure. 4. **Reactivity**: The key advantage of using temporary states is their reactivity. When a temporary state changes, all components bound to that state automatically update to reflect the new value. This reactivity is crucial for creating dynamic and fluid user experiences. 5. **Use Cases**: Common use cases for temporary states include form input handling, visibility toggling of UI elements, temporary storage of user selections, and managing the state of interactive elements like accordions, tabs, and modals. -6. **Lifecycle**: Temporary states in Lowcoder are typically short-lived. They exist for the duration of a specific task or user interaction and do not persist across different sessions or page reloads, unlike more permanent state management solutions. +6. **Lifecycle**: Temporary states in OpenFlower are typically short-lived. They exist for the duration of a specific task or user interaction and do not persist across different sessions or page reloads, unlike more permanent state management solutions. -By leveraging temporary states, Lowcoder allows developers to build complex, state-driven applications with ease, ensuring that the UI stays consistent with the underlying application state and providing a seamless experience for the end-user. +By leveraging temporary states, OpenFlower allows developers to build complex, state-driven applications with ease, ensuring that the UI stays consistent with the underlying application state and providing a seamless experience for the end-user. ## Use case scenarios @@ -21,7 +21,7 @@ Temporary states may help in the following scenarios: * To track the temporary values of a variable when the user interacts with your app. * To store your data only in operation without persisting to a database. -* To function as a temporary property when built-in properties in Lowcoder (such as `{{table.selectedRow}}` and `{{select.value}}`) do not support your use case. +* To function as a temporary property when built-in properties in OpenFlower (such as `{{table.selectedRow}}` and `{{select.value}}`) do not support your use case. {% hint style="info" %} To store and access data across apps in your workspace, use localStorage instead. diff --git a/docs/connect-your-data/data-source-basics/README.md b/docs/connect-your-data/data-source-basics/README.md index 30992d03a0..599af1e907 100644 --- a/docs/connect-your-data/data-source-basics/README.md +++ b/docs/connect-your-data/data-source-basics/README.md @@ -2,17 +2,17 @@ Data source is where you manage credentials and make connections to various popular databases such as PostgreSQL, MongoDB, Elasticsearch and all kinds of internal or third-party APIs. -Lowcoder stores your credentials securely and does not store any data from your requests or responses. It only serves as a proxy between client side and your data sources. +OpenFlower stores your credentials securely and does not store any data from your requests or responses. It only serves as a proxy between client side and your data sources. ## Connect to a new data source {% hint style="info" %} -Check out IP allowlist and add Lowcoder IP addresses to your data source allowlist when needed. +Check out IP allowlist and add OpenFlower IP addresses to your data source allowlist when needed. {% endhint %} Follow the steps below: -1. Click **Data Sources** on Lowcoder homepage. +1. Click **Data Sources** on OpenFlower homepage. 2. Click **New data source** on the upper right. This permission is restricted to workspace admins and developers. 3. Select the database or API type you need to connect. 4. Fill out data source connection fields. See docs in Connect to databases and Connect to APIs for detailed tutorials. @@ -25,6 +25,6 @@ You can also connect to a new data source when creating or editing queries in qu Only workspace admins and developers can view the **Data Sources** page and create new data sources. -For each data source, workspace admins and the creator can change its **Access Control**. Go to Lowcoder homepage > **Data Sources**, and click `···` > **Access Control**. +For each data source, workspace admins and the creator can change its **Access Control**. Go to OpenFlower homepage > **Data Sources**, and click `···` > **Access Control**. For more information about permissions for data sources, see Data sources. diff --git a/docs/connect-your-data/data-source-basics/configure-ip-allowlists.md b/docs/connect-your-data/data-source-basics/configure-ip-allowlists.md index 70cfa19c8c..83ff61397a 100644 --- a/docs/connect-your-data/data-source-basics/configure-ip-allowlists.md +++ b/docs/connect-your-data/data-source-basics/configure-ip-allowlists.md @@ -1,8 +1,8 @@ # Configure IP allowlists -If your data source has firewall rules, it is vital to add IP addresses of Lowcoder to the allowlist before connection. Then you can connect to databases or APIs and create queries. +If your data source has firewall rules, it is vital to add IP addresses of OpenFlower to the allowlist before connection. Then you can connect to databases or APIs and create queries. -## Allow IP addresses of Lowcoder +## Allow IP addresses of OpenFlower Add the following IP addresses to your data source allowlist when needed: diff --git a/docs/connect-your-data/data-sources-in-lowcoder/README.md b/docs/connect-your-data/data-sources-in-lowcoder/README.md index 482b6d5110..4263a64961 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/README.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/README.md @@ -1,6 +1,6 @@ -# Data sources in Lowcoder +# Data sources in OpenFlower -Data sources offer a wide range of capabilities to empower your Lowcoder applications and enable various use cases, from data storage and analytics to communication and automation. +Data sources offer a wide range of capabilities to empower your OpenFlower applications and enable various use cases, from data storage and analytics to communication and automation. As of 2023, you can use the following included Data sources: diff --git a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/google-sheets.md b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/google-sheets.md index ff4140a53c..91a86c619e 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/google-sheets.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/google-sheets.md @@ -34,11 +34,11 @@ Navigate back to to [Google Sheets](https://docs.google.com/spreadsheets), and f When you see the notification **Access updated**, you have authorized this service account to edit your sheet. {% endhint %} -## Connect Google Sheets to Lowcoder +## Connect Google Sheets to OpenFlower Follow the steps below: -1. Click **Data Sources** on Lowcoder homepage. +1. Click **Data Sources** on OpenFlower homepage. 2. Click **New Data Source** on the top right. Note that this permission is restricted to workspace admins and developers. 3. Select **Database** > **Google Sheets** as the type. 4. Set its name and paste the whole content in the JSON flie of the key to **Service Account**. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md index f4475d6ff3..40fb7b51e7 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md @@ -2,11 +2,11 @@ GraphQL query language allows the client to specify the structure of the requested data, and returns data from the server using the same structure. Such design ensures that only required data is retrieved, thus improving query efficiency. -## Connect GraphQL API to Lowcoder +## Connect GraphQL API to OpenFlower Follow these steps to connect to GraphQL APIs. -1. Click **Data Sources** on the Lowcoder homepage. +1. Click **Data Sources** on the OpenFlower homepage. 2. Click **New data source** on the upper right. This permission is restricted to workspace admins and developers. 3. Select **APIs** > **GraphQL**. 4. Configure general settings. At a minimum, input **Name** and the base **URL** of the API to connect to. **Headers** and **Parameters** are optional. @@ -57,6 +57,6 @@ The following GraphQL query searches the latest 20 closed issues in the reposito Follow the steps to create a GraphQL query directly. 1. In the query editor, click **+ New**. -2. Select **GraphQL Query** in Data sources. Lowcoder offers this built-in plain data source so that you can quickly create GraphQL queries without adding a new data source first. +2. Select **GraphQL Query** in Data sources. OpenFlower offers this built-in plain data source so that you can quickly create GraphQL queries without adding a new data source first. 3. Enter URL, Query, Variables, Parameters, and fill in other fields if needed. 4. Click ▶ **Run**. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md index 9df1d45b45..5eff1d02a2 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md @@ -1,10 +1,10 @@ # REST API -## Connect REST API to Lowcoder +## Connect REST API to OpenFlower Follow these steps to connect to REST APIs. -1. Click **Data Sources** on Lowcoder homepage. +1. Click **Data Sources** on OpenFlower homepage. 2. Click **New Data Source** on the upper right. This permission is restricted to workspace admins and developers. 3. Select **APIs** > **REST API**. 4. Configure general settings. At a minimum, input **Name** and the base **URL** of the API to connect to. **Headers** and **Parameters** are optional. These are all common parameters that consist of URL query prefixes. @@ -21,13 +21,13 @@ If you need other customized authentication methods, contact our customer servic ## SSL Cert Verification -In the advanced settings tab, you can configure SSL Cert Verification for your data sources. Three options are available: CA (Certificate Authority) Certificate, Self Signed Certificate, or Disabled. For security reasons, Lowcoder accepts APIs with CA certificates by default. For APIs without CA certificates, you can either select "Verify Self Signed Cert" and enter the self-signed certificate or disable the SSL Cert verification. +In the advanced settings tab, you can configure SSL Cert Verification for your data sources. Three options are available: CA (Certificate Authority) Certificate, Self Signed Certificate, or Disabled. For security reasons, OpenFlower accepts APIs with CA certificates by default. For APIs without CA certificates, you can either select "Verify Self Signed Cert" and enter the self-signed certificate or disable the SSL Cert verification. -Note that for self-signed certificate, the information should be provided in .[PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced\_Mail) (Privacy-Enhanced Mail) format. This certificate will be encrypted and stored securely in Lowcoder. +Note that for self-signed certificate, the information should be provided in .[PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced\_Mail) (Privacy-Enhanced Mail) format. This certificate will be encrypted and stored securely in OpenFlower. ## Forward cookies -If you are self-hosting Lowcoder in your own domain, you can make REST API requests with cookies to existing services under that domain. You can either toggle the option "Forward all cookies" or specify certain cookies to forward in the text box. This feature can be helpful in cases where you use cookies to share common context (like identity info in JWT format) across different services. +If you are self-hosting OpenFlower in your own domain, you can make REST API requests with cookies to existing services under that domain. You can either toggle the option "Forward all cookies" or specify certain cookies to forward in the text box. This feature can be helpful in cases where you use cookies to share common context (like identity info in JWT format) across different services. ## Create a REST API query @@ -53,6 +53,6 @@ Follow the steps to add a new REST API data source first and then create a query Follow the steps to create a REST API query directly. 1. In the query editor, click **+ New**. -2. Select **REST Query** in Data Sources. Lowcoder offers this built-in plain data source so that you can quickly create REST API queries without adding a new data source first. +2. Select **REST Query** in Data Sources. OpenFlower offers this built-in plain data source so that you can quickly create REST API queries without adding a new data source first. 3. Enter URL, Query, Variables, Parameters, and fill in other fields if needed. 4. Click ▶ **Run**. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md index d3f3e8637a..906c7b4a62 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md @@ -5,14 +5,14 @@ Big Query is a fully managed cloud-based data warehouse offered by Google Cloud ## Prerequisites * Get Big Query database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to Big Query data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Big Query** as the data source type. 3. Set its name and service account. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md index 0a94cd76ad..d0d5a00528 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md @@ -5,14 +5,14 @@ ClickHouse is an open-source column-oriented database management system designed ## Prerequisites * Get ClickHouse database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to ClickHouse data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **ClickHouse** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md index 8b43354f46..5a2ae32fd8 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md @@ -5,14 +5,14 @@ Elasticsearch is a highly scalable and distributed search and analytics engine d ## Prerequisites * Get Microsoft SQL Server database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to Elasticsearch data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Elasticsearch** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md index ae1c6b9b29..247d198f69 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md @@ -5,14 +5,14 @@ Snowflake is a cloud-based data warehousing platform that provides scalable and ## Prerequisites * Get Snowflake database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlowerer to your allowlist (if needed). ## Connect to Snowflake data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlowerer Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Snowflake** as the data source type. 3. Set its name and configure general settings, including account identifier, and database. You can also set schema, warehouse, user name, password, and so on. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/file-storages/README.md b/docs/connect-your-data/data-sources-in-lowcoder/file-storages/README.md index e3f66ec8ae..cb93c3b7e7 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/file-storages/README.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/file-storages/README.md @@ -1,3 +1,3 @@ # File Storages -With Lowcoder you can connect to different File storage providers to upload and manage Your Files there. +With OpenFlower you can connect to different File storage providers to upload and manage Your Files there. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md b/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md index b97a573fe7..07960c2f6d 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md @@ -5,14 +5,14 @@ Redis (Remote Dictionary Server) is an open-source in-memory data structure stor ## Prerequisites * Get Redis database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to Redis data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Redis** as the data source type. 3. Set its name and configure the parameters according to your **Connection Type**: diff --git a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md index dac49e43af..e479c403da 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md @@ -5,14 +5,14 @@ CouchDB is an open-source NoSQL document-oriented database management system tha ## Prerequisites * Get CouchDB database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to CouchDB data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **CouchDB** as the data source type. 3. Set its name and configure the server URL. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md index 7526bb3332..386ed0024a 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md @@ -5,14 +5,14 @@ DynamoDB is a fully managed NoSQL database service offered by Amazon Web Service ## Prerequisites * Get DynamoDB database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to DynamoDB data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **DynamoDB** as the data source type. 3. Set its name and configure general settings, including access key ID, secret key. You can also set endpoint URL and region. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md index 1b638a6d6d..d473b3bce3 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md @@ -5,14 +5,14 @@ MongoDB is a broadly used NoSQL database system that stores data in JSON-like do ## Prerequisites * Get MongoDB database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to MongoDB data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **MongoDB** as the data source type. 3. Set its name and configure the parameters according to your **Connection Type**: diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md index b7a1b3bfd3..607cb12c01 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md @@ -5,14 +5,14 @@ MariaDB is a popular open-source relational database management system that offe ## Prerequisites * Get MariaDB database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to MariaDB data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **MariaDB** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md index bfb7a85e9d..b8b10c0a61 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md @@ -5,14 +5,14 @@ Microsoft SQL Server is a relational database management system (RDBMS), offerin ## Prerequisites * Get Microsoft SQL Server database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to Microsoft SQL Server data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Microsoft SQL Server** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md index e3db553928..45b92ca9e9 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md @@ -5,14 +5,14 @@ MySQL is a popular relational database management system (RDBMS) and is widely u ## Prerequisites * Get MySQL database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to MySQL data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **MySQL** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md index 949a1367a5..d3362d614f 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md @@ -5,14 +5,14 @@ Oracle is a leading provider of enterprise software and database management syst ## Prerequisites * Get Oracle database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to Oracle data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Oracle** as the data source type. 3. Set its name and configure general settings, including host, port, and service name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md index 8cfb78b709..d6ee8713a2 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md @@ -5,14 +5,14 @@ PostgreSQL is a powerful open-source relational database management system (RDBM ## Prerequisites * Get PostgreSQL database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of Lowcoder to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to PostgreSQL data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [Lowcoder Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **PostgreSQL** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/websocket-datasource.md b/docs/connect-your-data/data-sources-in-lowcoder/websocket-datasource.md index 595d162b99..3eeb70aff5 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/websocket-datasource.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/websocket-datasource.md @@ -1,5 +1,5 @@ --- -description: Realtime Data Updates in Lowcoder +description: Realtime Data Updates in OpenFlower --- # Websocket Datasource @@ -13,13 +13,13 @@ In the digital age, speed and immediacy are a key success factor. That's why we ### Using a WebSocket as Datasource. -First, select "Stream Query" as a new Query from the available Datasources. Stream Query is available from Lowcoder v2.1.0. +First, select "Stream Query" as a new Query from the available Datasources. Stream Query is available from OpenFlower v2.1.0.
#### Connect to a WebSocket Server -As URL enter the WebSocket Server address ws:// (without) and wss:// (with SSL secured connection). From the moment you run this query, Lowcoder tries to establish a connection to the WebSocket Server. If successful, the specialty of WebSocket connections is, that they remain active and open till you disconnect the Dataquery / Lowcoder App. +As URL enter the WebSocket Server address ws:// (without) and wss:// (with SSL secured connection). From the moment you run this query, OpenFlower tries to establish a connection to the WebSocket Server. If successful, the specialty of WebSocket connections is, that they remain active and open till you disconnect the Dataquery / OpenFlower App. @@ -28,7 +28,7 @@ As URL enter the WebSocket Server address ws:// (without) and wss:// (with SSL s {% endhint %} {% hint style="warning" %} -Each time a message arrives in the open connection, the Lowcoder Query will fire the event "success", so you can bind an Event-Handler to process these messages. +Each time a message arrives in the open connection, the OpenFlower Query will fire the event "success", so you can bind an Event-Handler to process these messages. {% endhint %}
diff --git a/docs/connect-your-data/query-basics/README.md b/docs/connect-your-data/query-basics/README.md index b1853990f1..014f95ca17 100644 --- a/docs/connect-your-data/query-basics/README.md +++ b/docs/connect-your-data/query-basics/README.md @@ -2,11 +2,11 @@ If there is a special case handling, you can specify it additionally for the individual Event HandlerQueries support reading data from or writing data to your data sources. You can use Data Queries for all kinds of Data Sources, like Databases, Stream Data Sources, or classic Restful APIs. You can create queries while editing an app or in the query library. -All Data Queries in Lowcoder will always return JSON Data. When you call your Database, the result will get transformed into a JSON response for example. This is very useful to have ease of use for the data in all later places in Lowcoder without the need for a Data Serialization between Formats. +All Data Queries in OpenFlower will always return JSON Data. When you call your Database, the result will get transformed into a JSON response for example. This is very useful to have ease of use for the data in all later places in OpenFlower without the need for a Data Serialization between Formats. ## Connect to a data source -You can connect to a data source that was already in your data source library or create a new one. For detailed information, see [Data sources in Lowcoder](../data-sources-in-lowcoder/). +You can connect to a data source that was already in your data source library or create a new one. For detailed information, see [Data sources in OpenFlower](../data-sources-in-lowcoder/). ## Create a query @@ -18,7 +18,7 @@ The SQL Mode is suitable for everyone who queries the Database and for proficien

For many Databases there is a visual GUI Mode to execute prepared statements on the Database.

-Lowcoder also offers a GUI Mode for Write-Operations on the Database, such as INSERT, UPDATE, and DELETE. This helps you to ease the Binding of user-made changes of Data in your App, back to the Databases. +OpenFlower also offers a GUI Mode for Write-Operations on the Database, such as INSERT, UPDATE, and DELETE. This helps you to ease the Binding of user-made changes of Data in your App, back to the Databases. ### Metadata @@ -26,11 +26,11 @@ You can view the metadata of databases such as PostgreSQL, MongoDB, and MySQL. C ### Dynamic Queries and Data Binding -Lowcoder evaluates your query statement with JavaScript code inside `{{ }}` in real-time, and the result is displayed below in a floating box, so you can use it to check the correctness of the query statement. +OpenFlower evaluates your query statement with JavaScript code inside `{{ }}` in real-time, and the result is displayed below in a floating box, so you can use it to check the correctness of the query statement. ## Trigger a query when:... -Lowcoder triggers your queries in two modes: it runs automatically when "inputs change or on page load" or manually (and so invoked in other event handlers for example). +OpenFlower triggers your queries in two modes: it runs automatically when "inputs change or on page load" or manually (and so invoked in other event handlers for example). ### Inputs change or on page load @@ -49,7 +49,7 @@ For this mode of queries, they run only with your manual trigger, such as a butt In most cases, queries reading data, like **select** operations, can be set to the former mode, and those writing data, like **create**/**delete**/**update** operations, run the latter way. -When Lowcoder detects your query statement switches from reading to writing data, the trigger mode switches to **Manually invoked** automatically, but not the other way around. +When OpenFlower detects your query statement switches from reading to writing data, the trigger mode switches to **Manually invoked** automatically, but not the other way around. {% endhint %} {% hint style="info" %} diff --git a/docs/connect-your-data/query-basics/bind-query-data-to-components.md b/docs/connect-your-data/query-basics/bind-query-data-to-components.md index 0d862cdd68..0a1da17f30 100644 --- a/docs/connect-your-data/query-basics/bind-query-data-to-components.md +++ b/docs/connect-your-data/query-basics/bind-query-data-to-components.md @@ -1,6 +1,6 @@ # Bind Query Data to Components -When building apps in Lowcoder, you can use JavaScript (JS) to access and transform data from objects, including components, queries, and global parameters. When writing JavaScript inside SQL editor, component property's input box, table column settings, etc., always remember to enclose all your JS code inside double curly braces, such as \ +When building apps in OpenFlower, you can use JavaScript (JS) to access and transform data from objects, including components, queries, and global parameters. When writing JavaScript inside SQL editor, component property's input box, table column settings, etc., always remember to enclose all your JS code inside double curly braces, such as \ `{{'hello, ' + currentUser.name}}`. ## Access data @@ -9,7 +9,7 @@ Objects have globally unique names, such as `input1`, `query1`, and `table1`. Yo ### Access data in an object -Lowcoder supports you accessing the data in an object using dot notation (`objectName.keyName`). For example,`{{userInfo.selectedRow.userName}}` accesses the `userName` value in the currently selected row of **Table** `userInfo`. +OpenFlower supports you accessing the data in an object using dot notation (`objectName.keyName`). For example,`{{userInfo.selectedRow.userName}}` accesses the `userName` value in the currently selected row of **Table** `userInfo`. When writing JS in `{{ }}` to access values in an object, add a `.` after the object name to trigger an autosuggest menu in case you are not sure about objects' built-in properties or methods. @@ -72,7 +72,7 @@ The following JS code examples are illegal in `{{ }}`. }} ``` -If you wish to orchestrate multiple lines of JavaScript, Lowcoder supports you writing such code in transformers. +If you wish to orchestrate multiple lines of JavaScript, OpenFlower supports you writing such code in transformers. ```javascript // codes inside a transformer @@ -87,7 +87,7 @@ return "Option 3"; ## View data -Data from queries can be complicated and nested in real cases. Viewing data provides you with the detailed structure of data in objects and helps you understand your data better. Before accessing or transforming data, you may need to view the data and its structure first. Lowcoder offers three ways to view data. +Data from queries can be complicated and nested in real cases. Viewing data provides you with the detailed structure of data in objects and helps you understand your data better. Before accessing or transforming data, you may need to view the data and its structure first. OpenFlower offers three ways to view data. ### View query result diff --git a/docs/connect-your-data/query-basics/query-library.md b/docs/connect-your-data/query-basics/query-library.md index 124d489725..69a9997944 100644 --- a/docs/connect-your-data/query-basics/query-library.md +++ b/docs/connect-your-data/query-basics/query-library.md @@ -1,6 +1,6 @@ # Query library -**Query Library** lets you store, reuse and share data queries for data sourced across your workspace. Create and run queries in query library, and call them from any Lowcoder app. +**Query Library** lets you store, reuse and share data queries for data sourced across your workspace. Create and run queries in query library, and call them from any OpenFlower app. ## Features @@ -18,7 +18,7 @@ The main function of the query \*\*\*\* library is to create and manage reusable ### Input parameters -There are cases where you want to pass dynamic parameters to a query. Lowcoder supports that by introducing input configuration of a query. +There are cases where you want to pass dynamic parameters to a query. OpenFlower supports that by introducing input configuration of a query. Click **Add** in the **Inputs** tab in the right pane to add input parameters. Reference them using `{{}}` in the query, then you can input test values to test execution of the query. diff --git a/docs/lowcoder-extension/custom-component.md b/docs/lowcoder-extension/custom-component.md index 1a76fd312e..07173f07cf 100644 --- a/docs/lowcoder-extension/custom-component.md +++ b/docs/lowcoder-extension/custom-component.md @@ -1,6 +1,6 @@ # Custom component -In Lowcoder, you can design custom components using React.js library to satisfy specific needs when building your app. The custom component can be static or dynamic, but either requires coding. +In OpenFlower, you can design custom components using React.js library to satisfy specific needs when building your app. The custom component can be static or dynamic, but either requires coding. {% hint style="info" %} If you consider the custom component you are crafting suits general use cases, contact us and we are happy to do coding. @@ -8,12 +8,12 @@ If you consider the custom component you are crafting suits general use cases, c ## Prerequisites -* Good understanding of how to build an app in Lowcoder. +* Good understanding of how to build an app in OpenFlower. * Familiar with HTML/CSS/JS and the React.js library. ## Basics -Drag a **Custom component** onto the canvas. By default, Lowcoder adds a title box, a text box, and two buttons into it, as shown below. You can modify **Data** and **Code** in the **Properties** pane to tailor it according to your requirements. +Drag a **Custom component** onto the canvas. By default, OpenFlower adds a title box, a text box, and two buttons into it, as shown below. You can modify **Data** and **Code** in the **Properties** pane to tailor it according to your requirements. {% hint style="info" %} Click the border instead of the inside area to select a **Custom component** and display its property settings. @@ -25,17 +25,17 @@ Click the border instead of the inside area to select a **Custom component** and ### Code -By default, Lowcoder defines the object `model`, and two functions `runQuery` and `updateModel`. +By default, OpenFlower defines the object `model`, and two functions `runQuery` and `updateModel`. * `runQuery` is a function that accepts a query name in string format. For example, `runQuery(model.query)`. * `updateModel` is a function that accepts a single argument of object type. The argument passed to `updateModel` will be merged with data of the **Custom component**. ## Implementation -All code of your **Custom component**, including HTML, CSS, and JavaScript, stores in the **Code** box in the **Properties** pane. When your app runs, the custom component will be embedded into an [iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) element.To facilitate the interaction between the **Custom component** and other components in your app, Lowcoder offers an API for you through global objects. The type definition and description of the objects are as follows. +All code of your **Custom component**, including HTML, CSS, and JavaScript, stores in the **Code** box in the **Properties** pane. When your app runs, the custom component will be embedded into an [iframe](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) element.To facilitate the interaction between the **Custom component** and other components in your app, OpenFlower offers an API for you through global objects. The type definition and description of the objects are as follows. ```javascript -interface Lowcoder { +interface OpenFlower { // Subscribe to data change // When data changes, handler will be triggered // The returned value is the unsubscribe function @@ -66,7 +66,7 @@ The following example is the least code that a custom component requires to work const MyCustomComponent = ({ runQuery, model, updateModel }) => (

Hello, world!

); - const ConnectedComponent = Lowcoder.connect(MyCustomComponent); + const ConnectedComponent = OpenFlower.connect(MyCustomComponent); ReactDOM.render(, document.getElementById("react")); @@ -106,7 +106,7 @@ Below is the code for this example. ); - const ConnectedComponent = Lowcoder.connect(MyCustomComponent); + const ConnectedComponent = OpenFlower.connect(MyCustomComponent); const root = ReactDOM.createRoot(document.getElementById("root")); root.render(); @@ -172,7 +172,7 @@ Then, you import the "antd" library and use the components **Button**, **Input** ); - const ConnectedComponent = Lowcoder.connect(MyCustomComponent); + const ConnectedComponent = OpenFlower.connect(MyCustomComponent); const root = ReactDOM.createRoot(document.getElementById("root")); root.render(); diff --git a/docs/lowcoder-extension/lowcoder-open-rest-api.md b/docs/lowcoder-extension/lowcoder-open-rest-api.md index 76596a3d6a..e9ace17bdd 100644 --- a/docs/lowcoder-extension/lowcoder-open-rest-api.md +++ b/docs/lowcoder-extension/lowcoder-open-rest-api.md @@ -1,6 +1,6 @@ -# Lowcoder Open REST API +# OpenFlower Open REST API -Lowcoder comes with a feature-rich REST API, so you can use it in Lowcoder Apps or extend Lowcoder with new functionality. +OpenFlower comes with a feature-rich REST API, so you can use it in OpenFlower Apps or extend OpenFlower with new functionality. On [api-service.lowcoder.cloud](https://api-service.lowcoder.cloud/api/docs/webjars/swagger-ui/index.html#/) you can access this API as well, just some endpoints are not available. @@ -16,10 +16,10 @@ If no user is logged In, API Calls will get executed in the name of "Anonymous U If you are logged in, the Cookie of the currently logged-in user will be used to make API Calls in the name of the current user. This means, that Access Rights to different Functions are automatically applied by the Role of the User. (Admin, Member, Visitor) -If you want to use the API from outside of Lowcoder, you need to authenticate first and use the Cookie as the `LOWCODER_CE_SELFHOST_TOKEN` API key in every API Call. +If you want to use the API from outside of OpenFlower, you need to authenticate first and use the Cookie as the `LOWCODER_CE_SELFHOST_TOKEN` API key in every API Call. ```bash -// Login a User on Lowcoder by eMail +// Login a User on OpenFlower by eMail curl --location '//api/auth/form/login' \ --header 'Content-Type: application/json' \ @@ -64,12 +64,12 @@ curl --location 'http://localhost:3000//api/users/currentUser' \ ### API Key -Since Lowcoder v2.1.3 you can create and use alternatively also a JWT-based API Key. +Since OpenFlower v2.1.3 you can create and use alternatively also a JWT-based API Key. As a logged-in user, you can use the API based on the Cookie to generate an API Key. ```bash -// use the Lowcoder API to generate the JWT based API Key +// use the OpenFlower API to generate the JWT based API Key curl --location '/api/auth/api-key' \ --header 'cookie: LOWCODER_CE_SELFHOST_TOKEN=;' \ --header 'Content-Type: application/json' \ @@ -102,10 +102,10 @@ As the API Key impersonates the user, who created the API Key (based on the Cook ## OpenAPI Specification & Postman Collection You can find more information of the specification & documentation here:\ -[https://docs.lowcoder.cloud/lowcoder-api-specification/api-reference-lowcoder](https://docs.lowcoder.cloud/lowcoder-api-specification/api-reference-lowcoder)\ +[https://docs.openflower.org/lowcoder-api-specification/api-reference-lowcoder](https://docs.openflower.org/lowcoder-api-specification/api-reference-lowcoder)\ -The Base URL of the Lowcoder API depends on your installation. +The Base URL of the OpenFlower API depends on your installation. ### Single Docker Deployment @@ -119,7 +119,7 @@ https:/// ### Multi-Docker Deployment -In a Multi-Docker Deployment, you will have an individual IP address or Domain for the API-Service Container. This is then the Base URL for the Lowcoder API. +In a Multi-Docker Deployment, you will have an individual IP address or Domain for the API-Service Container. This is then the Base URL for the OpenFlower API. ``` https://:8080/ @@ -136,27 +136,27 @@ To use the API of the Cloud Version, the API is to reach via the separate API Se https://api-service.lowcoder.cloud/ ``` -Since Lowcoder v2.1.6 we publish the OpenAPI Specification and the Swagger Documentation automatically. +Since OpenFlower v2.1.6 we publish the OpenAPI Specification and the Swagger Documentation automatically. ``` -Swagger Documentation: /api/docs/webjars/swagger-ui/index.html# -OpenAPI Specification: /api/docs/api-docs +Swagger Documentation: /api/docs/webjars/swagger-ui/index.html# +OpenAPI Specification: /api/docs/api-docs ``` You can find the current API Documentation for example here: \ [https://api-service.lowcoder.cloud/api/docs/webjars/swagger-ui/index.html#/](https://api-service.lowcoder.cloud/api/docs/webjars/swagger-ui/index.html#/) -## Using Lowcoder API - inside Lowcoder Apps +## Using OpenFlower API - inside OpenFlower Apps -Since Lowcoder v2.0.0, it is possible to use the Lowcoder REST API inside of Apps in Lowcoder itself. To do so, create an OpenAPI specification-based Data Source. +Since OpenFlower v2.0.0, it is possible to use the OpenFlower REST API inside of Apps in OpenFlower itself. To do so, create an OpenAPI specification-based Data Source. -

Connect the Lowcoder API as OpenAPI Datasource

+

Connect the OpenFlower API as OpenAPI Datasource

Use your defined `LOWCODER_CE_SELFHOST_TOKEN` as API Key Auth. It will be automatically replaced by the adapted Cookie if a User is logged in. -Also, you can use the API Key to interact with the Lowcoder API as an impersonated user. +Also, you can use the API Key to interact with the OpenFlower API as an impersonated user. -The OpenAPI specification Document is automatically generated. The Server URL is your API-Service URL. [Please read more about it here](https://docs.lowcoder.cloud/lowcoder-api-specification/api-reference) +The OpenAPI specification Document is automatically generated. The Server URL is your API-Service URL. [Please read more about it here](https://docs.openflower.org/lowcoder-api-specification/api-reference) ``` http://localhost:3000/api/docs/api-docs @@ -165,12 +165,12 @@ https:///api/docs/api-docs As soon as connected and the OpenAPI specification is found and processed, the API Controllers are accessible in the Datasource. -

Select a Controller to see it's Operations

+

Select a Controller to see it's Operations

For each Controller, you can see then the possible Operations. -

Find the list of possible Operations for the selected Controller

+

Find the list of possible Operations for the selected Controller

Now you can execute the API Call based on its settings. -
+
diff --git a/docs/lowcoder-extension/opensource-contribution/README.md b/docs/lowcoder-extension/opensource-contribution/README.md index 53456febf9..6d9d19d622 100644 --- a/docs/lowcoder-extension/opensource-contribution/README.md +++ b/docs/lowcoder-extension/opensource-contribution/README.md @@ -6,17 +6,17 @@ Here is a small guide on where to start and which style of development we prefer ## Core System -Lowcoder has 3 main services, which are developed by the Community and us - the Lowcoder Team. +OpenFlower has 3 main services, which are developed by the Community and us - the OpenFlower Team. * [Frontend App](https://github.com/lowcoder-org/lowcoder/tree/main/client) - JavaScript, TypeScript, React, ANTd * [API-Service](https://github.com/lowcoder-org/lowcoder/tree/main/server/api-service) - Java, Spring, Spring WebFlux - using MongoDB and Redis * [Node-Service](https://github.com/lowcoder-org/lowcoder/tree/main/server/node-service) - Node.js, TypeScript -These 3 services are the main deliverables and the codebase of Lowcoder. We are happy to work with you on your contribution and express that Frontend App and API-Service are fairly complex systems. You would need to reserve a bit of time to get to know it and understand the details. +These 3 services are the main deliverables and the codebase of OpenFlower. We are happy to work with you on your contribution and express that Frontend App and API-Service are fairly complex systems. You would need to reserve a bit of time to get to know it and understand the details. ## Plugins and Extensions -Extension of Lowcoder for and with the Community happens mainly by the Plugins and Extensions at defined Interfaces. Lowcoder has the following Plugin Systems: +Extension of OpenFlower for and with the Community happens mainly by the Plugins and Extensions at defined Interfaces. OpenFlower has the following Plugin Systems: * [Visual Component Plugins](https://github.com/lowcoder-org/lowcoder-create-component-plugin) * Plugin API of API Service @@ -55,13 +55,13 @@ git@github.com:/lowcoder-create-component-plugin.git 3. Local Development preparation -Navigate your terminal or bash to your /root folder of the cloned repository to install general dependencies and the Lowcoder SDK +Navigate your terminal or bash to your /root folder of the cloned repository to install general dependencies and the OpenFlower SDK ```bash yarn install ``` -Execute the Plugin Builder Script. Please name your plugin with the prefix **"lowcoder-comp-"** to make it easy for other users to find Lowcoder Component Pluins on NPM +Execute the Plugin Builder Script. Please name your plugin with the prefix **"lowcoder-comp-"** to make it easy for other users to find OpenFlower Component Pluins on NPM ```bash npm create lowcoder-plugin lowcoder-comp-my-plugin @@ -89,11 +89,11 @@ This will start the local development server and open a browser on [http://local #### Start developing -After the preparation, a skeleton project for Lowcoder Component Plugin development was created and the SDK prepared. A new browser window should open at [http://localhost:9000](http://localhost:9000/) This is the Components Preview, which allows you to see your new component in action, as it would work in the Lowcoder Editor. +After the preparation, a skeleton project for OpenFlower Component Plugin development was created and the SDK prepared. A new browser window should open at [http://localhost:9000](http://localhost:9000/) This is the Components Preview, which allows you to see your new component in action, as it would work in the OpenFlower Editor. Data, methods, and properties are visible and interactive, so you can test your Component during development. The view will automatically refresh. -Find the /src folder in the new created project. Here are some demonstration files prepared. The Lowcoder Component Builder makes the development & publishing of multiple individual components as bundle possible. In the left navigation of the Components Preview you can switch between your components. +Find the /src folder in the new created project. Here are some demonstration files prepared. The OpenFlower Component Builder makes the development & publishing of multiple individual components as bundle possible. In the left navigation of the Components Preview you can switch between your components. Before you publish, please cleanup all demonstration files like the "HelloWorldComp.tsx" and the references to HelloWorldComp. @@ -106,7 +106,7 @@ Folder Structure: * └ src/ * └ index.ts -In "icons" you will place an SVG, which will later displayed to drag the component to the Lowcoder Editor Canvas. In "locales" you place translation files for all displayed texts of your components And in the "src" folder you place all code. Make sure, your Copmonent is referenced right in the index.ts file. +In "icons" you will place an SVG, which will later displayed to drag the component to the OpenFlower Editor Canvas. In "locales" you place translation files for all displayed texts of your components And in the "src" folder you place all code. Make sure, your Copmonent is referenced right in the index.ts file. #### Publish a Component Plugin @@ -116,22 +116,22 @@ With the following command you can publish the script to the NPM repository: yarn build --publish ``` -## Lowcoder Marketplace +## OpenFlower Marketplace -Next to this direct code development contribution, we also encourage you to contribute smart solutions and reusable Apps and Modules on the [Lowcoder Marketplace](https://app.lowcoder.cloud/marketplace) so other users can see solution patterns and Application Building Blocks. +Next to this direct code development contribution, we also encourage you to contribute smart solutions and reusable Apps and Modules on the [OpenFlower Marketplace](https://app.lowcoder.cloud/marketplace) so other users can see solution patterns and Application Building Blocks. You can follow the [Guide for Apps & Modules to publish on the Marketplace](../../workspaces-and-teamwork/lowcoder-marketplace.md) ## Code Contribution to Core System -We feel honored to work with you together on Lowcoder as a Platform! A good start and procedure that allows a smooth development process is like this: +We feel honored to work with you together on OpenFlower as a Platform! A good start and procedure that allows a smooth development process is like this: 1. [Fork the Repository](https://github.com/lowcoder-org/lowcoder/fork) 2. Clone it into your local environment / IDE 3. Create a workable local Development Environment 4. Create your Feature-Branch from **/main** branch to get the latest stable Environment 5. **Develop your magic and enjoy the ride!** -6. Raise a PR / Merge Request to [**/dev branch**](https://github.com/lowcoder-org/lowcoder/tree/dev) of the Lowcoder Main Repository +6. Raise a PR / Merge Request to [**/dev branch**](https://github.com/lowcoder-org/lowcoder/tree/dev) of the OpenFlower Main Repository 7. Follow up if / when we have questions at your Merge Request Please ask us directly for any related questions so we can help you the fastest way. We kindly ask you to use our [Discord Server](https://discord.gg/An6PgWpegg) for these questions. Here, especially the [#contribute channel](https://discord.gg/An6PgWpegg). @@ -167,7 +167,7 @@ docker run -d --name lowcoder-dev -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" #### Start developing -As soon as the development server is ready you can access Lowcoder by [http://localhost:3000](http://localhost:3000). Now, you can start to develop locally. +As soon as the development server is ready you can access OpenFlower by [http://localhost:3000](http://localhost:3000). Now, you can start to develop locally. 1. Check out the source code. @@ -253,7 +253,7 @@ Create a launch.json file in the .vscode folder of your newly opened workspace. "name": "ServerApplication", "request": "launch", "mainClass": "org.lowcoder.api.ServerApplication", - "projectName": "Lowcoder API Service", + "projectName": "OpenFlower API Service", "vmArgs": "-Dpf4j.mode=development -Dpf4j.pluginsDir=./server/api-service/lowcoder-plugins -Dspring.profiles.active=lowcoder -XX:+AllowRedefinitionToAddDeleteMethods --add-opens java.base/java.nio=ALL-UNNAMED" } ], @@ -292,7 +292,7 @@ cd server mvn clean package ``` -After Maven package runs successfully, you can start the Lowcoder server with IntelliJ IDEA. +After Maven package runs successfully, you can start the OpenFlower server with IntelliJ IDEA. 1. Check out the source code and change to source dir. 2. Use the Terminal of your IDE to execute the following commands. First, change to the server directory. diff --git a/docs/lowcoder-extension/opensource-contribution/develop-data-source-plugins.md b/docs/lowcoder-extension/opensource-contribution/develop-data-source-plugins.md index edd9120768..6082d680f8 100644 --- a/docs/lowcoder-extension/opensource-contribution/develop-data-source-plugins.md +++ b/docs/lowcoder-extension/opensource-contribution/develop-data-source-plugins.md @@ -1,6 +1,6 @@ # Develop Data Source Plugins -This document provides basic information and guides for developing data source plugins. Developers are highly welcomed to make contributions to [Lowcoder](https://github.com/Lowcoder-dev/Lowcoder)--the open source project. +This document provides basic information and guides for developing data source plugins. Developers are highly welcomed to make contributions to [OpenFlower](https://github.com/OpenFlower-dev/OpenFlower)--the open source project. ## Basics @@ -12,7 +12,7 @@ A data source plugin is described by a **JavaScript Object** which mainly consis * Definition of the **Action list** for data source queries and the configuration form for each Action. * Definition of the **execution logic** for Actions. -Currently, all data source plugins are maintained in the `src/plugins` directory of the `node-service` project. Click to view [the project](https://github.com/Lowcoder-dev/Lowcoder/tree/develop/server/node-service), and you might take a quick look at the [S3 plugin](https://github.com/Lowcoder-dev/Lowcoder/tree/develop/server/node-service/src/plugins/s3). +Currently, all data source plugins are maintained in the `src/plugins` directory of the `node-service` project. Click to view [the project](https://github.com/OpenFlower-dev/OpenFlower/tree/develop/server/node-service), and you might take a quick look at the [S3 plugin](https://github.com/OpenFlower-dev/OpenFlower/tree/develop/server/node-service/src/plugins/s3). ## Overall definition of a plugin @@ -160,7 +160,7 @@ A data source query consists of multiple **Actions**. In actual use, after a use The `actions` field defines the list of query actions supported by the current data source. Each field is described as follows: * `actionName`: the identifier of the action. Must be **unique** within the current data source definition scope. -* `label`: the name of the action displayed in Lowcoder interface. +* `label`: the name of the action displayed in OpenFlower interface. * `params`: The field list of the action configuration form, and the type `CommonParamConfig` is defined as follows: ```typescript @@ -268,7 +268,7 @@ Due to various reasons, the generated plugin code needs to be correctly validate ## Testing -Necessary testing should be done before publishing the plugin. Testing a data source plugin requires a backend environment. You can start a local environment by following the documentation [Start a local backend server](https://github.com/Lowcoder-dev/Lowcoder/tree/develop/client#readme) and test the data source plugin in following aspects: +Necessary testing should be done before publishing the plugin. Testing a data source plugin requires a backend environment. You can start a local environment by following the documentation [Start a local backend server](https://github.com/OpenFlower-dev/OpenFlower/tree/develop/client#readme) and test the data source plugin in following aspects: 1. Make sure the data source plugin has been added to the plugin list in the file `src/plugins/index.ts`. 2. Start the node-service server in the `node-service` directory by executing `yarn dev`. @@ -277,11 +277,11 @@ Necessary testing should be done before publishing the plugin. Testing a data so {% code overflow="wrap" %} ```bash # Enter the image command-line tool - docker exec -it Lowcoder bash + docker exec -it OpenFlower bash # Enter the mongo command-line tool mongo - use Lowcoder; + use OpenFlower; # Insert a service configuration db.serverConfig.insert({key: "deployment.js-executor.host", value: "http://:6060/"}) @@ -292,4 +292,4 @@ You can then use the data source plugin just developed in this environment. ## What's next -Congrats! After testing the data source plugin, you can submit a [Pull Request](https://github.com/Lowcoder-dev/Lowcoder/pulls) now. +Congrats! After testing the data source plugin, you can submit a [Pull Request](https://github.com/OpenFlower-dev/OpenFlower/pulls) now. diff --git a/docs/lowcoder-extension/opensource-contribution/develop-ui-components-for-apps.md b/docs/lowcoder-extension/opensource-contribution/develop-ui-components-for-apps.md index 91115ef999..9a6b66793d 100644 --- a/docs/lowcoder-extension/opensource-contribution/develop-ui-components-for-apps.md +++ b/docs/lowcoder-extension/opensource-contribution/develop-ui-components-for-apps.md @@ -1,6 +1,6 @@ # Develop UI components for Apps -With Lowcoder plugins, you can develop customized components that are consistent with native components for your specific scenarios. +With OpenFlower plugins, you can develop customized components that are consistent with native components for your specific scenarios. ## Initialization @@ -23,7 +23,7 @@ After executing `yarn start`, the browser is automatically opened and you enter ## Plugin configurations -In `Lowcoder` field in `package.json` file, you need to define the component properties. For example, the following is the explanation of several fields: +In `OpenFlower` field in `package.json` file, you need to define the component properties. For example, the following is the explanation of several fields: * `comps` defines UI components contained in the plugin. For each component, the key name of the object is the unique identity, and the value is metadata. * `comps[someCompKey].name` defines the component name shown in the **Insert** tab. @@ -33,7 +33,7 @@ In `Lowcoder` field in `package.json` file, you need to define the component pro * h: height of the component. Counted by the number of grid cells (range: >= 1). ```bash - "Lowcoder": { + "OpenFlower": { "description": "", "comps": { "hello_world": { @@ -78,7 +78,7 @@ If you do not specify the parameter `--publish`, the `tar` file will be saved in ## Import plugins -In the Lowcoder app, click **Insert** > **Extensions** > **Add npm plugin** in the right pane. +In the OpenFlower app, click **Insert** > **Extensions** > **Add npm plugin** in the right pane. Input your npm package's URL or name, and then you can use your customized components. @@ -92,4 +92,4 @@ https://www.npmjs.com/package/my-plugin ## Code demo -For code demo, refer to Lowcoder Github. +For code demo, refer to OpenFlower Github. diff --git a/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md b/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md index 6e60d0488a..853647a754 100644 --- a/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md +++ b/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md @@ -1,10 +1,10 @@ # Use third-party libraries in Apps -Every developer learns one of the most important principles of software engineering early in their career: DRY (Don’t Repeat Yourself). Using third-party libraries can save you time as you do not need to develop the functionality that the library provides. Lowcoder provides some built-in third-party libraries for common uses, and you can manually import other libraries on demand. +Every developer learns one of the most important principles of software engineering early in their career: DRY (Don’t Repeat Yourself). Using third-party libraries can save you time as you do not need to develop the functionality that the library provides. OpenFlower provides some built-in third-party libraries for common uses, and you can manually import other libraries on demand. ## Built-in libraries -Lowcoder provides some JavaScript built-in libraries for use. +OpenFlower provides some JavaScript built-in libraries for use. | Library | What for | Docs | Version | | --------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------- | @@ -35,14 +35,14 @@ return Papa.parse("name|age\nJohn Doe|30\nJane Doe|25", {delimiter: "|"}) ## Import third-party libraries -Lowcoder supports setting up preloaded JavaScript and libraries, which can either be imported for individual apps or the whole workspace. +OpenFlower supports setting up preloaded JavaScript and libraries, which can either be imported for individual apps or the whole workspace. {% hint style="danger" %} Only libraries using the [UMD (Universal Module Definition)](https://github.com/umdjs/umd) approach are supported. {% endhint %} {% hint style="success" %} -As soon as imported/bound to an App or workspace, Lowcoder manages the pre-loading of these libraries automatically in the editor and app view. +As soon as imported/bound to an App or workspace, OpenFlower manages the pre-loading of these libraries automatically in the editor and app view. {% endhint %} * **App-level** libraries get loaded only in the app where they were defined. This means a library imported to app A is not loaded for app B. The reverse is also true. A library imported for app B is not available to app A unless it is explicitly imported to app A as well. @@ -107,7 +107,7 @@ You can check popular CDNs if they host your desired library as a minified packa ### Import / bind at the app level -Navigate to the settings page and then click the plus sign **+** under the **JavaScript library** tab. Paste the **library** link and click **Add New**. Lowcoder will now check, if the external library will be compatible and securely usable. +Navigate to the settings page and then click the plus sign **+** under the **JavaScript library** tab. Paste the **library** link and click **Add New**. OpenFlower will now check, if the external library will be compatible and securely usable. You can also click the download icon to quickly download any recommended JS library. @@ -120,7 +120,7 @@ Now, you can create a JS query and insert code. ``` return window.cowsay.say({ - text : "Lowcoder is cool", e : "oO", T : "U " + text : "OpenFlower is cool", e : "oO", T : "U " }) ``` @@ -140,6 +140,6 @@ window.cowsay.say(...) - does the job. ### Import/bind at the workspace level -Go to [Lowcoder's homepage](https://www.lowcoder.cloud/), select **Settings** > **Advanced**, and click **Add** under the **JavaScript library** tab. Paste the link of the third-party JS library and click **Add New** to add it to your workspace. You can also click the download icon to add any recommended JS library quickly. The installed libraries are accessible from any app within your workspace. +Go to [OpenFlower's homepage](https://www.lowcoder.cloud/), select **Settings** > **Advanced**, and click **Add** under the **JavaScript library** tab. Paste the link of the third-party JS library and click **Add New** to add it to your workspace. You can also click the download icon to add any recommended JS library quickly. The installed libraries are accessible from any app within your workspace.

Bind an external JS Library to all Apps of a Workspace

diff --git a/docs/lowcoder-extension/use-third-party-libraries-in-apps/day.js-date-handling.md b/docs/lowcoder-extension/use-third-party-libraries-in-apps/day.js-date-handling.md index 41c6a6cef7..5485531674 100644 --- a/docs/lowcoder-extension/use-third-party-libraries-in-apps/day.js-date-handling.md +++ b/docs/lowcoder-extension/use-third-party-libraries-in-apps/day.js-date-handling.md @@ -2,7 +2,7 @@ Day.js is a lightweight JavaScript library for parsing, validating, manipulating, and formatting dates and times, designed to be a simpler and smaller alternative to Moment.js. -Day.js is already included in Lowcoder, so you can directly begin using it to work with dates and times by creating Day.js objects using `dayjs()`. This function accepts various formats, including strings, Date objects, and UNIX timestamps, allowing for flexible date and time manipulation such as adding or subtracting time, formatting dates, and comparing dates. +Day.js is already included in OpenFlower, so you can directly begin using it to work with dates and times by creating Day.js objects using `dayjs()`. This function accepts various formats, including strings, Date objects, and UNIX timestamps, allowing for flexible date and time manipulation such as adding or subtracting time, formatting dates, and comparing dates. {% hint style="info" %} You can read how to use Day.js in their excellent Documentation here: [https://day.js.org/docs/en/get-set/get](https://day.js.org/docs/en/get-set/get) @@ -34,7 +34,7 @@ When using plugins, it's important to ensure plugins are loaded and extended aft Day.js plugins on CDNjs: [https://cdnjs.com/libraries/dayjs](https://cdnjs.com/libraries/dayjs) {% endhint %} -Now you can use Day.js Plugins at all places in Lowcoder that support \{{ \}} Handlebar notation. +Now you can use Day.js Plugins at all places in OpenFlower that support \{{ \}} Handlebar notation. ```javascript Quarter: {{dayjs().format('Q')}} diff --git a/docs/lowcoder-for-enterprise/custom-branding.md b/docs/lowcoder-for-enterprise/custom-branding.md index b3295f0283..4f10cce823 100644 --- a/docs/lowcoder-for-enterprise/custom-branding.md +++ b/docs/lowcoder-for-enterprise/custom-branding.md @@ -1,18 +1,18 @@ # Custom branding -Lowcoder provides a white-labelling feature that allows you to customize your workspace's **branding**, including logo, favicon, brand name and color. You can easily configure branding to match your company's branding and benefit from consistent experiences with your company's existing internal tools. +OpenFlower provides a white-labelling feature that allows you to customize your workspace's **branding**, including logo, favicon, brand name and color. You can easily configure branding to match your company's branding and benefit from consistent experiences with your company's existing internal tools. {% hint style="info" %} -Custom branding is a **premium feature** of self-hosted Enterprise Edition of Lowcoder. Feel free to contact our team if needed. +Custom branding is a **premium feature** of self-hosted Enterprise Edition of OpenFlower. Feel free to contact our team if needed. {% endhint %} ## Branding settings -Only **workspace admins** have the permission to customize branding. Navigate to [Lowcoder homepage](https://cloud.lowcoder.dev/), select ⚙️ **Settings** tab \*\*\*\* in \*\*\*\* the left pane and click **Branding**. You can edit the settings on the left and preview the actual effects on the right. +Only **workspace admins** have the permission to customize branding. Navigate to [OpenFlower homepage](https://cloud.lowcoder.dev/), select ⚙️ **Settings** tab \*\*\*\* in \*\*\*\* the left pane and click **Branding**. You can edit the settings on the left and preview the actual effects on the right. The customizable branding settings are listed as follows: -* Logo: click the **Logo** box to upload your logo, which is shown at the top bar. The file browser will pop up and you can select an image file. Lowcoder supports `.jpg`, `.svg`, and `.png` files. +* Logo: click the **Logo** box to upload your logo, which is shown at the top bar. The file browser will pop up and you can select an image file. OpenFlower supports `.jpg`, `.svg`, and `.png` files. * Head color: click the palette in the **Head Color** section to select the background color of the top bar. You can also directly type a CSS color into the box. * Brand name: enter your **Brand Name** in the input box and it will show on the **login page** and as the browser tab title. * Favicon: click the **Favicon** box to upload your website icon, which is shown in the browser tab. @@ -25,8 +25,8 @@ Click the **Save** button and the settings will immediately take effect. The following pictures show what workspace **members** and **end users** will see on the login page, homepage, and application pages after branding is successfully customized (take the brand name "My brand" for example). -Note that workspace **developers** and **admins** still see "Lowcoder" branding on the homepage and application pages. +Note that workspace **developers** and **admins** still see "OpenFlower" branding on the homepage and application pages. ## Further support -If the current branding feature doesn't meet your requirements, please do not hesitate to contact us. Lowcoder team is ready to help with your needs. +If the current branding feature doesn't meet your requirements, please do not hesitate to contact us. OpenFlower team is ready to help with your needs. diff --git a/docs/lowcoder-overview/the-hello-world-walk.md b/docs/lowcoder-overview/the-hello-world-walk.md index 3f7fc232c1..6f45e1ddde 100644 --- a/docs/lowcoder-overview/the-hello-world-walk.md +++ b/docs/lowcoder-overview/the-hello-world-walk.md @@ -1,12 +1,12 @@ --- -description: A short tutorial walk through Lowcoder +description: A short tutorial walk through OpenFlower --- # The "Hello World" walk -At your first contact with Lowcoder you will see the Login Screen. +At your first contact with OpenFlower you will see the Login Screen. -

Lowcoder Login Screen

+

OpenFlower Login Screen

If you haven't created your account yet, you can register a new account with the url /user/auth/register or the Sign up Link on the login page. @@ -14,11 +14,11 @@ If you haven't created your account yet, you can register a new account with the When you create a User without Invite-Link, this User will automatically get the role of an Administrator with own Workspace(s). -The fist Screen of the Admin Panel of Lowcoder shows the overview of all Apps (in the current selected Workplace). For new Installations & logins, the Workplace is named by the eMail of the logged in User. +The fist Screen of the Admin Panel of OpenFlower shows the overview of all Apps (in the current selected Workplace). For new Installations & logins, the Workplace is named by the eMail of the logged in User.

App overview as welcome screen

-In Lowcoder you can create and find the building blocks of applications: +In OpenFlower you can create and find the building blocks of applications: * Navigations * Mobile Navigations @@ -60,7 +60,7 @@ In the red section, which opens automatically as soon as you click on a specific As soon as you like, you can share an App with selected users to test together. -

You can use the "Share" Button to invite other Lowcoder Users to use the App

+

You can use the "Share" Button to invite other OpenFlower Users to use the App

Select individual Users or make the App public for everyone.

diff --git a/docs/publish-apps/embedd-an-app/README.md b/docs/publish-apps/embedd-an-app/README.md index be2edce481..53eef83cbd 100644 --- a/docs/publish-apps/embedd-an-app/README.md +++ b/docs/publish-apps/embedd-an-app/README.md @@ -1,23 +1,23 @@ # Embedd an App -Lowcoder's ability to run apps natively within other web apps addresses many of the challenges businesses face in today's digital landscape. It offers a holistic solution that caters to diverse needs, from enhancing a company's online presence to providing specialized functionalities and ensuring a consistent user experience across platforms. +OpenFlower's ability to run apps natively within other web apps addresses many of the challenges businesses face in today's digital landscape. It offers a holistic solution that caters to diverse needs, from enhancing a company's online presence to providing specialized functionalities and ensuring a consistent user experience across platforms. -By allowing apps to run both in the browser and natively within other web apps, Lowcoder offers unparalleled flexibility. Developers and businesses can choose the best deployment method based on their specific needs, whether it's a standalone web app, an integrated module within a larger system, or a feature within a mobile app. +By allowing apps to run both in the browser and natively within other web apps, OpenFlower offers unparalleled flexibility. Developers and businesses can choose the best deployment method based on their specific needs, whether it's a standalone web app, an integrated module within a larger system, or a feature within a mobile app. -Content Management Systems (CMS) are widely used to manage and publish content on the web. With Lowcoder's SDK, businesses can directly integrate custom apps into their CMS platforms. This means they can enhance their websites with specialized functionalities without having to rely on third-party plugins or extensive custom development. +Content Management Systems (CMS) are widely used to manage and publish content on the web. With OpenFlower's SDK, businesses can directly integrate custom apps into their CMS platforms. This means they can enhance their websites with specialized functionalities without having to rely on third-party plugins or extensive custom development. Integrating apps directly into websites or web apps ensures a seamless user experience. Users won't need to switch between different platforms or interfaces; everything they need is available within a single unified environment. -By leveraging Lowcoder's capabilities, businesses can reduce the costs associated with developing separate apps for different platforms. They can build once and deploy everywhere, whether it's on their website, CMS, or as a native mobile app. +By leveraging OpenFlower's capabilities, businesses can reduce the costs associated with developing separate apps for different platforms. They can build once and deploy everywhere, whether it's on their website, CMS, or as a native mobile app. -The Lowcoder platform likely simplifies the app development process, enabling rapid prototyping and deployment. This speed is further enhanced when integrating apps directly into existing systems, as there's no need for extensive integration work. +The OpenFlower platform likely simplifies the app development process, enabling rapid prototyping and deployment. This speed is further enhanced when integrating apps directly into existing systems, as there's no need for extensive integration work. -One of the challenges businesses face is maintaining consistency across various platforms. With Lowcoder's approach, the same app can be deployed in multiple places, ensuring a consistent look, feel, and functionality. +One of the challenges businesses face is maintaining consistency across various platforms. With OpenFlower's approach, the same app can be deployed in multiple places, ensuring a consistent look, feel, and functionality. By allowing apps to be published across various platforms, businesses can reach a broader audience. Whether users interact with the app on a company's website, within a web app, or on their mobile device, they get the same functionality and experience. -As technology evolves, the lines between web apps, websites, and native mobile apps are blurring. By adopting a platform like Lowcoder that bridges these gaps, businesses are better positioned to adapt to future technological shifts and user behavior changes. +As technology evolves, the lines between web apps, websites, and native mobile apps are blurring. By adopting a platform like OpenFlower that bridges these gaps, businesses are better positioned to adapt to future technological shifts and user behavior changes. -After the blue section and before the FAQs you see (or not to see so obviously) a native embedded Lowcoder APP in a website. This is not an IFrame - but a native embedding, which creates the HTML elements of the Lowcoder App in the HTML hierarchy of the Website. +After the blue section and before the FAQs you see (or not to see so obviously) a native embedded OpenFlower APP in a website. This is not an IFrame - but a native embedding, which creates the HTML elements of the OpenFlower App in the HTML hierarchy of the Website.
diff --git a/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md b/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md index 665102701f..fe808b9460 100644 --- a/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md +++ b/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md @@ -1,6 +1,6 @@ # Embed App in HTML Pages -It is also possible to embed Lowcoder Apps on any HTML Page with simple Scripts, that we provide on sdk.lowcoder.cloud. This enables you to embed Lowcoder Apps even without deep knowledge of React or Web Development. +It is also possible to embed OpenFlower Apps on any HTML Page with simple Scripts, that we provide on sdk.lowcoder.cloud. This enables you to embed OpenFlower Apps even without deep knowledge of React or Web Development. Place the standard JavaScript Files in your \ part of the HTML page. @@ -9,7 +9,7 @@ Place the standard JavaScript Files in your \ part of the HTML page. ``` -And now the Lowcoder SDK Scripts, as the last tags before the \ closing tag. +And now the OpenFlower SDK Scripts, as the last tags before the \ closing tag. ``` diff --git a/docs/publish-apps/embedd-an-app/embed-apps-in-react.md b/docs/publish-apps/embedd-an-app/embed-apps-in-react.md index 64d95081d2..ec755f2577 100644 --- a/docs/publish-apps/embedd-an-app/embed-apps-in-react.md +++ b/docs/publish-apps/embedd-an-app/embed-apps-in-react.md @@ -2,7 +2,7 @@ ### Native embedding in your React-based Web App -First, install the Lowcoder SDK. Lowcoder publishes with every Version Release a new version of Lowcoder SDK too. [https://www.npmjs.com/package/lowcoder-sdk](https://www.npmjs.com/package/lowcoder-sdk) +First, install the OpenFlower SDK. OpenFlower publishes with every Version Release a new version of OpenFlower SDK too. [https://www.npmjs.com/package/lowcoder-sdk](https://www.npmjs.com/package/lowcoder-sdk) yarn: @@ -16,9 +16,9 @@ npm: npm install lowcoder-sdk ``` -### Integrate an Lowcoder App or Module into your existing app +### Integrate an OpenFlower App or Module into your existing app -1. Publish your app/module in Lowcoder. +1. Publish your app/module in OpenFlower. 2. Set the app/module's access privilege as public. 3. Add code in your existing app as below. @@ -31,28 +31,28 @@ import "lowcoder-sdk/dist/style.css"; #### For React app: ``` -import { LowcoderAppView } from "lowcoder-sdk"; +import { OpenFlowerAppView } from "lowcoder-sdk"; -; +; ``` **Properties** -
NameTypeDescriptionDefault value
appIdstringThe app's id is required!--
baseUrlstringThe api base url of the Lowcoder Instance.https://api-service.lowcoder.cloud
onModuleEventTriggered(eventName: string) => void(Only for Modules) Triggered when module's custom event is triggered. Works only when the app is a module.--
onModuleOutputChange(output: any) => void(Only for Modules) Triggered when module's outputs change. Works only when the app is a module.--
+
NameTypeDescriptionDefault value
appIdstringThe app's id is required!--
baseUrlstringThe api base url of the OpenFlower Instance.https://api-service.lowcoder.cloud
onModuleEventTriggered(eventName: string) => void(Only for Modules) Triggered when module's custom event is triggered. Works only when the app is a module.--
onModuleOutputChange(output: any) => void(Only for Modules) Triggered when module's outputs change. Works only when the app is a module.--
-Modules are special Apps, which make bidirectional communication between your app and the Lowcoder Module possible. You can send data to Module-Inputs and receive Data back via Module Outputs. Also, you can trigger Methods and listen to Events. +Modules are special Apps, which make bidirectional communication between your app and the OpenFlower Module possible. You can send data to Module-Inputs and receive Data back via Module Outputs. Also, you can trigger Methods and listen to Events. **Invoke module methods** ``` import { useRef } from "ref"; -import { LowcoderAppView } from "lowcoder-sdk"; +import { OpenFlowerAppView } from "lowcoder-sdk"; function MyExistingAppPage() { const appRef = useRef(); return (
- ; + ; diff --git a/docs/publish-apps/embedd-an-app/native-embed-sdk/README.md b/docs/publish-apps/embedd-an-app/native-embed-sdk/README.md index 79dfe6a08f..8d0ddf997a 100644 --- a/docs/publish-apps/embedd-an-app/native-embed-sdk/README.md +++ b/docs/publish-apps/embedd-an-app/native-embed-sdk/README.md @@ -1,16 +1,16 @@ # Native embed SDK -The key advantage for React developers using Lowcoder is the ease of embedding Lowcoder apps directly into the React component hierarchy. This native integration means that Lowcoder apps can be treated as part of the React tree, ensuring a smooth and cohesive user experience. Developers can place Lowcoder apps within their existing React components, maintaining the structural and stylistic consistency of their applications. +The key advantage for React developers using OpenFlower is the ease of embedding OpenFlower apps directly into the React component hierarchy. This native integration means that OpenFlower apps can be treated as part of the React tree, ensuring a smooth and cohesive user experience. Developers can place OpenFlower apps within their existing React components, maintaining the structural and stylistic consistency of their applications. -Moreover, the interaction between React components and Lowcoder apps is exceptionally fluid. React developers can directly manipulate the state of Lowcoder apps, invoke methods, and handle events, creating a highly interactive and responsive environment. This direct interaction is a game-changer, as it allows for real-time data exchange and dynamic behavior within the application. +Moreover, the interaction between React components and OpenFlower apps is exceptionally fluid. React developers can directly manipulate the state of OpenFlower apps, invoke methods, and handle events, creating a highly interactive and responsive environment. This direct interaction is a game-changer, as it allows for real-time data exchange and dynamic behavior within the application. -For instance, a React developer can easily update the state of a Lowcoder app based on user interactions or external data changes in their React components. This two-way communication ensures that the embedded Lowcoder apps are not just static elements but integral, interactive parts of the overall application. +For instance, a React developer can easily update the state of a OpenFlower app based on user interactions or external data changes in their React components. This two-way communication ensures that the embedded OpenFlower apps are not just static elements but integral, interactive parts of the overall application. -The ability to interact with Lowcoder apps through state management, method calls, and event handling in React also simplifies the development process. Developers can leverage their existing knowledge of React's ecosystem to control and customize Lowcoder apps, reducing the learning curve and accelerating development timelines. +The ability to interact with OpenFlower apps through state management, method calls, and event handling in React also simplifies the development process. Developers can leverage their existing knowledge of React's ecosystem to control and customize OpenFlower apps, reducing the learning curve and accelerating development timelines. -## Lowcoder SDK usable imports +## OpenFlower SDK usable imports -This is an overview list of exports available for developers using the Lowcoder SDK. +This is an overview list of exports available for developers using the OpenFlower SDK. @@ -328,7 +328,7 @@ so you can use it like "const YourDiv = styled.div`... {your CSS}`; ```plaintext appView/bootstrapAt - Bootstrap utility for application initialization. -appView/LowcoderAppView - Main application view component. +appView/OpenFlowerAppView - Main application view component. appView/AppViewInstance - Application view instance management. ide/CompIde - Component IDE for development. ide/CompPlayground - Component playground for testing. diff --git a/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md b/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md index 1ee6e3b45b..4ada0acb98 100644 --- a/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md +++ b/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md @@ -1,7 +1,7 @@ # Build the SDK from Source 1. Clone the Repository [https://github.com/lowcoder-org/lowcoder](https://github.com/lowcoder-org/lowcoder) -2. Make sure the repo is synced with the latest updates of the actual Lowcoder repo. If not sync the repo and take the newest pull. +2. Make sure the repo is synced with the latest updates of the actual OpenFlower repo. If not sync the repo and take the newest pull. 3. Move to “client/packages/lowcoder-sdk“ directory 4. run `yarn install` and `yarn build` command. 5. Increase the package version in “client/packages/lowcoder-sdk/package.json“ diff --git a/docs/publish-apps/publish-an-app.md b/docs/publish-apps/publish-an-app.md index 5be1b20fc7..66879cf419 100644 --- a/docs/publish-apps/publish-an-app.md +++ b/docs/publish-apps/publish-an-app.md @@ -1,6 +1,6 @@ # Publish an App -Publishing an app in Lowcoder transitions it from a Editing State to a live (published) state. This allows users to access and interact with the app based on the sharing and publishing settings defined by the App Creator. +Publishing an app in OpenFlower transitions it from a Editing State to a live (published) state. This allows users to access and interact with the app based on the sharing and publishing settings defined by the App Creator. ## Publishing States @@ -34,13 +34,13 @@ An app can be published with different scopes, determining who can access the ap ## Marketplace Publishing -Apps can also be published to Lowcoder marketplaces: +Apps can also be published to OpenFlower marketplaces:
1. **Public to Marketplace**: * After _sharing_ the app as "public to all", it can be further published to the marketplace. - * This makes the app available in the marketplace listings, either globally at app.lowcoder.cloud or within individual Lowcoder installations. + * This makes the app available in the marketplace listings, either globally at app.lowcoder.cloud or within individual OpenFlower installations. ## Workflow for Publishing an App @@ -54,7 +54,7 @@ Apps can also be published to Lowcoder marketplaces: 3. **Marketplace Publication** (Optional): * If desired, mark the app as "public to All" in the sharing dialogue. Now you can see the second option switch "Public to marketplace" * Then, publish the app to the marketplace as you publish other apps too. - * The app will be listed in the _global_ or local Lowcoder marketplace. + * The app will be listed in the _global_ or local OpenFlower marketplace. {% hint style="info" %} Global Marketplace means, if you published the app for the Marketplace on app.lowcoder.cloud diff --git a/docs/publish-apps/share-an-app.md b/docs/publish-apps/share-an-app.md index 128d35e825..8f3fdf4b08 100644 --- a/docs/publish-apps/share-an-app.md +++ b/docs/publish-apps/share-an-app.md @@ -1,12 +1,12 @@ --- -description: Application Sharing in Lowcoder +description: Application Sharing in OpenFlower --- # Share an App ## Overview -Application sharing in Lowcoder allows Application Creators to share their applications with specific users, user groups, or the public. This functionality is accessible via the sharing dialogue and supports various sharing states and roles. +Application sharing in OpenFlower allows Application Creators to share their applications with specific users, user groups, or the public. This functionality is accessible via the sharing dialogue and supports various sharing states and roles. ## Sharing States @@ -39,14 +39,14 @@ There are three primary methods for sharing an application: ### Public to Marketplace -"Public to Marketplace" is a special sharing case designed to showcase applications in a Lowcoder marketplace. +"Public to Marketplace" is a special sharing case designed to showcase applications in a OpenFlower marketplace.
This feature supports two types of marketplaces: 1. **Global Marketplace**: Accessible at app.lowcoder.cloud, where apps are available to everyone. -2. **Local Marketplace**: Individual Lowcoder installations can host their own marketplaces, accessible only to their users. +2. **Local Marketplace**: Individual OpenFlower installations can host their own marketplaces, accessible only to their users. The `LOWCODER_MARKETPLACE_PRIVATE_MODE` environment variable controls the visibility of apps on local marketplaces: diff --git a/docs/setup-and-run/cloud-and-private-cloud.md b/docs/setup-and-run/cloud-and-private-cloud.md index 812ae64973..d6c9cdbd2c 100644 --- a/docs/setup-and-run/cloud-and-private-cloud.md +++ b/docs/setup-and-run/cloud-and-private-cloud.md @@ -1,17 +1,17 @@ # Cloud & Private Cloud -Lowcoder is available online. You can start directly to build Applications. +OpenFlower is available online. You can start directly to build Applications. {% embed url="https://app.lowcoder.cloud" %} shared cloud free of charge {% endembed %} -We offer a hosted version of Lowcoder in this shared public cloud for free. We take care of updates, security, and scaling of the underlying infrastructure in a multi-docker deployment. +We offer a hosted version of OpenFlower in this shared public cloud for free. We take care of updates, security, and scaling of the underlying infrastructure in a multi-docker deployment. -The public cloud has a central database for all users and applications. We suggest using the public cloud to get to know Lowcoder and make your first tests and Apps. +The public cloud has a central database for all users and applications. We suggest using the public cloud to get to know OpenFlower and make your first tests and Apps. -For companies and enterprises, it is suggested to work in an isolated environment with its own database and infrastructure. For this, we offer a private cloud subscription. Technically it is the same Lowcoder stack and Version - but with an individual and isolated configuration in a region you choose US, EU, or ASEAN. +For companies and enterprises, it is suggested to work in an isolated environment with its own database and infrastructure. For this, we offer a private cloud subscription. Technically it is the same OpenFlower stack and Version - but with an individual and isolated configuration in a region you choose US, EU, or ASEAN. For private cloud setups, we offer the possibility to connect your own domains. -We host Lowcoder in secure, ISO 9001, ISO 27001, ISAE 3402 & PCI-DSS certified SafeHost data centers, ensuring an exceptionally low risk of flooding, landslides, or earthquakes and the highest data security. Backups are organized every night for all infrastructure components and the Databases as Snapshots. +We host OpenFlower in secure, ISO 9001, ISO 27001, ISAE 3402 & PCI-DSS certified SafeHost data centers, ensuring an exceptionally low risk of flooding, landslides, or earthquakes and the highest data security. Backups are organized every night for all infrastructure components and the Databases as Snapshots. diff --git a/docs/setup-and-run/security.md b/docs/setup-and-run/security.md index fa794254df..eb53d1e247 100644 --- a/docs/setup-and-run/security.md +++ b/docs/setup-and-run/security.md @@ -1,28 +1,28 @@ # Security -## Does Lowcoder store data from my data sources? +## Does OpenFlower store data from my data sources? -No, Lowcoder doesn't store any data returned from your APIs or database queries. Only the connection data of your created Datasources are stored and encrypted. +No, OpenFlower doesn't store any data returned from your APIs or database queries. Only the connection data of your created Datasources are stored and encrypted. -Lowcoder only serves as a proxy between the client side and your data sources. When you query your APIs or databases, the Lowcoder server connects to the data source with your credentials, forwards the request, and returns the result data to the browser. During the whole process, Lowcoder doesn't store any data from your requests or responses. +OpenFlower only serves as a proxy between the client side and your data sources. When you query your APIs or databases, the OpenFlower server connects to the data source with your credentials, forwards the request, and returns the result data to the browser. During the whole process, OpenFlower doesn't store any data from your requests or responses. -Lowcoder also provides a self-hosted version. You can deploy self-hosted Lowcoder images on your own device, on-premise deployment ensures you have total control over your resources and that your data is securely stored. +OpenFlower also provides a self-hosted version. You can deploy self-hosted OpenFlower images on your own device, on-premise deployment ensures you have total control over your resources and that your data is securely stored. -## Is it safe to log in to my databases on Lowcoder? +## Is it safe to log in to my databases on OpenFlower? Yes, it is safe for the following reasons: * All sensitive credentials, such as database passwords, are encrypted with [AES-256 encryption](https://en.wikipedia.org/wiki/Advanced\_Encryption\_Standard). * Sensitive credentials will never be sent to the browser from the server. They are only used at the server side (in the API service) and are never exposed to the browser, the browser will display "Encrypted on the server side" as a placeholder for existing Datasources. -## Other security measures within Lowcoder +## Other security measures within OpenFlower -Lowcoder provides secure-by-default service. +OpenFlower provides secure-by-default service. -* All connections on Lowcoder Cloud are encrypted with [TLS](https://en.wikipedia.org/wiki/Public\_key\_certificate). +* All connections on OpenFlower Cloud are encrypted with [TLS](https://en.wikipedia.org/wiki/Public\_key\_certificate). * Sensitive credentials, such as database access credentials, are encrypted with AES-256. -* Self-hosted Lowcoder instances can be configured with unique encryption salt values. -* Lowcoder Cloud only connects to your databases or APIs through allowed IPs, ensuring that your data won't be exposed to unknown IPs while using our cloud service. +* Self-hosted OpenFlower instances can be configured with unique encryption salt values. +* OpenFlower Cloud only connects to your databases or APIs through allowed IPs, ensuring that your data won't be exposed to unknown IPs while using our cloud service. ``` (US) @@ -44,10 +44,10 @@ Lowcoder provides secure-by-default service. 185.44.64.47 ``` -* Lowcoder Cloud service is deployed and hosted on German, UK, and US Data-Centers, which are certified with SOC 1 Type II,PCI-DSS,SOC 2 Type II,ISO 27001,HIPAA and NIST 800-53/FISMA. -* Lowcoder Cloud ensures data redundancy on all cloud instances, so you do not need to worry about a single point of failure or data loss. -* Internal access to Lowcoder Cloud is controlled through [two-factor authentication (2FA)](https://en.wikipedia.org/wiki/Help:Two-factor\_authentication) and audit logs. +* OpenFlower Cloud service is deployed and hosted on German, UK, and US Data-Centers, which are certified with SOC 1 Type II,PCI-DSS,SOC 2 Type II,ISO 27001,HIPAA and NIST 800-53/FISMA. +* OpenFlower Cloud ensures data redundancy on all cloud instances, so you do not need to worry about a single point of failure or data loss. +* Internal access to OpenFlower Cloud is controlled through [two-factor authentication (2FA)](https://en.wikipedia.org/wiki/Help:Two-factor\_authentication) and audit logs. ## Feedback -Should you have any questions about data security in Lowcoder, please feel free to contact us. We welcome any feedback on our service from security experts and all users. +Should you have any questions about data security in OpenFlower, please feel free to contact us. We welcome any feedback on our service from security experts and all users. diff --git a/docs/setup-and-run/self-hosting/README.md b/docs/setup-and-run/self-hosting/README.md index f5bf14e394..677d6f5f8b 100644 --- a/docs/setup-and-run/self-hosting/README.md +++ b/docs/setup-and-run/self-hosting/README.md @@ -1,6 +1,6 @@ # Self-hosting -In this article, you will be guided through how to host Lowcoder on your own server using Docker-Compose or Docker. +In this article, you will be guided through how to host OpenFlower on your own server using Docker-Compose or Docker. There are multiple ways of installation. We directly support: @@ -30,7 +30,7 @@ Recommended system spec: 1-core CPU and 2 GB RAM. Windows users are recommended to use PowerShell for running the commands below. {% endhint %} -In your working directory, run the following commands to make a directory named `Lowcoder` to store the data of Lowcoder: +In your working directory, run the following commands to make a directory named `OpenFlower` to store the data of OpenFlower: ```bash mkdir lowcoder @@ -67,8 +67,8 @@ curl https://raw.githubusercontent.com/lowcoder-org/lowcoder/main/deploy/docker/ docker logs -f lowcoder ``` - When you see `frontend`, `backend`, `redis`, and `mongo` `entered the RUNNING state`, the Lowcoder service has officially started: -4. Visit [**http://localhost:3000**](http://localhost:3000) and click **Sign up**. Lowcoder will automatically create a workspace for you, then you can start building your apps and invite members to your workspace. + When you see `frontend`, `backend`, `redis`, and `mongo` `entered the RUNNING state`, the OpenFlower service has officially started: +4. Visit [**http://localhost:3000**](http://localhost:3000) and click **Sign up**. OpenFlower will automatically create a workspace for you, then you can start building your apps and invite members to your workspace. {% endtab %} {% tab title="Docker" %} @@ -86,7 +86,7 @@ docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" low {% tabs %} {% tab title="Docker-Compose" %} -Run the following commands to update to the latest Lowcoder image: +Run the following commands to update to the latest OpenFlower image: ```bash docker-compose pull @@ -96,13 +96,13 @@ docker-compose up -d {% endtab %} {% tab title="Docker" %} -Run the following commands to update to the latest Lowcoder image: +Run the following commands to update to the latest OpenFlower image: {% code overflow="wrap" %} ```bash docker pull lowcoderorg/lowcoder-ce -docker rm -fv Lowcoder -docker run -d --name Lowcoder -p 3000:3000 -v "$PWD/stacks:/Lowcoder-stacks" lowcoderorg/lowcoder-ce +docker rm -fv OpenFlower +docker run -d --name OpenFlower -p 3000:3000 -v "$PWD/stacks:/OpenFlower-stacks" lowcoderorg/lowcoder-ce ``` {% endcode %} {% endtab %} @@ -118,7 +118,7 @@ Multi-Image Installation to scale. API-Service & Node-Service can get scaled ind ### Separate images: services in stateless containers -For bigger expected loads that need scaling in a cluster environment, we offer separate images for stateless containers of the backend and frontend service with a customizable Dockerfile. A well-functioning Lowcoder deployment consists of below services: +For bigger expected loads that need scaling in a cluster environment, we offer separate images for stateless containers of the backend and frontend service with a customizable Dockerfile. A well-functioning OpenFlower deployment consists of below services: * **api-service**: Backend service. * **node-service**: Backend service. @@ -132,7 +132,7 @@ For bigger expected loads that need scaling in a cluster environment, we offer s #### Deploy -1. In your working directory, run the following commands to make a directory named `lowcoder` to store the data of Lowcoder: +1. In your working directory, run the following commands to make a directory named `lowcoder` to store the data of OpenFlower: ```bash mkdir lowcoder @@ -153,7 +153,7 @@ For bigger expected loads that need scaling in a cluster environment, we offer s ```bash docker-compose -f docker-compose-multi.yml up -d ``` -5. Visit [**http://localhost:3000**](http://localhost:3000) and click **Sign up**. Lowcoder will automatically create a workspace for you, then you can start building your apps and invite members to your workspace. +5. Visit [**http://localhost:3000**](http://localhost:3000) and click **Sign up**. OpenFlower will automatically create a workspace for you, then you can start building your apps and invite members to your workspace. ## 3) Update to the latest version @@ -205,7 +205,7 @@ For more information about configurations and environment variables, see [Config ### Use your own MongoDB and Redis -By default, Lowcoder uses the built-in MongoDB and Redis installed inside the container, and you can replace them with your own MongoDB and Redis clusters. +By default, OpenFlower uses the built-in MongoDB and Redis installed inside the container, and you can replace them with your own MongoDB and Redis clusters. {% tabs %} {% tab title="Docker-Compose" %} @@ -249,7 +249,7 @@ docker run -d --name lowcoder -e LOCAL_USER_ID=10010 -p 3000:3000 -v "$PWD/stack ### Install SSL certificate -With an SSL certificate, you can securely visit self-hosted Lowcoder with HTTPS protocol. Here are the steps to install your SSL certificate before starting a container: +With an SSL certificate, you can securely visit self-hosted OpenFlower with HTTPS protocol. Here are the steps to install your SSL certificate before starting a container: {% tabs %} {% tab title="Docker-Compose" %} @@ -284,9 +284,9 @@ ENV Variables for Helm, Docker Compose, and Docker installations are to find in ### ENV Variables for the all-in-one image -This image contains all services needed to run Lowcoder platform in one container. +This image contains all services needed to run OpenFlower platform in one container. -
Environment variableDescriptionDefault-Value
LOWCODER_REDIS_ENABLEDIf true redis server is started in the containertrue
LOWCODER_MONGODB_ENABLEDIf true mongo database is started in the containertrue
LOWCODER_MONGODB_EXPOSEDIf true mongo database accept connections from outside the dockerfalse
LOWCODER_API_SERVICE_ENABLEDIf true lowcoder api-service is started in the containertrue
LOWCODER_NODE_SERVICE_ENABLEDIf true lowcoder node-service is started in the containertrue
LOWCODER_FRONTEND_ENABLEDIf true lowcoder web frontend is started in the containertrue
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MONGODB_URLMongo database connection stringmongodb://localhost:27017/lowcoder?authSource=admin
LOWCODER_REDIS_URLRedis server URLredis://localhost:6379
LOWCODER_DB_ENCRYPTION_PASSWORDEncryption passwordlowcoder.org
LOWCODER_DB_ENCRYPTION_SALTSalt used for encrypting passwordlowcoder.org
LOWCODER_CORS_DOMAINSCORS allowed domains*
LOWCODER_MAX_REQUEST_SIZELowcoder max request size20m
LOWCODER_MAX_QUERY_TIMEOUTLowcoder max query timeout (in seconds)120
LOWCODER_API_SERVICE_URLLowcoder API service URLhttp://localhost:8080
LOWCODER_NODE_SERVICE_URLLowcoder Node service (js executor) URLhttp://localhost:6060
LOWCODER_MAX_ORGS_PER_USERDefault maximum organizations per user100
LOWCODER_MAX_MEMBERS_PER_ORGDefault maximum members per organization1000
LOWCODER_MAX_GROUPS_PER_ORGDefault maximum groups per organization100
LOWCODER_MAX_APPS_PER_ORGDefault maximum applications per organization1000
LOWCODER_MAX_DEVELOPERSDefault maximum developers100
LOWCODER_WORKSPACE_MODESAAS to activate, ENTERPRISE to switch off - WorkspacesSAAS
LOWCODER_EMAIL_SIGNUP_ENABLEDControl if users create their own Workspace automatic when Sign Uptrue
LOWCODER_CREATE_WORKSPACE_ON_SIGNUPIF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign uptrue
LOWCODER_MARKETPLACE_PRIVATE_MODEControl if not to show Apps on the local Marketplace to anonymous userstrue
+
Environment variableDescriptionDefault-Value
LOWCODER_REDIS_ENABLEDIf true redis server is started in the containertrue
LOWCODER_MONGODB_ENABLEDIf true mongo database is started in the containertrue
LOWCODER_MONGODB_EXPOSEDIf true mongo database accept connections from outside the dockerfalse
LOWCODER_API_SERVICE_ENABLEDIf true lowcoder api-service is started in the containertrue
LOWCODER_NODE_SERVICE_ENABLEDIf true lowcoder node-service is started in the containertrue
LOWCODER_FRONTEND_ENABLEDIf true lowcoder web frontend is started in the containertrue
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MONGODB_URLMongo database connection stringmongodb://localhost:27017/lowcoder?authSource=admin
LOWCODER_REDIS_URLRedis server URLredis://localhost:6379
LOWCODER_DB_ENCRYPTION_PASSWORDEncryption passwordlowcoder.org
LOWCODER_DB_ENCRYPTION_SALTSalt used for encrypting passwordlowcoder.org
LOWCODER_CORS_DOMAINSCORS allowed domains*
LOWCODER_MAX_REQUEST_SIZEOpenFlower max request size20m
LOWCODER_MAX_QUERY_TIMEOUTOpenFlower max query timeout (in seconds)120
LOWCODER_API_SERVICE_URLOpenFlower API service URLhttp://localhost:8080
LOWCODER_NODE_SERVICE_URLOpenFlower Node service (js executor) URLhttp://localhost:6060
LOWCODER_MAX_ORGS_PER_USERDefault maximum organizations per user100
LOWCODER_MAX_MEMBERS_PER_ORGDefault maximum members per organization1000
LOWCODER_MAX_GROUPS_PER_ORGDefault maximum groups per organization100
LOWCODER_MAX_APPS_PER_ORGDefault maximum applications per organization1000
LOWCODER_MAX_DEVELOPERSDefault maximum developers100
LOWCODER_WORKSPACE_MODESAAS to activate, ENTERPRISE to switch off - WorkspacesSAAS
LOWCODER_EMAIL_SIGNUP_ENABLEDControl if users create their own Workspace automatic when Sign Uptrue
LOWCODER_CREATE_WORKSPACE_ON_SIGNUPIF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign uptrue
LOWCODER_MARKETPLACE_PRIVATE_MODEControl if not to show Apps on the local Marketplace to anonymous userstrue
Also, you should set the API-KEY secret, whcih should be a string of at least 32 random characters On linux/mac, generate one eg. with: head /dev/urandom | head -c 30 | shasum -a 256 @@ -294,15 +294,15 @@ Also, you should set the API-KEY secret, whcih should be a string of at least 32 ### ENV Variables for the api-service image -
Environment variableDescriptionDefault-Value
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MONGODB_URLMongo database connection stringmongodb://localhost:27017/lowcoder?authSource=admin
LOWCODER_REDIS_URLRedis server URLredis://localhost:6379
LOWCODER_DB_ENCRYPTION_PASSWORDEncryption passwordlowcoder.org
LOWCODER_DB_ENCRYPTION_SALTSalt used for encrypting passwordlowcoder.org
LOWCODER_CORS_DOMAINSCORS allowed domains*
LOWCODER_MAX_ORGS_PER_USERDefault maximum organizations per user100
LOWCODER_MAX_MEMBERS_PER_ORGDefault maximum members per organization1000
LOWCODER_MAX_GROUPS_PER_ORGDefault maximum groups per organization100
LOWCODER_MAX_APPS_PER_ORGDefault maximum applications per organization1000
LOWCODER_MAX_DEVELOPERSDefault maximum developers100
LOWCODER_MAX_QUERY_TIMEOUTLowcoder max query timeout (in seconds)120
LOWCODER_MAX_REQUEST_SIZELowcoder max request size20m
LOWCODER_WORKSPACE_MODESAAS to activate, ENTERPRISE to switch off - WorkspacesSAAS
LOWCODER_EMAIL_SIGNUP_ENABLEDControl is users can create their own Workspace when Sign Uptrue
+
Environment variableDescriptionDefault-Value
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MONGODB_URLMongo database connection stringmongodb://localhost:27017/lowcoder?authSource=admin
LOWCODER_REDIS_URLRedis server URLredis://localhost:6379
LOWCODER_DB_ENCRYPTION_PASSWORDEncryption passwordlowcoder.org
LOWCODER_DB_ENCRYPTION_SALTSalt used for encrypting passwordlowcoder.org
LOWCODER_CORS_DOMAINSCORS allowed domains*
LOWCODER_MAX_ORGS_PER_USERDefault maximum organizations per user100
LOWCODER_MAX_MEMBERS_PER_ORGDefault maximum members per organization1000
LOWCODER_MAX_GROUPS_PER_ORGDefault maximum groups per organization100
LOWCODER_MAX_APPS_PER_ORGDefault maximum applications per organization1000
LOWCODER_MAX_DEVELOPERSDefault maximum developers100
LOWCODER_MAX_QUERY_TIMEOUTOpenFlower max query timeout (in seconds)120
LOWCODER_MAX_REQUEST_SIZEOpenFlower max request size20m
LOWCODER_WORKSPACE_MODESAAS to activate, ENTERPRISE to switch off - WorkspacesSAAS
LOWCODER_EMAIL_SIGNUP_ENABLEDControl is users can create their own Workspace when Sign Uptrue
### ENV Variables for the node-service image -
Environment variableDescriptionDefault-Value
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_API_SERVICE_URLLowcoder API service URLhttp://localhost:8080
+
Environment variableDescriptionDefault-Value
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_API_SERVICE_URLOpenFlower API service URLhttp://localhost:8080
### ENV Variables for the web frontend image -
Environment variableDescriptionDefault-Value
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MAX_QUERY_TIMEOUTLowcoder max query timeout (in seconds)120
LOWCODER_MAX_REQUEST_SIZELowcoder max request size20m
LOWCODER_API_SERVICE_URLLowcoder API service URLhttp://localhost:8080
LOWCODER_NODE_SERVICE_URLLowcoder Node service (js executor) URLhttp://localhost:6060
+
Environment variableDescriptionDefault-Value
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MAX_QUERY_TIMEOUTOpenFlower max query timeout (in seconds)120
LOWCODER_MAX_REQUEST_SIZEOpenFlower max request size20m
LOWCODER_API_SERVICE_URLOpenFlower API service URLhttp://localhost:8080
LOWCODER_NODE_SERVICE_URLOpenFlower Node service (js executor) URLhttp://localhost:6060
## Health checks diff --git a/docs/setup-and-run/self-hosting/access-local-database-or-api.md b/docs/setup-and-run/self-hosting/access-local-database-or-api.md index 7af8e24cde..4cc1867053 100644 --- a/docs/setup-and-run/self-hosting/access-local-database-or-api.md +++ b/docs/setup-and-run/self-hosting/access-local-database-or-api.md @@ -2,7 +2,7 @@ By default, docker-hosted instances use a [bridge network](https://docs.docker.com/network/bridge/), which does not support access to services on the docker-host via `127.0.0.1` or `localhost` from inside of the docker. -Here we take PostgreSQL as an example and show you how to access local API or database in different operating systems (OS) for docker-hosted Lowcoder. +Here we take PostgreSQL as an example and show you how to access local API or database in different operating systems (OS) for docker-hosted OpenFlower. ## Preparation @@ -11,14 +11,14 @@ Assume that a Postgres service is ready on your local host with port `5432`. On Linux, you can check if Postgres runs locally with the command\ `pgrep -u postgres -fa -- -D` -## How to access a local database or API from Lowcoder which runs inside the Docker +## How to access a local database or API from OpenFlower which runs inside the Docker {% tabs %} {% tab title="Linux" %} 1. Enter `ifconfig docker0` in the terminal, and verify the IP configuration of Docker's virtual bridge (VB). Having set up Docker, the OS would automatically create `docker0` using the IP address `172.17.0.1` (by default), through which the Docker service communicates with the host. -2. Enter the same IP address into Lowcoder to configure the Postgres data source (`172.17.0.1` in this example, but use the actual IP address displayed on your terminal in the real case). +2. Enter the same IP address into OpenFlower to configure the Postgres data source (`172.17.0.1` in this example, but use the actual IP address displayed on your terminal in the real case). {% hint style="warning" %} On some OS (such as Ubuntu), port access might be blocked by the firewall. To solve that, configure in the following steps: @@ -43,6 +43,6 @@ host.docker.internal On Windows and Mac: -

Access a Database on your local network from Lowcoder which runs in Docker

+

Access a Database on your local network from OpenFlower which runs in Docker

-

Access an API on your local network from Lowcoder which runs in Docker

+

Access an API on your local network from OpenFlower which runs in Docker

diff --git a/docs/setup-and-run/self-hosting/google-cloud-platform.md b/docs/setup-and-run/self-hosting/google-cloud-platform.md index 7186e0c569..43b17ab056 100644 --- a/docs/setup-and-run/self-hosting/google-cloud-platform.md +++ b/docs/setup-and-run/self-hosting/google-cloud-platform.md @@ -4,7 +4,7 @@ description: How to Setup Seperate Images on Google Cloud Platform # Google Cloud Platform -## Google Cloud Console Lowcoder Setup +## Google Cloud Console OpenFlower Setup ### Creating a VPC Network diff --git a/docs/setup-and-run/self-hosting/heroku.md b/docs/setup-and-run/self-hosting/heroku.md index 460850231c..9f715c119f 100644 --- a/docs/setup-and-run/self-hosting/heroku.md +++ b/docs/setup-and-run/self-hosting/heroku.md @@ -3,7 +3,7 @@ ## Deploy 1. [Sign up](https://signup.heroku.com/) for a new Heroku account, or [log in](https://id.heroku.com/login) to get started. -2. Click to start Heroku [one-click deployment](https://heroku.com/deploy?template=https://github.com/Lowcoder-dev/Lowcoder). +2. Click to start Heroku [one-click deployment](https://heroku.com/deploy?template=https://github.com/OpenFlower-dev/OpenFlower). 3. Set the **App name** which will be part of the app URL later, and choose a region. 4. (Not required) Fill in the **Config Vars** according to the descriptions. These are all optional variables used for environment-specific configuration. You can skip this step and manage environment variables later. 5. Click the **Deploy app** button. @@ -12,7 +12,7 @@ It usually takes around three minutes to start the app. Click the **View** button to open the new app, which should be available at **https://your\_app\_name.herokuapp.com/**. -On the welcome page, Click **Sign up** to get started. Lowcoder will automatically create a workspace for you. Then you can start building your apps and invite members to your workspace. +On the welcome page, Click **Sign up** to get started. OpenFlower will automatically create a workspace for you. Then you can start building your apps and invite members to your workspace. ## Configure app settings @@ -48,7 +48,7 @@ For more help, see [Custom Domain Names for Apps](https://devcenter.heroku.com/a You can use the [Heroku CLI](https://devcenter.heroku.com/categories/command-line) to update your Docker image to the latest version. The basic logic behind the following steps is to pull the newest code from the GitHub repository, build an image locally using the Docker engine, and deploy the updated image using the Heroku CLI. Before you start, make sure you have [Heroku CLI](https://devcenter.heroku.com/categories/command-line) and [Docker](https://www.docker.com/) installations locally (required). -1\. Get the latest code by cloning the [`Lowcoder-org/Lowcoder`](https://github.com/lowcoder-org/lowcoder) repository from GitHub. +1\. Get the latest code by cloning the [`OpenFlower-org/OpenFlower`](https://github.com/lowcoder-org/lowcoder) repository from GitHub. ```bash git clone https://github.com/lowcoder-org/lowcoder.git @@ -57,7 +57,7 @@ git clone https://github.com/lowcoder-org/lowcoder.git 2\. Move to the `heroku` folder. ```bash -cd Lowcoder/deploy/heroku +cd OpenFlower/deploy/heroku ``` 3\. Log in to Heroku CLI. diff --git a/docs/setup-and-run/self-hosting/lowcoder-version-update.md b/docs/setup-and-run/self-hosting/lowcoder-version-update.md index 43c25022c2..ae624dfd70 100644 --- a/docs/setup-and-run/self-hosting/lowcoder-version-update.md +++ b/docs/setup-and-run/self-hosting/lowcoder-version-update.md @@ -1,8 +1,8 @@ -# Lowcoder Version Update +# OpenFlower Version Update -## Lowcoder Versioning Scheme +## OpenFlower Versioning Scheme -We try to respect as good as possible the Semantic Versioning for Lowcoder Versions +We try to respect as good as possible the Semantic Versioning for OpenFlower Versions v2.4.1 for example, means: @@ -22,25 +22,25 @@ After a new Minor Version we deliver typically the next patch version quite fast The patch versions > 0 are typically seen as Stable Version. It should be ok to install these directly as update. {% endhint %} -### Lowcoder SDK +### OpenFlower SDK The SDK has an independent versioning - yet still following the Semantic Versioning Scheme. -Since Lowcoder v2.4.0 we follow the principle, that the SDK will have the same Major and Minor Version as the Main Lowcoder Version - but it can have an independent Patch-Version. +Since OpenFlower v2.4.0 we follow the principle, that the SDK will have the same Major and Minor Version as the Main OpenFlower Version - but it can have an independent Patch-Version. ### External Component Plugins -Also external Component Plugins follow the Sematic Versioning Scheme with Major, Minor, and Patch versions. However, they are independent from the Lowcoder or Lowcoder SDK Versions. +Also external Component Plugins follow the Sematic Versioning Scheme with Major, Minor, and Patch versions. However, they are independent from the OpenFlower or OpenFlower SDK Versions. ### Docker Images -The provided Docker Images from Lowcoder-Org follow the Sematic Versioning of Lowcoder. For every Release of the Codebase with a new Version, we also offer the pre-built Docker Containers for the All-in-one and Multi-Docker installation. +The provided Docker Images from OpenFlower-Org follow the Sematic Versioning of OpenFlower. For every Release of the Codebase with a new Version, we also offer the pre-built Docker Containers for the All-in-one and Multi-Docker installation. {% embed url="https://hub.docker.com/r/lowcoderorg/lowcoder-ce/tags" %} -Lowcoder pre-built Docker Images on Docker Hub +OpenFlower pre-built Docker Images on Docker Hub {% endembed %} -Next to the released Version Tags of Lowcoder there are 2 more tags with relevance: +Next to the released Version Tags of OpenFlower there are 2 more tags with relevance: * /latest - These images contain typically a state of development which is somewhat stable - but not yet a released Patch Version. Critical Bugs, that we solved are fastest to get in the /latest tag. The /latest tag always based on the previous last published Patch Version. * /dev - these images can be seen like Nightly Builds. They contain evetually the latest stage of our development and are only for testing purposes. @@ -50,26 +50,26 @@ Do not use a /dev tag image in production. These images are only to use in test {% endhint %} {% hint style="info" %} -We suggest only a Multi-Docker Image installation for Production use. The all-in-one image "lowcoderorg/lowcoder-ce" is suitable to test and introduce Lowcoder in an easy way. +We suggest only a Multi-Docker Image installation for Production use. The all-in-one image "lowcoderorg/lowcoder-ce" is suitable to test and introduce OpenFlower in an easy way. {% endhint %} ## Version Update -To **update** from an older to a newer version or Lowcoder, please follow this guide: +To **update** from an older to a newer version or OpenFlower, please follow this guide: {% hint style="warning" %} Please always make a Backup / Copy of your /lowcoder-stacks folder. {% endhint %} -The magic behind an easy update is to make use of the /lowcoder-stacks mounted folder in the docker installations. That enables you to change the Versions of Lowcoder but not touch the Application Data. In the mounted /lowcoder-stacks folder, all MongoDB application data as also Logs and Assets are stored. +The magic behind an easy update is to make use of the /lowcoder-stacks mounted folder in the docker installations. That enables you to change the Versions of OpenFlower but not touch the Application Data. In the mounted /lowcoder-stacks folder, all MongoDB application data as also Logs and Assets are stored. -In other words, if you not use an external MongoDB Service, the Lowcoder MongoDB stores the Application Data of all your workspaces and Apps there, enabling you to exchange the docker without needing further backup and restore actions. +In other words, if you not use an external MongoDB Service, the OpenFlower MongoDB stores the Application Data of all your workspaces and Apps there, enabling you to exchange the docker without needing further backup and restore actions. -Based on the lowcoder-stacks folder, the data of a Lowcoder Installation can be transitioned without losses when you update to a new version of Lowcoder. +Based on the lowcoder-stacks folder, the data of a OpenFlower Installation can be transitioned without losses when you update to a new version of OpenFlower.

Mount local folder - f.e. in Docker Desktop

-### 1) Stop your Lowcoder Docker Containers: +### 1) Stop your OpenFlower Docker Containers: With Docker Compose @@ -102,7 +102,7 @@ If you did follow the /lowcoder-stacks folder mounting, no data would be lost. Even if it should be never a problem, still we ask you kindly always to make a copy of the whole folder. Sometimes we have no other channce than to introduce breaking changes and we want to make sure you will never loss any data. -### 3) Download the latest Lowcoder Docker images. +### 3) Download the latest OpenFlower Docker images. #### With Docker Compose @@ -120,16 +120,16 @@ If you use Docker Desktop, you can pull the /latest tag or a specific version ta For every Major Version, we likely introduce new ENV Variables. This is the reason to download the latest docker compose file. Naturally, you also can update your local copy with the new ENV Variables and other new config structures. {% endhint %} -Edit the docker-compose file to your needs, but make sure to update only the settings. The following values must match your previous version to keep the Lowcoder MongoDB accessible for your stored Data Source Secrets. +Edit the docker-compose file to your needs, but make sure to update only the settings. The following values must match your previous version to keep the OpenFlower MongoDB accessible for your stored Data Source Secrets. * LOWCODER\_DB\_ENCRYPTION\_PASSWORD * LOWCODER\_DB\_ENCRYPTION\_SALT {% hint style="info" %} -If you lose or change the Encryption Password & Salt, the Lowcoder Database on MongoDB will work as expected - only the existing stored Credentials to Data Sources are "lost" / not accessible. +If you lose or change the Encryption Password & Salt, the OpenFlower Database on MongoDB will work as expected - only the existing stored Credentials to Data Sources are "lost" / not accessible. {% endhint %} -### 5) Run the new Lowcoder Docker-Image +### 5) Run the new OpenFlower Docker-Image After the image is pulled, you can run the image (create a new container) and configure directly the Ports as well as the ENV Variables. diff --git a/docs/setup-and-run/self-hosting/migration-from-openblocks.md b/docs/setup-and-run/self-hosting/migration-from-openblocks.md index c1f1bfc941..dfb4bd3cc9 100644 --- a/docs/setup-and-run/self-hosting/migration-from-openblocks.md +++ b/docs/setup-and-run/self-hosting/migration-from-openblocks.md @@ -1,17 +1,17 @@ # Migration from Openblocks -With **Lowcoder v1.1.8** we created a drop-in replacement for **Openblocks** **v1.1.8**. \ +With **OpenFlower v1.1.8** we created a drop-in replacement for **Openblocks** **v1.1.8**. \ To run it, no changes were required. -However, to **migrate** from Openblocks or Lowcoder 1.1.8 to **Lowcoder 2.0,0**, some changes are required and these are the steps to be followed: +However, to **migrate** from Openblocks or OpenFlower 1.1.8 to **OpenFlower 2.0,0**, some changes are required and these are the steps to be followed: -### Migrating from Openblocks (or Lowcoder v1.1.8) to **Lowcoder v2.0.0** +### Migrating from Openblocks (or OpenFlower v1.1.8) to **OpenFlower v2.0.0** {% hint style="info" %} -if not using Lowcoder v1.1.8 or the latest Openblocks released version (v1.1.8), please upgrade first to Openblocks v1.1.8 +if not using OpenFlower v1.1.8 or the latest Openblocks released version (v1.1.8), please upgrade first to Openblocks v1.1.8 {% endhint %} -### 1) stop your Openblocks/Lowcoder: +### 1) stop your Openblocks/OpenFlower: {% tabs %} {% tab title="All-in-one Docker image" %} @@ -45,7 +45,7 @@ ENCRYPTION_SALT: MONGODB_URL: ``` -### 6) start your Lowcoder +### 6) start your OpenFlower {% tabs %} {% tab title="All-in-one Docker image" %} diff --git a/docs/setup-and-run/self-hosting/raspberry-pi.md b/docs/setup-and-run/self-hosting/raspberry-pi.md index 521cb62f2f..7abe611b4e 100644 --- a/docs/setup-and-run/self-hosting/raspberry-pi.md +++ b/docs/setup-and-run/self-hosting/raspberry-pi.md @@ -1,6 +1,6 @@ # Raspberry Pi -It is possible to install and run Lowcoder on Raspberry Pi. +It is possible to install and run OpenFlower on Raspberry Pi. * install a 64bit OS eg. using [RPi Imager](https://www.raspberrypi.com/software/) diff --git a/docs/setup-and-run/self-hosting/traefik-loadbalancer.md b/docs/setup-and-run/self-hosting/traefik-loadbalancer.md index ca0dba2f93..0bd49d795d 100644 --- a/docs/setup-and-run/self-hosting/traefik-loadbalancer.md +++ b/docs/setup-and-run/self-hosting/traefik-loadbalancer.md @@ -1,6 +1,6 @@ # Traefik loadbalancer -Thanks to the amazing contribution of [https://github.com/timconsidine](https://github.com/timconsidine) Lowcoder can work smoothly with the Traefik as Loadbalancer. +Thanks to the amazing contribution of [https://github.com/timconsidine](https://github.com/timconsidine) OpenFlower can work smoothly with the Traefik as Loadbalancer. This is a docker-compose.yaml file, which shows the necessary settings. @@ -8,7 +8,7 @@ This is a docker-compose.yaml file, which shows the necessary settings. version: "3" services: - ## Start Lowcoder (all-in-one) + ## Start OpenFlower (all-in-one) lowcoder-api-service: image: lowcoderorg/lowcoder-ce:latest container_name: lowcoder diff --git a/docs/setup-and-run/self-hosting/update-mongodb-versions.md b/docs/setup-and-run/self-hosting/update-mongodb-versions.md index 1958931c3d..9ba266a886 100644 --- a/docs/setup-and-run/self-hosting/update-mongodb-versions.md +++ b/docs/setup-and-run/self-hosting/update-mongodb-versions.md @@ -12,9 +12,9 @@ An incremental update procedure is possible without losing data. However, the ma Suppose you currently run v4 and want to update to v7- these are the necessary steps for the all-in-one docker image. If you operate a multi-image installation, adap the paths to your data location for your MongoDB and the database must be stopped before the process is started. -### 1) Stop Lowcoder +### 1) Stop OpenFlower -Stop your Lowcoder instance and wait for it to completely stop the service. +Stop your OpenFlower instance and wait for it to completely stop the service. ```bash docker-compose down diff --git a/docs/workflows/README.md b/docs/workflows/README.md index 6a376909bc..4b8b2fcc51 100644 --- a/docs/workflows/README.md +++ b/docs/workflows/README.md @@ -1,11 +1,11 @@ # 🪄 Workflows -The integration of Lowcoder with workflow tools opens up a world of possibilities for app creators, making it truly amazing in its capabilities. These dynamic duos allow developers to build not just single application screens but entire workflows that are interconnected and intelligent. The synergy between Lowcoder and workflow tools empowers app creators to create applications that are not only visually appealing but also highly functional. +The integration of OpenFlower with workflow tools opens up a world of possibilities for app creators, making it truly amazing in its capabilities. These dynamic duos allow developers to build not just single application screens but entire workflows that are interconnected and intelligent. The synergy between OpenFlower and workflow tools empowers app creators to create applications that are not only visually appealing but also highly functional. -What truly sets this combination apart is the ability to access data from various data sources. With the extensive array of connectors in existing workflow platforms, Lowcoder users can seamlessly integrate with databases, APIs, and other data repositories far beyond the integrated data sources. This means that your applications can pull in real-time information, providing users with up-to-the-minute data, and resulting in a more engaging and informative user experience. +What truly sets this combination apart is the ability to access data from various data sources. With the extensive array of connectors in existing workflow platforms, OpenFlower users can seamlessly integrate with databases, APIs, and other data repositories far beyond the integrated data sources. This means that your applications can pull in real-time information, providing users with up-to-the-minute data, and resulting in a more engaging and informative user experience. -In 11.2023 we offer now the first integration with n8n which also enables Lowcoder Applications to react dynamically to user inputs. They can process and act upon these inputs, making them responsive and adaptable. Decision-making within your workflows becomes more intelligent, as your applications can now evaluate user actions and provide tailored responses. +In 11.2023 we offer now the first integration with n8n which also enables OpenFlower Applications to react dynamically to user inputs. They can process and act upon these inputs, making them responsive and adaptable. Decision-making within your workflows becomes more intelligent, as your applications can now evaluate user actions and provide tailored responses. -Imagine a scenario where a user interacts with your application. With Lowcoder and n8n, you can design workflows that not only collect user input but also trigger a sequence of actions based on that input. This could include sending notifications, updating databases, or performing complex calculations. The possibilities are endless, and the power to create intelligent, responsive applications is now at your fingertips. +Imagine a scenario where a user interacts with your application. With OpenFlower and n8n, you can design workflows that not only collect user input but also trigger a sequence of actions based on that input. This could include sending notifications, updating databases, or performing complex calculations. The possibilities are endless, and the power to create intelligent, responsive applications is now at your fingertips. -In 2024 we will integrate Lowcoder with more different workflow platforms, to offer you the extending the capabilities of our platform. +In 2024 we will integrate OpenFlower with more different workflow platforms, to offer you the extending the capabilities of our platform. diff --git a/docs/workflows/n8n-integration.md b/docs/workflows/n8n-integration.md index 168ba5a37d..dc8f003e9a 100644 --- a/docs/workflows/n8n-integration.md +++ b/docs/workflows/n8n-integration.md @@ -1,20 +1,20 @@ # n8n Integration -The combination of Lowcoder and n8n is just amazing. It empowers you as App creators to build not just individual screens, but entire ecosystems of interconnected, data-driven workflows. The ability to access data from various sources and react to user inputs elevates the user experience to new heights, making it a game-changer in the world of application development. With this partnership, your applications can truly become dynamic, intelligent, and tailored to the needs of your users. +The combination of OpenFlower and n8n is just amazing. It empowers you as App creators to build not just individual screens, but entire ecosystems of interconnected, data-driven workflows. The ability to access data from various sources and react to user inputs elevates the user experience to new heights, making it a game-changer in the world of application development. With this partnership, your applications can truly become dynamic, intelligent, and tailored to the needs of your users. The overall path is as follows: -* [Install](https://docs.lowcoder.cloud/lowcoder-documentation/setup-and-run/self-hosting) Lowcoder or use [app.lowcoder.cloud](https://app.lowcoder.cloud) +* [Install](https://docs.openflower.org/lowcoder-documentation/setup-and-run/self-hosting) OpenFlower or use [app.lowcoder.cloud](https://app.lowcoder.cloud) * [Install n8n](https://docs.n8n.io/hosting/installation/) (selfhosted to access Community Nodes) -* Install the [Lowcoder Community Node](https://www.npmjs.com/package/n8n-nodes-lowcoder) -* Create Lowcoder Credentials in n8n -* Place Lowcoder n8n Nodes in your workflow to represent individual app screens +* Install the [OpenFlower Community Node](https://www.npmjs.com/package/n8n-nodes-lowcoder) +* Create OpenFlower Credentials in n8n +* Place OpenFlower n8n Nodes in your workflow to represent individual app screens * Access n8n via Datasource to gather Workflow and Execution Data * Automate Application loading and data handover based on workflows -### Install the n8n Lowcoder Node +### Install the n8n OpenFlower Node -The Lowcoder Community Node for n8n is public in npmjs.com\ +The OpenFlower Community Node for n8n is public in npmjs.com\ [https://www.npmjs.com/package/n8n-nodes-lowcoder](https://www.npmjs.com/package/n8n-nodes-lowcoder) In your self-host installation of n8n you can install Community nodes easily with the UI. @@ -23,7 +23,7 @@ In your self-host installation of n8n you can install Community nodes easily wit n8n-nodes-lowcoder ``` -

UI to install Community Nodes for n8n

+

UI to install Community Nodes for n8n

You can also install the node based on the shell command in the local n8n root directory. @@ -40,72 +40,72 @@ npm install n8n-nodes-lowcoder ``` {% hint style="info" %} -If you operate n8n in the queue mode and use multiple workers, remember to install the Lowcoder Community Node on each worker too. +If you operate n8n in the queue mode and use multiple workers, remember to install the OpenFlower Community Node on each worker too. {% endhint %} -### Connect Lowcoder in n8n +### Connect OpenFlower in n8n -After proper installation, the Lowcoder Community Node will be available in the list of actions. +After proper installation, the OpenFlower Community Node will be available in the list of actions. -

use the Lowcoder Node in your n8n Workflows

+

use the OpenFlower Node in your n8n Workflows

-You can use one or many Lowcoder Nodes in your workflow. As any other n8n node, just place the Lowcoder Node in your workflow and connect it. +You can use one or many OpenFlower Nodes in your workflow. As any other n8n node, just place the OpenFlower Node in your workflow and connect it. -### Enter Credentials to connect to your Lowcoder +### Enter Credentials to connect to your OpenFlower -With the help of the credentials dialogue, you can now connect to Lowcoder (API). +With the help of the credentials dialogue, you can now connect to OpenFlower (API). -As API Base URL you can use https://api-service.lowcoder.cloud for the public community edition or the URL of your self-hosted api-service instance of Lowcoder. +As API Base URL you can use https://api-service.lowcoder.cloud for the public community edition or the URL of your self-hosted api-service instance of OpenFlower. -

Connect to Lowcoder with your credencials

+

Connect to OpenFlower with your credencials

### Set an app as a Reference -As we use Username and Password - and internally work with the Lowcoder Access-Token, your current workspace is the used Workspace for the Lowcoder Node. Based on that you can now search your app or module to set this app as reference in the Lowcoder Community Node. +As we use Username and Password - and internally work with the OpenFlower Access-Token, your current workspace is the used Workspace for the OpenFlower Node. Based on that you can now search your app or module to set this app as reference in the OpenFlower Community Node.
{% hint style="warning" %} -Remember, the displayed App List is connected to your current Workspace in Lowcoder. When you change the workspace in Lowcoder, you will get an adapted List of apps of the newly selected Workspace. +Remember, the displayed App List is connected to your current Workspace in OpenFlower. When you change the workspace in OpenFlower, you will get an adapted List of apps of the newly selected Workspace. {% endhint %} -If you know the ID of your Lowcoder App, you can enter it manually instead "by ID" of searching from the Application List. +If you know the ID of your OpenFlower App, you can enter it manually instead "by ID" of searching from the Application List. -

Select "By ID" to enter an Lowcoder App ID manually

+

Select "By ID" to enter an OpenFlower App ID manually

-### n8n Lowcoder App Reference & State +### n8n OpenFlower App Reference & State -As soon as a workflow of n8n reaches a Lowcoder Node, the execution in n8n changes in the state of "waiting". The expectation behind this is, that a Lowcoder Node represents an App, in which most likely a "User-Action" will happen. The Workflow therefore needs to wait, till the User-Action is finalized. +As soon as a workflow of n8n reaches a OpenFlower Node, the execution in n8n changes in the state of "waiting". The expectation behind this is, that a OpenFlower Node represents an App, in which most likely a "User-Action" will happen. The Workflow therefore needs to wait, till the User-Action is finalized. -By itself, the Lowcoder n8n Node will wait infinitely. To resume the workflow and continue to the next nodes, the Lowcoder n8n Node offers a Webhook. This is a Rest API call that is connected to the Lowcoder n8n node. The structure of this webhook is also described in the UI of the Lowcoder Node in n8n. +By itself, the OpenFlower n8n Node will wait infinitely. To resume the workflow and continue to the next nodes, the OpenFlower n8n Node offers a Webhook. This is a Rest API call that is connected to the OpenFlower n8n node. The structure of this webhook is also described in the UI of the OpenFlower Node in n8n. {% hint style="info" %} Resume the workflow by calling this Webhook: \ -http(s)://{n8n-url}/webhook-waiting/{Workflow-Execution-ID}/{Lowcoder-App-ID} +http(s)://{n8n-url}/webhook-waiting/{Workflow-Execution-ID}/{OpenFlower-App-ID} {% endhint %} This Webhook has 2 functions. First, it resumes the Workflow, so n8n will exit the "wait" state and continue the execution of the workflow. The second function is truly important tough... -By the Webhook in POST Method, you can send Data from the Lowcoder App to the Lowcoder n8n node. In this way, you can easily integrate User-feedback / User-action-data in n8n workflows. Imagine for example Form Data that is later in the n8n workflow processed. +By the Webhook in POST Method, you can send Data from the OpenFlower App to the OpenFlower n8n node. In this way, you can easily integrate User-feedback / User-action-data in n8n workflows. Imagine for example Form Data that is later in the n8n workflow processed. -### Access n8n information in Lowcoder Apps +### Access n8n information in OpenFlower Apps -Lowcoder offers REST API calls (to use for Webhooks) and a native n8n API integration as Datasource. These instruments you can use to work with n8n on the Lowcoder side. +OpenFlower offers REST API calls (to use for Webhooks) and a native n8n API integration as Datasource. These instruments you can use to work with n8n on the OpenFlower side. To connect to the n8n API you need to create and use an API Key of n8n.

Create and Manage API Keys in n8n

-Now you can connect the native n8n Data source in Lowcoder. +Now you can connect the native n8n Data source in OpenFlower.

accessing n8n as a Data source by API

-### The magic sauce - n8n Workflows & Lowcoder +### The magic sauce - n8n Workflows & OpenFlower -There are two important IDs you need from n8n to deal with workflows in Lowcoder.\ +There are two important IDs you need from n8n to deal with workflows in OpenFlower.\ The "Workflow-ID" and the "Workflow-Execution-ID". -The Workflow-Execution-ID is built, as soon as the first node of a workflow (trigger) is successfully executed. In our example, we trigger the workflow from a Lowcoder App by the Webhook. To get the "own Execution-ID" of this Workflow Execution as a result (to work with it further on till the workflow is finalized), we need this ID in Lowcoder. The trick here is to use a "Respond to Webhook" Node of n8n, which does not do much more than sending back the Execution-ID as soon as a Workflow Execution is triggered. +The Workflow-Execution-ID is built, as soon as the first node of a workflow (trigger) is successfully executed. In our example, we trigger the workflow from a OpenFlower App by the Webhook. To get the "own Execution-ID" of this Workflow Execution as a result (to work with it further on till the workflow is finalized), we need this ID in OpenFlower. The trick here is to use a "Respond to Webhook" Node of n8n, which does not do much more than sending back the Execution-ID as soon as a Workflow Execution is triggered. To achieve this, we use the expression for a JSON Data Response. @@ -115,13 +115,13 @@ To achieve this, we use the expression for a JSON Data Response.

using the Response to Webhook to gather the Workflow-Execution-ID

-

an example n8n Workflow which can be triggered by Lowcoder

+

an example n8n Workflow which can be triggered by OpenFlower

We can now use REST API Calls to trigger n8n to start or continue Workflows. -

use a POST Method Webhook to resume a n8n execution after a Lowcoder Node and send Data from Lowcoder to n8n

+

use a POST Method Webhook to resume a n8n execution after a OpenFlower Node and send Data from OpenFlower to n8n

-Next to the Webhooks to trigger actions in n8n, we can use the n8n native Datasource in Lowcoder to retrieve Data about the Workflow and the current workflow execution. +Next to the Webhooks to trigger actions in n8n, we can use the n8n native Datasource in OpenFlower to retrieve Data about the Workflow and the current workflow execution.

access the current workflow execution and data, which was build and collected in the n8n workflow so far.

@@ -129,19 +129,19 @@ Next to the Webhooks to trigger actions in n8n, we can use the n8n native Dataso The possibilities of this integration are pretty endless. However, a few major concept ideas may help you to start with the first steps. -* You can create a "Master-App" in Lowcoder, which contains several hidden modules, which are screens of a larger application. Based on the current workflow execution node, you can hide or show these modules (Apps) based on the current situation in the n8n workflow. +* You can create a "Master-App" in OpenFlower, which contains several hidden modules, which are screens of a larger application. Based on the current workflow execution node, you can hide or show these modules (Apps) based on the current situation in the n8n workflow. ``` // A n8n datasource query with the name "get_workflow_execution_data" retrieves -// the current state of an execution, so you can access the current (Lowcoder) node +// the current state of an execution, so you can access the current (OpenFlower) node // in the workflow with this notation: {{ get_workflow_execution_data.data.data.resultData.lastNodeExecuted }} ``` -

a Master-App can contain multiple "hidden" Modules (apps).
The display of these Modules is then bound to the current n8n workflow execution

+

a Master-App can contain multiple "hidden" Modules (apps).
The display of these Modules is then bound to the current n8n workflow execution

-* You could create independent Lowcoder apps, connect user-action buttons and the "Go to App" Event Handler, and open "next" apps in the workflow based on the current node information after a resumed workflow (when n8n did execute further steps and waits at the next Lowcoder Node) -* You could use Lowcoder Apps like Forms or Interactive Charts to send Data into Workflows with the Lowcoder Node and the POST Method resume-Webhook. -* You can use n8n to collect data from various data sources and pre-process it before it reaches a Lowcoder App. This could save you from writing complex data transformation steps based on Javascript in Lowcoder Transformers. -* Lowering the Datasizes which hit Lowcoder Applications and the Browser of the Users. Smaller Data, which fits the needs of components and the desired display of data will speed up the Development of apps as well as the displaying and execution of Apps. -* You could use n8n as your Middleware, and store in the backend sensitive Data like Credentials of APIs or OAuth Tokens (JWT) and allow only access to backend APIs via n8n. A similar principle is used in Lowcoder too. +* You could create independent OpenFlower apps, connect user-action buttons and the "Go to App" Event Handler, and open "next" apps in the workflow based on the current node information after a resumed workflow (when n8n did execute further steps and waits at the next OpenFlower Node) +* You could use OpenFlower Apps like Forms or Interactive Charts to send Data into Workflows with the OpenFlower Node and the POST Method resume-Webhook. +* You can use n8n to collect data from various data sources and pre-process it before it reaches a OpenFlower App. This could save you from writing complex data transformation steps based on Javascript in OpenFlower Transformers. +* Lowering the Datasizes which hit OpenFlower Applications and the Browser of the Users. Smaller Data, which fits the needs of components and the desired display of data will speed up the Development of apps as well as the displaying and execution of Apps. +* You could use n8n as your Middleware, and store in the backend sensitive Data like Credentials of APIs or OAuth Tokens (JWT) and allow only access to backend APIs via n8n. A similar principle is used in OpenFlower too. diff --git a/docs/workspaces-and-teamwork/lowcoder-marketplace.md b/docs/workspaces-and-teamwork/lowcoder-marketplace.md index 70a75df865..64d64646d7 100644 --- a/docs/workspaces-and-teamwork/lowcoder-marketplace.md +++ b/docs/workspaces-and-teamwork/lowcoder-marketplace.md @@ -1,10 +1,10 @@ -# Lowcoder Marketplace +# OpenFlower Marketplace -The Lowcoder Application Marketplace is a platform where the Lowcoder Community comes together to share and explore applications and modules. +The OpenFlower Application Marketplace is a platform where the OpenFlower Community comes together to share and explore applications and modules. -It's the spot for app developers and business people to find innovative solutions in Lowcoder that can help streamline operations and enhance project outcomes. Here, users can contribute their own creations, tapping into a pool of shared knowledge and resources. +It's the spot for app developers and business people to find innovative solutions in OpenFlower that can help streamline operations and enhance project outcomes. Here, users can contribute their own creations, tapping into a pool of shared knowledge and resources. -For us It's all about harnessing the power of collaboration to bring the best out of the Lowcoder platform, making it easier for everyone to achieve their goals with speed of light. +For us It's all about harnessing the power of collaboration to bring the best out of the OpenFlower platform, making it easier for everyone to achieve their goals with speed of light. ## Global and Local App Marketplace @@ -23,11 +23,11 @@ In self-hosted installations, both Marketplaces are available and show the apps {% embed url="https://app.supademo.com/demo/me6zeg4Oe9GCKtAiMWTCu" %} {% hint style="info" %} -If you publish your App in the Lowcoder Editor on [app.lowcoder.cloud](https://app.lowcoder.cloud), your App will be listed on the "global Marketplace" and every Lowcoder User can see and use the App. +If you publish your App in the OpenFlower Editor on [app.lowcoder.cloud](https://app.lowcoder.cloud), your App will be listed on the "global Marketplace" and every OpenFlower User can see and use the App. {% endhint %} {% hint style="warning" %} -If you publish your App in the Lowcoder Editor on your self-hosted Installation, only Users inside your self-hosted Installation can see and use these Apps. +If you publish your App in the OpenFlower Editor on your self-hosted Installation, only Users inside your self-hosted Installation can see and use these Apps. {% endhint %} ## Adding Title, Description, Category and Icon diff --git a/docs/workspaces-and-teamwork/members-and-groups.md b/docs/workspaces-and-teamwork/members-and-groups.md index 8ce6b74ec9..7148bde713 100644 --- a/docs/workspaces-and-teamwork/members-and-groups.md +++ b/docs/workspaces-and-teamwork/members-and-groups.md @@ -1,10 +1,10 @@ # Members and Groups -In Lowcoder, you can organize the members of your workspace using different groups, and assign roles to groups to manage [permissions for resources](permissions-for-resources.md). You can find members and groups settings in **Settings** on the Lowcoder Admin Page. +In OpenFlower, you can organize the members of your workspace using different groups, and assign roles to groups to manage [permissions for resources](permissions-for-resources.md). You can find members and groups settings in **Settings** on the OpenFlower Admin Page. ## Roles -There are the following Roles for Users in Lowcoder: +There are the following Roles for Users in OpenFlower: ### For Workspaces @@ -28,9 +28,9 @@ There are the following Roles for Users in Lowcoder:

User Roles for Datasources

-A User in Lowcoder is an admin for his own Workspace when registered without an invite link. However, each user can be a member of one or multiple Worspaces. +A User in OpenFlower is an admin for his own Workspace when registered without an invite link. However, each user can be a member of one or multiple Worspaces. -In Lowcoder, you can organize the members of your workspace using different groups, and assign roles to groups to manage permissions for resources. You can find members and groups settings in **Settings** on Lowcoder Admin Page. +In OpenFlower, you can organize the members of your workspace using different groups, and assign roles to groups to manage permissions for resources. You can find members and groups settings in **Settings** on OpenFlower Admin Page. ## Workspace members @@ -47,7 +47,7 @@ You can invite members to your workspace by managing **All Members** group. Open
-You can also find the shortcut to **Invite members** on the bottom left of the Lowcoder Admin Page. +You can also find the shortcut to **Invite members** on the bottom left of the OpenFlower Admin Page. {% hint style="info" %} Permission to invite new members to a Workspace is restricted to workspace **admins** and **developers group**. @@ -65,7 +65,7 @@ Group-based management helps to organize members from different functional depar ### The default Group "Developers" -Lowcoder creates a **Developers** group by default which cannot be deleted, and workspace admins can add members to it. The members of the Developers Group can create new resources including apps, modules, navigations, folders, and data sources, and can manage the query library. Workspace admins can add members to the Developers Group. +OpenFlower creates a **Developers** group by default which cannot be deleted, and workspace admins can add members to it. The members of the Developers Group can create new resources including apps, modules, navigations, folders, and data sources, and can manage the query library. Workspace admins can add members to the Developers Group. ### The default Group "All members" diff --git a/docs/workspaces-and-teamwork/oauth/README.md b/docs/workspaces-and-teamwork/oauth/README.md index 33c8837396..fbf43d8b74 100644 --- a/docs/workspaces-and-teamwork/oauth/README.md +++ b/docs/workspaces-and-teamwork/oauth/README.md @@ -1,6 +1,6 @@ # OAuth -Since Lowcoder 2.1.3 we support OAuth for 4 standard sources. The list will increase and be completed by a generic OAUTH configuration ability. +Since OpenFlower 2.1.3 we support OAuth for 4 standard sources. The list will increase and be completed by a generic OAUTH configuration ability. As for now we support: @@ -36,15 +36,15 @@ Based on a URL pattern you can guide new Users to your Workspace welcome page, w // URL pattern to show the Workspace welcome page // The Workspace-ID == the Org ID. -https:///org//auth/login?redirectUrl=... +https:///org//auth/login?redirectUrl=... ``` ### Manage Login Methods (Auth Providers) -In the Admin area of Lowcoder select Settings > Auth Providers. Here you see the list of currently active auth providers. At the beginning, you will always see the standard-provider "Email" +In the Admin area of OpenFlower select Settings > Auth Providers. Here you see the list of currently active auth providers. At the beginning, you will always see the standard-provider "Email" {% hint style="warning" %} -In Lowcoder, Auth Providers except Email are bound to the Workspace. That means, that per workspace you can have individual settings and Auth Provider. +In OpenFlower, Auth Providers except Email are bound to the Workspace. That means, that per workspace you can have individual settings and Auth Provider. {% endhint %}

the list of Auth Providers per Workspace can be different -exept the Standard Provider Email

diff --git a/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md b/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md index a249721765..f2694b9168 100644 --- a/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md +++ b/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md @@ -1,9 +1,9 @@ # Generic OAuth Provider -Since Lowcoder v2.4.0, a generic OAuth Provider has been introduced. The goal is to cover as many OAuth providers as possible without special implementation but give you, as an Admin, the freedom to connect to any OAuth Provider using a flexible configuration. +Since OpenFlower v2.4.0, a generic OAuth Provider has been introduced. The goal is to cover as many OAuth providers as possible without special implementation but give you, as an Admin, the freedom to connect to any OAuth Provider using a flexible configuration. {% hint style="info" %} -As communicated and voted by the community, we introduced the functionality in v2.4.0 but are still optimizing it, based on your feedback. Latest by Lowcoder v2.5.x this function is stable. (We expect anyhow already before that version a stable function of it.) +As communicated and voted by the community, we introduced the functionality in v2.4.0 but are still optimizing it, based on your feedback. Latest by OpenFlower v2.5.x this function is stable. (We expect anyhow already before that version a stable function of it.) {% endhint %} OAuth Providers are configured individually per Workspace. @@ -26,7 +26,7 @@ Now, you can use the button in the upper right corner to add a new OAuth Provide ### .well\_known URI -The `.well-known/openid-configuration` URI is specifically part of the OpenID Connect (OIDC) standard. If a provider supports OpenID Connect, this endpoint provides a JSON document with the configuration details for OAuth and OIDC operations. Lowcoder will try to use this configuration data and will fill out the standard OAuth Provider Configuration fields as well as possible in the next screens of the Generic OAuth Provider Configurator. +The `.well-known/openid-configuration` URI is specifically part of the OpenID Connect (OIDC) standard. If a provider supports OpenID Connect, this endpoint provides a JSON document with the configuration details for OAuth and OIDC operations. OpenFlower will try to use this configuration data and will fill out the standard OAuth Provider Configuration fields as well as possible in the next screens of the Generic OAuth Provider Configurator.

Enter your Well Known URI to auto-fill the configuration in Step 2

@@ -148,10 +148,10 @@ Meta Data describes the Auth Source, allowing you to influence the visual repres

Enter a Displayed Name, Category, Icon and a Description

{% hint style="danger" %} -In Lowcoder v2.4.0 you must set the field "Source" to GENERIC +In OpenFlower v2.4.0 you must set the field "Source" to GENERIC {% endhint %} -From Lowcoder v2.4.1, the field "Source" will be hidden and filled out automatically. +From OpenFlower v2.4.1, the field "Source" will be hidden and filled out automatically. ### OAuth Configuration @@ -164,7 +164,7 @@ Scopes must be set with a space character between the scopes, not comma-separate {% endhint %} {% hint style="info" %} -Some providers do only support OAuth - but not (yet?) OpenID. This means that the User Introspection Endpoints /userinfo are not available. For this case you can activate or deactivate this Introspection. (This function comes into effect at Lowcoder v2.4.1) +Some providers do only support OAuth - but not (yet?) OpenID. This means that the User Introspection Endpoints /userinfo are not available. For this case you can activate or deactivate this Introspection. (This function comes into effect at OpenFlower v2.4.1) {% endhint %} ### Provider-Side Configuration @@ -182,7 +182,7 @@ At your IDM you would need to prepare an OAuth Client resp. a OAuth Client Appli ### OAuth Data Mapping -We introduce the possibility of mapping Data from OAuth providers to Lowcoder. We just started it in v2.4.0, and in this version, we enabled 4 attributes. +We introduce the possibility of mapping Data from OAuth providers to OpenFlower. We just started it in v2.4.0, and in this version, we enabled 4 attributes. * UID (The User-ID in the IDM System) * Email (The Email Address of the User in the IDM System) @@ -200,5 +200,5 @@ In v2.4.0 we support mapping out of the JWT (access\_token) from the IDM. In fut {% endhint %} {% hint style="info" %} -In future versions of Lowcoder, we will also support Attribute Matching of Token Claims to User Groups and Roles. +In future versions of OpenFlower, we will also support Attribute Matching of Token Claims to User Groups and Roles. {% endhint %} diff --git a/docs/workspaces-and-teamwork/oauth/github.md b/docs/workspaces-and-teamwork/oauth/github.md index be3b6cba11..9b68e65baf 100644 --- a/docs/workspaces-and-teamwork/oauth/github.md +++ b/docs/workspaces-and-teamwork/oauth/github.md @@ -16,7 +16,7 @@ After configuring the Callback URLs, you can "Generate a new client secret". Make sure you copy the client secret directly, as it is displayed only once. Later you cannot copy it again. {% endhint %} -Now you go back to Lowcoder Settings > Auth Providers and click "Add OAuth Provider" and select GitHub from the list of Auth Providers. +Now you go back to OpenFlower Settings > Auth Providers and click "Add OAuth Provider" and select GitHub from the list of Auth Providers.
@@ -24,7 +24,7 @@ You can copy and paste now the Client ID and Client Secret from the GitHub Clien
-Thats it! Now you can invite new Users to Lowcoder. They can choose GitHub to Sign Up (register) or Sign in / log in. +Thats it! Now you can invite new Users to OpenFlower. They can choose GitHub to Sign Up (register) or Sign in / log in.
diff --git a/docs/workspaces-and-teamwork/oauth/google.md b/docs/workspaces-and-teamwork/oauth/google.md index d8698ecc7a..0ea44e4f14 100644 --- a/docs/workspaces-and-teamwork/oauth/google.md +++ b/docs/workspaces-and-teamwork/oauth/google.md @@ -12,7 +12,7 @@ Use the Form to create your Client ID (app registration)

You can set multiple redirect URLs

-On the right side, you will find the Client-ID and Client Secret. Now you go back to Lowcoder Settings > Auth Providers and click "Add OAuth Provider" and select Google from the list of Auth Providers. +On the right side, you will find the Client-ID and Client Secret. Now you go back to OpenFlower Settings > Auth Providers and click "Add OAuth Provider" and select Google from the list of Auth Providers.

select Google as Auth Provider from the List

@@ -20,6 +20,6 @@ You can now copy and paste the Client ID and Client Secret from the Google Cloud
-Thats it! Now you can invite new Users to Lowcoder. They can choose Google to Sign Up (register) or Sign in / log in. +Thats it! Now you can invite new Users to OpenFlower. They can choose Google to Sign Up (register) or Sign in / log in.

Based on an invite Link, users can now login with the OAuth provider Google.

diff --git a/docs/workspaces-and-teamwork/oauth/keycloak.md b/docs/workspaces-and-teamwork/oauth/keycloak.md index 74178722f6..ec2e80497b 100644 --- a/docs/workspaces-and-teamwork/oauth/keycloak.md +++ b/docs/workspaces-and-teamwork/oauth/keycloak.md @@ -8,7 +8,7 @@ To use KeyCloak as an Auth Provider, you must install and maintain an own instal In KeyCloak you have to set up first a "Realm". This is a tenant within KeyCloak. Select (or create) your Realm with the top left corner menu. -In your Realm, you can then create and configure a Client. We show here the most minimal configuration to enable Sign in and Sign up with KeyCloak for Lowcoder. +In your Realm, you can then create and configure a Client. We show here the most minimal configuration to enable Sign in and Sign up with KeyCloak for OpenFlower. ### Setup a KeyCloak Client @@ -20,7 +20,7 @@ Make sure the "Standard Flow" is activated, as also "Client authentication" and
-Configure the Lowcoder redirect URLs. +Configure the OpenFlower redirect URLs. {% hint style="info" %} For the cloud, the "Valid redirect URI" is https://app.lowcoder.cloud @@ -30,15 +30,15 @@ For the cloud, the "Valid redirect URI" is https://app.lowcoder.cloud After the setup, you can now look for the generated Client-Secret. -

copy the Client Secret for the setup of KeyCloak as Auth Provioder in Lowcoder

+

copy the Client Secret for the setup of KeyCloak as Auth Provioder in OpenFlower

Check the Settings to make sure the right capabilities are activated...
-### KeyCloak as Lowcoder Auth Provider +### KeyCloak as OpenFlower Auth Provider -in Lowcoder, go to Settings > OAuth Provider and select "KeyCloak" in the "Add OAuth Provider Dialogue" +in OpenFlower, go to Settings > OAuth Provider and select "KeyCloak" in the "Add OAuth Provider Dialogue"
diff --git a/docs/workspaces-and-teamwork/permissions-for-resources.md b/docs/workspaces-and-teamwork/permissions-for-resources.md index 192e4b9e75..acc51de26d 100644 --- a/docs/workspaces-and-teamwork/permissions-for-resources.md +++ b/docs/workspaces-and-teamwork/permissions-for-resources.md @@ -1,6 +1,6 @@ # Permissions for Resources -Lowcoder implements [Role-based Access Control](https://en.wikipedia.org/wiki/Role-based\_access\_control) (RBAC) by assigning a set of permissions to different roles. These permissions determine the actions users can take on resources, including apps, modules, navigations, folders, query library, and data sources. +OpenFlower implements [Role-based Access Control](https://en.wikipedia.org/wiki/Role-based\_access\_control) (RBAC) by assigning a set of permissions to different roles. These permissions determine the actions users can take on resources, including apps, modules, navigations, folders, query library, and data sources. Only workspace admins and members of **Developers** group are allowed to create resources. Workspace admins are in fact the owner of all resources. @@ -33,7 +33,7 @@ The available roles and their corresponding permissions are listed in the table If you want to make an app or a module or a navigation public to all users (including anonymous users), you can toggle on **Make the app public** in **Share** settings. -

Apps can be public viewable without Lowcoder Login

+

Apps can be public viewable without OpenFlower Login

## 3) Data sources @@ -41,7 +41,7 @@ Only workspace admins and developers can view the **Data Sources** page and crea

Overview of all Datasources of a Workspace

-For each data source, workspace admins and the creator can change its **Access Control**. Go to Lowcoder homepage > **Data Sources**, and click `···` > **Access Control**. +For each data source, workspace admins and the creator can change its **Access Control**. Go to OpenFlower homepage > **Data Sources**, and click `···` > **Access Control**.

Set Permissions based on Roles for an Datasource

@@ -53,6 +53,6 @@ The permissions of these two roles are listed in the following table: ## 4) Query library -Workspace Admins and members of Developers group can create Query Library in Lowcoder and have read, write, use, and delete permissions for queries (if they can use the query's corresponding data source). +Workspace Admins and members of Developers group can create Query Library in OpenFlower and have read, write, use, and delete permissions for queries (if they can use the query's corresponding data source).
diff --git a/docs/workspaces-and-teamwork/query-library.md b/docs/workspaces-and-teamwork/query-library.md index da5f01b4de..2b481ee48b 100644 --- a/docs/workspaces-and-teamwork/query-library.md +++ b/docs/workspaces-and-teamwork/query-library.md @@ -1,6 +1,6 @@ # Query library -The **Query Library** lets you store, reuse and share Data Queries for all Data Sources in a workspace. You can create and run queries in the Query Library, and call them from any Lowcoder app. This helps you to organize and pre-define important queries for colleagues that work with you on Apps for example. +The **Query Library** lets you store, reuse and share Data Queries for all Data Sources in a workspace. You can create and run queries in the Query Library, and call them from any OpenFlowerer app. This helps you to organize and pre-define important queries for colleagues that work with you on Apps for example. The main function of the Query Library is to create and manage reusable Queries with Versioning. @@ -18,7 +18,7 @@ If available based on the Datasource, helping Metadata will get displayed on the ### Input parameters -There are cases where you want to pass dynamic parameters to a query. Lowcoder supports that by introducing input configuration of a query. +There are cases where you want to pass dynamic parameters to a query. OpenFlowerer supports that by introducing input configuration of a query. Click **Add** in the **Inputs** tab in the right upper pane to add input parameters. @@ -70,11 +70,11 @@ You can export a Query as a JSON Definition file. This helps to use a Query acro Be aware, that the connected Datasource of a Query may have different security credentials at different installation locations. {% endhint %} -

With "Export to JSON" you can backup a query or store it externally to use it in other Lowcoder Installations.

+

With "Export to JSON" you can backup a query or store it externally to use it in other OpenFlowerer Installations.

### Import Queries -Based on the JSON Definition file, you can import Queries into Lowcoder. On the Query Library Overview Screen, you can use the Button "Import from File" +Based on the JSON Definition file, you can import Queries into OpenFlowerer. On the Query Library Overview Screen, you can use the Button "Import from File"

Import Data Queries from a JSON Definition File.

diff --git a/docs/workspaces-and-teamwork/workspaces.md b/docs/workspaces-and-teamwork/workspaces.md index 46b92f8231..cda9c6c803 100644 --- a/docs/workspaces-and-teamwork/workspaces.md +++ b/docs/workspaces-and-teamwork/workspaces.md @@ -1,6 +1,6 @@ # Workspaces -Lowcoder supports Workspaces. These are isolated rooms to organize: +OpenFlower supports Workspaces. These are isolated rooms to organize: * User-Groups * Users @@ -26,14 +26,14 @@ If you want to close the possibility that anyone can Sign in and create an accou \ The Sign In / Sign Up Screen will still be shown, but the Sign Up will return an Error message and new users cannot create Accounts.\ \ -This can be helpful if you have your own Identity / OAuth Provider listed and want to be sure that users only with these Identity / OAuth Providers can create Accounts on your Lowcoder installation. +This can be helpful if you have your own Identity / OAuth Provider listed and want to be sure that users only with these Identity / OAuth Providers can create Accounts on your OpenFlower installation. {% endhint %} The Workspace is a tool to use for organizing groups or user access to Apps. It is also used to apply a theme to a set of Apps.

A list of Workspaces

-In the public Lowcoder Cloud, the amount of Workspaces is limited to 10. +In the public OpenFlower Cloud, the amount of Workspaces is limited to 10. In the upper right corner, at the profile, you can find the possibility to switch between your Workspaces. @@ -41,7 +41,7 @@ In the upper right corner, at the profile, you can find the possibility to switc ### Apps & App Folders -[In Lowcoder, you can create Apps. Each App represents what you can create on a single Screen. Often, a complete application consists of multiple Apps. You can then organize these relationships in App Folders or separate them by Workspaces.](#user-content-fn-1)[^1] +[In OpenFlower, you can create Apps. Each App represents what you can create on a single Screen. Often, a complete application consists of multiple Apps. You can then organize these relationships in App Folders or separate them by Workspaces.](#user-content-fn-1)[^1]

Organize Apps into Folders to create order and show relationships

diff --git a/server/api-service/README.md b/server/api-service/README.md index 1b26ffde7d..74891db023 100644 --- a/server/api-service/README.md +++ b/server/api-service/README.md @@ -135,4 +135,4 @@ or respective for debugging: Navigate to the file server/api-service/lowcoder-se Now, you can check the status of the service by visiting http://localhost:8080 through your browser. -For information on how to contribute to Lowcoder, please view our [Contribution Guide](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/opensource-contribution). \ No newline at end of file +For information on how to contribute to Lowcoder, please view our [Contribution Guide](https://docs.openflower.org/lowcoder-documentation/lowcoder-extension/opensource-contribution). \ No newline at end of file diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java index df573b9b6a..5cf7c59767 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java @@ -18,7 +18,7 @@ public interface OrganizationService { "Here is the link to reset your password: %s
" + "Please note that the link will expire after 12 hours.

" + "Regards,
" + - "The Lowcoder Team

"; + "Open Flower Team

"; @PossibleEmptyMono Mono getOrganizationInEnterpriseMode(); diff --git a/server/node-service/README.md b/server/node-service/README.md index 3a0b0590f2..650278a97d 100644 --- a/server/node-service/README.md +++ b/server/node-service/README.md @@ -62,9 +62,9 @@ To develop a data source plugin, you'll mainly focus on: ### All plugins reside in the directory server/node-service/src/plugins -For detailed information on how to develop a plugin, refer to our [detailed Guide](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/develop-data-source-plugins). +For detailed information on how to develop a plugin, refer to our [detailed Guide](https://docs.openflower.org/lowcoder-documentation/lowcoder-extension/develop-data-source-plugins). -For information on how to contribute to Lowcoder, please view our [Contribution Guide](https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/opensource-contribution). +For information on how to contribute to Lowcoder, please view our [Contribution Guide](https://docs.openflower.org/lowcoder-documentation/lowcoder-extension/opensource-contribution). ## Testing Your Plugin diff --git a/server/node-service/src/plugins/lowcoder/lowcoder.spec.json b/server/node-service/src/plugins/lowcoder/lowcoder.spec.json index 59fb3a8df4..c70cae93b3 100644 --- a/server/node-service/src/plugins/lowcoder/lowcoder.spec.json +++ b/server/node-service/src/plugins/lowcoder/lowcoder.spec.json @@ -1,23 +1,23 @@ { "openapi": "3.0.1", "info": { - "title": "Lowcoder Open Rest API", + "title": "OpenFlower Open Rest API", "version": "1.1", - "description": "The Lowcoder API is a RESTful web service designed to facilitate efficient interaction with the Lowcoder platform. This API allows developers to integrate and interact with various functionalities of the Lowcoder service programmatically.", - "termsOfService": "https://lowcoder.cloud/terms", + "description": "The OpenFlower API is a RESTful web service designed to facilitate efficient interaction with the OpenFlower platform. This API allows developers to integrate and interact with various functionalities of the OpenFlower service programmatically.", + "termsOfService": "", "license": { "name": "MIT" }, "contact": { - "name": "Lowcoder Software LTD", - "email": "service@lowcoder.org", - "url": "https://lowcoder.cloud" + "name": "OpenFlower ", + "email": "", + "url": "" } }, "servers": [ { "url": "{scheme}://{domain}:{port}{basePath}", - "description": "Lowcoder Self-hosted Installation API Access", + "description": "OpenFlower Self-hosted Installation API Access", "variables": { "scheme": { "description": "HTTP scheme", @@ -28,7 +28,7 @@ ] }, "domain": { - "description": "Lowcoder IP address or domain", + "description": "OpenFlower IP address or domain", "default": "localhost" }, "port": { @@ -42,8 +42,8 @@ } }, { - "url": "https://api-service.lowcoder.cloud", - "description": "Lowcoder Community Edition: Public Cloud API Access" + "url": "https://api-service.openflower.org", + "description": "OpenFlower: Public Cloud API Access" } ], "security": [ @@ -58,7 +58,7 @@ "Application APIs" ], "summary": "Set Application as publicly available on marketplace but to only logged in users", - "description": "Set a Lowcoder Application identified by its ID as publicly available on marketplace but to only logged in users.", + "description": "Set a OpenFlower Application identified by its ID as publicly available on marketplace but to only logged in users.", "operationId": "setApplicationAsPublicToMarketplace", "parameters": [ { @@ -100,7 +100,7 @@ "Application APIs" ], "summary": "Set Application as publicly available", - "description": "Set a Lowcoder Application identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Application in production mode.", + "description": "Set a OpenFlower Application identified by its ID as generally publicly available. This is a preparation to published a OpenFlower Application in production mode.", "operationId": "setApplicationAsPublic", "parameters": [ { @@ -142,7 +142,7 @@ "Application Permissions APIs" ], "summary": "Update Application permissions", - "description": "Update the permissions of a specific Lowcoder Application identified by its ID.", + "description": "Update the permissions of a specific OpenFlower Application identified by its ID.", "operationId": "updateApplicationPermissions", "parameters": [ { @@ -190,7 +190,7 @@ "Application Permissions APIs" ], "summary": "Revoke permissions from Application", - "description": "Revoke permissions of a specific Lowcoder Application identified by its ID.", + "description": "Revoke permissions of a specific OpenFlower Application identified by its ID.", "operationId": "revokeApplicationPermissions", "parameters": [ { @@ -230,7 +230,7 @@ "Application Permissions APIs" ], "summary": "Get Application permissions", - "description": "Retrieve the permissions of a specific Lowcoder Application identified by its ID.", + "description": "Retrieve the permissions of a specific OpenFlower Application identified by its ID.", "operationId": "listApplicationPermissions", "parameters": [ { @@ -260,7 +260,7 @@ "Application Permissions APIs" ], "summary": "Grant permissions to Application", - "description": "Grant new permissions to a specific Lowcoder Application identified by its ID.", + "description": "Grant new permissions to a specific OpenFlower Application identified by its ID.", "operationId": "grantApplicationPermissions", "parameters": [ { @@ -302,7 +302,7 @@ "Application APIs" ], "summary": "Set Application as agency profile", - "description": "Set a Lowcoder Application identified by its ID as as agency profile but to only logged in users.", + "description": "Set a OpenFlower Application identified by its ID as as agency profile but to only logged in users.", "operationId": "setApplicationAsAgencyProfile", "parameters": [ { @@ -344,7 +344,7 @@ "Application APIs" ], "summary": "Get Application data in edit mode", - "description": "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID.", + "description": "Retrieve the DSL data of a OpenFlower Application in edit-mode by its ID.", "operationId": "getApplicationDataInEditMode", "parameters": [ { @@ -374,7 +374,7 @@ "Application APIs" ], "summary": "Update Application by ID", - "description": "Update a Lowcoder Application identified by its ID.", + "description": "Update a OpenFlower Application identified by its ID.", "operationId": "updateApplication", "parameters": [ { @@ -414,7 +414,7 @@ "Application APIs" ], "summary": "Delete Application by ID", - "description": "Permanently delete a Lowcoder Application identified by its ID.", + "description": "Permanently delete a OpenFlower Application identified by its ID.", "operationId": "deleteApplication", "parameters": [ { @@ -446,7 +446,7 @@ "Application APIs" ], "summary": "Restore recycled Application", - "description": "Restore a previously recycled Lowcoder Application identified by its ID", + "description": "Restore a previously recycled OpenFlower Application identified by its ID", "operationId": "restoreRecycledApplication", "parameters": [ { @@ -478,7 +478,7 @@ "Application APIs" ], "summary": "Move Application to bin (do not delete)", - "description": "Move a Lowcoder Application identified by its ID to the recycle bin without permanent deletion.", + "description": "Move a OpenFlower Application identified by its ID to the recycle bin without permanent deletion.", "operationId": "recycleApplication", "parameters": [ { @@ -510,7 +510,7 @@ "Application APIs" ], "summary": "Publish Application for users", - "description": "Set a Lowcoder Application identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Apps gets published in production mode.", + "description": "Set a OpenFlower Application identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The OpenFlower Apps gets published in production mode.", "operationId": "publicApplication", "parameters": [ { @@ -574,7 +574,7 @@ "Application APIs" ], "summary": "Create a new Application", - "description": "Create a new Lowcoder Application based on the Organization-ID where the authenticated or impersonated user has access.", + "description": "Create a new OpenFlower Application based on the Organization-ID where the authenticated or impersonated user has access.", "operationId": "createApplication", "requestBody": { "content": { @@ -606,7 +606,7 @@ "Application APIs" ], "summary": "Get Marketplace Application data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID for the Marketplace.", + "description": "Retrieve the DSL data of a OpenFlower Application in view-mode by its ID for the Marketplace.", "operationId": "getMarketplaceApplicationDataInViewMode", "parameters": [ { @@ -638,7 +638,7 @@ "Application APIs" ], "summary": "Get Agency profile Application data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID marked as Agency Profile.", + "description": "Retrieve the DSL data of a OpenFlower Application in view-mode by its ID marked as Agency Profile.", "operationId": "getAgencyProfileApplicationDataInViewMode", "parameters": [ { @@ -670,7 +670,7 @@ "Application APIs" ], "summary": "Get Application data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID.", + "description": "Retrieve the DSL data of a OpenFlower Application in view-mode by its ID.", "operationId": "getApplicatioDataInViewMode", "parameters": [ { @@ -702,7 +702,7 @@ "Application APIs" ], "summary": "List recycled Applications in bin", - "description": "List all the recycled Lowcoder Applications in the recycle bin where the authenticated or impersonated user has access.", + "description": "List all the recycled OpenFlower Applications in the recycle bin where the authenticated or impersonated user has access.", "operationId": "listRecycledApplications", "responses": { "200": { @@ -724,7 +724,7 @@ "Application APIs" ], "summary": "List Marketplace Applications", - "description": "Retrieve a list of Lowcoder Applications that are published to the Marketplace", + "description": "Retrieve a list of OpenFlower Applications that are published to the Marketplace", "operationId": "listMarketplaceApplications", "parameters": [ { @@ -757,7 +757,7 @@ "Application APIs" ], "summary": "List Applications of current User", - "description": "Retrieve a list of Lowcoder Applications accessible by the authenticated or impersonated user.", + "description": "Retrieve a list of OpenFlower Applications accessible by the authenticated or impersonated user.", "operationId": "listApplications", "parameters": [ { @@ -812,7 +812,7 @@ "Application APIs" ], "summary": "Get the homepage Application of current User", - "description": "Retrieve the first displayed Lowcoder Application for an authenticated or impersonated user.", + "description": "Retrieve the first displayed OpenFlower Application for an authenticated or impersonated user.", "operationId": "getUserHomepageApplication", "parameters": [ { @@ -846,7 +846,7 @@ "Application APIs" ], "summary": "List agency profile Applications", - "description": "Retrieve a list of Lowcoder Applications that are set as agency profiles", + "description": "Retrieve a list of OpenFlower Applications that are set as agency profiles", "operationId": "listAgencyProfileApplications", "parameters": [ { @@ -879,7 +879,7 @@ "Application History APIs" ], "summary": "Create Application Snapshot", - "description": "Create a snapshot of an Application DSL within Lowcoder, capturing its current state for future reference.", + "description": "Create a snapshot of an Application DSL within OpenFlower, capturing its current state for future reference.", "operationId": "createApplicationSnapshot", "requestBody": { "content": { @@ -911,7 +911,7 @@ "Application History APIs" ], "summary": "List Application Snapshots", - "description": "Retrieve a list of Snapshots associated with a specific Application within Lowcoder.", + "description": "Retrieve a list of Snapshots associated with a specific Application within OpenFlower.", "operationId": "listApplicationSnapshots", "parameters": [ { @@ -963,7 +963,7 @@ "Application History APIs" ], "summary": "Retrieve Application Snapshot", - "description": "Retrieve a specific Application Snapshot within Lowcoder using the Application and Snapshot IDs.", + "description": "Retrieve a specific Application Snapshot within OpenFlower using the Application and Snapshot IDs.", "operationId": "getApplicationSnapshot", "parameters": [ { @@ -1003,7 +1003,7 @@ "Bundle APIs" ], "summary": "Update Bundle", - "description": "Modify the properties and settings of an existing Bundle Bundle within Lowcoder.", + "description": "Modify the properties and settings of an existing Bundle Bundle within OpenFlower.", "operationId": "updateBundle", "requestBody": { "content": { @@ -1033,7 +1033,7 @@ "Bundle APIs" ], "summary": "Create new Bundle", - "description": "Create a new Application Bundle within the Lowcoder to organize Applications effectively.", + "description": "Create a new Application Bundle within the OpenFlower to organize Applications effectively.", "operationId": "createBundle", "requestBody": { "content": { @@ -1065,7 +1065,7 @@ "Bundle APIs" ], "summary": "Delete Bundle", - "description": "Permanently remove an Application Bundle from Lowcoder using its unique ID.", + "description": "Permanently remove an Application Bundle from OpenFlower using its unique ID.", "operationId": "deleteBundle", "parameters": [ { @@ -1140,7 +1140,7 @@ "Bundle APIs" ], "summary": "Set Bundle as publicly available on marketplace but to only logged in users", - "description": "Set a Lowcoder Bundle identified by its ID as publicly available on marketplace but to only logged in users.", + "description": "Set a OpenFlower Bundle identified by its ID as publicly available on marketplace but to only logged in users.", "operationId": "setBundleAsPublicToMarketplace", "parameters": [ { @@ -1182,7 +1182,7 @@ "Bundle APIs" ], "summary": "Set Bundle as publicly available", - "description": "Set a Lowcoder Bundle identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Bundle in production mode.", + "description": "Set a OpenFlower Bundle identified by its ID as generally publicly available. This is a preparation to published a OpenFlower Bundle in production mode.", "operationId": "setBundleAsPublic", "parameters": [ { @@ -1224,7 +1224,7 @@ "Bundle Permissions APIs" ], "summary": "Update Bundle permissions", - "description": "Modify permissions associated with a specific Bundle Bundle within Lowcoder.", + "description": "Modify permissions associated with a specific Bundle Bundle within OpenFlower.", "operationId": "updateBundlePermissions", "parameters": [ { @@ -1272,7 +1272,7 @@ "Bundle Permissions APIs" ], "summary": "Revoke permissions from Bundle", - "description": "Remove specific permissions from an Bundle Bundle within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", + "description": "Remove specific permissions from an Bundle Bundle within OpenFlower, ensuring that selected Users or User-Groups no longer have access.", "operationId": "revokeBundlePermissions", "parameters": [ { @@ -1312,7 +1312,7 @@ "Bundle APIs" ], "summary": "Set Bundle as agency profile", - "description": "Set a Lowcoder Bundle identified by its ID as as agency profile but to only logged in users.", + "description": "Set a OpenFlower Bundle identified by its ID as as agency profile but to only logged in users.", "operationId": "setBundleAsAgencyProfile", "parameters": [ { @@ -1354,7 +1354,7 @@ "Bundle APIs" ], "summary": "Restore recycled Bundle", - "description": "Restore a previously recycled Lowcoder Bundle identified by its ID", + "description": "Restore a previously recycled OpenFlower Bundle identified by its ID", "operationId": "restoreRecycledBundle", "parameters": [ { @@ -1386,7 +1386,7 @@ "Bundle APIs" ], "summary": "Move Bundle to bin (do not delete)", - "description": "Move a Lowcoder Bundle identified by its ID to the recycle bin without permanent deletion.", + "description": "Move a OpenFlower Bundle identified by its ID to the recycle bin without permanent deletion.", "operationId": "recycleBundle", "parameters": [ { @@ -1418,7 +1418,7 @@ "Bundle APIs" ], "summary": "Move App to Bundle", - "description": "Relocate an application to a different bundle in Lowcoder using its unique ID.", + "description": "Relocate an application to a different bundle in OpenFlower using its unique ID.", "operationId": "moveApp", "parameters": [ { @@ -1466,7 +1466,7 @@ "Bundle APIs" ], "summary": "Add App to Bundle", - "description": "Add an application to a bundle in Lowcoder using its unique ID.", + "description": "Add an application to a bundle in OpenFlower using its unique ID.", "operationId": "addApp", "parameters": [ { @@ -1506,7 +1506,7 @@ "Bundle APIs" ], "summary": "Publish Bundle for users", - "description": "Set a Lowcoder Bundle identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Bundle gets published in production mode.", + "description": "Set a OpenFlower Bundle identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The OpenFlower Bundle gets published in production mode.", "operationId": "publicBundle", "parameters": [ { @@ -1538,7 +1538,7 @@ "Bundle Permissions APIs" ], "summary": "Get Bundle permissions", - "description": "Retrieve detailed information about permissions associated with a specific Bundle Bundle within Lowcoder.", + "description": "Retrieve detailed information about permissions associated with a specific Bundle Bundle within OpenFlower.", "operationId": "listBundlePermissions", "parameters": [ { @@ -1568,7 +1568,7 @@ "Bundle Permissions APIs" ], "summary": "Grant permissions to Bundle", - "description": "Assign new permissions to a specific Bundle Bundle within Lowcoder, allowing authorized users to access it.", + "description": "Assign new permissions to a specific Bundle Bundle within OpenFlower, allowing authorized users to access it.", "operationId": "grantBundlePermissions", "parameters": [ { @@ -1610,7 +1610,7 @@ "Bundle APIs" ], "summary": "Get Bundle data in view mode", - "description": "Retrieve the data of a Lowcoder Bundle in view-mode by its ID.", + "description": "Retrieve the data of a OpenFlower Bundle in view-mode by its ID.", "operationId": "getBundleDataInViewMode", "parameters": [ { @@ -1642,7 +1642,7 @@ "Bundle APIs" ], "summary": "Get Marketplace Bundle data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID for the Marketplace.", + "description": "Retrieve the DSL data of a OpenFlower Bundle in view-mode by its ID for the Marketplace.", "operationId": "getMarketplaceBundleDataInViewMode", "parameters": [ { @@ -1674,7 +1674,7 @@ "Bundle APIs" ], "summary": "Get Agency profile Bundle data in view mode", - "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID marked as Agency Profile.", + "description": "Retrieve the DSL data of a OpenFlower Bundle in view-mode by its ID marked as Agency Profile.", "operationId": "getAgencyProfileBundleDataInViewMode", "parameters": [ { @@ -1706,7 +1706,7 @@ "Bundle APIs" ], "summary": "Get Bundle contents", - "description": "Retrieve the contents of an Bundle Bundle within Lowcoder, including Bundles.", + "description": "Retrieve the contents of an Bundle Bundle within OpenFlower, including Bundles.", "operationId": "listBundleContents", "parameters": [ { @@ -1751,7 +1751,7 @@ "Bundle APIs" ], "summary": "List recycled Bundles in bin", - "description": "List all the recycled Lowcoder Bundles in the recycle bin where the authenticated or impersonated user has access.", + "description": "List all the recycled OpenFlower Bundles in the recycle bin where the authenticated or impersonated user has access.", "operationId": "listRecycledBundles", "responses": { "200": { @@ -1773,7 +1773,7 @@ "Bundle APIs" ], "summary": "List Marketplace Bundles", - "description": "Retrieve a list of Lowcoder Bundles that are published to the Marketplace", + "description": "Retrieve a list of OpenFlower Bundles that are published to the Marketplace", "operationId": "listMarketplaceBundles", "responses": { "200": { @@ -1795,7 +1795,7 @@ "Bundle APIs" ], "summary": "List Bundles of current User", - "description": "Retrieve a list of Lowcoder Bundles accessible by the authenticated or impersonated user.", + "description": "Retrieve a list of OpenFlower Bundles accessible by the authenticated or impersonated user.", "operationId": "listBundles", "parameters": [ { @@ -1832,7 +1832,7 @@ "Bundle APIs" ], "summary": "List agency profile Bundles", - "description": "Retrieve a list of Lowcoder Bundles that are set as agency profiles", + "description": "Retrieve a list of OpenFlower Bundles that are set as agency profiles", "operationId": "listAgencyProfileBundles", "responses": { "200": { @@ -1854,7 +1854,7 @@ "Folder APIs" ], "summary": "Update Folder", - "description": "Modify the properties and settings of an existing Application Folder within Lowcoder.", + "description": "Modify the properties and settings of an existing Application Folder within OpenFlower.", "operationId": "updateFolder", "requestBody": { "content": { @@ -1884,7 +1884,7 @@ "Folder APIs" ], "summary": "Create new Folder", - "description": "Create a new Application Folder within the Lowcoder to organize Applications effectively.", + "description": "Create a new Application Folder within the OpenFlower to organize Applications effectively.", "operationId": "createFolder", "requestBody": { "content": { @@ -1916,7 +1916,7 @@ "Folder Permissions APIs" ], "summary": "Update Folder permissions", - "description": "Modify permissions associated with a specific Application Folder within Lowcoder.", + "description": "Modify permissions associated with a specific Application Folder within OpenFlower.", "operationId": "updateFolderPermissions", "parameters": [ { @@ -1964,7 +1964,7 @@ "Folder Permissions APIs" ], "summary": "Revoke permissions from Folder", - "description": "Remove specific permissions from an Application Folder within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", + "description": "Remove specific permissions from an Application Folder within OpenFlower, ensuring that selected Users or User-Groups no longer have access.", "operationId": "revokeFolderPermissions", "parameters": [ { @@ -2004,7 +2004,7 @@ "Folder APIs" ], "summary": "Move Folder", - "description": "Relocate an Application Folder to a different location in the Folder hierarchy in Lowcoder using its unique ID.", + "description": "Relocate an Application Folder to a different location in the Folder hierarchy in OpenFlower using its unique ID.", "operationId": "moveFolder", "parameters": [ { @@ -2044,7 +2044,7 @@ "Folder Permissions APIs" ], "summary": "Get Folder permissions", - "description": "Retrieve detailed information about permissions associated with a specific Application Folder within Lowcoder.", + "description": "Retrieve detailed information about permissions associated with a specific Application Folder within OpenFlower.", "operationId": "listFolderPermissions", "parameters": [ { @@ -2074,7 +2074,7 @@ "Folder Permissions APIs" ], "summary": "Grant permissions to Folder", - "description": "Assign new permissions to a specific Application Folder within Lowcoder, allowing authorized users to access it.", + "description": "Assign new permissions to a specific Application Folder within OpenFlower, allowing authorized users to access it.", "operationId": "grantFolderPermissions", "parameters": [ { @@ -2116,7 +2116,7 @@ "Folder APIs" ], "summary": "Get Folder contents", - "description": "Retrieve the contents of an Application Folder within Lowcoder, including Applications and Subfolders.", + "description": "Retrieve the contents of an Application Folder within OpenFlower, including Applications and Subfolders.", "operationId": "listFolderContents", "parameters": [ { @@ -2161,7 +2161,7 @@ "Folder APIs" ], "summary": "Delete Folder", - "description": "Permanently remove an Application Folder from Lowcoder using its unique ID.", + "description": "Permanently remove an Application Folder from OpenFlower using its unique ID.", "operationId": "deleteFolder", "parameters": [ { @@ -2193,7 +2193,7 @@ "Data Source APIs" ], "summary": "Create new data source", - "description": "Create a new data source in Lowcoder for data retrieval or storage.", + "description": "Create a new data source in OpenFlower for data retrieval or storage.", "operationId": "createDatasource", "requestBody": { "content": { @@ -2225,7 +2225,7 @@ "Data Source APIs" ], "summary": "Get data source by ID", - "description": "Retrieve a specific data source within Lowcoder by its ID.", + "description": "Retrieve a specific data source within OpenFlower by its ID.", "operationId": "getDatasource", "parameters": [ { @@ -2255,7 +2255,7 @@ "Data Source APIs" ], "summary": "Update data source by ID", - "description": "Modify the properties and settings of a data source within Lowcoder using its ID.", + "description": "Modify the properties and settings of a data source within OpenFlower using its ID.", "operationId": "updateDatasource", "parameters": [ { @@ -2295,7 +2295,7 @@ "Data Source APIs" ], "summary": "Delete data source by ID", - "description": "Permanently remove a data source within Lowcoder using its ID.", + "description": "Permanently remove a data source within OpenFlower using its ID.", "operationId": "deleteDatasource", "parameters": [ { @@ -2327,7 +2327,7 @@ "Data Source Permissions APIs" ], "summary": "Get data source permissions", - "description": "Retrieve permissions associated with a specific data source within Lowcoder, identified by its ID.", + "description": "Retrieve permissions associated with a specific data source within OpenFlower, identified by its ID.", "operationId": "listDatasourcePermissions", "parameters": [ { @@ -2357,7 +2357,7 @@ "Data Source Permissions APIs" ], "summary": "Update data source permission", - "description": "Modify a specific data source permission within Lowcoder, identified by its ID.", + "description": "Modify a specific data source permission within OpenFlower, identified by its ID.", "operationId": "updateDatasourcePermission", "parameters": [ { @@ -2399,7 +2399,7 @@ "Data Source Permissions APIs" ], "summary": "Grant permissions to data source", - "description": "Assign permissions for selected users or user-groups to a specific data source within Lowcoder, identified by its ID.", + "description": "Assign permissions for selected users or user-groups to a specific data source within OpenFlower, identified by its ID.", "operationId": "grantDatasourcePermissions", "parameters": [ { @@ -2439,7 +2439,7 @@ "Data Source Permissions APIs" ], "summary": "Revoke permission from data source", - "description": "Revoke a specific permission from a data source within Lowcoder, identified by its ID.", + "description": "Revoke a specific permission from a data source within OpenFlower, identified by its ID.", "operationId": "revokeDatasourcePermission", "parameters": [ { @@ -2471,7 +2471,7 @@ "Data Source APIs" ], "summary": "Get data source structure", - "description": "Retrieve the structure and schema of a data source within Lowcoder, identified by its ID.", + "description": "Retrieve the structure and schema of a data source within OpenFlower, identified by its ID.", "operationId": "getDatasourceStructure", "parameters": [ { @@ -2512,7 +2512,7 @@ "Data Source APIs" ], "summary": "Get data sources by Organization ID", - "description": "List data sources associated with a specific Organization-ID within Lowcoder.", + "description": "List data sources associated with a specific Organization-ID within OpenFlower.", "operationId": "listDatasourcesByOrg", "parameters": [ { @@ -2544,7 +2544,7 @@ "Data Source APIs" ], "summary": "Get data sources by Application ID", - "description": "List data sources associated with a specific Application-ID within Lowcoder.", + "description": "List data sources associated with a specific Application-ID within OpenFlower.", "operationId": "listDatasourcesByApp", "parameters": [ { @@ -2576,7 +2576,7 @@ "Data Source APIs" ], "summary": "Get Node service plugins", - "description": "Retrieve a list of node service plugins available within Lowcoder.", + "description": "Retrieve a list of node service plugins available within OpenFlower.", "operationId": "listNodeServicePlugins", "parameters": [ { @@ -2608,7 +2608,7 @@ "Data Source APIs" ], "summary": "Get data source information", - "description": "Obtain information related to a data source within Lowcoder.", + "description": "Obtain information related to a data source within OpenFlower.", "operationId": "getDatasourceInfo", "parameters": [ { @@ -2640,7 +2640,7 @@ "Data Source APIs" ], "summary": "Test data source", - "description": "Verify the functionality and connectivity of a data source within the Lowcoder platform, identified by its ID.", + "description": "Verify the functionality and connectivity of a data source within the OpenFlower platform, identified by its ID.", "operationId": "testDatasource", "requestBody": { "content": { @@ -2672,7 +2672,7 @@ "Data Source APIs" ], "summary": "Get data source dynamic config", - "description": "Get additional dynamic configuration parameter information of data source within Lowcoder.", + "description": "Get additional dynamic configuration parameter information of data source within OpenFlower.", "operationId": "getDatasourceDynamicConfig", "requestBody": { "content": { @@ -2707,7 +2707,7 @@ "Query Execution APIs" ], "summary": "Execute query from node service", - "description": "Execute a data Query from a Node service within Lowcoder, facilitating data retrieval and processing. Node Service is used for extended Data Source Plugins.", + "description": "Execute a data Query from a Node service within OpenFlower, facilitating data retrieval and processing. Node Service is used for extended Data Source Plugins.", "operationId": "executeQueryFromNodeService", "requestBody": { "content": { @@ -2739,7 +2739,7 @@ "Query Execution APIs" ], "summary": "Execute query from API service", - "description": "Execute a data Query from an API service within Lowcoder, facilitating data retrieval and processing. API Service is used for standard Data Sources like Databases.", + "description": "Execute a data Query from an API service within OpenFlower, facilitating data retrieval and processing. API Service is used for standard Data Sources like Databases.", "operationId": "executeQueryFromApiService", "requestBody": { "content": { @@ -2771,7 +2771,7 @@ "Library Queries Record APIs" ], "summary": "Get Library Query Records", - "description": "Retrieve a list of Library Query Records, which store information related to executed queries within Lowcoder and the current Organization / Workspace by the impersonated User", + "description": "Retrieve a list of Library Query Records, which store information related to executed queries within OpenFlower and the current Organization / Workspace by the impersonated User", "operationId": "listLibraryQueryRecords", "parameters": [ { @@ -2811,7 +2811,7 @@ "Library Queries Record APIs" ], "summary": "Get Library Query Record", - "description": "Retrieve a specific Library Query Record within Lowcoder using the associated library query ID.", + "description": "Retrieve a specific Library Query Record within OpenFlower using the associated library query ID.", "operationId": "getLibraryQueryRecord", "parameters": [ { @@ -2843,7 +2843,7 @@ "Query Library APIs" ], "summary": "Get Data Query Libraries for organization", - "description": "Retrieve a list of Library Queries for a specific Organization within Lowcoder.", + "description": "Retrieve a list of Library Queries for a specific Organization within OpenFlower.", "operationId": "listLibrartQueriesByOrg", "responses": { "200": { @@ -2865,7 +2865,7 @@ "Query Library APIs" ], "summary": "Get Data Query Libraries in dropdown format", - "description": "Retrieve Library Queries in a dropdown format within Lowcoder, suitable for selection in user interfaces.", + "description": "Retrieve Library Queries in a dropdown format within OpenFlower, suitable for selection in user interfaces.", "operationId": "listLibraryQueriesForDropDown", "responses": { "200": { @@ -2887,7 +2887,7 @@ "Library Queries Record APIs" ], "summary": "Delete Library Query Record", - "description": "Permanently remove a specific Library Query Record from Lowcoder using its unique record ID.", + "description": "Permanently remove a specific Library Query Record from OpenFlower using its unique record ID.", "operationId": "deleteLibrartQueryRecord", "parameters": [ { @@ -2912,7 +2912,7 @@ "Query Library APIs" ], "summary": "Publish a Data Query Library for usage", - "description": "Publish a Library Query for usage within Lowcoder, making it available for other users to utilize.", + "description": "Publish a Library Query for usage within OpenFlower, making it available for other users to utilize.", "operationId": "publishLibraryQuery", "parameters": [ { @@ -2954,7 +2954,7 @@ "Query Library APIs" ], "summary": "Create a Library for Data Queries", - "description": "Create a new Library Query within Lowcoder for storing and managing reusable Data Queries.", + "description": "Create a new Library Query within OpenFlower for storing and managing reusable Data Queries.", "operationId": "createLibraryQuery", "requestBody": { "content": { @@ -2986,7 +2986,7 @@ "Query Library APIs" ], "summary": "Update a Data Query Library", - "description": "Modify the properties and settings of an existing Library Query within Lowcoder identified by its unique ID.", + "description": "Modify the properties and settings of an existing Library Query within OpenFlower identified by its unique ID.", "operationId": "updateLibraryQuery", "parameters": [ { @@ -3026,7 +3026,7 @@ "Query Library APIs" ], "summary": "Delete a Data Query Library", - "description": "Permanently remove a Library Query from Lowcoder using its unique ID.", + "description": "Permanently remove a Library Query from OpenFlower using its unique ID.", "operationId": "deleteLibraryQuery", "parameters": [ { @@ -3058,7 +3058,7 @@ "Organization APIs" ], "summary": "Create a new Organization", - "description": "Create a new Organization (Workspace) within the Lowcoder platform as a encapsulated space for Applications, Users and Resources.", + "description": "Create a new Organization (Workspace) within the OpenFlower platform as a encapsulated space for Applications, Users and Resources.", "operationId": "createOrganization", "requestBody": { "content": { @@ -3090,7 +3090,7 @@ "Organization APIs" ], "summary": "Upload Organization Logo", - "description": "Upload an Organization logo for branding and identification for a Lowcoder Organization / Workspace.", + "description": "Upload an Organization logo for branding and identification for a OpenFlower Organization / Workspace.", "operationId": "uploadOrganizationLogo", "parameters": [ { @@ -3137,7 +3137,7 @@ "Organization APIs" ], "summary": "Delete Organization Logo", - "description": "Remove the logo associated with an Organization within Lowcoder.", + "description": "Remove the logo associated with an Organization within OpenFlower.", "operationId": "deleteOrganizationLogo", "parameters": [ { @@ -3169,7 +3169,7 @@ "Organization Member APIs" ], "summary": "List Organization Members", - "description": "Retrieve a list of members belonging to an Organization within Lowcoder.", + "description": "Retrieve a list of members belonging to an Organization within OpenFlower.", "operationId": "listOrganizationMembers", "parameters": [ { @@ -3221,7 +3221,7 @@ "Organization Member APIs" ], "summary": "Get supported data source types for Organization", - "description": "Retrieve a list of supported datasource types for an Organization within Lowcoder.", + "description": "Retrieve a list of supported datasource types for an Organization within OpenFlower.", "operationId": "getOrganizationDatasourceTypes", "parameters": [ { @@ -3293,7 +3293,7 @@ "Organization APIs" ], "summary": "Delete Organization by ID", - "description": "Permanently remove an User from an Organization in Lowcoder using its unique IDs.", + "description": "Permanently remove an User from an Organization in OpenFlower using its unique IDs.", "operationId": "deleteOrganization", "parameters": [ { @@ -3333,7 +3333,7 @@ "Organization Member APIs" ], "summary": "Remove current user from Organization", - "description": "Allow the current user to voluntarily leave an Organization in Lowcoder, removing themselves from the organization's membership.", + "description": "Allow the current user to voluntarily leave an Organization in OpenFlower, removing themselves from the organization's membership.", "operationId": "leaveOrganization", "parameters": [ { @@ -3365,7 +3365,7 @@ "Organization APIs" ], "summary": "Delete Organization by ID", - "description": "Permanently remove an Organization from Lowcoder using its unique ID.", + "description": "Permanently remove an Organization from OpenFlower using its unique ID.", "operationId": "deleteOrganization_1", "parameters": [ { @@ -3397,7 +3397,7 @@ "Organization APIs" ], "summary": "Update Organization by ID", - "description": "Modify the properties and settings of an existing Organization within Lowcoder identified by its unique ID.", + "description": "Modify the properties and settings of an existing Organization within OpenFlower identified by its unique ID.", "operationId": "updateOrganization", "parameters": [ { @@ -3439,7 +3439,7 @@ "Organization Member APIs" ], "summary": "Update role of Member in Organization", - "description": "Change the Role of a specific Member (User) within an Organization in Lowcoder using the unique ID of a user and the name of the existing Role.", + "description": "Change the Role of a specific Member (User) within an Organization in OpenFlower using the unique ID of a user and the name of the existing Role.", "operationId": "updateOrganizationMemberRole", "parameters": [ { @@ -3481,7 +3481,7 @@ "Organization APIs" ], "summary": "Get Organization common Settings", - "description": "Retrieve common settings (such as Themes and Auth Sources) and configurations for an Organization within Lowcoder using its unique ID.", + "description": "Retrieve common settings (such as Themes and Auth Sources) and configurations for an Organization within OpenFlower using its unique ID.", "operationId": "getOrganizationSettings", "parameters": [ { @@ -3511,7 +3511,7 @@ "Organization APIs" ], "summary": "Update Organization common Settings", - "description": "Modify common settings (such as Themes) and configurations for a Lowcoder Organization / Workspace.", + "description": "Modify common settings (such as Themes) and configurations for a OpenFlower Organization / Workspace.", "operationId": "updateOrganizationSettings", "parameters": [ { @@ -3553,7 +3553,7 @@ "Organization Member APIs" ], "summary": "Switch current users Organization", - "description": "Trigger a switch of the active Organization for the current User within Lowcoder in regards to the Session. After this switch, the impersonated user will see all resources from the new / selected Organization.", + "description": "Trigger a switch of the active Organization for the current User within OpenFlower in regards to the Session. After this switch, the impersonated user will see all resources from the new / selected Organization.", "operationId": "switchOrganization", "parameters": [ { @@ -3585,7 +3585,7 @@ "User invitation APIs" ], "summary": "Create user Invitation", - "description": "Create a generic User-Invitation within Lowcoder to invite new users to join the platform. Internally an invite Link based on inviting User and it's current Organization / Workspace is built.", + "description": "Create a generic User-Invitation within OpenFlower to invite new users to join the platform. Internally an invite Link based on inviting User and it's current Organization / Workspace is built.", "operationId": "createUserInvitation", "parameters": [ { @@ -3617,7 +3617,7 @@ "User invitation APIs" ], "summary": "Get Invitation", - "description": "Retrieve information about a specific Invitation within Lowcoder, including details about the Invitee and the connected Organization / Workspace.", + "description": "Retrieve information about a specific Invitation within OpenFlower, including details about the Invitee and the connected Organization / Workspace.", "operationId": "getInvitation", "parameters": [ { @@ -3649,7 +3649,7 @@ "User invitation APIs" ], "summary": "Invite User", - "description": "Proceed the actual Invite for User to an Lowcoder Organization / Workspace using an existing Invitation identified by its ID.", + "description": "Proceed the actual Invite for User to an OpenFlower Organization / Workspace using an existing Invitation identified by its ID.", "operationId": "inviteUser", "parameters": [ { @@ -3681,7 +3681,7 @@ "User APIs" ], "summary": "Update current User", - "description": "Enable the current User to update their Profile information within Lowcoder, ensuring accuracy and relevance.", + "description": "Enable the current User to update their Profile information within OpenFlower, ensuring accuracy and relevance.", "operationId": "updateUser", "requestBody": { "content": { @@ -3713,7 +3713,7 @@ "User Profile Photo APIs" ], "summary": "Update User Password", - "description": "Allow the User to update their Password within Lowcoder, enhancing security and account management.", + "description": "Allow the User to update their Password within OpenFlower, enhancing security and account management.", "operationId": "updatePassword", "requestBody": { "content": { @@ -3743,7 +3743,7 @@ "User Profile Photo APIs" ], "summary": "Set User Password", - "description": "Set a new Password for the User within Lowcoder, ensuring secure access to their account.", + "description": "Set a new Password for the User within OpenFlower, ensuring secure access to their account.", "operationId": "setPassword", "parameters": [ { @@ -3775,7 +3775,7 @@ "User APIs" ], "summary": "Mark current user with help shown status", - "description": "Indicate that the current user has been shown help or guidance within Lowcoder, helping track user assistance efforts.", + "description": "Indicate that the current user has been shown help or guidance within OpenFlower, helping track user assistance efforts.", "operationId": "newUserGuidanceShown", "responses": { "200": { @@ -3797,7 +3797,7 @@ "User APIs" ], "summary": "Mark current User with Status", - "description": "Mark the current User with a specific Status within Lowcoder, allowing for status tracking or updates.", + "description": "Mark the current User with a specific Status within OpenFlower, allowing for status tracking or updates.", "operationId": "markUserStatus", "requestBody": { "content": { @@ -3829,7 +3829,7 @@ "User APIs" ], "summary": "Get User Details by ID", - "description": "Retrieve specific User Details within Lowcoder using their unique user ID.", + "description": "Retrieve specific User Details within OpenFlower using their unique user ID.", "operationId": "getUserDetails", "parameters": [ { @@ -3861,7 +3861,7 @@ "User Profile Photo APIs" ], "summary": "Upload users profile photo by ID", - "description": "Upload or change the profile photo of a specific User within Lowcoder using their user ID for identification.", + "description": "Upload or change the profile photo of a specific User within OpenFlower using their user ID for identification.", "operationId": "uploadUserProfilePhotoById", "parameters": [ { @@ -3886,7 +3886,7 @@ "User APIs" ], "summary": "Get current User Profile", - "description": "Retrieve the profile information of the current user within Lowcoder, including their identity, name, avatar, email, IP address, group memberships, and details of the current Organization / Workspace.", + "description": "Retrieve the profile information of the current user within OpenFlower, including their identity, name, avatar, email, IP address, group memberships, and details of the current Organization / Workspace.", "operationId": "getUserProfile", "responses": { "200": { @@ -3908,7 +3908,7 @@ "User APIs" ], "summary": "Get current User Information", - "description": "Retrieve comprehensive information about the current user within Lowcoder, including their ID, name, avatar URL, email, IP address and group memberships.", + "description": "Retrieve comprehensive information about the current user within OpenFlower, including their ID, name, avatar URL, email, IP address and group memberships.", "operationId": "getUserInfo", "responses": { "200": { @@ -3930,7 +3930,7 @@ "User Profile Photo APIs" ], "summary": "Reset User Password", - "description": "Initiate a Password Reset process for the user within Lowcoder, allowing them to regain access to their account.", + "description": "Initiate a Password Reset process for the user within OpenFlower, allowing them to regain access to their account.", "operationId": "resetPassword", "requestBody": { "content": { @@ -3994,7 +3994,7 @@ "User Profile Photo APIs" ], "summary": "Get current User profile photo", - "description": "Retrieve the profile photo of the current User within Lowcoder, if available.", + "description": "Retrieve the profile photo of the current User within OpenFlower, if available.", "operationId": "getUserProfilePhoto", "responses": { "200": { @@ -4007,7 +4007,7 @@ "User Profile Photo APIs" ], "summary": "Upload current Users profile photo", - "description": "Allow the current User to upload or change their profile photo within Lowcoder for personalization.", + "description": "Allow the current User to upload or change their profile photo within OpenFlower for personalization.", "operationId": "uploadUserProfilePhoto", "requestBody": { "content": { @@ -4044,7 +4044,7 @@ "User Profile Photo APIs" ], "summary": "Delete current users profile photo", - "description": "Remove the profile Photo associated with the current User within Lowcoder.", + "description": "Remove the profile Photo associated with the current User within OpenFlower.", "operationId": "deleteUserProfilePhoto", "responses": { "200": { @@ -4098,7 +4098,7 @@ "Group APIs" ], "summary": "Create User Group", - "description": "Create a new User Group within the current Lowcoder Organization / Workspace for organizing and managing your Application users.", + "description": "Create a new User Group within the current OpenFlower Organization / Workspace for organizing and managing your Application users.", "operationId": "createGroup", "requestBody": { "content": { @@ -4130,7 +4130,7 @@ "Group APIs" ], "summary": "Update User Group", - "description": "Modify the properties and settings of an existing User Group within Lowcoder, identified by the unique ID of a User Group.", + "description": "Modify the properties and settings of an existing User Group within OpenFlower, identified by the unique ID of a User Group.", "operationId": "updateGroup", "parameters": [ { @@ -4172,7 +4172,7 @@ "Group Members APIs" ], "summary": "Update User Group member role", - "description": "Modify the Role of a specific Member within a User Group in Lowcoder, ensuring proper access control.", + "description": "Modify the Role of a specific Member within a User Group in OpenFlower, ensuring proper access control.", "operationId": "updateRoleForGroupMember", "parameters": [ { @@ -4214,7 +4214,7 @@ "Group Members APIs" ], "summary": "Add User to User Group", - "description": "Include a User as a member of a specified User Group in Lowcoder, granting them access to group resources.", + "description": "Include a User as a member of a specified User Group in OpenFlower, granting them access to group resources.", "operationId": "addUserToGroup", "parameters": [ { @@ -4256,7 +4256,7 @@ "Group Members APIs" ], "summary": "List User Group Members", - "description": "Retrieve a list of Users / Members within a specific User Group in Lowcoder, showing the group's composition.", + "description": "Retrieve a list of Users / Members within a specific User Group in OpenFlower, showing the group's composition.", "operationId": "listGroupMembers", "parameters": [ { @@ -4308,7 +4308,7 @@ "Group APIs" ], "summary": "List User Groups", - "description": "Retrieve a list of User Groups within Lowcoder, providing an overview of available groups, based on the access rights of the currently impersonated User.", + "description": "Retrieve a list of User Groups within OpenFlower, providing an overview of available groups, based on the access rights of the currently impersonated User.", "operationId": "listGroups", "responses": { "200": { @@ -4330,7 +4330,7 @@ "Group Members APIs" ], "summary": "Remove a User from User Group", - "description": "Remove a specific User from a User Group within Lowcoder, revoking their access to the Group resources.", + "description": "Remove a specific User from a User Group within OpenFlower, revoking their access to the Group resources.", "operationId": "removeUserFromGroup", "parameters": [ { @@ -4370,7 +4370,7 @@ "Group Members APIs" ], "summary": "Remove current User from User Group", - "description": "Allow the current user to voluntarily leave a User Group in Lowcoder, removing themselves from the group's membership.", + "description": "Allow the current user to voluntarily leave a User Group in OpenFlower, removing themselves from the group's membership.", "operationId": "leaveGroup", "parameters": [ { @@ -4402,7 +4402,7 @@ "Group APIs" ], "summary": "Delete User Group", - "description": "Permanently remove a User Group from Lowcoder using its unique ID.", + "description": "Permanently remove a User Group from OpenFlower using its unique ID.", "operationId": "deleteGroup", "parameters": [ { @@ -4434,7 +4434,7 @@ "Authentication APIs" ], "summary": "Delete authentication configuration", - "description": "Delete a specific Lowcoder authentication configuration.", + "description": "Delete a specific OpenFlower authentication configuration.", "operationId": "deleteAuthConfig", "parameters": [ { @@ -4506,7 +4506,7 @@ "Authentication APIs" ], "summary": "Login with third party", - "description": "Authenticate a Lowcoder User using third-party login credentials.", + "description": "Authenticate a OpenFlower User using third-party login credentials.", "operationId": "loginWithThirdParty", "parameters": [ { @@ -4578,7 +4578,7 @@ "Authentication APIs" ], "summary": "Link current account with third party auth provider", - "description": "Authenticate a Lowcoder User using third-party login credentials and link to the existing session/account", + "description": "Authenticate a OpenFlower User using third-party login credentials and link to the existing session/account", "operationId": "linkAccountWithTP", "parameters": [ { @@ -4641,8 +4641,8 @@ "tags": [ "Authentication APIs" ], - "summary": "Logout from Lowcoder", - "description": "End a logged in Session of a Lowcoder User on the Lowcoder platform.", + "summary": "Logout from OpenFlower", + "description": "End a logged in Session of a OpenFlower User on the OpenFlower platform.", "operationId": "logout", "responses": { "200": { @@ -4664,7 +4664,7 @@ "Authentication APIs" ], "summary": "Login with user and password (Form based Login)", - "description": "Authenticate a Lowcoder User using traditional username and password credentials (Form Login).", + "description": "Authenticate a OpenFlower User using traditional username and password credentials (Form Login).", "operationId": "loginWithUserPassword", "parameters": [ { @@ -4714,7 +4714,7 @@ "Authentication APIs" ], "summary": "Create authentication configuration", - "description": "Configure a new authentication method to enable Lowcoder Users to log in, for instance, through OAuth or other similar mechanisms, for the current selected Organization, based on the impersonated User", + "description": "Configure a new authentication method to enable OpenFlower Users to log in, for instance, through OAuth or other similar mechanisms, for the current selected Organization, based on the impersonated User", "operationId": "createAuthConfig", "requestBody": { "content": { @@ -4746,7 +4746,7 @@ "Authentication APIs" ], "summary": "Create API key for current user", - "description": "Generate an Lowcoder API key. The API key will inherit all rights of the current impersonated user.", + "description": "Generate an OpenFlower API key. The API key will inherit all rights of the current impersonated user.", "operationId": "createApiKey", "requestBody": { "content": { @@ -4800,7 +4800,7 @@ "Authentication APIs" ], "summary": "Get API keys of the current User", - "description": "Retrieve a list of LOwcoder API keys associated with the current impersonated user.", + "description": "Retrieve a list of OpenFlower API keys associated with the current impersonated user.", "operationId": "listApiKeys", "responses": { "200": { @@ -4822,7 +4822,7 @@ "Image Assets APIs" ], "summary": "Retrieve Image Asset", - "description": "Retrieve an image asset within Lowcoder using its unique ID, which can be used for various purposes such as displaying images in applications.", + "description": "Retrieve an image asset within OpenFlower using its unique ID, which can be used for various purposes such as displaying images in applications.", "operationId": "getAsset", "parameters": [ { @@ -4847,7 +4847,7 @@ "Javascript Library APIs" ], "summary": "Get Javascript Library recommendations", - "description": "Retrieve the standard list of JavaScript libraries within Lowcoder, as recommendation.", + "description": "Retrieve the standard list of JavaScript libraries within OpenFlower, as recommendation.", "operationId": "getJsLibraryRecommendations", "responses": { "200": { @@ -4869,7 +4869,7 @@ "Javascript Library APIs" ], "summary": "Get Javascript Library metadata", - "description": "Retrieve metadata information for JavaScript libraries within Lowcoder based on an Array as \"name\" parameter to name the desired libraries, providing details about available libraries.", + "description": "Retrieve metadata information for JavaScript libraries within OpenFlower based on an Array as \"name\" parameter to name the desired libraries, providing details about available libraries.", "operationId": "getJsLibraryMetadata", "parameters": [ { @@ -4904,7 +4904,7 @@ "Status checks APIs" ], "summary": "Run health check", - "description": "Perform a health check within Lowcoder to ensure the system's overall operational health and availability.", + "description": "Perform a health check within OpenFlower to ensure the system's overall operational health and availability.", "operationId": "healthCheck", "responses": { "200": { @@ -4925,8 +4925,8 @@ "tags": [ "Server Setting APIs" ], - "summary": "Get Lowcoder server settings", - "description": "Retrieve the list of server settings for Lowcoder.", + "summary": "Get OpenFlower server settings", + "description": "Retrieve the list of server settings for OpenFlower.", "operationId": "serverSettings", "responses": { "200": { @@ -8260,8 +8260,8 @@ } }, "externalDocs": { - "url": "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", - "description": "Lowcoder Documentation" + "url": "https://docs.openflower.org/OpenFlower-extension/OpenFlower-open-rest-api", + "description": "OpenFlower Documentation" }, "tags": [ { From e7e4e4e1622337dfe7aaa023e1ef737ec21b9142 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Sun, 22 Sep 2024 10:03:24 -0400 Subject: [PATCH 03/36] Introducing OpenFlower --- .github/workflows/docker-images.yml | 41 +- LICENSE | 1016 ++++++++++----------------- MANIFESTO.md | 17 +- 3 files changed, 382 insertions(+), 692 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index e20ef9364e..2105bccc56 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -5,34 +5,34 @@ on: inputs: imageTag: type: choice - description: 'Choose a tag for built docker image(s)' + description: "Choose a tag for built docker image(s)" required: true - default: 'latest' + default: "latest" options: - - latest - - test + - latest + - test build_allinone: type: boolean - description: 'Build the All-In-One image' + description: "Build the All-In-One image" default: true build_frontend: type: boolean - description: 'Build the Frontend image' + description: "Build the Frontend image" default: true build_nodeservice: type: boolean - description: 'Build the Node service image' + description: "Build the Node service image" default: true build_apiservice: type: boolean - description: 'Build the API service image' + description: "Build the API service image" default: true push: branches: dev paths: - - 'client/**' - - 'server/**' - - 'deploy/docker/**' + - "client/**" + - "server/**" + - "deploy/docker/**" release: types: [released] @@ -45,13 +45,13 @@ jobs: run: | # Get the short SHA of last commit echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}" - + # Get branch name - we don't use github.ref_head_name since we don't build on PRs echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}" - + # Set docker image tag echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}" - + # Control which images to build echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}" echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}" @@ -69,12 +69,12 @@ jobs: username: ${{ secrets.DOCKER_LOGIN }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Setup Docker Buildx with cloud driver - uses: docker/setup-buildx-action@v3 - with: - version: "lab:latest" - driver: cloud - endpoint: "haighis/lowcoder-cloud-builder" + # - name: Setup Docker Buildx with cloud driver + # uses: docker/setup-buildx-action@v3 + # with: + # version: "lab:latest" + # driver: cloud + # endpoint: "haighis/lowcoder-cloud-builder" - name: Build and push the all-in-one image if: ${{ env.BUILD_ALLINONE == 'true' }} @@ -132,4 +132,3 @@ jobs: linux/arm64 push: true tags: haighis/lowcoder-ce-api-service:${{ env.IMAGE_TAG }} - diff --git a/LICENSE b/LICENSE index 1ce875873d..110354856e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,661 +1,355 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. \ No newline at end of file +Copyright (c) The OpenFlower Authors + +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor” + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version” + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution” + + means Covered Software of a particular Contributor. + +1.4. “Covered Software” + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses” + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form” + + means any form of the work other than Source Code Form. + +1.7. “Larger Work” + + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License” + + means this document. + +1.9. “Licensable” + + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications” + + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims” of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License” + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form” + + means the form of the work preferred for making modifications. + +1.14. “You” (or “Your”) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control” means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is” basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible + With Secondary Licenses”, as defined by + the Mozilla Public License, v. 2.0. \ No newline at end of file diff --git a/MANIFESTO.md b/MANIFESTO.md index 9c063e0c50..3bce7d629b 100644 --- a/MANIFESTO.md +++ b/MANIFESTO.md @@ -1,20 +1,17 @@ -# Lowcoder Manifesto +# OpenFlower Manifesto Dear Community, -We are excited to announce a new initiative to support and extend Openblocks, which unfortunately has been abandoned by its original team. Openblocks has been a critical part of many of our workflows, and we believe it's essential to keep it alive and thriving. +We are excited to announce a new initiative to support and extend Openblocks and Lowcoder. -We have come together out of a shared passion for the project and a commitment to providing a toolchain that allows you to create apps blazingly fast using a simple, intuitive UI. We are dedicated to continuing the project's legacy under a new name, Lowcoder. +OpenFlower will be a fully open source, accessible to all, and free from any restrictions or limitations under Mozilla Public License, version 2.0. -To provide continuous support to all members of the community, we have decided to form two individual teams: +OpenFlower commits to the community, maintenance, bug fixes, and feature development in an new Product Roadmap. -_Lowcoder.org_ will remain fully open source, accessible to all, and free from any restrictions or limitations. As part of our commitment to the community, we will take over all maintenance, bug fixes, and feature development. We plan to prioritize stability and reliability while also introducing new features and enhancements to keep pace with evolving technology. We will maintain open communication channels, seek feedback, and actively engage with users and contributors to ensure that Lowcoder remains relevant and useful to all. We will be transparent about our development roadmap, progress, and any challenges that arise. - -_Lowcoder.cloud_ will actively develop and maintain the enterprise version and provide a managed cloud offering using both the latest Lowcoder.org version and the proprietary Enterprise version. - -The two teams will collaborate and support each other, focusing on a long-term partnership to ensure a healthy product and community. +We plan to introduce new features and enhancements. We invite all members of the community to join us on this journey. Whether you are a user, contributor, or enterprise customer, your input and support are critical to the success of Lowcoder. Let's work together to keep this project alive and thriving for many years to come. Sincerely, -The Lowcoder Team + +OpenFlower Team From ffaff33e3c1dafe8d5a7bb95b7054f4ce704ad4a Mon Sep 17 00:00:00 2001 From: Flowerappeng-org Date: Tue, 24 Sep 2024 11:05:32 -0400 Subject: [PATCH 04/36] Update README.md --- README.md | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 00f567d416..56a2dae310 100644 --- a/README.md +++ b/README.md @@ -9,20 +9,20 @@ One platform for everything instead so many different softwares. (like Website B 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. -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. +NewGen Lowcode Platforms like Retool and others are great for their simplicity and flexibility - like OpenFlower too, but they can also be limited in different ways, especially when it comes to "external" applications for everyone. -Lowcoder wants to take a step forward. More specifically, Lowcoder is: +OpenFlower is: - An all-in-one IDE to create internal or customer-facing (external) apps. - A place to create, build and share building blocks of web applications and whole websites. - The tool and community to support your business, and lower the cost and time to develop interactive applications. -- The only platform to embed Lowcode Apps natively in Websites (no iFrame!) +- The only platform to embed OpenFlower/Lowcoder Apps natively in Websites (no iFrame!) - The only platform where you can build your own Meeting Tool - like Teams, Zoom or Google Meets, - just in the Lowcode way. -- The only platform which has extensibility plugin architecture [Check Community Contributions](https://www.npmjs.com/search?q=lowcoder-comp) +- The only platform which has extensibility plugin architecture [Check Community Contributions](https://www.npmjs.com/search?q=OpenFlower-comp) ## 🪄 Features - **Visual UI builder** with 100+ built-in components. Save 90% of time to build apps. - **Modules** for reusable (!) embedable component sets in the UI builder. -- **Embed Lowcoder Apps as native parts of any Website** instead of iFrame (!). [Demo](todo), [Docu](https://docs.openflower.org//lowcoder-extension/native-embed-sdk) +- **Embed OpenFlower Apps as native parts of any Website** instead of iFrame (!). [Demo](todo), [Docu](https://docs.openflower.org/lowcoder-extension/native-embed-sdk) - **Video Meeting Components** to create your own individual Web-Meeting tool. - **Query Library** for reusable data queries of your data sources. - **Custom components** to develop own components and use them in the UI builder. @@ -33,33 +33,33 @@ Lowcoder wants to take a step forward. More specifically, Lowcoder is: - **Auto-saved and restorable history** for release and version control. - **App Themes and Theme Editor** to precisely align with your company's brand guidelines. -- **Self Hosting** to use Lowcoder in your internal company network, even behind the firewall. [Docu](https://docs.openflower.org/setup-and-run/self-hosting) +- **Self Hosting** to use OpenFlower in your internal company network, even behind the firewall. [Docu](https://docs.openflower.org/setup-and-run/self-hosting) - **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://todo) ## 🏆 Comparisons -### Lowcoder vs Teams, Google Meets, Zoom +### OpenFlower vs Teams, Google Meets, Zoom - build a Meeting tool with peace in mind. Blue buttons - ok. Red corners or circle Videostream - ok too. - embedd applications in your Video-Meetings, so attendees can enjoy collaborative "anything". From shopping to working and gaming... -### Lowcoder vs Powerapps +### OpenFlower vs Powerapps - build a apps way faster than in Power Apps. Save up to 50& of the time and costs at least. - Use self-hosting to keep all apps and data under your control for example at the own baremetals. -### Lowcoder vs Retool -- Lowcoder is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software. -- In Lowcoder, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool -- Lowcoder is free and you can contribute! -- With Lowcoder you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards. -- The EE Version of Lowcoder comes with a much better pricing model, so you have no "per-user costs". -### Lowcoder vs Appsmith, Tooljet -- Lowcoder has more components and richer configuration than Appsmith and Tooljet. -- In Lowcoder, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only. -- In Lowcoder, you can reuse common structures when building apps with modules and query library features. -### Lowcoder vs Mendix, Outsystems, Pega -- Lowcoder is modern. The codebase is fresh and uses modern standards. -- Lowcoder Apps do not need a compile and deployment. Just publish and use. Within seconds! -- Lowcoder Apps can get embedded natively in websites and apps, even in mobile apps. -### Lowcoder vs internal Tool platforms -- Lowcoder supports internal tools like admin panels perfectly, but also customer-facing apps can get developed and published. -- The Lowcoder UI builder is straightforward and better to use than Bubble. +### OpenFlower vs Retool +- OpenFlower is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software. +- In OpenFlower, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool +- OpenFlower is free and you can contribute! +- With OpenFlower you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards. +- The EE Version of OpenFlower comes with a much better pricing model, so you have no "per-user costs". +### OpenFlower vs Appsmith, Tooljet +- OpenFlower has more components and richer configuration than Appsmith and Tooljet. +- In OpenFlower, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only. +- In OpenFlower, you can reuse common structures when building apps with modules and query library features. +### OpenFlower vs Mendix, Outsystems, Pega +- OpenFlower is modern. The codebase is fresh and uses modern standards. +- OpenFlower Apps do not need a compile and deployment. Just publish and use. Within seconds! +- OpenFlower Apps can get embedded natively in websites and apps, even in mobile apps. +### OpenFlower vs internal Tool platforms +- OpenFlower supports internal tools like admin panels perfectly, but also customer-facing apps can get developed and published. +- The OpenFlower UI builder is straightforward and better to use than Bubble. - App release cycles and updates can be done nearly daily without service downtimes for customers and users. @@ -74,7 +74,7 @@ And we mean it... Day by day! ## 💻 Deployment Options todo -You can access Lowcoder from [cloud-hosted demo version](https://demo.openflower.orgTODO/) at any time, or use the following resources for self-host Lowcoder on different platforms: +You can access OpenFlower from [cloud-hosted demo version](https://demo.openflower.orgTODO/) at any time, or use the following resources for self-host OpenFlower on different platforms: - [Docker](https://docs.openflower.org/setup-and-run/self-hosting) ## 💪 Contributing @@ -84,4 +84,4 @@ You can access Lowcoder from [cloud-hosted demo version](https://demo.openflower ## Intro Video -todo \ No newline at end of file +todo From cb1a0736bd36a04a368a3461f36ec4816272fe73 Mon Sep 17 00:00:00 2001 From: Flowerappeng-org Date: Tue, 24 Sep 2024 11:08:09 -0400 Subject: [PATCH 05/36] Update README.md --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 56a2dae310..7791345a23 100644 --- a/README.md +++ b/README.md @@ -37,30 +37,30 @@ OpenFlower is: - **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://todo) ## 🏆 Comparisons -### OpenFlower vs Teams, Google Meets, Zoom -- build a Meeting tool with peace in mind. Blue buttons - ok. Red corners or circle Videostream - ok too. -- embedd applications in your Video-Meetings, so attendees can enjoy collaborative "anything". From shopping to working and gaming... ### OpenFlower vs Powerapps -- build a apps way faster than in Power Apps. Save up to 50& of the time and costs at least. -- Use self-hosting to keep all apps and data under your control for example at the own baremetals. +- build a apps way faster than in Power Apps. Save up to 50% of the time and costs +- Use self-hosting to keep all apps and data under your control ### OpenFlower vs Retool -- OpenFlower is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software. +- OpenFlower is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software - In OpenFlower, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool - OpenFlower is free and you can contribute! -- With OpenFlower you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards. -- The EE Version of OpenFlower comes with a much better pricing model, so you have no "per-user costs". +- With OpenFlower you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards +- The EE Version of OpenFlower comes with a much better pricing model, so you have no "per-user costs" ### OpenFlower vs Appsmith, Tooljet -- OpenFlower has more components and richer configuration than Appsmith and Tooljet. -- In OpenFlower, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only. +- OpenFlower has more components and richer configuration than Appsmith and Tooljet +- In OpenFlower, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only - In OpenFlower, you can reuse common structures when building apps with modules and query library features. ### OpenFlower vs Mendix, Outsystems, Pega - OpenFlower is modern. The codebase is fresh and uses modern standards. - OpenFlower Apps do not need a compile and deployment. Just publish and use. Within seconds! -- OpenFlower Apps can get embedded natively in websites and apps, even in mobile apps. +- OpenFlower Apps can get embedded natively in websites and apps, even in mobile apps ### OpenFlower vs internal Tool platforms -- OpenFlower supports internal tools like admin panels perfectly, but also customer-facing apps can get developed and published. -- The OpenFlower UI builder is straightforward and better to use than Bubble. -- App release cycles and updates can be done nearly daily without service downtimes for customers and users. +- OpenFlower supports internal tools like admin panels perfectly, but also customer-facing apps can get developed and published +- The OpenFlower UI builder is straightforward and better to use than Bubble +- App release cycles and updates can be done nearly daily without service downtimes for customers and users +### OpenFlower vs Teams, Google Meets, Zoom +- build a Meeting tool with peace in mind. Blue buttons - ok. Red corners or circle Videostream - ok too +- embedd applications in your Video-Meetings, so attendees can enjoy collaborative "anything". From shopping to working and gaming ## 👐 Support and Community From 45788a75c2f83964dee4a21cfd61844ec70e7d24 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Tue, 1 Oct 2024 13:23:38 -0400 Subject: [PATCH 06/36] Doc changes for OpenFlower --- .github/workflows/docker-images.yml | 12 ++--- .../app-editor/visual-components/README.md | 4 -- .../visual-components/charts-and-graphs.md | 2 +- .../common-component-settings.md | 2 +- .../app-editor/visual-components/drawer.md | 4 +- .../app-editor/visual-components/table.md | 4 +- .../themes-and-styling/README.md | 4 +- .../themes-and-styling/customize-styles.md | 2 +- .../write-javascript/javascript-query.md | 8 +--- .../apis-as-datasource/graphql.md | 2 +- .../apis-as-datasource/rest-api.md | 2 +- .../bigdata-and-olap/big-query.md | 2 +- .../bigdata-and-olap/clickhouse.md | 2 +- .../bigdata-and-olap/elasticsearch.md | 2 +- .../bigdata-and-olap/snowflake.md | 4 +- .../inmemory-databases/redis.md | 2 +- .../nosql-databases/couchdb.md | 2 +- .../nosql-databases/dynamodb.md | 2 +- .../nosql-databases/mongodb.md | 2 +- .../sql-databases/mariadb.md | 2 +- .../sql-databases/microsoft-sql-server.md | 2 +- .../sql-databases/mysql.md | 2 +- .../sql-databases/oracle.md | 2 +- .../sql-databases/postgresql.md | 2 +- .../lowcoder-open-rest-api.md | 13 +----- .../opensource-contribution/README.md | 10 ++--- .../README.md | 2 +- .../custom-branding.md | 32 -------------- .../embedd-an-app/embed-app-in-html-pages.md | 44 +------------------ .../embedd-an-app/embed-apps-in-react.md | 2 +- .../build-the-sdk-from-source.md | 2 +- docs/publish-apps/publish-an-app.md | 4 +- docs/publish-apps/share-an-app.md | 2 +- docs/setup-and-run/cloud-and-private-cloud.md | 10 ++--- docs/setup-and-run/security.md | 24 ---------- docs/setup-and-run/self-hosting/README.md | 24 +++++----- docs/setup-and-run/self-hosting/heroku.md | 4 +- docs/workflows/n8n-integration.md | 4 +- .../lowcoder-marketplace.md | 4 +- .../oauth/generic-oauth-provider.md | 2 +- .../workspaces-and-teamwork/oauth/keycloak.md | 2 +- docs/workspaces-and-teamwork/query-library.md | 8 ++-- docs/workspaces-and-teamwork/workspaces.md | 6 +-- 43 files changed, 75 insertions(+), 198 deletions(-) delete mode 100644 docs/lowcoder-for-enterprise/custom-branding.md diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index 2105bccc56..200a02cbb8 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -1,4 +1,4 @@ -name: Build lowcoder docker images +name: Build OpenFlower docker images on: workflow_dispatch: @@ -74,7 +74,7 @@ jobs: # with: # version: "lab:latest" # driver: cloud - # endpoint: "haighis/lowcoder-cloud-builder" + # endpoint: "flowerappengorg/lowcoder-cloud-builder" - name: Build and push the all-in-one image if: ${{ env.BUILD_ALLINONE == 'true' }} @@ -90,7 +90,7 @@ jobs: linux/amd64 linux/arm64 push: true - tags: haighis/lowcoder-ce:${{ env.IMAGE_TAG }} + tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} - name: Build and push the frontend image if: ${{ env.BUILD_FRONTEND == 'true' }} @@ -107,7 +107,7 @@ jobs: linux/amd64 linux/arm64 push: true - tags: haighis/lowcoder-ce-frontend:${{ env.IMAGE_TAG }} + tags: flowerappengorg/openflower-frontend:${{ env.IMAGE_TAG }} - name: Build and push the node service image if: ${{ env.BUILD_NODESERVICE == 'true' }} @@ -119,7 +119,7 @@ jobs: linux/amd64 linux/arm64 push: true - tags: haighis/lowcoder-ce-node-service:${{ env.IMAGE_TAG }} + tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} - name: Build and push the API service image if: ${{ env.BUILD_APISERVICE == 'true' }} @@ -131,4 +131,4 @@ jobs: linux/amd64 linux/arm64 push: true - tags: haighis/lowcoder-ce-api-service:${{ env.IMAGE_TAG }} + tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} diff --git a/docs/build-applications/app-editor/visual-components/README.md b/docs/build-applications/app-editor/visual-components/README.md index 5d83dceb2d..893daa6078 100644 --- a/docs/build-applications/app-editor/visual-components/README.md +++ b/docs/build-applications/app-editor/visual-components/README.md @@ -1,9 +1,5 @@ # Visual Components -We maintain a list of all components that are available or planned. - -{% embed url="https://app.lowcoder.cloud/apps/648cd237a0308d4efcc64571/view" %} - With Version 2.0.0 of OpenFlower there are 56 Components. These components share a number of [common settings and configurations](common-component-settings.md). diff --git a/docs/build-applications/app-editor/visual-components/charts-and-graphs.md b/docs/build-applications/app-editor/visual-components/charts-and-graphs.md index 5add53f8d0..66e2c434dd 100644 --- a/docs/build-applications/app-editor/visual-components/charts-and-graphs.md +++ b/docs/build-applications/app-editor/visual-components/charts-and-graphs.md @@ -71,6 +71,6 @@ In most types of charts, the **Chart series** (Y-axis) presents numeric values f Apart from the built-in charts and graphs, you can also plot your data with [Apache ECharts](https://echarts.apache.org/en/index.html), an open-source JS visualization library. You only need to complete the **Configuration** > **Option** field in JSON format. For detailed information, see [ECharts docs](https://echarts.apache.org/en/option.html#title) and [ECharts examples](https://echarts.apache.org/examples/en/index.html). -For an instance of using Echarts, see [Stacked Area Chart](https://cloud.lowcoder.dev/apps/63779dd6c54c5224c70ea537/view). +For an instance of using Echarts, see [Stacked Area Chart](todo). To style your charts, the [Theme Editor of ECharts](https://echarts.apache.org/en/theme-builder.html) is a good tool. It can export a JSON, which you also can use in the Workspace Themes section to style both Chart types. The native ones and the ECharts. diff --git a/docs/build-applications/app-editor/visual-components/common-component-settings.md b/docs/build-applications/app-editor/visual-components/common-component-settings.md index d0a99ffb1f..07ff768787 100644 --- a/docs/build-applications/app-editor/visual-components/common-component-settings.md +++ b/docs/build-applications/app-editor/visual-components/common-component-settings.md @@ -139,7 +139,7 @@ One of the powerful concepts of OpenFlower are the Event handlers. Based on User * Switch Tab (for Tabbed containers) {% hint style="info" %} -You can find a list of Event Handlers here: [https://app.lowcoder.cloud/apps/648cd237a0308d4efcc64571/view](https://app.lowcoder.cloud/apps/648cd237a0308d4efcc64571/view) +You can find a list of Event Handlers here: [TODO list of event handlers) {% endhint %} When a Component supports User interaction Events, you can have one or multiple actions based on a single Event type or different Event types. diff --git a/docs/build-applications/app-editor/visual-components/drawer.md b/docs/build-applications/app-editor/visual-components/drawer.md index 3bac19bd00..6c22d8aede 100644 --- a/docs/build-applications/app-editor/visual-components/drawer.md +++ b/docs/build-applications/app-editor/visual-components/drawer.md @@ -28,7 +28,7 @@ The following sections guide you through how to open and close a drawer by click ### Trigger openDrawer -Usually, in an app, you trigger opening a drawer by an event such as clicking a button. For example, in the [Online Shopping demo](https://cloud.lowcoder.dev/apps/63a422a344075b798fe3ae06/view), opening a drawer to display the shopping cart is implemented in the following steps. +Usually, in an app, you trigger opening a drawer by an event such as clicking a button. For example, in the [Online Shopping demo](todo), opening a drawer to display the shopping cart is implemented in the following steps. 1. Add a button and rename it as `gotoCart`. 2. Set the event handler of the button. Select "Control component" as the **Action** and select the component "cart" and method "openDrawer". All these settings are auto-saved. @@ -36,7 +36,7 @@ Usually, in an app, you trigger opening a drawer by an event such as clicking a ### Trigger closeDrawer -Triggerring "closeDrawer" is similar to triggering "openDrawer". When setting up the event handler, select the method "closeDrawer". For example, in the [Online Shopping demo](https://cloud.lowcoder.dev/apps/63a422a344075b798fe3ae06/view), closing a drawer that displays the shopping cart is implemented in the following steps. +Triggerring "closeDrawer" is similar to triggering "openDrawer". When setting up the event handler, select the method "closeDrawer". For example, in the [Online Shopping demo]todo), closing a drawer that displays the shopping cart is implemented in the following steps. 1. Add a button and rename it as `gobackShopping`. 2. Set the event handler of the button. Select "Control component" as the **Action** and select the component "cart" and method "closeDrawer". All these settings are auto-saved. diff --git a/docs/build-applications/app-editor/visual-components/table.md b/docs/build-applications/app-editor/visual-components/table.md index aa6a21922e..ef54f5b93b 100644 --- a/docs/build-applications/app-editor/visual-components/table.md +++ b/docs/build-applications/app-editor/visual-components/table.md @@ -24,11 +24,11 @@ Also, the Text Styles can be individualized for every column. ### Component Playground -{% embed url="https://app.lowcoder.cloud/playground/table/1" %} +todo ### Component Auto-Docs -{% embed url="https://app.lowcoder.cloud/components/table" %} +{% embed url="https://prod-us1.openflower.org/components/input" %} ### Properties of the Table diff --git a/docs/build-applications/themes-and-styling/README.md b/docs/build-applications/themes-and-styling/README.md index 9c31bf6c69..9362677a82 100644 --- a/docs/build-applications/themes-and-styling/README.md +++ b/docs/build-applications/themes-and-styling/README.md @@ -12,7 +12,7 @@ You can also write JavaScript in the text box to conditionally control the style ## Themes -The [theme feature](https://cloud.lowcoder.dev/setting/theme) helps you quickly set the styles of all your apps within a workspace, such as the primary color of the apps and the default background color of containers. Created Themes are available and in each app you would need to apply a Theme. +The [theme feature](https://prod-us1.openflower.org/setting/theme) helps you quickly set the styles of all your apps within a workspace, such as the primary color of the apps and the default background color of containers. Created Themes are available and in each app you would need to apply a Theme. ### Create a theme @@ -39,7 +39,7 @@ You can access the global variable `theme` and call the method `theme.switchTo() #### Demo -Combining Option lists and Events, end users can switch the theme within the app. For details, see [Change theme by code demo](https://cloud.lowcoder.dev/apps/63f84ca9f5f6f66102fedf3b/view). +Combining Option lists and Events, end users can switch the theme within the app. For details, see [Change theme by code demo](todo). Follow the steps below to include this function in your app. diff --git a/docs/build-applications/themes-and-styling/customize-styles.md b/docs/build-applications/themes-and-styling/customize-styles.md index 314234b8f7..3ed23aff82 100644 --- a/docs/build-applications/themes-and-styling/customize-styles.md +++ b/docs/build-applications/themes-and-styling/customize-styles.md @@ -21,7 +21,7 @@ You can use the interactive Demo to see the Steps based on the Component "Divide With CSS you can further customize the Design of Components. You can use the same CSS Editor for every app or on the Workspace for all apps. {% hint style="info" %} -To set CSS Styles for all apps in a Workspace, use the Editors in the Advanced Settings. <[yourOpenFlowerURL>/setting/advanced](https://app.lowcoder.cloud/setting/advanced) +To set CSS Styles for all apps in a Workspace, use the Editors in the Advanced Settings. {% endhint %} OpenFlower Allows you to define Styles at "global Level". That means, you also can customize the style of the Admin Area and the Editor. diff --git a/docs/business-logic-in-apps/write-javascript/javascript-query.md b/docs/business-logic-in-apps/write-javascript/javascript-query.md index 1b64526445..013ebe2c01 100644 --- a/docs/business-logic-in-apps/write-javascript/javascript-query.md +++ b/docs/business-logic-in-apps/write-javascript/javascript-query.md @@ -169,10 +169,6 @@ select id, name, gender, address from users where id= {{id}} Then trigger this query in **Run JavaScript** of event handlers in each of the inputs. -**Demo 2** - -You can find another demo for using passed-in paramter queries [here](https://cloud.lowcoder.dev/apps/637f38daa899fe1ffcb17f0b/view). - ## Declare a function You can declare functions inside a JS query for better readability. @@ -191,7 +187,7 @@ function getCurrentDate() { ## Add preloaded scripts -OpenFlowerer supports importing third-party JS libraries and adding predefined JS code, such as adding global methods or variables for reuse either at **app-level** or **workspace-level**. You can find the app-level settings in ⚙️ > **Other** > **Scripts and style**. +OpenFlower supports importing third-party JS libraries and adding predefined JS code, such as adding global methods or variables for reuse either at **app-level** or **workspace-level**. You can find the app-level settings in ⚙️ > **Other** > **Scripts and style**. For workspace-level, go to ⚙️ **Settings** > **Advanced**. @@ -199,4 +195,4 @@ In **JavaScript** tab, you can add preloaded JavaScript code to define global me ## Restrictions -For security reasons, several global variables and functions of **window** are disabled in OpenFlowerer. Please report to our [GitHub](https://github.com/lowcoder-org/lowcoder/issues) or [Discord](https://discord.gg/3JKuvhWzTx) if you encounter any issues. +For security reasons, several global variables and functions of **window** are disabled in OpenFlower. Please report to our [GitHub](https://github.com/Flowerappeng-org/openflower/issues) if you encounter any issues. \ No newline at end of file diff --git a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md index 40fb7b51e7..a94527fdc3 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/graphql.md @@ -17,7 +17,7 @@ You can also connect to a new GraphQL API data source when creating or editing q ## Authentication type -By default, the authentication type is **None**. You can configure it as **Basic** or **Digest**, which require Username and Password. If you need other authentication methods, contact our customer service on the [homepage](https://lowcoder.dev). +By default, the authentication type is **None**. You can configure it as **Basic** or **Digest**, which require Username and Password. If you need other authentication methods, contact our customer service on the [homepage](https://prod-us1.openflower.org). The following is an example of connecting to [GitHub GraphQL API](https://docs.github.com/en/graphql). Set the authentication type to **None**. Then, input the required information into **Headers** to complete the authentication. The key is "Authorization" and the value is `"Bearer" + white space + YOUR_ACCESS_TOKEN`. See [Creating a personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) for detailed information. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md index 5eff1d02a2..deb347c19f 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/apis-as-datasource/rest-api.md @@ -17,7 +17,7 @@ You can also connect to a new REST API data source when creating or editing quer The default authentication type is **None**. Other options are **Basic** and **Digest**, which require configuration of **Username** and **Password**. -If you need other customized authentication methods, contact our customer service on the [homepage](https://lowcoder.dev). +If you need other customized authentication methods, contact our customer service on the [homepage](https://prod-us1.openflower.org). ## SSL Cert Verification diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md index 906c7b4a62..ea829733b3 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/big-query.md @@ -12,7 +12,7 @@ Big Query is a fully managed cloud-based data warehouse offered by Google Cloud Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Big Query** as the data source type. 3. Set its name and service account. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md index d0d5a00528..d0dd1d8b77 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/clickhouse.md @@ -12,7 +12,7 @@ ClickHouse is an open-source column-oriented database management system designed Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **ClickHouse** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md index 5a2ae32fd8..d83eed53fe 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/elasticsearch.md @@ -12,7 +12,7 @@ Elasticsearch is a highly scalable and distributed search and analytics engine d Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Elasticsearch** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md index 247d198f69..b5c43fdcfd 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/bigdata-and-olap/snowflake.md @@ -5,14 +5,14 @@ Snowflake is a cloud-based data warehousing platform that provides scalable and ## Prerequisites * Get Snowflake database connection parameters from the database owner. -* Refer to IP allowlist to add IP addresses of OpenFlowerer to your allowlist (if needed). +* Refer to IP allowlist to add IP addresses of OpenFlower to your allowlist (if needed). ## Connect to Snowflake data source Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlowerer Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Snowflake** as the data source type. 3. Set its name and configure general settings, including account identifier, and database. You can also set schema, warehouse, user name, password, and so on. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md b/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md index 07960c2f6d..8539abf0cb 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/inmemory-databases/redis.md @@ -12,7 +12,7 @@ Redis (Remote Dictionary Server) is an open-source in-memory data structure stor Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Redis** as the data source type. 3. Set its name and configure the parameters according to your **Connection Type**: diff --git a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md index e479c403da..49af801206 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/couchdb.md @@ -12,7 +12,7 @@ CouchDB is an open-source NoSQL document-oriented database management system tha Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **CouchDB** as the data source type. 3. Set its name and configure the server URL. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md index 386ed0024a..c885f4ee6a 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/dynamodb.md @@ -12,7 +12,7 @@ DynamoDB is a fully managed NoSQL database service offered by Amazon Web Service Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **DynamoDB** as the data source type. 3. Set its name and configure general settings, including access key ID, secret key. You can also set endpoint URL and region. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md index d473b3bce3..1636aa3d5a 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/nosql-databases/mongodb.md @@ -12,7 +12,7 @@ MongoDB is a broadly used NoSQL database system that stores data in JSON-like do Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **MongoDB** as the data source type. 3. Set its name and configure the parameters according to your **Connection Type**: diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md index 607cb12c01..1fc109c9f6 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mariadb.md @@ -12,7 +12,7 @@ MariaDB is a popular open-source relational database management system that offe Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **MariaDB** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md index b8b10c0a61..7caa5694da 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/microsoft-sql-server.md @@ -12,7 +12,7 @@ Microsoft SQL Server is a relational database management system (RDBMS), offerin Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Microsoft SQL Server** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md index 45b92ca9e9..52baa9c79d 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/mysql.md @@ -12,7 +12,7 @@ MySQL is a popular relational database management system (RDBMS) and is widely u Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **MySQL** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md index d3362d614f..5467f7141f 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/oracle.md @@ -12,7 +12,7 @@ Oracle is a leading provider of enterprise software and database management syst Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **Oracle** as the data source type. 3. Set its name and configure general settings, including host, port, and service name. You can also set the user name and a password. diff --git a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md index d6ee8713a2..5271b2826f 100644 --- a/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md +++ b/docs/connect-your-data/data-sources-in-lowcoder/sql-databases/postgresql.md @@ -12,7 +12,7 @@ PostgreSQL is a powerful open-source relational database management system (RDBM Follow the steps below: 1. Create a new data source in two ways. Note that this permission is restricted to workspace admins and developers. - * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://lowcoder.dev) and click **New data source**. + * Navigate to the **Data Sources** tab on [OpenFlower Homepage](https://prod-us1.openflower.org) and click **New data source**. * When creating a new query in the app editor, click **+ New** > **+ New data source**. 2. Select **Database** > **PostgreSQL** as the data source type. 3. Set its name and configure general settings, including host, port, and database name. You can also set the user name and a password. diff --git a/docs/lowcoder-extension/lowcoder-open-rest-api.md b/docs/lowcoder-extension/lowcoder-open-rest-api.md index e9ace17bdd..81414fd071 100644 --- a/docs/lowcoder-extension/lowcoder-open-rest-api.md +++ b/docs/lowcoder-extension/lowcoder-open-rest-api.md @@ -2,8 +2,6 @@ OpenFlower comes with a feature-rich REST API, so you can use it in OpenFlower Apps or extend OpenFlower with new functionality. -On [api-service.lowcoder.cloud](https://api-service.lowcoder.cloud/api/docs/webjars/swagger-ui/index.html#/) you can access this API as well, just some endpoints are not available. - ## Authentication ### Session Cookie @@ -128,14 +126,6 @@ https:/// When you run Multi-Docker Deployment on Localhost, you will need to look for the [Bridge-Network Settings](https://www.baeldung.com/ops/docker-communicating-with-containers-on-same-machine) that apply to your setup. -### app.lowcoder.cloud - -To use the API of the Cloud Version, the API is to reach via the separate API Service. - -``` -https://api-service.lowcoder.cloud/ -``` - Since OpenFlower v2.1.6 we publish the OpenAPI Specification and the Swagger Documentation automatically. ``` @@ -143,8 +133,7 @@ Swagger Documentation: /api/docs/webjars/swagger-ui/index.h OpenAPI Specification: /api/docs/api-docs ``` -You can find the current API Documentation for example here: \ -[https://api-service.lowcoder.cloud/api/docs/webjars/swagger-ui/index.html#/](https://api-service.lowcoder.cloud/api/docs/webjars/swagger-ui/index.html#/) +You can find the current API Documentation for example here: coming soon. ## Using OpenFlower API - inside OpenFlower Apps diff --git a/docs/lowcoder-extension/opensource-contribution/README.md b/docs/lowcoder-extension/opensource-contribution/README.md index 6d9d19d622..6da3f59b68 100644 --- a/docs/lowcoder-extension/opensource-contribution/README.md +++ b/docs/lowcoder-extension/opensource-contribution/README.md @@ -118,7 +118,7 @@ yarn build --publish ## OpenFlower Marketplace -Next to this direct code development contribution, we also encourage you to contribute smart solutions and reusable Apps and Modules on the [OpenFlower Marketplace](https://app.lowcoder.cloud/marketplace) so other users can see solution patterns and Application Building Blocks. +Next to this direct code development contribution, we also encourage you to contribute smart solutions and reusable Apps and Modules on the [OpenFlower Marketplace](https://prod-us1.openflower.org/marketplace) so other users can see solution patterns and Application Building Blocks. You can follow the [Guide for Apps & Modules to publish on the Marketplace](../../workspaces-and-teamwork/lowcoder-marketplace.md) @@ -126,15 +126,15 @@ You can follow the [Guide for Apps & Modules to publish on the Marketplace](../. We feel honored to work with you together on OpenFlower as a Platform! A good start and procedure that allows a smooth development process is like this: -1. [Fork the Repository](https://github.com/lowcoder-org/lowcoder/fork) +1. [Fork the Repository](https://github.com/Flowerappeng-org/openflower/fork) 2. Clone it into your local environment / IDE 3. Create a workable local Development Environment 4. Create your Feature-Branch from **/main** branch to get the latest stable Environment 5. **Develop your magic and enjoy the ride!** -6. Raise a PR / Merge Request to [**/dev branch**](https://github.com/lowcoder-org/lowcoder/tree/dev) of the OpenFlower Main Repository +6. Raise a PR / Merge Request to [**/dev branch**](https://github.com/Flowerappeng-org/openflower/tree/dev) of the OpenFlower Main Repository 7. Follow up if / when we have questions at your Merge Request -Please ask us directly for any related questions so we can help you the fastest way. We kindly ask you to use our [Discord Server](https://discord.gg/An6PgWpegg) for these questions. Here, especially the [#contribute channel](https://discord.gg/An6PgWpegg). +Please ask us directly for any related questions so we can help you the fastest way. ### Frontend App @@ -172,7 +172,7 @@ As soon as the development server is ready you can access OpenFlower by [http:// 1. Check out the source code. ```bash -git@github.com:your-org/lowcoder.git +git@github.com:your-org/openflower.git ``` 1. Change to **/client** dir in the source dir. diff --git a/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md b/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md index 853647a754..2506c69b92 100644 --- a/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md +++ b/docs/lowcoder-extension/use-third-party-libraries-in-apps/README.md @@ -140,6 +140,6 @@ window.cowsay.say(...) - does the job. ### Import/bind at the workspace level -Go to [OpenFlower's homepage](https://www.lowcoder.cloud/), select **Settings** > **Advanced**, and click **Add** under the **JavaScript library** tab. Paste the link of the third-party JS library and click **Add New** to add it to your workspace. You can also click the download icon to add any recommended JS library quickly. The installed libraries are accessible from any app within your workspace. +Go to [OpenFlower's homepage](https://prod-us1.openflower.org/), select **Settings** > **Advanced**, and click **Add** under the **JavaScript library** tab. Paste the link of the third-party JS library and click **Add New** to add it to your workspace. You can also click the download icon to add any recommended JS library quickly. The installed libraries are accessible from any app within your workspace.

Bind an external JS Library to all Apps of a Workspace

diff --git a/docs/lowcoder-for-enterprise/custom-branding.md b/docs/lowcoder-for-enterprise/custom-branding.md deleted file mode 100644 index 4f10cce823..0000000000 --- a/docs/lowcoder-for-enterprise/custom-branding.md +++ /dev/null @@ -1,32 +0,0 @@ -# Custom branding - -OpenFlower provides a white-labelling feature that allows you to customize your workspace's **branding**, including logo, favicon, brand name and color. You can easily configure branding to match your company's branding and benefit from consistent experiences with your company's existing internal tools. - -{% hint style="info" %} -Custom branding is a **premium feature** of self-hosted Enterprise Edition of OpenFlower. Feel free to contact our team if needed. -{% endhint %} - -## Branding settings - -Only **workspace admins** have the permission to customize branding. Navigate to [OpenFlower homepage](https://cloud.lowcoder.dev/), select ⚙️ **Settings** tab \*\*\*\* in \*\*\*\* the left pane and click **Branding**. You can edit the settings on the left and preview the actual effects on the right. - -The customizable branding settings are listed as follows: - -* Logo: click the **Logo** box to upload your logo, which is shown at the top bar. The file browser will pop up and you can select an image file. OpenFlower supports `.jpg`, `.svg`, and `.png` files. -* Head color: click the palette in the **Head Color** section to select the background color of the top bar. You can also directly type a CSS color into the box. -* Brand name: enter your **Brand Name** in the input box and it will show on the **login page** and as the browser tab title. -* Favicon: click the **Favicon** box to upload your website icon, which is shown in the browser tab. - -{% hint style="success" %} -Click the **Save** button and the settings will immediately take effect. -{% endhint %} - -### Example - -The following pictures show what workspace **members** and **end users** will see on the login page, homepage, and application pages after branding is successfully customized (take the brand name "My brand" for example). - -Note that workspace **developers** and **admins** still see "OpenFlower" branding on the homepage and application pages. - -## Further support - -If the current branding feature doesn't meet your requirements, please do not hesitate to contact us. OpenFlower team is ready to help with your needs. diff --git a/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md b/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md index fe808b9460..6c2e492608 100644 --- a/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md +++ b/docs/publish-apps/embedd-an-app/embed-app-in-html-pages.md @@ -1,45 +1,3 @@ # Embed App in HTML Pages -It is also possible to embed OpenFlower Apps on any HTML Page with simple Scripts, that we provide on sdk.lowcoder.cloud. This enables you to embed OpenFlower Apps even without deep knowledge of React or Web Development. - -Place the standard JavaScript Files in your \ part of the HTML page. - -``` - - -``` - -And now the OpenFlower SDK Scripts, as the last tags before the \ closing tag. - -``` - - -``` - -{% hint style="warning" %} -From version 2.4 on, you would only need to include the standard bundle file. -{% endhint %} - -``` - -``` - -Now you can place a small HTML snippet at the place where your App should be embedded: - -``` -
-
-
- - -
-
-``` - -You can embed in this way multiple apps on an HTML page. +coming soon diff --git a/docs/publish-apps/embedd-an-app/embed-apps-in-react.md b/docs/publish-apps/embedd-an-app/embed-apps-in-react.md index ec755f2577..42108d0dfb 100644 --- a/docs/publish-apps/embedd-an-app/embed-apps-in-react.md +++ b/docs/publish-apps/embedd-an-app/embed-apps-in-react.md @@ -38,7 +38,7 @@ import { OpenFlowerAppView } from "lowcoder-sdk"; **Properties** -
NameTypeDescriptionDefault value
appIdstringThe app's id is required!--
baseUrlstringThe api base url of the OpenFlower Instance.https://api-service.lowcoder.cloud
onModuleEventTriggered(eventName: string) => void(Only for Modules) Triggered when module's custom event is triggered. Works only when the app is a module.--
onModuleOutputChange(output: any) => void(Only for Modules) Triggered when module's outputs change. Works only when the app is a module.--
+
NameTypeDescriptionDefault value
appIdstringThe app's id is required!--
baseUrlstringThe api base url of the OpenFlower Instance.https://todo
onModuleEventTriggered(eventName: string) => void(Only for Modules) Triggered when module's custom event is triggered. Works only when the app is a module.--
onModuleOutputChange(output: any) => void(Only for Modules) Triggered when module's outputs change. Works only when the app is a module.--
Modules are special Apps, which make bidirectional communication between your app and the OpenFlower Module possible. You can send data to Module-Inputs and receive Data back via Module Outputs. Also, you can trigger Methods and listen to Events. diff --git a/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md b/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md index 4ada0acb98..894a3b69a4 100644 --- a/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md +++ b/docs/publish-apps/embedd-an-app/native-embed-sdk/build-the-sdk-from-source.md @@ -1,6 +1,6 @@ # Build the SDK from Source -1. Clone the Repository [https://github.com/lowcoder-org/lowcoder](https://github.com/lowcoder-org/lowcoder) +1. Clone the Repository [https://github.com/Flowerappeng-org/openflower](https://github.com/Flowerappeng-org/openflower) 2. Make sure the repo is synced with the latest updates of the actual OpenFlower repo. If not sync the repo and take the newest pull. 3. Move to “client/packages/lowcoder-sdk“ directory 4. run `yarn install` and `yarn build` command. diff --git a/docs/publish-apps/publish-an-app.md b/docs/publish-apps/publish-an-app.md index 66879cf419..26e35fefe9 100644 --- a/docs/publish-apps/publish-an-app.md +++ b/docs/publish-apps/publish-an-app.md @@ -40,7 +40,7 @@ Apps can also be published to OpenFlower marketplaces: 1. **Public to Marketplace**: * After _sharing_ the app as "public to all", it can be further published to the marketplace. - * This makes the app available in the marketplace listings, either globally at app.lowcoder.cloud or within individual OpenFlower installations. + * This makes the app available in the marketplace listings, either globally at https://prod-us1.openflower.org/ or within individual OpenFlower installations. ## Workflow for Publishing an App @@ -57,7 +57,7 @@ Apps can also be published to OpenFlower marketplaces: * The app will be listed in the _global_ or local OpenFlower marketplace. {% hint style="info" %} -Global Marketplace means, if you published the app for the Marketplace on app.lowcoder.cloud +Global Marketplace means, if you published the app for the Marketplace on https://prod-us1.openflower.org/ {% endhint %} ## Adding Title, Description, Category and Icon diff --git a/docs/publish-apps/share-an-app.md b/docs/publish-apps/share-an-app.md index 8f3fdf4b08..eb35f07cea 100644 --- a/docs/publish-apps/share-an-app.md +++ b/docs/publish-apps/share-an-app.md @@ -45,7 +45,7 @@ There are three primary methods for sharing an application: This feature supports two types of marketplaces: -1. **Global Marketplace**: Accessible at app.lowcoder.cloud, where apps are available to everyone. +1. **Global Marketplace**: Accessible at https://prod-us1.openflower.org/, where apps are available to everyone. 2. **Local Marketplace**: Individual OpenFlower installations can host their own marketplaces, accessible only to their users. The `LOWCODER_MARKETPLACE_PRIVATE_MODE` environment variable controls the visibility of apps on local marketplaces: diff --git a/docs/setup-and-run/cloud-and-private-cloud.md b/docs/setup-and-run/cloud-and-private-cloud.md index d6c9cdbd2c..f4229ccab5 100644 --- a/docs/setup-and-run/cloud-and-private-cloud.md +++ b/docs/setup-and-run/cloud-and-private-cloud.md @@ -2,16 +2,12 @@ OpenFlower is available online. You can start directly to build Applications. -{% embed url="https://app.lowcoder.cloud" %} +{% embed url="https://prod-us1.openflower.org" %} shared cloud free of charge {% endembed %} -We offer a hosted version of OpenFlower in this shared public cloud for free. We take care of updates, security, and scaling of the underlying infrastructure in a multi-docker deployment. +We offer a hosted version of OpenFlower in this shared public cloud for free. We take care of updates, security, and scaling of the underlying infrastructure. The public cloud has a central database for all users and applications. We suggest using the public cloud to get to know OpenFlower and make your first tests and Apps. -For companies and enterprises, it is suggested to work in an isolated environment with its own database and infrastructure. For this, we offer a private cloud subscription. Technically it is the same OpenFlower stack and Version - but with an individual and isolated configuration in a region you choose US, EU, or ASEAN. - -For private cloud setups, we offer the possibility to connect your own domains. - -We host OpenFlower in secure, ISO 9001, ISO 27001, ISAE 3402 & PCI-DSS certified SafeHost data centers, ensuring an exceptionally low risk of flooding, landslides, or earthquakes and the highest data security. Backups are organized every night for all infrastructure components and the Databases as Snapshots. +OpenFlower is hosted in Google data centers. Backups are organized every night for all infrastructure components and the Databases as Snapshots. diff --git a/docs/setup-and-run/security.md b/docs/setup-and-run/security.md index eb53d1e247..9147d38bea 100644 --- a/docs/setup-and-run/security.md +++ b/docs/setup-and-run/security.md @@ -24,30 +24,6 @@ OpenFlower provides secure-by-default service. * Self-hosted OpenFlower instances can be configured with unique encryption salt values. * OpenFlower Cloud only connects to your databases or APIs through allowed IPs, ensuring that your data won't be exposed to unknown IPs while using our cloud service. -``` -(US) -185.122.165.50 -185.122.165.51 -185.122.165.52 -185.122.165.56 - -(GB) -185.85.242.35 -185.85.242.36 -185.85.242.37 - -(DE) -185.44.64.41 -185.44.64.42 -185.44.64.43 -185.44.64.44 -185.44.64.47 -``` - -* OpenFlower Cloud service is deployed and hosted on German, UK, and US Data-Centers, which are certified with SOC 1 Type II,PCI-DSS,SOC 2 Type II,ISO 27001,HIPAA and NIST 800-53/FISMA. -* OpenFlower Cloud ensures data redundancy on all cloud instances, so you do not need to worry about a single point of failure or data loss. -* Internal access to OpenFlower Cloud is controlled through [two-factor authentication (2FA)](https://en.wikipedia.org/wiki/Help:Two-factor\_authentication) and audit logs. - ## Feedback Should you have any questions about data security in OpenFlower, please feel free to contact us. We welcome any feedback on our service from security experts and all users. diff --git a/docs/setup-and-run/self-hosting/README.md b/docs/setup-and-run/self-hosting/README.md index 677d6f5f8b..81b4fed75e 100644 --- a/docs/setup-and-run/self-hosting/README.md +++ b/docs/setup-and-run/self-hosting/README.md @@ -4,18 +4,16 @@ In this article, you will be guided through how to host OpenFlower on your own s There are multiple ways of installation. We directly support: -* [Single Docker Image](https://github.com/lowcoder-org/lowcoder/tree/main/deploy/docker) to run with a single line of command. -* Multi-Docker Image deployment for scaling scenarios with [Docker Compose](https://github.com/lowcoder-org/lowcoder/blob/main/deploy/docker/docker-compose-multi.yaml) -* Kubernetes-based deployment with [HELM Charts](https://github.com/lowcoder-org/lowcoder/tree/main/deploy/helm). +* [Single Docker Image](https://github.com/Flowerappeng-org/openflower/deploy/docker) to run with a single line of command. +* Multi-Docker Image deployment for scaling scenarios with [Docker Compose](https://github.com/Flowerappeng-org/openflower/blob/main/deploy/docker/docker-compose-multi.yaml) +* Kubernetes-based deployment with [HELM Charts](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/helm). * [Heroku based deployment](heroku.md) * [Google Cloud Platform](google-cloud-platform.md) * [Raspberry Pi](raspberry-pi.md) ## 1) Start easy: -For easy setup and deployment, we provide an [all-in-one image](https://hub.docker.com/r/lowcoderorg/lowcoder-ce) that bundles frontend, backend, and data persistence services altogether in one single container. - -{% embed url="https://lowcoder.cloud/images/Screenshot-2023-08-27-at-21.50.36.png" %} +For easy setup and deployment, we provide an [all-in-one image](https://hub.docker.com/r/flowerappengorg/openflower) that bundles frontend, backend, and data persistence services altogether in one single container. ### All-in-one image @@ -43,12 +41,13 @@ cd lowcoder {% tab title="Docker-Compose (Recommended)" %} Follow the steps below: -1. Download the configuration file by clicking [docker-compose.yml](https://github.com/lowcoder-org/lowcoder/blob/main/deploy/docker/docker-compose.yaml) or running the curl command: +1. Download the configuration file by clicking [docker-compose.yml](https://raw.githubusercontent.com/Flowerappeng-org/openflower/main/deploy/docker/docker-compose.yaml) or running the curl command: {% code overflow="wrap" %} ``` -curl https://raw.githubusercontent.com/lowcoder-org/lowcoder/main/deploy/docker/docker-compose.yaml -o $PWD/docker-compose.yml +curl https://raw.githubusercontent.com/Flowerappeng-org/openflower/main/deploy/docker/docker-compose.yaml -o $PWD/docker-compose.yml ``` + {% endcode %} 2. Start the Docker container by running this command: @@ -110,9 +109,8 @@ docker run -d --name OpenFlower -p 3000:3000 -v "$PWD/stacks:/OpenFlower-stacks" ## 2) Scale -For bigger expected loads that need scaling in a cluster environment, we provide [separate images of backend and frontend services](https://hub.docker.com/u/lowcoderorg) with a customizable Dockerfile. +For bigger expected loads that need scaling in a cluster environment: [separate images of backend and frontend services](https://hub.docker.com/u/flowerappengorg) with a customizable Dockerfile. -{% embed url="https://lowcoder.cloud/images/Screenshot-2023-08-27-at-21.56.51.png" %} Multi-Image Installation to scale. API-Service & Node-Service can get scaled independently. {% endembed %} @@ -138,9 +136,9 @@ For bigger expected loads that need scaling in a cluster environment, we offer s mkdir lowcoder cd lowcoder ``` -2. Download the configuration file by clicking [docker-compose-multi.yml](https://github.com/lowcoder-org/lowcoder/blob/main/deploy/docker/docker-compose-multi.yaml) or running the curl command: +2. Download the configuration file by clicking [docker-compose-multi.yml](https://github.com/Flowerappeng-org/openflower/blob/main/deploy/docker/docker-compose-multi.yaml) or running the curl command: -
curl https://raw.githubusercontent.com/lowcoder-org/lowcoder/main/deploy/docker/docker-compose-multi.yaml -o $PWD/docker-compose-multi.yml
+    
curl https://github.com/Flowerappeng-org/openflower/blob/main/deploy/docker/docker-compose-multi.yaml -o $PWD/docker-compose-multi.yml
     
3. Modify service configurations in the downloaded Dockerfile according to your needs: * **mongodb**: Start a new MongoDB instance on your host. You can delete this part and modify the environment variable `MONGODB_URI` of the **api-service** to use your own MongoDB. @@ -200,7 +198,7 @@ docker rm lowcoder Below are examples of configuring the all-in-one image by setting environment variables in `docker-compose.yml`. If you are self-hosting with separate images, modify the `lowcoder-api-service` part of the `docker-compose-multi.yml` file instead. {% hint style="info" %} -For more information about configurations and environment variables, see [Configuration](https://github.com/lowcoder-org/lowcoder/tree/main/deploy/docker). +For more information about configurations and environment variables, see [Configuration](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/docker). {% endhint %} ### Use your own MongoDB and Redis diff --git a/docs/setup-and-run/self-hosting/heroku.md b/docs/setup-and-run/self-hosting/heroku.md index 9f715c119f..0e7deaca53 100644 --- a/docs/setup-and-run/self-hosting/heroku.md +++ b/docs/setup-and-run/self-hosting/heroku.md @@ -48,10 +48,10 @@ For more help, see [Custom Domain Names for Apps](https://devcenter.heroku.com/a You can use the [Heroku CLI](https://devcenter.heroku.com/categories/command-line) to update your Docker image to the latest version. The basic logic behind the following steps is to pull the newest code from the GitHub repository, build an image locally using the Docker engine, and deploy the updated image using the Heroku CLI. Before you start, make sure you have [Heroku CLI](https://devcenter.heroku.com/categories/command-line) and [Docker](https://www.docker.com/) installations locally (required). -1\. Get the latest code by cloning the [`OpenFlower-org/OpenFlower`](https://github.com/lowcoder-org/lowcoder) repository from GitHub. +1\. Get the latest code by cloning the [`OpenFlower-org/OpenFlower`](https://github.com/Flowerappeng-org/openflower) repository from GitHub. ```bash -git clone https://github.com/lowcoder-org/lowcoder.git +git clone https://github.com/Flowerappeng-org/openflower ``` 2\. Move to the `heroku` folder. diff --git a/docs/workflows/n8n-integration.md b/docs/workflows/n8n-integration.md index dc8f003e9a..46015459ee 100644 --- a/docs/workflows/n8n-integration.md +++ b/docs/workflows/n8n-integration.md @@ -4,7 +4,7 @@ The combination of OpenFlower and n8n is just amazing. It empowers you as App cr The overall path is as follows: -* [Install](https://docs.openflower.org/lowcoder-documentation/setup-and-run/self-hosting) OpenFlower or use [app.lowcoder.cloud](https://app.lowcoder.cloud) +* [Install](https://docs.openflower.org/setup-and-run/self-hosting) OpenFlower or use [prod-us1.openflower.org](https://prod-us1.openflower.org) * [Install n8n](https://docs.n8n.io/hosting/installation/) (selfhosted to access Community Nodes) * Install the [OpenFlower Community Node](https://www.npmjs.com/package/n8n-nodes-lowcoder) * Create OpenFlower Credentials in n8n @@ -55,7 +55,7 @@ You can use one or many OpenFlower Nodes in your workflow. As any other n8n node With the help of the credentials dialogue, you can now connect to OpenFlower (API). -As API Base URL you can use https://api-service.lowcoder.cloud for the public community edition or the URL of your self-hosted api-service instance of OpenFlower. +As API Base URL you can use TODO for the public community edition or the URL of your self-hosted api-service instance of OpenFlower.

Connect to OpenFlower with your credencials

diff --git a/docs/workspaces-and-teamwork/lowcoder-marketplace.md b/docs/workspaces-and-teamwork/lowcoder-marketplace.md index 64d64646d7..efa2df1f71 100644 --- a/docs/workspaces-and-teamwork/lowcoder-marketplace.md +++ b/docs/workspaces-and-teamwork/lowcoder-marketplace.md @@ -8,7 +8,7 @@ For us It's all about harnessing the power of collaboration to bring the best ou ## Global and Local App Marketplace -The place where Apps are built and shared on the Marketplace of [app.lowcoder.cloud](https://app.lowcoder.cloud), we call the "global Marketplace". +The place where Apps are built and shared on the Marketplace of [prod-us1.openflower.org](https://prod-us1.openflower.org), we call the "global Marketplace". If you operate a self-hosted installation you will be able to see and use the Apps from the global Marketplace always. However, you can share apps in a local Marketplace too, which is only available across all workspaces of your self-hosted installation. @@ -23,7 +23,7 @@ In self-hosted installations, both Marketplaces are available and show the apps {% embed url="https://app.supademo.com/demo/me6zeg4Oe9GCKtAiMWTCu" %} {% hint style="info" %} -If you publish your App in the OpenFlower Editor on [app.lowcoder.cloud](https://app.lowcoder.cloud), your App will be listed on the "global Marketplace" and every OpenFlower User can see and use the App. +If you publish your App in the OpenFlower Editor on [prod-us1.openflower.org](https://prod-us1.openflower.org), your App will be listed on the "global Marketplace" and every OpenFlower User can see and use the App. {% endhint %} {% hint style="warning" %} diff --git a/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md b/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md index f2694b9168..d13c7ef980 100644 --- a/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md +++ b/docs/workspaces-and-teamwork/oauth/generic-oauth-provider.md @@ -171,7 +171,7 @@ Some providers do only support OAuth - but not (yet?) OpenID. This means that th At your IDM you would need to prepare an OAuth Client resp. a OAuth Client Application. There are multiple settings. -* Redirect URL. Here you enter your domain of your installation like **http://localhost:3000** or **https://app.lowcoder.cloud** +* Redirect URL. Here you enter your domain of your installation like **http://localhost:3000** or **https://prod-us1.openflower.org** * Scopes: You should set the following Scopes if possible. **offline\_access** and **profile** are important. * openid * offline\_access diff --git a/docs/workspaces-and-teamwork/oauth/keycloak.md b/docs/workspaces-and-teamwork/oauth/keycloak.md index ec2e80497b..92ebb300e8 100644 --- a/docs/workspaces-and-teamwork/oauth/keycloak.md +++ b/docs/workspaces-and-teamwork/oauth/keycloak.md @@ -23,7 +23,7 @@ Make sure the "Standard Flow" is activated, as also "Client authentication" and Configure the OpenFlower redirect URLs. {% hint style="info" %} -For the cloud, the "Valid redirect URI" is https://app.lowcoder.cloud +For the cloud, the "Valid redirect URI" is https://prod-us1.openflower.org {% endhint %}
diff --git a/docs/workspaces-and-teamwork/query-library.md b/docs/workspaces-and-teamwork/query-library.md index 2b481ee48b..3b12bbc945 100644 --- a/docs/workspaces-and-teamwork/query-library.md +++ b/docs/workspaces-and-teamwork/query-library.md @@ -1,6 +1,6 @@ # Query library -The **Query Library** lets you store, reuse and share Data Queries for all Data Sources in a workspace. You can create and run queries in the Query Library, and call them from any OpenFlowerer app. This helps you to organize and pre-define important queries for colleagues that work with you on Apps for example. +The **Query Library** lets you store, reuse and share Data Queries for all Data Sources in a workspace. You can create and run queries in the Query Library, and call them from any OpenFlower app. This helps you to organize and pre-define important queries for colleagues that work with you on Apps for example. The main function of the Query Library is to create and manage reusable Queries with Versioning. @@ -18,7 +18,7 @@ If available based on the Datasource, helping Metadata will get displayed on the ### Input parameters -There are cases where you want to pass dynamic parameters to a query. OpenFlowerer supports that by introducing input configuration of a query. +There are cases where you want to pass dynamic parameters to a query. OpenFlower supports that by introducing input configuration of a query. Click **Add** in the **Inputs** tab in the right upper pane to add input parameters. @@ -70,11 +70,11 @@ You can export a Query as a JSON Definition file. This helps to use a Query acro Be aware, that the connected Datasource of a Query may have different security credentials at different installation locations. {% endhint %} -

With "Export to JSON" you can backup a query or store it externally to use it in other OpenFlowerer Installations.

+

With "Export to JSON" you can backup a query or store it externally to use it in other OpenFlower Installations.

### Import Queries -Based on the JSON Definition file, you can import Queries into OpenFlowerer. On the Query Library Overview Screen, you can use the Button "Import from File" +Based on the JSON Definition file, you can import Queries into OpenFlower. On the Query Library Overview Screen, you can use the Button "Import from File"

Import Data Queries from a JSON Definition File.

diff --git a/docs/workspaces-and-teamwork/workspaces.md b/docs/workspaces-and-teamwork/workspaces.md index cda9c6c803..b79c955023 100644 --- a/docs/workspaces-and-teamwork/workspaces.md +++ b/docs/workspaces-and-teamwork/workspaces.md @@ -11,11 +11,11 @@ OpenFlower supports Workspaces. These are isolated rooms to organize: * Global includes (Javascript / CSS) {% hint style="info" %} -To activate this function, please add the [ENV Variable](https://github.com/lowcoder-org/lowcoder/tree/main/deploy/docker#configuration): **COMMON\_WORKSPACE\_MODE**=SAAS +To activate this function, please add the [ENV Variable](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/docker#configuration): **COMMON\_WORKSPACE\_MODE**=SAAS {% endhint %} {% hint style="info" %} -From Version 2.3.3, you can add the [ENV Variable](https://github.com/lowcoder-org/lowcoder/tree/main/deploy/docker#configuration) **LOWCODER\_CREATE\_WORKSPACE\_ON\_SIGNUP** to control the behavior of your users (Member role) on self-hosted installation.\ +From Version 2.3.3, you can add the [ENV Variable](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/docker#configuration) **LOWCODER\_CREATE\_WORKSPACE\_ON\_SIGNUP** to control the behavior of your users (Member role) on self-hosted installation.\ \ true - members can use their own workspace when they sign up. \ false - members will not have their own workspace when they sign up. @@ -59,7 +59,7 @@ It is possible to include global CSS styles to fine-tune the visuals of Apps. Al ### Further administrative Settings -On self-hosted installations, you can set up thresholds for workspaces with the help of [ENV Variables](https://github.com/lowcoder-org/lowcoder/tree/main/deploy/docker#configuration) +On self-hosted installations, you can set up thresholds for workspaces with the help of [ENV Variables](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/docker#configuration) * **LOWCODER\_MAX\_ORGS\_PER\_USER** * Sets the default maximum number of Workspaces that a single user (as Admin) can create. This limit ensures that users can manage a reasonable number of organizations without overwhelming your installation. From 23f9c70fa7ef6a073498435d8a16ca940563ecc9 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Tue, 1 Oct 2024 14:42:08 -0400 Subject: [PATCH 07/36] testing one docker build --- .github/workflows/docker-images.yml | 76 ++++++++++++++--------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index 200a02cbb8..c193c3b732 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -74,23 +74,23 @@ jobs: # with: # version: "lab:latest" # driver: cloud - # endpoint: "flowerappengorg/lowcoder-cloud-builder" + # endpoint: "flowerappengorg/openflower-cloud-builder" - - name: Build and push the all-in-one image - if: ${{ env.BUILD_ALLINONE == 'true' }} - uses: docker/build-push-action@v6 - env: - NODE_ENV: production - with: - file: ./deploy/docker/Dockerfile - build-args: | - REACT_APP_ENV=production - REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} + # - name: Build and push the all-in-one image + # if: ${{ env.BUILD_ALLINONE == 'true' }} + # uses: docker/build-push-action@v6 + # env: + # NODE_ENV: production + # with: + # file: ./deploy/docker/Dockerfile + # build-args: | + # REACT_APP_ENV=production + # REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" + # platforms: | + # linux/amd64 + # linux/arm64 + # push: true + # tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} - name: Build and push the frontend image if: ${{ env.BUILD_FRONTEND == 'true' }} @@ -109,26 +109,26 @@ jobs: push: true tags: flowerappengorg/openflower-frontend:${{ env.IMAGE_TAG }} - - name: Build and push the node service image - if: ${{ env.BUILD_NODESERVICE == 'true' }} - uses: docker/build-push-action@v6 - with: - file: ./deploy/docker/Dockerfile - target: lowcoder-ce-node-service - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} + # - name: Build and push the node service image + # if: ${{ env.BUILD_NODESERVICE == 'true' }} + # uses: docker/build-push-action@v6 + # with: + # file: ./deploy/docker/Dockerfile + # target: lowcoder-ce-node-service + # platforms: | + # linux/amd64 + # linux/arm64 + # push: true + # tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} - - name: Build and push the API service image - if: ${{ env.BUILD_APISERVICE == 'true' }} - uses: docker/build-push-action@v6 - with: - file: ./deploy/docker/Dockerfile - target: lowcoder-ce-api-service - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} + # - name: Build and push the API service image + # if: ${{ env.BUILD_APISERVICE == 'true' }} + # uses: docker/build-push-action@v6 + # with: + # file: ./deploy/docker/Dockerfile + # target: lowcoder-ce-api-service + # platforms: | + # linux/amd64 + # linux/arm64 + # push: true + # tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} From 1d533257a2a9c337da0a36878e26c5cdfe76aa7d Mon Sep 17 00:00:00 2001 From: John Haigh Date: Tue, 1 Oct 2024 16:43:39 -0400 Subject: [PATCH 08/36] testing docker buildx --- .github/workflows/docker-images.yml | 86 ++++++++++++++--------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index c193c3b732..b34d956900 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -69,28 +69,28 @@ jobs: username: ${{ secrets.DOCKER_LOGIN }} password: ${{ secrets.DOCKER_PASSWORD }} - # - name: Setup Docker Buildx with cloud driver - # uses: docker/setup-buildx-action@v3 - # with: - # version: "lab:latest" - # driver: cloud - # endpoint: "flowerappengorg/openflower-cloud-builder" + - name: Setup Docker Buildx with cloud driver + uses: docker/setup-buildx-action@v3 + with: + version: "lab:latest" + driver: cloud + endpoint: "flowerappengorg/openflower-cloud-builder" - # - name: Build and push the all-in-one image - # if: ${{ env.BUILD_ALLINONE == 'true' }} - # uses: docker/build-push-action@v6 - # env: - # NODE_ENV: production - # with: - # file: ./deploy/docker/Dockerfile - # build-args: | - # REACT_APP_ENV=production - # REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" - # platforms: | - # linux/amd64 - # linux/arm64 - # push: true - # tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} + - name: Build and push the all-in-one image + if: ${{ env.BUILD_ALLINONE == 'true' }} + uses: docker/build-push-action@v6 + env: + NODE_ENV: production + with: + file: ./deploy/docker/Dockerfile + build-args: | + REACT_APP_ENV=production + REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" + platforms: | + linux/amd64 + linux/arm64 + push: true + tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} - name: Build and push the frontend image if: ${{ env.BUILD_FRONTEND == 'true' }} @@ -109,26 +109,26 @@ jobs: push: true tags: flowerappengorg/openflower-frontend:${{ env.IMAGE_TAG }} - # - name: Build and push the node service image - # if: ${{ env.BUILD_NODESERVICE == 'true' }} - # uses: docker/build-push-action@v6 - # with: - # file: ./deploy/docker/Dockerfile - # target: lowcoder-ce-node-service - # platforms: | - # linux/amd64 - # linux/arm64 - # push: true - # tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} + - name: Build and push the node service image + if: ${{ env.BUILD_NODESERVICE == 'true' }} + uses: docker/build-push-action@v6 + with: + file: ./deploy/docker/Dockerfile + target: lowcoder-ce-node-service + platforms: | + linux/amd64 + linux/arm64 + push: true + tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} - # - name: Build and push the API service image - # if: ${{ env.BUILD_APISERVICE == 'true' }} - # uses: docker/build-push-action@v6 - # with: - # file: ./deploy/docker/Dockerfile - # target: lowcoder-ce-api-service - # platforms: | - # linux/amd64 - # linux/arm64 - # push: true - # tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} + - name: Build and push the API service image + if: ${{ env.BUILD_APISERVICE == 'true' }} + uses: docker/build-push-action@v6 + with: + file: ./deploy/docker/Dockerfile + target: lowcoder-ce-api-service + platforms: | + linux/amd64 + linux/arm64 + push: true + tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} From ba82eb1535e4b45d6124b4884e82b72759fd7184 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Tue, 1 Oct 2024 21:07:40 -0400 Subject: [PATCH 09/36] updated github action --- .github/workflows/docker-images.yml | 30 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index b34d956900..1b80818e23 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -76,21 +76,21 @@ jobs: driver: cloud endpoint: "flowerappengorg/openflower-cloud-builder" - - name: Build and push the all-in-one image - if: ${{ env.BUILD_ALLINONE == 'true' }} - uses: docker/build-push-action@v6 - env: - NODE_ENV: production - with: - file: ./deploy/docker/Dockerfile - build-args: | - REACT_APP_ENV=production - REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} + # - name: Build and push the all-in-one image + # if: ${{ env.BUILD_ALLINONE == 'true' }} + # uses: docker/build-push-action@v6 + # env: + # NODE_ENV: production + # with: + # file: ./deploy/docker/Dockerfile + # build-args: | + # REACT_APP_ENV=production + # REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" + # platforms: | + # linux/amd64 + # linux/arm64 + # push: true + # tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} - name: Build and push the frontend image if: ${{ env.BUILD_FRONTEND == 'true' }} From 58f46b739845795d4931b98d20718d954530e1b7 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Wed, 2 Oct 2024 15:33:23 -0400 Subject: [PATCH 10/36] doc updates --- .github/workflows/docker-images.yml | 6 +++--- docs/SUMMARY.md | 4 ---- .../opensource-contribution/README.md | 6 +++--- docs/setup-and-run/self-hosting/README.md | 12 ++++++------ .../self-hosting/google-cloud-platform.md | 12 ++++++------ .../self-hosting/lowcoder-version-update.md | 4 ++-- .../self-hosting/traefik-loadbalancer.md | 2 +- 7 files changed, 21 insertions(+), 25 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index 1b80818e23..fed592e5ce 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -105,7 +105,7 @@ jobs: REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" platforms: | linux/amd64 - linux/arm64 + # linux/arm64 push: true tags: flowerappengorg/openflower-frontend:${{ env.IMAGE_TAG }} @@ -117,7 +117,7 @@ jobs: target: lowcoder-ce-node-service platforms: | linux/amd64 - linux/arm64 + # linux/arm64 push: true tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} @@ -129,6 +129,6 @@ jobs: target: lowcoder-ce-api-service platforms: | linux/amd64 - linux/arm64 + # linux/arm64 push: true tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index cb32a3d674..0c8f79ac83 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -10,7 +10,6 @@ * [Access local database or API](setup-and-run/self-hosting/access-local-database-or-api.md) * [Google Cloud Platform](setup-and-run/self-hosting/google-cloud-platform.md) * [Heroku](setup-and-run/self-hosting/heroku.md) - * [Raspberry Pi](setup-and-run/self-hosting/raspberry-pi.md) * [Migration from Openblocks](setup-and-run/self-hosting/migration-from-openblocks.md) * [Update MongoDB Versions](setup-and-run/self-hosting/update-mongodb-versions.md) * [OpenFlower Version Update](setup-and-run/self-hosting/lowcoder-version-update.md) @@ -132,6 +131,3 @@ * [Custom component](lowcoder-extension/custom-component.md) * [OpenFlower Open REST API](lowcoder-extension/lowcoder-open-rest-api.md) -## OpenFlower for Enterprise - -* [Custom branding](lowcoder-for-enterprise/custom-branding.md) diff --git a/docs/lowcoder-extension/opensource-contribution/README.md b/docs/lowcoder-extension/opensource-contribution/README.md index 6da3f59b68..8beab5342b 100644 --- a/docs/lowcoder-extension/opensource-contribution/README.md +++ b/docs/lowcoder-extension/opensource-contribution/README.md @@ -143,7 +143,7 @@ Please ask us directly for any related questions so we can help you the fastest Simply run the below command to start a local backend server. This is the fasted way. The Backend typically changes less frequent, so you can just run the latest version ```bash -docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce +docker run -d --name openflower -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` For more information, view our [docs](../../setup-and-run/self-hosting/) @@ -156,13 +156,13 @@ You also can build the image from the latest Source code or a special branch. Ho 2. Use the command below to build a Docker image : ```bash -docker build -f ./deploy/docker/Dockerfile -t lowcoder-dev . +docker build -f ./deploy/docker/Dockerfile -t openflower-dev . ``` 3. Start the fresh built Docker image ```bash -docker run -d --name lowcoder-dev -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoder-dev +docker run -d --name lowcoder-dev -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" openflower-dev ``` #### Start developing diff --git a/docs/setup-and-run/self-hosting/README.md b/docs/setup-and-run/self-hosting/README.md index 81b4fed75e..1f270c0548 100644 --- a/docs/setup-and-run/self-hosting/README.md +++ b/docs/setup-and-run/self-hosting/README.md @@ -75,7 +75,7 @@ Run the command below: {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce +docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -99,9 +99,9 @@ Run the following commands to update to the latest OpenFlower image: {% code overflow="wrap" %} ```bash -docker pull lowcoderorg/lowcoder-ce +docker pull flowerappengorg/openflower docker rm -fv OpenFlower -docker run -d --name OpenFlower -p 3000:3000 -v "$PWD/stacks:/OpenFlower-stacks" lowcoderorg/lowcoder-ce +docker run -d --name OpenFlower -p 3000:3000 -v "$PWD/stacks:/OpenFlower-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -216,7 +216,7 @@ Add environment variables `MONGODB_URI` and `REDIS_URI` to the deployment comman {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -e MONGODB_URI=YOUR_MONGODB_URI REDIS_URI=YOUR_REDIS_URI -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks lowcoderorg/lowcoder-ce +docker run -d --name lowcoder -e MONGODB_URI=YOUR_MONGODB_URI REDIS_URI=YOUR_REDIS_URI -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -237,7 +237,7 @@ Add an environment variable `LOCAL_USER_ID` to the deployment command, as shown {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -e LOCAL_USER_ID=10010 -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce +docker run -d --name lowcoder -e LOCAL_USER_ID=10010 -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -262,7 +262,7 @@ With an SSL certificate, you can securely visit self-hosted OpenFlower with HTTP {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -p 3443:3443 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce +docker run -d --name lowcoder -p 3443:3443 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} diff --git a/docs/setup-and-run/self-hosting/google-cloud-platform.md b/docs/setup-and-run/self-hosting/google-cloud-platform.md index 43b17ab056..e2149443f5 100644 --- a/docs/setup-and-run/self-hosting/google-cloud-platform.md +++ b/docs/setup-and-run/self-hosting/google-cloud-platform.md @@ -85,8 +85,8 @@ description: How to Setup Seperate Images on Google Cloud Platform 1. In the Google Console go to Cloud Run 2. Create a Service -3. In the Container Image URL input: lowcoderorg/lowcoder-ce-node-service - * This is from the lowcoder docker hub (https://hub.docker.com/r/lowcoderorg/lowcoder-ce-node-service) +3. In the Container Image URL input: flowerappengorg/openflower-node-service + * This is from the lowcoder docker hub (https://hub.docker.com/r/flowerappengorg/openflower-ce-node-service) 4. Select the Region, same as the region for the VPC Network 5. CPU allocation and pricing: CPU is only allocated during request processing 6. Ingress Control is set to Internal (this is necessary to not expose the Node Service to the rest of the internet) @@ -129,8 +129,8 @@ description: How to Setup Seperate Images on Google Cloud Platform 1. In the Google Console go to Cloud Run 2. Create a Service -3. In the Container Image URL input: lowcoderorg/lowcoder-ce-api-service - * This is from the lowcoder docker hub (https://hub.docker.com/r/lowcoderorg/lowcoder-ce-api-service) +3. In the Container Image URL input: flowerappengorg/openflower-api-service + * This is from the lowcoder docker hub (https://hub.docker.com/r/flowerappengorg/openflower-api-service) 4. Select the Region, same as the region for the VPC Network 5. CPU allocation and pricing: CPU is only allocated during request processing 6. Ingress Control is set to Internal (this is necessary to not expose the API Service to the rest of the internet) @@ -189,8 +189,8 @@ description: How to Setup Seperate Images on Google Cloud Platform 1. In the Google Console go to Cloud Run 2. Create a Service -3. In the Container Image URL input: lowcoderorg/lowcoder-ce-frontend - * This is from the lowcoder docker hub (https://hub.docker.com/r/lowcoderorg/lowcoder-ce-frontend) +3. In the Container Image URL input: flowerappengorg/openflower-frontend + * This is from the lowcoder docker hub (https://hub.docker.com/r/flowerappengorg/openflower-frontend) 4. Select the Region, same as the region for the VPC Network 5. CPU allocation and pricing: CPU is only allocated during request processing 6. Ingress Control is set to all (the front-end should be exposed to the internet) diff --git a/docs/setup-and-run/self-hosting/lowcoder-version-update.md b/docs/setup-and-run/self-hosting/lowcoder-version-update.md index ae624dfd70..16563c8dd1 100644 --- a/docs/setup-and-run/self-hosting/lowcoder-version-update.md +++ b/docs/setup-and-run/self-hosting/lowcoder-version-update.md @@ -36,7 +36,7 @@ Also external Component Plugins follow the Sematic Versioning Scheme with Major, The provided Docker Images from OpenFlower-Org follow the Sematic Versioning of OpenFlower. For every Release of the Codebase with a new Version, we also offer the pre-built Docker Containers for the All-in-one and Multi-Docker installation. -{% embed url="https://hub.docker.com/r/lowcoderorg/lowcoder-ce/tags" %} +{% embed url="https://hub.docker.com/r/flowerappengorg/openflower/tags" %} OpenFlower pre-built Docker Images on Docker Hub {% endembed %} @@ -50,7 +50,7 @@ Do not use a /dev tag image in production. These images are only to use in test {% endhint %} {% hint style="info" %} -We suggest only a Multi-Docker Image installation for Production use. The all-in-one image "lowcoderorg/lowcoder-ce" is suitable to test and introduce OpenFlower in an easy way. +We suggest only a Multi-Docker Image installation for Production use. The all-in-one image "flowerappengorg/openflower" is suitable to test and introduce OpenFlower in an easy way. {% endhint %} ## Version Update diff --git a/docs/setup-and-run/self-hosting/traefik-loadbalancer.md b/docs/setup-and-run/self-hosting/traefik-loadbalancer.md index 0bd49d795d..388221cdc9 100644 --- a/docs/setup-and-run/self-hosting/traefik-loadbalancer.md +++ b/docs/setup-and-run/self-hosting/traefik-loadbalancer.md @@ -10,7 +10,7 @@ version: "3" services: ## Start OpenFlower (all-in-one) lowcoder-api-service: - image: lowcoderorg/lowcoder-ce:latest + image: flowerappengorg/openflower:latest container_name: lowcoder environment: REDIS_ENABLED: "true" From aa021cfbd1b599ef3dc65757adb8adad0ad60897 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Wed, 2 Oct 2024 15:41:10 -0400 Subject: [PATCH 11/36] doc updates --- .github/workflows/docker-images.yml | 59 ++++++++++++++--------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index fed592e5ce..f70ae6e1e1 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -69,12 +69,12 @@ jobs: username: ${{ secrets.DOCKER_LOGIN }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Setup Docker Buildx with cloud driver - uses: docker/setup-buildx-action@v3 - with: - version: "lab:latest" - driver: cloud - endpoint: "flowerappengorg/openflower-cloud-builder" + # - name: Setup Docker Buildx with cloud driver + # uses: docker/setup-buildx-action@v3 + # with: + # version: "lab:latest" + # driver: cloud + # endpoint: "flowerappengorg/openflower-cloud-builder" # - name: Build and push the all-in-one image # if: ${{ env.BUILD_ALLINONE == 'true' }} @@ -103,32 +103,31 @@ jobs: build-args: | REACT_APP_ENV=production REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" - platforms: | - linux/amd64 + platforms: linux/amd64 # linux/arm64 push: true tags: flowerappengorg/openflower-frontend:${{ env.IMAGE_TAG }} - - name: Build and push the node service image - if: ${{ env.BUILD_NODESERVICE == 'true' }} - uses: docker/build-push-action@v6 - with: - file: ./deploy/docker/Dockerfile - target: lowcoder-ce-node-service - platforms: | - linux/amd64 - # linux/arm64 - push: true - tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} + # - name: Build and push the node service image + # if: ${{ env.BUILD_NODESERVICE == 'true' }} + # uses: docker/build-push-action@v6 + # with: + # file: ./deploy/docker/Dockerfile + # target: lowcoder-ce-node-service + # platforms: | + # linux/amd64 + # # linux/arm64 + # push: true + # tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} - - name: Build and push the API service image - if: ${{ env.BUILD_APISERVICE == 'true' }} - uses: docker/build-push-action@v6 - with: - file: ./deploy/docker/Dockerfile - target: lowcoder-ce-api-service - platforms: | - linux/amd64 - # linux/arm64 - push: true - tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} + # - name: Build and push the API service image + # if: ${{ env.BUILD_APISERVICE == 'true' }} + # uses: docker/build-push-action@v6 + # with: + # file: ./deploy/docker/Dockerfile + # target: lowcoder-ce-api-service + # platforms: | + # linux/amd64 + # # linux/arm64 + # push: true + # tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} From 7b6c07451f16048a192bf9ab5170cf4092785aa5 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Wed, 2 Oct 2024 16:02:04 -0400 Subject: [PATCH 12/36] doc updates --- .github/workflows/docker-images.yml | 44 ++++++++++++++--------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index f70ae6e1e1..d98073c74b 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -58,7 +58,7 @@ jobs: echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}" echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}" - - name: Checkout lowcoder source + - name: Checkout OpenFlower source uses: actions/checkout@v4 with: ref: ${{ env.BRANCH_NAME }} @@ -108,26 +108,24 @@ jobs: push: true tags: flowerappengorg/openflower-frontend:${{ env.IMAGE_TAG }} - # - name: Build and push the node service image - # if: ${{ env.BUILD_NODESERVICE == 'true' }} - # uses: docker/build-push-action@v6 - # with: - # file: ./deploy/docker/Dockerfile - # target: lowcoder-ce-node-service - # platforms: | - # linux/amd64 - # # linux/arm64 - # push: true - # tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} + - name: Build and push the node service image + if: ${{ env.BUILD_NODESERVICE == 'true' }} + uses: docker/build-push-action@v6 + with: + file: ./deploy/docker/Dockerfile + target: lowcoder-ce-node-service + platforms: linux/amd64 + # linux/arm64 + push: true + tags: flowerappengorg/openflower-node-service:${{ env.IMAGE_TAG }} - # - name: Build and push the API service image - # if: ${{ env.BUILD_APISERVICE == 'true' }} - # uses: docker/build-push-action@v6 - # with: - # file: ./deploy/docker/Dockerfile - # target: lowcoder-ce-api-service - # platforms: | - # linux/amd64 - # # linux/arm64 - # push: true - # tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} + - name: Build and push the API service image + if: ${{ env.BUILD_APISERVICE == 'true' }} + uses: docker/build-push-action@v6 + with: + file: ./deploy/docker/Dockerfile + target: lowcoder-ce-api-service + platforms: linux/amd64 + # linux/arm64 + push: true + tags: flowerappengorg/openflower-api-service:${{ env.IMAGE_TAG }} From 8fc8a79178c300bbc4592634c776d4a2b66300bb Mon Sep 17 00:00:00 2001 From: John Haigh Date: Wed, 2 Oct 2024 16:51:51 -0400 Subject: [PATCH 13/36] doc updates --- .github/workflows/docker-images.yml | 29 ++++++++++---------- .github/workflows/publish-lowcoder-cli.yml | 10 +++---- .github/workflows/publish-lowcoder-comps.yml | 8 +++--- .github/workflows/publish-lowcoder-core.yml | 8 +++--- .github/workflows/publish-lowcoder-sdk.yml | 10 +++---- 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index d98073c74b..b6a6640256 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -76,21 +76,20 @@ jobs: # driver: cloud # endpoint: "flowerappengorg/openflower-cloud-builder" - # - name: Build and push the all-in-one image - # if: ${{ env.BUILD_ALLINONE == 'true' }} - # uses: docker/build-push-action@v6 - # env: - # NODE_ENV: production - # with: - # file: ./deploy/docker/Dockerfile - # build-args: | - # REACT_APP_ENV=production - # REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" - # platforms: | - # linux/amd64 - # linux/arm64 - # push: true - # tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} + - name: Build and push the all-in-one image + if: ${{ env.BUILD_ALLINONE == 'true' }} + uses: docker/build-push-action@v6 + env: + NODE_ENV: production + with: + file: ./deploy/docker/Dockerfile + build-args: | + REACT_APP_ENV=production + REACT_APP_COMMIT_ID="dev #${{ env.SHORT_SHA }}" + platforms: linux/amd64 + # linux/arm64 + push: true + tags: flowerappengorg/openflower:${{ env.IMAGE_TAG }} - name: Build and push the frontend image if: ${{ env.BUILD_FRONTEND == 'true' }} diff --git a/.github/workflows/publish-lowcoder-cli.yml b/.github/workflows/publish-lowcoder-cli.yml index f7b325e6f4..7bbaf0e2fe 100644 --- a/.github/workflows/publish-lowcoder-cli.yml +++ b/.github/workflows/publish-lowcoder-cli.yml @@ -1,11 +1,11 @@ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages -name: Publish Lowcoder CLI +name: Publish OpenFlower CLI on: push: - branches: [ "dev" ] + branches: ["dev"] jobs: publish-package: @@ -27,7 +27,7 @@ jobs: - name: Version update detected if: steps.check.outputs.changed == 'true' run: 'echo "Version change found! New version: ${{ steps.check.outputs.version }} (${{ steps.check.outputs.type }})"' - + - name: Set up Node.js for NPM if: steps.check.outputs.changed == 'true' uses: actions/setup-node@v3 @@ -41,10 +41,10 @@ jobs: with: cmd: install dir: client/packages/lowcoder-cli - + - name: Publish package to NPM if: steps.check.outputs.changed == 'true' run: npm publish working-directory: client/packages/lowcoder-cli env: - NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} \ No newline at end of file + NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} diff --git a/.github/workflows/publish-lowcoder-comps.yml b/.github/workflows/publish-lowcoder-comps.yml index a83425cf5e..15ef743d7f 100644 --- a/.github/workflows/publish-lowcoder-comps.yml +++ b/.github/workflows/publish-lowcoder-comps.yml @@ -1,11 +1,11 @@ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages -name: Publish Lowcoder Comps +name: Publish OpenFlower Comps on: push: - branches: [ "dev" ] + branches: ["dev"] jobs: publish-package: @@ -27,7 +27,7 @@ jobs: - name: Version update detected if: steps.check.outputs.changed == 'true' run: 'echo "Version change found! New version: ${{ steps.check.outputs.version }} (${{ steps.check.outputs.type }})"' - + - name: Set up Node.js for NPM if: steps.check.outputs.changed == 'true' uses: actions/setup-node@v3 @@ -49,4 +49,4 @@ jobs: cmd: build_publish dir: client/packages/lowcoder-comps env: - NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} \ No newline at end of file + NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} diff --git a/.github/workflows/publish-lowcoder-core.yml b/.github/workflows/publish-lowcoder-core.yml index 7fb0b1cd78..b20978b62b 100644 --- a/.github/workflows/publish-lowcoder-core.yml +++ b/.github/workflows/publish-lowcoder-core.yml @@ -1,11 +1,11 @@ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages -name: Publish Lowcoder Core +name: Publish OpenFlower Core on: push: - branches: [ "dev" ] + branches: ["dev"] jobs: publish-package: @@ -27,7 +27,7 @@ jobs: - name: Version update detected if: steps.check.outputs.changed == 'true' run: 'echo "Version change found! New version: ${{ steps.check.outputs.version }} (${{ steps.check.outputs.type }})"' - + - name: Set up Node.js for NPM if: steps.check.outputs.changed == 'true' uses: actions/setup-node@v3 @@ -47,4 +47,4 @@ jobs: run: npm publish working-directory: client/packages/lowcoder-core env: - NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} \ No newline at end of file + NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} diff --git a/.github/workflows/publish-lowcoder-sdk.yml b/.github/workflows/publish-lowcoder-sdk.yml index a597071bac..5fd0d25232 100644 --- a/.github/workflows/publish-lowcoder-sdk.yml +++ b/.github/workflows/publish-lowcoder-sdk.yml @@ -1,11 +1,11 @@ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created # For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages -name: Publish Lowcoder SDK +name: Publish OpenFlower SDK on: push: - branches: [ "dev" ] + branches: ["dev"] jobs: publish-package: @@ -27,7 +27,7 @@ jobs: - name: Version update detected if: steps.check.outputs.changed == 'true' run: 'echo "Version change found! New version: ${{ steps.check.outputs.version }} (${{ steps.check.outputs.type }})"' - + - name: Set up Node.js for NPM if: steps.check.outputs.changed == 'true' uses: actions/setup-node@v3 @@ -41,7 +41,7 @@ jobs: with: cmd: install dir: client/packages/lowcoder-sdk - + - name: Build Package if: steps.check.outputs.changed == 'true' uses: borales/actions-yarn@v4.2.0 @@ -54,4 +54,4 @@ jobs: run: npm publish working-directory: client/packages/lowcoder-sdk env: - NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} \ No newline at end of file + NODE_AUTH_TOKEN: ${{ secrets.LOWCODERNPMBOT }} From 6b41bbc4c11e09a034e75c5f2dd9a0fa2ac04f62 Mon Sep 17 00:00:00 2001 From: John Haigh Date: Wed, 2 Oct 2024 20:38:52 -0400 Subject: [PATCH 14/36] docs updates --- docs/setup-and-run/self-hosting/README.md | 29 +++++++++++------------ 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/setup-and-run/self-hosting/README.md b/docs/setup-and-run/self-hosting/README.md index 1f270c0548..415c779ae5 100644 --- a/docs/setup-and-run/self-hosting/README.md +++ b/docs/setup-and-run/self-hosting/README.md @@ -9,7 +9,6 @@ There are multiple ways of installation. We directly support: * Kubernetes-based deployment with [HELM Charts](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/helm). * [Heroku based deployment](heroku.md) * [Google Cloud Platform](google-cloud-platform.md) -* [Raspberry Pi](raspberry-pi.md) ## 1) Start easy: @@ -31,8 +30,8 @@ Windows users are recommended to use PowerShell for running the commands below. In your working directory, run the following commands to make a directory named `OpenFlower` to store the data of OpenFlower: ```bash -mkdir lowcoder -cd lowcoder +mkdir openflower +cd openflower ``` #### Deploy @@ -63,7 +62,7 @@ curl https://raw.githubusercontent.com/Flowerappeng-org/openflower/main/deploy/d 3. Check the logs by running this command: ```bash - docker logs -f lowcoder + docker logs -f openflower ``` When you see `frontend`, `backend`, `redis`, and `mongo` `entered the RUNNING state`, the OpenFlower service has officially started: @@ -75,7 +74,7 @@ Run the command below: {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower +docker run -d --name openflower -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -89,7 +88,7 @@ Run the following commands to update to the latest OpenFlower image: ```bash docker-compose pull -docker-compose rm -fsv lowcoder +docker-compose rm -fsv openflower docker-compose up -d ``` {% endtab %} @@ -133,8 +132,8 @@ For bigger expected loads that need scaling in a cluster environment, we offer s 1. In your working directory, run the following commands to make a directory named `lowcoder` to store the data of OpenFlower: ```bash - mkdir lowcoder - cd lowcoder + mkdir openflower + cd openflower ``` 2. Download the configuration file by clicking [docker-compose-multi.yml](https://github.com/Flowerappeng-org/openflower/blob/main/deploy/docker/docker-compose-multi.yaml) or running the curl command: @@ -188,14 +187,14 @@ It picks up configuration changes by stopping containers already in service and Run the following commands to stop, remove the container already in service, and start up a new one using the newly customized deployment command. ```bash -docker stop lowcoder -docker rm lowcoder +docker stop openflower +docker rm openflower # run your new docker run command ``` {% endtab %} {% endtabs %} -Below are examples of configuring the all-in-one image by setting environment variables in `docker-compose.yml`. If you are self-hosting with separate images, modify the `lowcoder-api-service` part of the `docker-compose-multi.yml` file instead. +Below are examples of configuring the all-in-one image by setting environment variables in `docker-compose.yml`. If you are self-hosting with separate images, modify the `openflower-api-service` part of the `docker-compose-multi.yml` file instead. {% hint style="info" %} For more information about configurations and environment variables, see [Configuration](https://github.com/Flowerappeng-org/openflower/tree/main/deploy/docker). @@ -216,7 +215,7 @@ Add environment variables `MONGODB_URI` and `REDIS_URI` to the deployment comman {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -e MONGODB_URI=YOUR_MONGODB_URI REDIS_URI=YOUR_REDIS_URI -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks flowerappengorg/openflower +docker run -d --name openflower -e MONGODB_URI=YOUR_MONGODB_URI REDIS_URI=YOUR_REDIS_URI -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -237,7 +236,7 @@ Add an environment variable `LOCAL_USER_ID` to the deployment command, as shown {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -e LOCAL_USER_ID=10010 -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower +docker run -d --name openflower -e LOCAL_USER_ID=10010 -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -262,7 +261,7 @@ With an SSL certificate, you can securely visit self-hosted OpenFlower with HTTP {% code overflow="wrap" %} ```bash -docker run -d --name lowcoder -p 3443:3443 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower +docker run -d --name openflower -p 3443:3443 -v "$PWD/stacks:/lowcoder-stacks" flowerappengorg/openflower ``` {% endcode %} {% endtab %} @@ -284,7 +283,7 @@ ENV Variables for Helm, Docker Compose, and Docker installations are to find in This image contains all services needed to run OpenFlower platform in one container. -
Environment variableDescriptionDefault-Value
LOWCODER_REDIS_ENABLEDIf true redis server is started in the containertrue
LOWCODER_MONGODB_ENABLEDIf true mongo database is started in the containertrue
LOWCODER_MONGODB_EXPOSEDIf true mongo database accept connections from outside the dockerfalse
LOWCODER_API_SERVICE_ENABLEDIf true lowcoder api-service is started in the containertrue
LOWCODER_NODE_SERVICE_ENABLEDIf true lowcoder node-service is started in the containertrue
LOWCODER_FRONTEND_ENABLEDIf true lowcoder web frontend is started in the containertrue
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MONGODB_URLMongo database connection stringmongodb://localhost:27017/lowcoder?authSource=admin
LOWCODER_REDIS_URLRedis server URLredis://localhost:6379
LOWCODER_DB_ENCRYPTION_PASSWORDEncryption passwordlowcoder.org
LOWCODER_DB_ENCRYPTION_SALTSalt used for encrypting passwordlowcoder.org
LOWCODER_CORS_DOMAINSCORS allowed domains*
LOWCODER_MAX_REQUEST_SIZEOpenFlower max request size20m
LOWCODER_MAX_QUERY_TIMEOUTOpenFlower max query timeout (in seconds)120
LOWCODER_API_SERVICE_URLOpenFlower API service URLhttp://localhost:8080
LOWCODER_NODE_SERVICE_URLOpenFlower Node service (js executor) URLhttp://localhost:6060
LOWCODER_MAX_ORGS_PER_USERDefault maximum organizations per user100
LOWCODER_MAX_MEMBERS_PER_ORGDefault maximum members per organization1000
LOWCODER_MAX_GROUPS_PER_ORGDefault maximum groups per organization100
LOWCODER_MAX_APPS_PER_ORGDefault maximum applications per organization1000
LOWCODER_MAX_DEVELOPERSDefault maximum developers100
LOWCODER_WORKSPACE_MODESAAS to activate, ENTERPRISE to switch off - WorkspacesSAAS
LOWCODER_EMAIL_SIGNUP_ENABLEDControl if users create their own Workspace automatic when Sign Uptrue
LOWCODER_CREATE_WORKSPACE_ON_SIGNUPIF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign uptrue
LOWCODER_MARKETPLACE_PRIVATE_MODEControl if not to show Apps on the local Marketplace to anonymous userstrue
+
Environment variableDescriptionDefault-Value
LOWCODER_REDIS_ENABLEDIf true redis server is started in the containertrue
LOWCODER_MONGODB_ENABLEDIf true mongo database is started in the containertrue
LOWCODER_MONGODB_EXPOSEDIf true mongo database accept connections from outside the dockerfalse
LOWCODER_API_SERVICE_ENABLEDIf true openflower api-service is started in the containertrue
LOWCODER_NODE_SERVICE_ENABLEDIf true openflower node-service is started in the containertrue
LOWCODER_FRONTEND_ENABLEDIf true openflower web frontend is started in the containertrue
LOWCODER_PUIDID of user running services. It will own all created logs and data.9001
LOWCODER_PGIDID of group of the user running services.9001
LOWCODER_MONGODB_URLMongo database connection stringmongodb://localhost:27017/lowcoder?authSource=admin
LOWCODER_REDIS_URLRedis server URLredis://localhost:6379
LOWCODER_DB_ENCRYPTION_PASSWORDEncryption passwordlowcoder.org
LOWCODER_DB_ENCRYPTION_SALTSalt used for encrypting passwordlowcoder.org
LOWCODER_CORS_DOMAINSCORS allowed domains*
LOWCODER_MAX_REQUEST_SIZEOpenFlower max request size20m
LOWCODER_MAX_QUERY_TIMEOUTOpenFlower max query timeout (in seconds)120
LOWCODER_API_SERVICE_URLOpenFlower API service URLhttp://localhost:8080
LOWCODER_NODE_SERVICE_URLOpenFlower Node service (js executor) URLhttp://localhost:6060
LOWCODER_MAX_ORGS_PER_USERDefault maximum organizations per user100
LOWCODER_MAX_MEMBERS_PER_ORGDefault maximum members per organization1000
LOWCODER_MAX_GROUPS_PER_ORGDefault maximum groups per organization100
LOWCODER_MAX_APPS_PER_ORGDefault maximum applications per organization1000
LOWCODER_MAX_DEVELOPERSDefault maximum developers100
LOWCODER_WORKSPACE_MODESAAS to activate, ENTERPRISE to switch off - WorkspacesSAAS
LOWCODER_EMAIL_SIGNUP_ENABLEDControl if users create their own Workspace automatic when Sign Uptrue
LOWCODER_CREATE_WORKSPACE_ON_SIGNUPIF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign uptrue
LOWCODER_MARKETPLACE_PRIVATE_MODEControl if not to show Apps on the local Marketplace to anonymous userstrue
Also, you should set the API-KEY secret, whcih should be a string of at least 32 random characters On linux/mac, generate one eg. with: head /dev/urandom | head -c 30 | shasum -a 256 From ad32c2677a35cf0d61d14073323301a47b78d137 Mon Sep 17 00:00:00 2001 From: Janis Hernandez Date: Fri, 25 Oct 2024 07:26:19 -0500 Subject: [PATCH 15/36] #10 - Rebrand to OpenFlower --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- .github/ISSUE_TEMPLATE/config.yml | 10 ++-- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .gitignore | 3 +- README.md | 2 +- client/README.md | 2 +- deploy/docker/docker-compose-multi.yaml | 50 +++++++++---------- deploy/docker/docker-compose.yaml | 18 +++---- .../opensource-contribution/README.md | 24 ++++----- 9 files changed, 58 insertions(+), 57 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 6761cedf24..bdb915d486 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -6,7 +6,7 @@ body: - type: checkboxes attributes: label: 'Is there an existing issue for this?' - description: 'Please [search the issues](https://github.com/lowcoder-org/lowcoder) to check if this bug has already been reported.' + description: 'Please [search the issues](https://github.com/Flowerappeng-org/openflower) to check if this bug has already been reported.' options: - label: 'I have searched the existing issues' required: true @@ -32,7 +32,7 @@ body: - type: textarea attributes: label: 'Environment' - description: 'Please provide the information about your environment. E.g. operating system, what version of Lowcoder are you running etc.' + description: 'Please provide the information about your environment. E.g. operating system, what version of openflower are you running etc.' validations: required: false - type: textarea diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 5f0d68207b..fdf070f55a 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ -blank_issues_enabled: true -contact_links: - - name: 💬 Help on Discord - url: https://discord.gg/yw4y4bkZUy - about: Get help from other Lowcoders on the official Discord. +# blank_issues_enabled: true +# contact_links: +# - name: 💬 Help on Discord +# url: https://discord.gg/yw4y4bkZUy +# about: Get help from other Lowcoders on the official Discord. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7ca200d73d..c88410cfc3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ Describe the big picture of your changes here to communicate to the maintainers If it fixes a bug or resolves a feature request, be sure to link to that issue. ## Types of changes -What types of changes does your code introduce to Lowcoder? +What types of changes does your code introduce to OpenFlower? _Put an `x` in the boxes that apply._ - [ ] Bugfix (non-breaking change which fixes an issue) diff --git a/.gitignore b/.gitignore index 6f7f99e378..f035989645 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ application-lowcoder.yml application-debug.yaml application-dev-localhost.yaml .vscode/settings.json -.vscode/launch.json \ No newline at end of file +.vscode/launch.json +deploy/docker/openflower-stacks/ \ No newline at end of file diff --git a/README.md b/README.md index 7791345a23..2b48ccf727 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ You can access OpenFlower from [cloud-hosted demo version](https://demo.openflow ## 💪 Contributing - Language support: If you have experience with a language that isn't currently supported by our product, send us a pull request. - Create and share components or demos: If you've created something that might be useful to others, add the link here. -- [Contributing guide](https://docs.openflower.org/lowcoder-extension/opensource-contribution) +- [Contributing guide](https://docs.openflower.org/openflower-extension/opensource-contribution) ## Intro Video diff --git a/client/README.md b/client/README.md index 9bfae63381..c1733e5dde 100644 --- a/client/README.md +++ b/client/README.md @@ -9,7 +9,7 @@ Simply run the below command to start a backend server. ```bash -docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce +docker run -d --name openflower -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" lowcoderorg/lowcoder-ce ``` For more information, view our [docs](https://docs.openflower.org/lowcoder-documentation/setup-and-run/self-hosting) diff --git a/deploy/docker/docker-compose-multi.yaml b/deploy/docker/docker-compose-multi.yaml index b3bb6b929c..a5c02b28da 100644 --- a/deploy/docker/docker-compose-multi.yaml +++ b/deploy/docker/docker-compose-multi.yaml @@ -2,14 +2,14 @@ version: "3" services: ## - ## Start services required for Lowcoder (MongoDB and Redis) + ## Start services required for OpenFlower (MongoDB and Redis) ## mongodb: image: "mongo:4.4" container_name: mongodb environment: - MONGO_INITDB_DATABASE: lowcoder - MONGO_INITDB_ROOT_USERNAME: lowcoder + MONGO_INITDB_DATABASE: openflower + MONGO_INITDB_ROOT_USERNAME: openflower MONGO_INITDB_ROOT_PASSWORD: secret123 # Uncomment to save database data into local 'mongodata' folder # volumes: @@ -22,20 +22,20 @@ services: ## - ## Start Lowcoder backend services (api-service and node-service) + ## Start OpenFlower backend services (api-service and node-service) ## - lowcoder-api-service: - image: lowcoderorg/lowcoder-ce-api-service:latest - container_name: lowcoder-api-service + openflower-api-service: + image: flowerappengorg/openflower-api-service:latest + container_name: openflower-api-service # Enabled ports to be able to access backend from host # ports: # - "8080:8080" environment: LOWCODER_PUID: "9001" LOWCODER_PGID: "9001" - LOWCODER_MONGODB_URL: "mongodb://lowcoder:secret123@mongodb/lowcoder?authSource=admin" + LOWCODER_MONGODB_URL: "mongodb://openflower:secret123@mongodb/openflower?authSource=admin" LOWCODER_REDIS_URL: "redis://redis:6379" - LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" + LOWCODER_NODE_SERVICE_URL: "http://openflower-node-service:6060" LOWCODER_MAX_QUERY_TIMEOUT: 120 LOWCODER_EMAIL_AUTH_ENABLED: "true" LOWCODER_EMAIL_SIGNUP_ENABLED: "true" @@ -46,8 +46,8 @@ services: # LOWCODER_DB_ENCRYPTION_PASSWORD and LOWCODER_DB_ENCRYPTION_SALT is used # to encrypt sensitive data in database so it is important to change the defaults # - LOWCODER_DB_ENCRYPTION_PASSWORD: "lowcoder.org" - LOWCODER_DB_ENCRYPTION_SALT: "lowcoder.org" + LOWCODER_DB_ENCRYPTION_PASSWORD: "openflower.org" + LOWCODER_DB_ENCRYPTION_SALT: "openflower.org" LOWCODER_CORS_DOMAINS: "*" LOWCODER_MAX_ORGS_PER_USER: 100 LOWCODER_MAX_MEMBERS_PER_ORG: 1000 @@ -76,26 +76,26 @@ services: - mongodb - redis - lowcoder-node-service: - image: lowcoderorg/lowcoder-ce-node-service:latest - container_name: lowcoder-node-service + openflower-node-service: + image: flowerappengorg/openflower-node-service:latest + container_name: openflower-node-service # Enabled ports to be able to access backend from host # ports: # - "6060:6060" environment: LOWCODER_PUID: "9001" LOWCODER_PGID: "9001" - LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" + LOWCODER_API_SERVICE_URL: "http://openflower-api-service:8080" restart: unless-stopped depends_on: - - lowcoder-api-service + - openflower-api-service ## - ## Start Lowcoder web frontend + ## Start OpenFlower web frontend ## - lowcoder-frontend: - image: lowcoderorg/lowcoder-ce-frontend:latest - container_name: lowcoder-frontend + openflower-frontend: + image: flowerappengorg/openflower-frontend:latest + container_name: openflower-frontend ports: - "3000:3000" environment: @@ -103,13 +103,13 @@ services: LOWCODER_PGID: "9001" LOWCODER_MAX_REQUEST_SIZE: 20m LOWCODER_MAX_QUERY_TIMEOUT: 120 - LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" - LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" + LOWCODER_API_SERVICE_URL: "http://openflower-api-service:8080" + LOWCODER_NODE_SERVICE_URL: "http://openflower-node-service:6060" restart: unless-stopped depends_on: - - lowcoder-node-service - - lowcoder-api-service + - openflower-node-service + - openflower-api-service # Uncomment to serve local files as static assets # volumes: - # - ./static-assets:/lowcoder/assets + # - ./static-assets:/openflower/assets diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index 4dc50803c6..781d5fa9e1 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -2,11 +2,11 @@ version: "3" services: ## - ## Start Lowcoder (all-in-one) + ## Start OpenFlower (all-in-one) ## - lowcoder-api-service: - image: lowcoderorg/lowcoder-ce:latest - container_name: lowcoder + openflower-api-service: + image: flowerappengorg/openflower:latest + container_name: openflower ports: - "3000:3000" - "3443:3443" @@ -35,7 +35,7 @@ services: LOWCODER_MAX_APPS_PER_ORG: 1000 LOWCODER_MAX_DEVELOPERS: 50 #LOWCODER_MONGODB_URL: "mongodb://lowcoder:secret123@mongodb/lowcoder?authSource=admin" - LOWCODER_MONGODB_URL: "mongodb://localhost:27017/lowcoder?authSource=admin" + LOWCODER_MONGODB_URL: "mongodb://localhost:27017/openflower?authSource=admin" LOWCODER_REDIS_URL: "redis://localhost:6379" LOWCODER_EMAIL_SIGNUP_ENABLED: "true" LOWCODER_EMAIL_AUTH_ENABLED: "true" @@ -46,8 +46,8 @@ services: # LOWCODER_DB_ENCRYPTION_PASSWORD and LOWCODER_DB_ENCRYPTION_SALT is used # to encrypt sensitive data in database so it is important to change the defaults # - LOWCODER_DB_ENCRYPTION_PASSWORD: "lowcoder.org" - LOWCODER_DB_ENCRYPTION_SALT: "lowcoder.org" + LOWCODER_DB_ENCRYPTION_PASSWORD: "openflower.org" + LOWCODER_DB_ENCRYPTION_SALT: "openflower.org" LOWCODER_CORS_DOMAINS: "*" # # API-KEY secret - should be a string of at least 32 random characters @@ -73,7 +73,7 @@ services: # Email used as sender in lost password email LOWCODER_EMAIL_NOTIFICATIONS_SENDER: info@localhost volumes: - - ./lowcoder-stacks:/lowcoder-stacks - - ./lowcoder-stacks/assets:/lowcoder/assets + - ./openflower-stacks:/lowcoder-stacks + - ./openflower-stacks/assets:/lowcoder/assets restart: unless-stopped diff --git a/docs/lowcoder-extension/opensource-contribution/README.md b/docs/lowcoder-extension/opensource-contribution/README.md index 8beab5342b..422cb6747b 100644 --- a/docs/lowcoder-extension/opensource-contribution/README.md +++ b/docs/lowcoder-extension/opensource-contribution/README.md @@ -8,9 +8,9 @@ Here is a small guide on where to start and which style of development we prefer OpenFlower has 3 main services, which are developed by the Community and us - the OpenFlower Team. -* [Frontend App](https://github.com/lowcoder-org/lowcoder/tree/main/client) - JavaScript, TypeScript, React, ANTd -* [API-Service](https://github.com/lowcoder-org/lowcoder/tree/main/server/api-service) - Java, Spring, Spring WebFlux - using MongoDB and Redis -* [Node-Service](https://github.com/lowcoder-org/lowcoder/tree/main/server/node-service) - Node.js, TypeScript +* [Frontend App](https://github.com/flowerappeng-org/openflower/tree/main/client) - JavaScript, TypeScript, React, ANTd +* [API-Service](https://github.com/flowerappeng-org/openflower/tree/main/server/api-service) - Java, Spring, Spring WebFlux - using MongoDB and Redis +* [Node-Service](https://github.com/flowerappeng-org/openflower/tree/main/server/node-service) - Node.js, TypeScript These 3 services are the main deliverables and the codebase of OpenFlower. We are happy to work with you on your contribution and express that Frontend App and API-Service are fairly complex systems. You would need to reserve a bit of time to get to know it and understand the details. @@ -18,9 +18,9 @@ These 3 services are the main deliverables and the codebase of OpenFlower. We ar Extension of OpenFlower for and with the Community happens mainly by the Plugins and Extensions at defined Interfaces. OpenFlower has the following Plugin Systems: -* [Visual Component Plugins](https://github.com/lowcoder-org/lowcoder-create-component-plugin) +* [Visual Component Plugins](https://github.com/flowerappeng-org/openflower-create-component-plugin) * Plugin API of API Service -* [Data-Source Plugins in the Node-Service](https://github.com/lowcoder-org/lowcoder/tree/main/server/node-service/src/plugins) +* [Data-Source Plugins in the Node-Service](https://github.com/flowerappeng-org/openflower/tree/main/server/node-service/src/plugins) {% hint style="success" %} We suggest looking first into the development of these plugins, as they offer a good abstraction that speeds up development and offers a good and fast value for the community. @@ -30,14 +30,14 @@ We suggest looking first into the development of these plugins, as they offer a The main steps are: -* Fork of [this Repository](https://github.com/lowcoder-org/lowcoder-create-component-plugin) +* Fork of [this Repository](https://github.com/flowerappeng-org/openflower-create-component-plugin) * Local installation & preparation * Developing & preview the Components * Publish the Components to NPM 1. Forking of the Repository -To ensure you can develop your Component Plugin including as your repository, please fork (update) our lowcoder-org/lowcoder-create-component-plugin repository first. +To ensure you can develop your Component Plugin including as your repository, please fork (update) our Flowerappeng-org/openflower-create-component-plugin repository first. Find here more information: [https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) @@ -46,11 +46,11 @@ Find here more information: [https://docs.github.com/en/pull-requests/collaborat Now you can clone your new repository to develop local. ``` -https://github.com//lowcoder-create-component-plugin.git +https://github.com//openflower-create-component-plugin.git or -git@github.com:/lowcoder-create-component-plugin.git +git@github.com:/openflower-create-component-plugin.git ``` 3. Local Development preparation @@ -126,12 +126,12 @@ You can follow the [Guide for Apps & Modules to publish on the Marketplace](../. We feel honored to work with you together on OpenFlower as a Platform! A good start and procedure that allows a smooth development process is like this: -1. [Fork the Repository](https://github.com/Flowerappeng-org/openflower/fork) +1. [Fork the Repository](https://github.com/flowerappeng-org/openflower/fork) 2. Clone it into your local environment / IDE 3. Create a workable local Development Environment 4. Create your Feature-Branch from **/main** branch to get the latest stable Environment 5. **Develop your magic and enjoy the ride!** -6. Raise a PR / Merge Request to [**/dev branch**](https://github.com/Flowerappeng-org/openflower/tree/dev) of the OpenFlower Main Repository +6. Raise a PR / Merge Request to [**/dev branch**](https://github.com/flowerappeng-org/openflower/tree/dev) of the OpenFlower Main Repository 7. Follow up if / when we have questions at your Merge Request Please ask us directly for any related questions so we can help you the fastest way. @@ -332,7 +332,7 @@ If you run the Api-Service locally on Port 8080, remember the URL for the Fronte Please read more information in the following guides: 1. [How to develop a DataSouce Plugin](develop-data-source-plugins.md) -2. [Data Source Plugin Skeleton](https://github.com/lowcoder-org/lowcoder-datasource-plugin-skeleton) +2. [Data Source Plugin Skeleton] - todo fix this.() #### Preparation From fa7455ba67c07cbdf2d6c28c0d8e90f2136450d8 Mon Sep 17 00:00:00 2001 From: Janis Hernandez Date: Sun, 27 Oct 2024 08:28:51 -0500 Subject: [PATCH 16/36] 10 - Cleanup README.md --- README.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2b48ccf727..a86ce1f8e0 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,19 @@ +

OpenFlower

-## 📢 Use OpenFlower in 3 steps +

An enterprise-grade application engine.

+ +

Get Started >>

+ +

Read the Docs · Report Bug · Request Feature + +# About the Project + +## Use OpenFlower in 3 steps 1. Connect to any data sources or APIs. 2. Build flexible and responsive UI with 100+ components and free layout / design possibilities. 3. Share with colleagues and customers. -## 💡 Why OpenFlower +## Why OpenFlower One platform for everything instead so many different softwares. (like Website Builders, CMS, CRM, POS, ERP, Dashboards & Data Story Visualization, Collaboration Tools). 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. @@ -17,24 +26,24 @@ OpenFlower is: - The tool and community to support your business, and lower the cost and time to develop interactive applications. - The only platform to embed OpenFlower/Lowcoder Apps natively in Websites (no iFrame!) - The only platform where you can build your own Meeting Tool - like Teams, Zoom or Google Meets, - just in the Lowcode way. -- The only platform which has extensibility plugin architecture [Check Community Contributions](https://www.npmjs.com/search?q=OpenFlower-comp) +- The only platform which has extensibility plugin architecture ## 🪄 Features - **Visual UI builder** with 100+ built-in components. Save 90% of time to build apps. - **Modules** for reusable (!) embedable component sets in the UI builder. -- **Embed OpenFlower Apps as native parts of any Website** instead of iFrame (!). [Demo](todo), [Docu](https://docs.openflower.org/lowcoder-extension/native-embed-sdk) +- **Embed OpenFlower Apps as native parts of any Website** instead of iFrame (!). [Docs](https://docs.openflower.org/publish-apps/embedd-an-app/native-embed-sdk) - **Video Meeting Components** to create your own individual Web-Meeting tool. - **Query Library** for reusable data queries of your data sources. - **Custom components** to develop own components and use them in the UI builder. - **Native Data connections** to PostgreSQL, MongoDB, MySQL, Redis, Elasticsearch, REST API, SMTP, etc. -- **Stream Data connections** to Websockets for realtime data updates & collaboration! [Docu](https://docs.openflower.org/connect-your-data/data-sources-in-lowcoder/websocket-datasource) +- **Stream Data connections** to Websockets for realtime data updates & collaboration! [Docs](https://docs.openflower.org/connect-your-data/data-sources-in-lowcoder/websocket-datasource) - **JavaScript supported everywhere** to transform data, control components, etc. -- **Role-based access control (RBAC)** for granular permission management. [Docu](https://docs.openflower.org/workspaces-and-teamwork/members-and-groups) +- **Role-based access control (RBAC)** for granular permission management. [Docs](https://docs.openflower.org/workspaces-and-teamwork/members-and-groups) - **Auto-saved and restorable history** for release and version control. - **App Themes and Theme Editor** to precisely align with your company's brand guidelines. -- **Self Hosting** to use OpenFlower in your internal company network, even behind the firewall. [Docu](https://docs.openflower.org/setup-and-run/self-hosting) -- **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://todo) +- **Self Hosting** to use OpenFlower in your internal company network, even behind the firewall. [Docs](https://docs.openflower.org/setup-and-run/self-hosting) +- **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://prod-us1.openflower.org/) ## 🏆 Comparisons ### OpenFlower vs Powerapps @@ -45,7 +54,6 @@ OpenFlower is: - In OpenFlower, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool - OpenFlower is free and you can contribute! - With OpenFlower you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards -- The EE Version of OpenFlower comes with a much better pricing model, so you have no "per-user costs" ### OpenFlower vs Appsmith, Tooljet - OpenFlower has more components and richer configuration than Appsmith and Tooljet - In OpenFlower, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only @@ -72,16 +80,11 @@ And we mean it... Day by day! 🔎 Submit an issue here on [GitHub](https://github.com/flowerappeng-org/openflower/issues) ## 💻 Deployment Options -todo -You can access OpenFlower from [cloud-hosted demo version](https://demo.openflower.orgTODO/) at any time, or use the following resources for self-host OpenFlower on different platforms: +You can access OpenFlower from [cloud-hosted demo version](https://prod-us1.openflower.org/) at any time, or use the following resources for self-host OpenFlower on different platforms: - [Docker](https://docs.openflower.org/setup-and-run/self-hosting) ## 💪 Contributing - Language support: If you have experience with a language that isn't currently supported by our product, send us a pull request. - Create and share components or demos: If you've created something that might be useful to others, add the link here. - [Contributing guide](https://docs.openflower.org/openflower-extension/opensource-contribution) - -## Intro Video - -todo From 0f3b66c77d11d1f334746cd7d5b18b9247e9c5c3 Mon Sep 17 00:00:00 2001 From: Janis Hernandez Date: Sun, 27 Oct 2024 10:06:30 -0500 Subject: [PATCH 17/36] 10 - Cleanup README.md --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a86ce1f8e0..d982675cfc 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ -

OpenFlower

+

+

OpenFlower

-

An enterprise-grade application engine.

+

An enterprise-grade application engine.

-

Get Started >>

+

Get Started >>

-

Read the Docs · Report Bug · Request Feature +

Read the Docs · Report Bug · Request Feature +

# About the Project @@ -13,7 +15,7 @@ 2. Build flexible and responsive UI with 100+ components and free layout / design possibilities. 3. Share with colleagues and customers. -## Why OpenFlower +# OpenFlower Value Proposition One platform for everything instead so many different softwares. (like Website Builders, CMS, CRM, POS, ERP, Dashboards & Data Story Visualization, Collaboration Tools). 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. From d0126de6ebaa41a81ac9796eddf657a5c39008e3 Mon Sep 17 00:00:00 2001 From: Janis Hernandez Date: Sun, 27 Oct 2024 10:12:05 -0500 Subject: [PATCH 18/36] 10 - Cleanup README.md --- COMPARISONS.md | 24 ++++++++++++++++++++++++ README.md | 28 ++++------------------------ 2 files changed, 28 insertions(+), 24 deletions(-) create mode 100644 COMPARISONS.md diff --git a/COMPARISONS.md b/COMPARISONS.md new file mode 100644 index 0000000000..7c8c0cff19 --- /dev/null +++ b/COMPARISONS.md @@ -0,0 +1,24 @@ +## 🏆 Comparisons +### OpenFlower vs Powerapps +- build a apps way faster than in Power Apps. Save up to 50% of the time and costs +- Use self-hosting to keep all apps and data under your control +### OpenFlower vs Retool +- OpenFlower is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software +- In OpenFlower, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool +- OpenFlower is free and you can contribute! +- With OpenFlower you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards +### OpenFlower vs Appsmith, Tooljet +- OpenFlower has more components and richer configuration than Appsmith and Tooljet +- In OpenFlower, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only +- In OpenFlower, you can reuse common structures when building apps with modules and query library features. +### OpenFlower vs Mendix, Outsystems, Pega +- OpenFlower is modern. The codebase is fresh and uses modern standards. +- OpenFlower Apps do not need a compile and deployment. Just publish and use. Within seconds! +- OpenFlower Apps can get embedded natively in websites and apps, even in mobile apps +### OpenFlower vs internal Tool platforms +- OpenFlower supports internal tools like admin panels perfectly, but also customer-facing apps can get developed and published +- The OpenFlower UI builder is straightforward and better to use than Bubble +- App release cycles and updates can be done nearly daily without service downtimes for customers and users +### OpenFlower vs Teams, Google Meets, Zoom +- build a Meeting tool with peace in mind. Blue buttons - ok. Red corners or circle Videostream - ok too +- embedd applications in your Video-Meetings, so attendees can enjoy collaborative "anything". From shopping to working and gaming diff --git a/README.md b/README.md index d982675cfc..fabaa3f354 100644 --- a/README.md +++ b/README.md @@ -48,30 +48,7 @@ OpenFlower is: - **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://prod-us1.openflower.org/) ## 🏆 Comparisons -### OpenFlower vs Powerapps -- build a apps way faster than in Power Apps. Save up to 50% of the time and costs -- Use self-hosting to keep all apps and data under your control -### OpenFlower vs Retool -- OpenFlower is open-source. You don't need to worry about vendor lock-in or being stuck with an outdated version of the software -- In OpenFlower, developers can build truly responsive apps - not as cumbersome as the "Desktop / Mobile switch" in Retool -- OpenFlower is free and you can contribute! -- With OpenFlower you can design better Apps. More Layout & Design Components as also better support for powerful Data & Admin Dashboards -### OpenFlower vs Appsmith, Tooljet -- OpenFlower has more components and richer configuration than Appsmith and Tooljet -- In OpenFlower, you can choose auto-height or fixed-height mode for your components, while Appsmith supports fixed-height mode only -- In OpenFlower, you can reuse common structures when building apps with modules and query library features. -### OpenFlower vs Mendix, Outsystems, Pega -- OpenFlower is modern. The codebase is fresh and uses modern standards. -- OpenFlower Apps do not need a compile and deployment. Just publish and use. Within seconds! -- OpenFlower Apps can get embedded natively in websites and apps, even in mobile apps -### OpenFlower vs internal Tool platforms -- OpenFlower supports internal tools like admin panels perfectly, but also customer-facing apps can get developed and published -- The OpenFlower UI builder is straightforward and better to use than Bubble -- App release cycles and updates can be done nearly daily without service downtimes for customers and users -### OpenFlower vs Teams, Google Meets, Zoom -- build a Meeting tool with peace in mind. Blue buttons - ok. Red corners or circle Videostream - ok too -- embedd applications in your Video-Meetings, so attendees can enjoy collaborative "anything". From shopping to working and gaming - +See [COMPARISONS.md](COMPARISONS.md) ## 👐 Support and Community If you have any questions, please feel free to contact us or share them with our community. Our team is here ready to help. @@ -90,3 +67,6 @@ You can access OpenFlower from [cloud-hosted demo version](https://prod-us1.open - Language support: If you have experience with a language that isn't currently supported by our product, send us a pull request. - Create and share components or demos: If you've created something that might be useful to others, add the link here. - [Contributing guide](https://docs.openflower.org/openflower-extension/opensource-contribution) + +## Manifesto +See [MANIFESTO.md](MANIFESTO.md) \ No newline at end of file From 5eb7fc9e98e46dcdaebdeb9587761471daafc2c6 Mon Sep 17 00:00:00 2001 From: Janis Hernandez Date: Fri, 8 Nov 2024 16:41:37 -0500 Subject: [PATCH 19/36] Branding changes --- README.md | 22 ++++-- client/packages/lowcoder/index.html | 4 +- client/packages/lowcoder/src/app.tsx | 4 +- .../packages/lowcoder/src/i18n/locales/de.ts | 4 +- .../packages/lowcoder/src/i18n/locales/en.ts | 34 ++++---- .../packages/lowcoder/src/i18n/locales/pt.ts | 4 +- .../lowcoder/src/pages/ComponentDoc/index.tsx | 2 +- .../lowcoder/src/pages/editor/editorView.tsx | 4 +- .../src/pages/userAuth/authComponents.tsx | 2 +- deploy/docker/Dockerfile | 12 +-- deploy/docker/README.md | 14 ++-- .../self-hosting/google-cloud-platform.md | 2 +- .../self-hosting/raspberry-pi.md | 78 ------------------- 13 files changed, 58 insertions(+), 128 deletions(-) delete mode 100644 docs/setup-and-run/self-hosting/raspberry-pi.md diff --git a/README.md b/README.md index fabaa3f354..521ca65dc5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

-

OpenFlower

+

OpenFlower

An enterprise-grade application engine.

@@ -8,8 +8,6 @@

Read the Docs · Report Bug · Request Feature

-# About the Project - ## Use OpenFlower in 3 steps 1. Connect to any data sources or APIs. 2. Build flexible and responsive UI with 100+ components and free layout / design possibilities. @@ -20,8 +18,6 @@ One platform for everything instead so many different softwares. (like Website B 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. -NewGen Lowcode Platforms like Retool and others are great for their simplicity and flexibility - like OpenFlower too, but they can also be limited in different ways, especially when it comes to "external" applications for everyone. - OpenFlower is: - An all-in-one IDE to create internal or customer-facing (external) apps. - A place to create, build and share building blocks of web applications and whole websites. @@ -47,6 +43,18 @@ OpenFlower is: - **Self Hosting** to use OpenFlower in your internal company network, even behind the firewall. [Docs](https://docs.openflower.org/setup-and-run/self-hosting) - **Free Community Cloud** to start within a minute and build your first Apps. [Start here](https://prod-us1.openflower.org/) +# Installation + +- Self-Hosting + +# Development + +# Learning Resources +- Documentation +- Tutorials + +# Help + ## 🏆 Comparisons See [COMPARISONS.md](COMPARISONS.md) @@ -58,12 +66,12 @@ And we mean it... Day by day! 🔎 Submit an issue here on [GitHub](https://github.com/flowerappeng-org/openflower/issues) -## 💻 Deployment Options +## Deployment Options You can access OpenFlower from [cloud-hosted demo version](https://prod-us1.openflower.org/) at any time, or use the following resources for self-host OpenFlower on different platforms: - [Docker](https://docs.openflower.org/setup-and-run/self-hosting) -## 💪 Contributing +## Contributing - Language support: If you have experience with a language that isn't currently supported by our product, send us a pull request. - Create and share components or demos: If you've created something that might be useful to others, add the link here. - [Contributing guide](https://docs.openflower.org/openflower-extension/opensource-contribution) diff --git a/client/packages/lowcoder/index.html b/client/packages/lowcoder/index.html index 670113fcf7..ffa115cda8 100644 --- a/client/packages/lowcoder/index.html +++ b/client/packages/lowcoder/index.html @@ -1,10 +1,10 @@ - Lowcoder | rapid App & VideoMeeting builder for everyone. + OpenFlower | We make building applications easy. - +