Updates
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# Lowcoder Marketplace
|
||||
|
||||
The Lowcoder Application Marketplace is a platform where the Lowcoder 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. 
|
||||
|
||||
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.
|
||||
|
||||
## 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". 
|
||||
|
||||
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.
|
||||
|
||||
In self-hosted installations, both Marketplaces are available and show the apps that are shared on these Marketplaces.
|
||||
|
||||
## Use Apps from Marketplace
|
||||
|
||||
{% embed url="https://app.supademo.com/demo/FAj2tiD2WnnveGkLUW4A8" %}
|
||||
|
||||
## Publish Apps to Marketplace
|
||||
|
||||
{% 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.
|
||||
{% 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.
|
||||
{% endhint %}
|
||||
|
||||
## Adding Title, Description, Category and Icon
|
||||
|
||||
In the left App-Settings Menu, you can add Title, Description, Category, and an Icon to your App, so the display on the Marketplace is informative.
|
||||
|
||||
{% embed url="https://app.supademo.com/demo/KsbwqBCpWK6OZascdMI-E" %}
|
||||
|
||||
## Before you publish your App to the Marketplace
|
||||
|
||||
#### 1. Audit Your Application for Sensitive Data
|
||||
|
||||
* **Review Local Data Sources**: Examine all local data sources within your application to identify any that contain sensitive information. This includes user information, API keys, passwords, and any other data that should not be publicly accessible.
|
||||
* **Check Local Data Queries**: Look through your local data queries to ensure they do not reference or pull in sensitive data inadvertently.
|
||||
|
||||
#### 2. Remove or Anonymize Sensitive Data
|
||||
|
||||
* **Anonymize Data**: If your application requires example data to demonstrate functionality, replace real data with anonymized or fictional data that does not relate to any real individuals or entities.
|
||||
|
||||
#### 3. Replace Local Data Queries and Sources with Neutral Equivalents
|
||||
|
||||
* **Implement Neutral Data Queries**: Replace queries that access sensitive data with neutral data queries. These should demonstrate the app's functionality without using or exposing real data.
|
||||
* **Use Neutral Data Sources**: Switch out any local data sources containing sensitive information with neutral, example-based sources. Ensure these sources clearly illustrate how the app operates without relying on real data. Remove any Data Source from your application, which uses Passwords or other Backend Side encrypted credencials. This includes development environment configurations that might contain API keys or database credentials. You can use anonymous accessible APIs or place Demo-Data in [Temporary States](../business-logic-in-apps/write-javascript/temporary-state.md) and bind queries to these Temporary States for demonstration purposes.
|
||||
|
||||
#### 4. Place a documentation in the app
|
||||
|
||||
To help others to use your app, you can use a Text-Display component with Markdown at the bottom and write a README, so other users understand how to use the App and its components & logic.
|
||||
84
lowcoder/docs/workspaces-and-teamwork/members-and-groups.md
Normal file
84
lowcoder/docs/workspaces-and-teamwork/members-and-groups.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# 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.
|
||||
|
||||
## Roles
|
||||
|
||||
There are the following Roles for Users in Lowcoder:
|
||||
|
||||
### For Workspaces
|
||||
|
||||
* Admin
|
||||
* Member
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Member Group Roles.png" alt=""><figcaption><p>User Roles in Worspaces</p></figcaption></figure>
|
||||
|
||||
### For Apps
|
||||
|
||||
* Owner
|
||||
* Editor
|
||||
* Viewer
|
||||
|
||||
<figure><img src="../.gitbook/assets/App Editor Member Rights.png" alt=""><figcaption><p>User Roles for Apps</p></figcaption></figure>
|
||||
|
||||
### For Datasources
|
||||
|
||||
* User
|
||||
* Owner
|
||||
|
||||
<figure><img src="../.gitbook/assets/Datasource Editor Member Rights.png" alt=""><figcaption><p>User Roles for Datasources</p></figcaption></figure>
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
## Workspace members
|
||||
|
||||
In the **Members** tab, there are two pre-built groups by default. This helps you fast to differentiate between your colleagues who you want to invite to develop Apps together and everyone else - including the Users of these Apps. The predefined Usergroups are:
|
||||
|
||||
* All Members
|
||||
* Developer
|
||||
|
||||
Independent from these Usergroups you can define your own Usergroups to manage permissions and keep the overview of everyone who is registered and using Apps in your Workspaces.
|
||||
|
||||
### Invite new members
|
||||
|
||||
You can invite members to your workspace by managing **All Members** group. Open the group and click **Invite Members**, then you can copy the invitation link.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Invite Members.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
You can also find the shortcut to **Invite members** on the bottom left of the Lowcoder Admin Page.
|
||||
|
||||
{% hint style="info" %}
|
||||
Permission to invite new members to a Workspace is restricted to workspace **admins** and **developers group**.
|
||||
{% endhint %}
|
||||
|
||||
### Workspace roles and permissions
|
||||
|
||||
<table><thead><tr><th width="201">Role</th><th>Workspace and group level permissions</th></tr></thead><tbody><tr><td>Admin</td><td><p>Workspace</p><ul><li>Modify workspace information (name, logo, etc.)</li><li>Delete workspace</li><li>Manage workspace members and set their roles</li><li>View workspace members</li></ul><p>Groups</p><ul><li>Create groups</li><li>Delete groups</li><li>Manage group members and set their roles</li></ul></td></tr><tr><td>Member</td><td>None</td></tr></tbody></table>
|
||||
|
||||
Note that the workspace creator is automatically granted admin permissions.
|
||||
|
||||
## User Groups
|
||||
|
||||
Group-based management helps to organize members from different functional departments in your workspace. You can create User Groups in the **Members** tab.
|
||||
|
||||
### 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.
|
||||
|
||||
### The default Group "All members"
|
||||
|
||||
To overview all Members of a Workspace, the default User Group "All members" can get used. Here, all Members of a Workspace regardless of their role or connection to other User Groups are listed.
|
||||
|
||||
### Own User Groups
|
||||
|
||||
In the **Members** tab, workspace admins can click **+ Create Group** to add a new group. The group creator automatically will be the group admin of the new User Group.
|
||||
|
||||
Group admins can add members to groups.
|
||||
|
||||
### Roles and permissions in own User Groups
|
||||
|
||||
The Administrator of a User Group can set an **Admin** or **Member** role for each group member. The permissions are listed in the table below.
|
||||
|
||||
<table><thead><tr><th width="145">Role</th><th>Permissions</th></tr></thead><tbody><tr><td>Admin</td><td><ul><li>Change group name</li><li>Delete groups</li><li>Manage group members and set their roles</li><li>View group members</li></ul></td></tr><tr><td>Member</td><td>View group members</td></tr></tbody></table>
|
||||
57
lowcoder/docs/workspaces-and-teamwork/oauth/README.md
Normal file
57
lowcoder/docs/workspaces-and-teamwork/oauth/README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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.
|
||||
|
||||
As for now we support:
|
||||
|
||||
* Google
|
||||
* Github
|
||||
* ORY
|
||||
* KeyCloak
|
||||
|
||||
Next on the list are:
|
||||
|
||||
* Atlassian
|
||||
* Gitlab
|
||||
* Microsoft Graph (AD / B2C) as OAuth
|
||||
* LinkedIn
|
||||
* Facebook
|
||||
|
||||
### Use OAuth providers in 2 ways.
|
||||
|
||||
* By Invite Link
|
||||
* By workspace welcome Page
|
||||
|
||||
### Invite Link
|
||||
|
||||
When an Admin or User with appropriate rights sends an Invite Link, then this Invite Link contains the information in which workspace the new users get invited. In this way, the List of OAuth Providers at the Sign in and Sign up Screens is adapted.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Invite People.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Workspace welcome page
|
||||
|
||||
Based on a URL pattern you can guide new Users to your Workspace welcome page, where they will find the List of OAuth Providers at the Sign in and Sign up Screens too.
|
||||
|
||||
```
|
||||
// URL pattern to show the Workspace welcome page
|
||||
// The Workspace-ID == the Org ID.
|
||||
|
||||
https://<your Lowcoder location>/org/<your org Id>/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"
|
||||
|
||||
{% 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.
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Providers.png" alt=""><figcaption><p>the list of Auth Providers per Workspace can be different -exept the Standard Provider Email</p></figcaption></figure>
|
||||
|
||||
|
||||
|
||||
{% hint style="info" %}
|
||||
As OAuth Providers are bound to a single Workspace, they will not appear on the general Sign In or Sign up screens, but only on the Workspace-related screens.
|
||||
{% endhint %}
|
||||
|
||||
@@ -0,0 +1,204 @@
|
||||
# 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.
|
||||
|
||||
{% 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.)
|
||||
{% endhint %}
|
||||
|
||||
OAuth Providers are configured individually per Workspace.
|
||||
|
||||
The configuration has three parts:
|
||||
|
||||
* Meta-Data
|
||||
* OAuth Provider Configuration
|
||||
* Information Mapping
|
||||
|
||||
### Setup a generic OAuth provider
|
||||
|
||||
As the Admin of your Workspace, go to Settings > User Authentication. Here, you will find a List of your configured User Authentication Providers.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings Auth Providers.png" alt=""><figcaption><p>Overview of configured Aouth Providers for your Workspace</p></figcaption></figure>
|
||||
|
||||
Now, you can use the button in the upper right corner to add a new OAuth Provider. Select "Generic".
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings OAuth Select Generic OAuth Provider.png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
### .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.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings OAuth Well Known URI.png" alt="" width="563"><figcaption><p>Enter your Well Known URI to auto-fill the configuration in Step 2</p></figcaption></figure>
|
||||
|
||||
### Popular Services
|
||||
|
||||
Here are some popular services and their OpenID configuration Endpoints
|
||||
|
||||
#### Google
|
||||
|
||||
```
|
||||
https://accounts.google.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Facebook
|
||||
|
||||
```
|
||||
https://www.facebook.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Microsoft
|
||||
|
||||
```
|
||||
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### LinkedIn
|
||||
|
||||
```
|
||||
https://www.linkedin.com/oauth/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Apple
|
||||
|
||||
```
|
||||
https://appleid.apple.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Amazon Cognito
|
||||
|
||||
```
|
||||
https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Salesforce
|
||||
|
||||
```
|
||||
https://login.salesforce.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Dropbox
|
||||
|
||||
```
|
||||
https://www.dropbox.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### PayPal
|
||||
|
||||
```
|
||||
https://www.paypal.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Slack
|
||||
|
||||
```
|
||||
https://slack.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
### Popular IDMs that you can self-host
|
||||
|
||||
#### Keycloak
|
||||
|
||||
```
|
||||
https://{yourKeycloakDomain}/auth/realms/{yourRealm}/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Okta
|
||||
|
||||
```
|
||||
// Self-Host
|
||||
https://{yourOktaDomain}/.well-known/openid-configuration
|
||||
// Cloud (domain depends on the region)
|
||||
https://{yourApp}.okta-emea.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Auth0
|
||||
|
||||
```
|
||||
// Self-Host
|
||||
https://{yourAuth0Domain}/.well-known/openid-configuration
|
||||
// Cloud
|
||||
https://{yourApp}.auth0.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Ory
|
||||
|
||||
```
|
||||
// Self-Host
|
||||
https://{yourOryHydraDomain}/.well-known/openid-configuration
|
||||
// Cloud
|
||||
https://{yourApp}.projects.oryapis.com/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### Authentik
|
||||
|
||||
```
|
||||
https://{yourAuthentikDomain}/application/o/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
#### IBM Security Access Manager (ISAM)
|
||||
|
||||
```
|
||||
https://{yourISAMDomain}/mga/sps/oauth/oauth20/.well-known/openid-configuration
|
||||
```
|
||||
|
||||
### OAuth Source Meta-Data
|
||||
|
||||
Meta Data describes the Auth Source, allowing you to influence the visual representation of the OAuth Provider in the Sign In / Sign Up screen.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings OAuth Meta Data.png" alt="" width="563"><figcaption><p>Enter a Displayed Name, Category, Icon and a Description</p></figcaption></figure>
|
||||
|
||||
{% hint style="danger" %}
|
||||
In Lowcoder 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.
|
||||
|
||||
### OAuth Configuration
|
||||
|
||||
In Step 2, you can now set up the configuration Data for your OAuth Provider. We introduced this in v2.4.0, and the screen will surely be extended with features in the upcoming versions.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings OAuth Provider Configuration.png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
{% hint style="danger" %}
|
||||
Scopes must be set with a space character between the scopes, not comma-separated.
|
||||
{% 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)
|
||||
{% endhint %}
|
||||
|
||||
### Provider-Side Configuration
|
||||
|
||||
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**
|
||||
* Scopes: You should set the following Scopes if possible. **offline\_access** and **profile** are important.
|
||||
* openid
|
||||
* offline\_access
|
||||
* email
|
||||
* profile
|
||||
* Supported OAuth2 flows: To handle User-Logins you need to activate the **Authorization Code Flow.** Also you may need to activate the **Refresh Token** possibility.
|
||||
* Client authentication mechanism: Here, you can set **HTTP Body**
|
||||
|
||||
### 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.
|
||||
|
||||
* UID (The User-ID in the IDM System)
|
||||
* Email (The Email Address of the User in the IDM System)
|
||||
* Username (The Name of the User)
|
||||
* Avatar (The profile picture of the User)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings OAuth Data Mapping.png" alt="" width="563"><figcaption><p>OData Mapping</p></figcaption></figure>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Settings OAuth Data Mapping Result.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
The second screen shows how the Avatar and Username come into effect after the Mapping.
|
||||
|
||||
{% hint style="warning" %}
|
||||
In v2.4.0 we support mapping out of the JWT (access\_token) from the IDM. In future versions, we will also support the mapping of Attributes from the OpenID /userInfo endpoint.
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="info" %}
|
||||
In future versions of Lowcoder, we will also support Attribute Matching of Token Claims to User Groups and Roles.
|
||||
{% endhint %}
|
||||
37
lowcoder/docs/workspaces-and-teamwork/oauth/github.md
Normal file
37
lowcoder/docs/workspaces-and-teamwork/oauth/github.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# GitHub
|
||||
|
||||
### GitHub as OAuth Identity Provider
|
||||
|
||||
To use GitHub as Auth Provider, you must setup a so-called "OAuth App". You can do so in your Github Profile > Settings [https://github.com/settings/developers](https://github.com/settings/developers)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Github OAuth Apps.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
On GitHub the creation of an OAuth Client Registration is comparatively simple.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Github Client OAuth Settings.png" alt=""><figcaption><p>GitHub Client Registration Settings</p></figcaption></figure>
|
||||
|
||||
After configuring the Callback URLs, you can "Generate a new client secret". 
|
||||
|
||||
{% hint style="warning" %}
|
||||
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.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Add Provider.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
You can copy and paste now the Client ID and Client Secret from the GitHub Client App Registration.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/GitHub setup Auth Client.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Thats it! Now you can invite new Users to Lowcoder. They can choose GitHub to Sign Up (register) or Sign in / log in.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Register with Invite Link (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
When users chose to Sign in or Sign up with GitHub, they will get redirected to the GitHub Login page of the registered Client App
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Github OAuth Login.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Here they have to Authorize your registered Client App to act and impersonate your users.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Github OAuth Authorize.png" alt=""><figcaption></figcaption></figure>
|
||||
25
lowcoder/docs/workspaces-and-teamwork/oauth/google.md
Normal file
25
lowcoder/docs/workspaces-and-teamwork/oauth/google.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Google
|
||||
|
||||
### Google as OAuth Identity Provider
|
||||
|
||||
To use Google as Auth Provider, you must setup a so-called "OAuth 2.0 Client ID". You can do so in the Google Cloud Console. [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Google OAuth Credencials.png" alt=""><figcaption><p>You can create many OAuth 2.0 Client IDs</p></figcaption></figure>
|
||||
|
||||
Use the Form to create your Client ID (app registration)
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/Google create Client ID (1).png" alt=""><figcaption><p>You can set multiple redirect URLs</p></figcaption></figure>
|
||||
|
||||
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.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Add Provider.png" alt=""><figcaption><p>select Google as Auth Provider from the List</p></figcaption></figure>
|
||||
|
||||
You can now copy and paste the Client ID and Client Secret from the Google Cloud Console.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Add Google.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Thats it! Now you can invite new Users to Lowcoder. They can choose Google to Sign Up (register) or Sign in / log in.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/OAuth Register with Invite Link (1).png" alt=""><figcaption><p>Based on an invite Link, users can now login with the OAuth provider Google.</p></figcaption></figure>
|
||||
69
lowcoder/docs/workspaces-and-teamwork/oauth/keycloak.md
Normal file
69
lowcoder/docs/workspaces-and-teamwork/oauth/keycloak.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# KeyCloak
|
||||
|
||||
### KeyCloak as Identity Provider
|
||||
|
||||
To use KeyCloak as an Auth Provider, you must install and maintain an own installation of KeyCloak. A docker installation is fast achieved.
|
||||
|
||||
[https://www.keycloak.org/getting-started/getting-started-docker](https://www.keycloak.org/getting-started/getting-started-docker) 
|
||||
|
||||
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.
|
||||
|
||||
### Setup a KeyCloak Client
|
||||
|
||||
Choose a name and id for your Client.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Client setup 1.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Make sure the "Standard Flow" is activated, as also "Client authentication" and "Authorization". Only when checked these options, KeyCloak will issue the needed Client-Secret.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Client setup 2.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Configure the Lowcoder redirect URLs.
|
||||
|
||||
{% hint style="info" %}
|
||||
For the cloud, the "Valid redirect URI" is https://app.lowcoder.cloud
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Client Setup 3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
After the setup, you can now look for the generated Client-Secret.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Credencials Screen.png" alt=""><figcaption><p>copy the Client Secret for the setup of KeyCloak as Auth Provioder in Lowcoder</p></figcaption></figure>
|
||||
|
||||
Check the Settings to make sure the right capabilities are activated...
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Capabilities Screen.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### KeyCloak as Lowcoder Auth Provider
|
||||
|
||||
in Lowcoder, go to Settings > OAuth Provider and select "KeyCloak" in the "Add OAuth Provider Dialogue"
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak select Provider.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Now you can enter all settings for KeyCloak
|
||||
|
||||
{% hint style="info" %}
|
||||
Instance ID is the Base URL of your KeyCloak Installation
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Setup.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
You can also change settings later.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Settings.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
|
||||
{% hint style="warning" %}
|
||||
The minimal scope to setup is "offline\_access openid".
|
||||
{% endhint %}
|
||||
|
||||
Thats it! Now you can use KeyCloak to offer your Users to Sign in and Sign up with KeyCloak.
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak Sign in.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/KeyCloak use Login.png" alt=""><figcaption></figcaption></figure>
|
||||
@@ -0,0 +1,58 @@
|
||||
# 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.
|
||||
|
||||
Only workspace admins and members of **Developers** group are allowed to create resources. Workspace admins are in fact the owner of all resources.
|
||||
|
||||
## 1) Application Folders
|
||||
|
||||
Folders help you sort out the Apps, Modules, and Navigations in your Workspace. Only workspace **Admins** and members of **Developers** group have the following permissions for folders:
|
||||
|
||||
* Create
|
||||
* Rename
|
||||
* Delete
|
||||
* Move Apps, Modules and Navigations into or out of folders
|
||||
|
||||
## 2) Apps, modules, **navigations**
|
||||
|
||||
The way permissions are applicable for Apps, Modules, and Navigations are the same.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Permissions for Apps Modules Navigation.png" alt=""><figcaption><p>Apps, Modules, and Navigations works the same way for permissions.</p></figcaption></figure>
|
||||
|
||||
The owners of an App, a Module, or a Navigation can add members and assign different roles to them. To set Permissions for Users or Usergroups use the **Share** button in the App Editor at the top right, then click **Add members**.
|
||||
|
||||
<figure><img src="../.gitbook/assets/App Editor Member Rights.png" alt=""><figcaption><p>Set Permissions based on Roles for an App</p></figcaption></figure>
|
||||
|
||||
Choose members and / or groups from the list and set roles for them.
|
||||
|
||||
The available roles and their corresponding permissions are listed in the table below.
|
||||
|
||||
<table><thead><tr><th width="179">Role</th><th>Permissions</th></tr></thead><tbody><tr><td><ul><li>Viewer</li></ul></td><td><ul><li>View and use the app, module and navigation</li></ul></td></tr><tr><td><ul><li>Editor</li></ul></td><td><ul><li>View and use the app, module and navigation</li><li>Rename</li><li>Edit</li><li>Publish</li><li>Duplicate</li><li>Export</li></ul></td></tr><tr><td><ul><li>Owner</li></ul></td><td><ul><li>All permissions of Editor</li><li>Delete the app or module</li><li>Set roles for members</li></ul></td></tr></tbody></table>
|
||||
|
||||
### Anonymous User Access for Apps
|
||||
|
||||
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.
|
||||
|
||||
<figure><img src="../.gitbook/assets/App Editor Share App public.png" alt=""><figcaption><p>Apps can be public viewable without Lowcoder Login</p></figcaption></figure>
|
||||
|
||||
## 3) Data sources
|
||||
|
||||
Only workspace admins and developers can view the **Data Sources** page and create new data sources.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Datasources.png" alt=""><figcaption><p>Overview of all Datasources of a Workspace</p></figcaption></figure>
|
||||
|
||||
For each data source, workspace admins and the creator can change its **Access Control**. Go to Lowcoder homepage > **Data Sources**, and click `···` > **Access Control**.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Datasource Editor Member Rights.png" alt=""><figcaption><p>Set Permissions based on Roles for an Datasource</p></figcaption></figure>
|
||||
|
||||
In **Access Control** settings, add members or groups from the workspace, and then choose their roles (**Can use** or **Can manage**).
|
||||
|
||||
The permissions of these two roles are listed in the following table:
|
||||
|
||||
<table><thead><tr><th width="217">Role</th><th>Permissions</th></tr></thead><tbody><tr><td><ul><li>Can use</li></ul></td><td><ul><li>Use data source when editing an app/module/navigation/library query</li></ul></td></tr><tr><td><ul><li>Can manage</li></ul></td><td><ul><li>Use data source when editing an app/module/navigation/library query</li><li>Edit data source</li><li>Delete data source</li><li>Manage data source permission roles</li></ul></td></tr></tbody></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).
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library New Query.png" alt=""><figcaption></figcaption></figure>
|
||||
83
lowcoder/docs/workspaces-and-teamwork/query-library.md
Normal file
83
lowcoder/docs/workspaces-and-teamwork/query-library.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# 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 main function of the Query Library is to create and manage reusable Queries with Versioning.
|
||||
|
||||
## 1) Create a new query
|
||||
|
||||
1. Click **+ New** and select a data source. You can rename the query on demand.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Query Collection.png" alt=""><figcaption><p>Overview of Data Queries and Action Buttons to create new Data Queries</p></figcaption></figure>
|
||||
|
||||
Write code and click ▶ **Run** to get results. The results will display in the bottom pane of the window.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library New Query.png" alt=""><figcaption><p>You can create Data Queries for example as SQL Script for Databases</p></figcaption></figure>
|
||||
|
||||
If available based on the Datasource, helping Metadata will get displayed on the right side to create Queries faster.
|
||||
|
||||
### 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.
|
||||
|
||||
Click **Add** in the **Inputs** tab in the right upper pane to add input parameters. 
|
||||
|
||||
With the template notation `{{}}`, you can use the dynamic Input parameters in the Query. To test the Input Parameter, you can set test values that are directly used in the Query.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library Input Parameter.png" alt=""><figcaption><p>Using Input Parameters for dynamic Queries.</p></figcaption></figure>
|
||||
|
||||
{% hint style="warning" %}
|
||||
You can only reference variables instead of writing JavaScript code in `{{}}`.
|
||||
{% endhint %}
|
||||
|
||||
To edit the name and description of the input variables, click `...` and select **Edit** or directly click the title of the variable.
|
||||
|
||||
## 2) Publish Queries
|
||||
|
||||
When you finish writing a version of the query, you can publish it. Click `···` > **Publish**. 
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library Publish Query.png" alt=""><figcaption><p>Queries need to get published to be usable in Apps</p></figcaption></figure>
|
||||
|
||||
### History versions of Queries
|
||||
|
||||
To view and restore the history versions of a Query, go to `···` > **History version**.
|
||||
|
||||
You can restore your current draft to a history version by selecting the target version from the history version list and clicking **Restore this version**. Click **Exit** to return to edit mode.
|
||||
|
||||
### Version management of Data Queries
|
||||
|
||||
Queries may be updated on demand. You can make an adjustment to a query to a newer version and at the same time maintain the older version. Such version management is achievable in the query library. Click `···` in the top right corner to publish different versions of queries, and you can view and restore history versions.
|
||||
|
||||
The Query Library automatically suggests an Up-Versioning Format to choose from, (Minor to Major Version Change) so you can use [semantic versioning](https://semver.org/) (also known as SemVer) to name your version.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library Version Query.png" alt=""><figcaption><p>Semantiv Versioning to Data Queries</p></figcaption></figure>
|
||||
|
||||
## 3) Using Data Queries from Query Library
|
||||
|
||||
In an app or module, Click **+ New** in the **Query editor** in the bottom pane, then select **Import from Query Library**.
|
||||
|
||||
Select a query from the library from the dropdown list, choose your desired version and pass in the corresponding input parameters.
|
||||
|
||||
<figure><img src="../.gitbook/assets/App Editor Data Query from Library.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## 4) Export and Import of Queries
|
||||
|
||||
### Export of Data Queries
|
||||
|
||||
You can export a Query as a JSON Definition file. This helps to use a Query across different Lowcocer installations for example, or simply as a Backup.
|
||||
|
||||
{% hint style="info" %}
|
||||
Be aware, that the connected Datasource of a Query may have different security credentials at different installation locations.
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library Export Query.png" alt=""><figcaption><p>With "Export to JSON" you can backup a query or store it externally to use it in other Lowcoder Installations.</p></figcaption></figure>
|
||||
|
||||
### 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"
|
||||
|
||||
<figure><img src="../.gitbook/assets/Query Library Import Query.png" alt=""><figcaption><p>Import Data Queries from a JSON Definition File.</p></figcaption></figure>
|
||||
|
||||
## Permissions
|
||||
|
||||
Workspace **Admin** and members of **Developers** group have access to the **Query Library** and have read and write permissions to all queries in the library.
|
||||
80
lowcoder/docs/workspaces-and-teamwork/workspaces.md
Normal file
80
lowcoder/docs/workspaces-and-teamwork/workspaces.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Workspaces
|
||||
|
||||
Lowcoder supports Workspaces. These are isolated rooms to organize:
|
||||
|
||||
* User-Groups
|
||||
* Users
|
||||
* [Data Sources](../connect-your-data/data-source-basics/)
|
||||
* [Predefined Data Queries](query-library.md)
|
||||
* [Apps](../build-applications/create-a-new-app/) & App Folders
|
||||
* [Themes](../build-applications/themes-and-styling/)
|
||||
* 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
|
||||
{% 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.\
|
||||
\
|
||||
true - members can use their own workspace when they sign up. \
|
||||
false - members will not have their own workspace when they sign up.
|
||||
{% endhint %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
If you want to close the possibility that anyone can Sign in and create an account, you can set the ENV Variable **LOWCODER\_EMAIL\_SIGNUP\_ENABLED** to "false". \
|
||||
\
|
||||
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.
|
||||
{% 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.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Workspaces.png" alt=""><figcaption><p>A list of Workspaces</p></figcaption></figure>
|
||||
|
||||
In the public Lowcoder 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.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Switch Workspace.png" alt="" width="563"><figcaption><p>Switch between Workspaces</p></figcaption></figure>
|
||||
|
||||
### 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]
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Folders for Apps.png" alt=""><figcaption><p>Organize Apps into Folders to create order and show relationships</p></figcaption></figure>
|
||||
|
||||
### Themes
|
||||
|
||||
You can create multiple [Themes](../build-applications/themes-and-styling/) for your apps and select a style theme for each app individually. However, each Workspace has its own collection of Themes.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Themes.png" alt=""><figcaption><p>Themes helps to style Applications individually</p></figcaption></figure>
|
||||
|
||||
### Global Includes
|
||||
|
||||
It is possible to include global CSS styles to fine-tune the visuals of Apps. Also, it may be necessary to include a Javascript script, which is executed for all Apps of a Workspace. With the help of global includes, you can achieve Workspace.
|
||||
|
||||
<figure><img src="../.gitbook/assets/Admin Global Includes.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 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) 
|
||||
|
||||
* **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.
|
||||
* **Default Value**: 100
|
||||
* **LOWCODER\_MAX\_MEMBERS\_PER\_ORG**
|
||||
* Defines the default maximum number of members (including users and roles) allowed in a single Workspace. 
|
||||
* **Default Value**: 1000
|
||||
* **LOWCODER\_MAX\_GROUPS\_PER\_ORG**
|
||||
* **Description**: Specifies the default maximum number of groups that can be created within a Workspace. Groups are used for organizing members with similar roles or access levels, and this limit helps in keeping the group structure manageable.
|
||||
* **Default Value**: 100
|
||||
* **LOWCODER\_MAX\_APPS\_PER\_ORG**
|
||||
* **Description**: Determines the default maximum number of applications that could be developed or maintained in a Workspace.
|
||||
* **Default Value**: 1000
|
||||
* **LOWCODER\_MAX\_DEVELOPERS**
|
||||
* **Description**: Sets the default maximum number of Users with Developer-Role that can be registered in the Workspace.
|
||||
* **Default Value**: 100
|
||||
|
||||
[^1]:
|
||||
Reference in New Issue
Block a user