diff --git a/docs/advanced/1_self_host/index.mdx b/docs/advanced/1_self_host/index.mdx
index 177808e7f..2eabce505 100644
--- a/docs/advanced/1_self_host/index.mdx
+++ b/docs/advanced/1_self_host/index.mdx
@@ -44,7 +44,7 @@ The rule of thumb is 1 worker per 1vCPU and 1/2GB of RAM. Cloud providers have m
Windmill is compatible with [AWS Aurora](https://aws.amazon.com/rds/aurora/), [GCP Cloud SQL](https://cloud.google.com/sql), [Azure](https://azure.microsoft.com/en-us) and [Neon](https://neon.tech/) serverless database.
-Use the managed load balancer to point to your instance on the port you have chosen to expose in the caddy section of the docker-compose (by default 80). We recommend doing TLS termination and associating your domain on your managed load balancer. Once the domain name is chosen, set BASE_URL accordingly in `.env`. That is it for a minimal setup. Read about [Worker groups](../../core_concepts/9_worker_groups/index.mdx) to configure more finely your workers on more nodes and with different resources. Once done, be sure to setup [SSO login](../../misc/2_setup_oauth/index.md) with Azure AD, Google Workspace or Github if relevant.
+Use the managed load balancer to point to your instance on the port you have chosen to expose in the caddy section of the docker-compose (by default 80). We recommend doing TLS termination and associating your domain on your managed load balancer. Once the domain name is chosen, set BASE_URL accordingly in `.env`. That is it for a minimal setup. Read about [Worker groups](../../core_concepts/9_worker_groups/index.mdx) to configure more finely your workers on more nodes and with different resources. Once done, be sure to setup [SSO login](../../misc/2_setup_oauth/index.mdx) with Azure AD, Google Workspace or Github if relevant.
:::tip AWS ECS
@@ -414,7 +414,7 @@ In the Admin Workspace execute the New User Setup App. This will import the defa
### Authentication and user management
-We recommend setting up [SSO with OAuth](../../misc/2_setup_oauth/index.md) if you want to avoid adding users manually.
+We recommend setting up [SSO with OAuth](../../misc/2_setup_oauth/index.mdx) if you want to avoid adding users manually.
If not using OAuth SSO, we recommend setting up SMTP to send invites and email to manually added users.
diff --git a/docs/apps/4_app_configuration_settings/4_app_styling.mdx b/docs/apps/4_app_configuration_settings/4_app_styling.mdx
index 51281838d..0f12a2e38 100644
--- a/docs/apps/4_app_configuration_settings/4_app_styling.mdx
+++ b/docs/apps/4_app_configuration_settings/4_app_styling.mdx
@@ -4,8 +4,25 @@ import DocCard from '@site/src/components/DocCard';
Styling on the app editor can be managed at the component and app-level.
+
+
## Component level
+Styling can be defined at the conmponent-level. CSS settings can be turned to [global level](#global-styling).
+
+Component-level CSS has priority over the global level.
+
+
+
### Pre-set
Some components have pre-set options for styling. They can be configured from the `Components settings` tab in the `Configuration` section.
@@ -26,7 +43,6 @@ You can configure manually your own classes with our Rich Editor.
@@ -39,6 +55,12 @@ Elements like background color (incl. shadow, opacity), border (incl. stlye, rad
For complex apps, you may not want to repeat the styling configuration on each component.
+
+
### CSS Editor
The [Global CSS Editor](../../misc/15_css_editor/index.md) is designed to give styling and theming across your entire app. This functionality offers a centralized location for defining, managing, and applying CSS rules. It's useful for ensuring consistent styling and for creating reusable themes.
@@ -47,7 +69,6 @@ The Global CSS Editor is a feature exclusive to [Enterprise Edition](../../misc/
@@ -71,7 +92,6 @@ Just click on `Convert to global CSS`.
+/>
\ No newline at end of file
diff --git a/docs/core_concepts/15_authentification/index.mdx b/docs/core_concepts/15_authentification/index.mdx
index a921b1692..d45d75162 100644
--- a/docs/core_concepts/15_authentification/index.mdx
+++ b/docs/core_concepts/15_authentification/index.mdx
@@ -14,7 +14,7 @@ Windmill provides flexible authentication options to ensure secure access to the
## Restricted Domain Authentication
-Windmill supports authentication [through SSO](../../misc/2_setup_oauth/index.md) for users with email addresses from a restricted domain. This allows organizations to control access to Windmill based on their domain policy. Users with email addresses from the authorized domain can authenticate seamlessly using their SSO credentials.
+Windmill supports authentication [through SSO](../../misc/2_setup_oauth/index.mdx) for users with email addresses from a restricted domain. This allows organizations to control access to Windmill based on their domain policy. Users with email addresses from the authorized domain can authenticate seamlessly using their SSO credentials.
To enable restricted domain authentication, an administrator can configure the authorized domain in the OAuth configuration by setting 'allowed_domains' to the desired domains (e.g: 'windmill.dev' to accept only Google/Microsoft logins with a xxx@windmill.dev address). Once configured, users with email addresses from the authorized domain will be able to log in using their SSO provider.
diff --git a/docs/core_concepts/index.mdx b/docs/core_concepts/index.mdx
index 776479326..9f6020c88 100644
--- a/docs/core_concepts/index.mdx
+++ b/docs/core_concepts/index.mdx
@@ -4,6 +4,8 @@ import DocCard from '@site/src/components/DocCard';
On top of its editors to build endpoints, flows and apps, Windmill comes with a set of features.
+## Windmill Features
+
+
+
+
## OAuth SSO
![Setup SSO](./setup_sso.png)
@@ -12,6 +22,18 @@ We recommend using a private navigation tab to test the new settings as soon as
### Google login
+
+
+
+
**Create Google OAuth keys**
First, you need to create a Google OAuth Client:
@@ -25,24 +47,22 @@ First, you need to create a Google OAuth Client:
- Click Create.
- Copy the **Client ID** and **Client Secret** from the "OAuth Client" modal.
-See screenshot above:
-
-Superadmin Settings -> Instance Settings -> SSO -> Toggle "google" -> set client id, org and client secret
+Superadmin Settings -> Instance Settings -> SSO -> Toggle "Google" -> set client id, org and client secret.
### Microsoft
Redirect URI: https:///user/login_callback/microsoft
Login: https:///user/login
-Create a new OAuth 2.0 Client [in microsoft portal](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade)
+Create a new OAuth 2.0 Client in [Microsoft portal](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade).
-and in the "Authentication" tab, set the redirect URI to `BASE_URL/user/login_callback/microsoft`, the logout channel to
+In the "Authentication" tab, set the redirect URI to `BASE_URL/user/login_callback/microsoft`, the logout channel to
`BASE_URL/auth/logout` where BASE_URL is what you configured as core BASE_URL.
Also set "Accounts in any organizational directory (Any Microsoft Entra ID tenant -
Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)", you can restrict the
emails directly in windmill using the "allowed_domains" setting.
-Superadmin Settings -> Instance Settings -> SSO -> Toggle "microsoft" -> set client id, org and client secret
+Superadmin Settings -> Instance Settings -> SSO -> Toggle "microsoft" -> set client id, org and client secret.
### Keycloak
@@ -64,41 +84,43 @@ Attribute Mapping, Standard Scopes: Check Email
Add the proper groups then click save. You should see your Client ID and Client Secret on the next screen then add the following entry "jumpcloud":
-Superadmin Settings -> Instance Settings -> SSO -> Toggle "jumpcloud" -> set client id and client secret
+Superadmin Settings -> Instance Settings -> SSO -> Toggle "jumpcloud" -> set client id and client secret.
![Jumpcloud](./jumpcloud.png.webp)
### Okta
-From your Admin page, setup windmill using the service flow
+From your Admin page, setup Windmill using the service flow:
-1. `Create a new app integration`
- a. For "sign-in method" select "OIDC - Open ID Connect"
- b. For "application type" select "Web Appliction"
-2. Select all of the following options for Grant type of "Client acting on behalf of a user"
+1. `Create a new app integration`:
+
+ a. For "sign-in method" select "OIDC - Open ID Connect".
+
+ b. For "application type" select "Web Appliction".
+2. Select all of the following options for Grant type of "Client acting on behalf of a user":
-- Authorization Code
-- Refresh Token
-- Implicit (hybrid)
-- Allow ID Token with implicit grant type
-- Allow Access Token with implicit grant type
+ - Authorization Code
+ - Refresh Token
+ - Implicit (hybrid)
+ - Allow ID Token with implicit grant type
+ - Allow Access Token with implicit grant type
-3. For Refresh Token, select "Rotate token after every use"
+3. For Refresh Token, select "Rotate token after every use".
4. Under "LOGIN", set the following:
-- "Sign-in redirect URIs" `https:///user/login_callback/okta/`
-- "Sign-out redirect URIs" `https://`
-- "Login initiated by" `App Only`
-- "Initiate login URI" `https:///user/login`
+ - "Sign-in redirect URIs" `https:///user/login_callback/okta/`
+ - "Sign-out redirect URIs" `https://`
+ - "Login initiated by" `App Only`
+ - "Initiate login URI" `https:///user/login`
-Superadmin Settings -> Instance Settings -> SSO -> Toggle "okta" -> set client id, org and client secret
+Superadmin Settings -> Instance Settings -> SSO -> Toggle "okta" -> set client id, org and client secret.
### GitHub
Redirect URI: https:///user/login_callback/github
Login: https:///user/login
-Superadmin Settings -> Instance Settings -> SSO -> Toggle "github" -> set client id, org and client secret
+Superadmin Settings -> Instance Settings -> SSO -> Toggle "github" -> set client id, org and client secret.
### GitLab
@@ -107,11 +129,11 @@ Login: https:///user/login
GitLab's Single Sign-On integration is supported by Windmill. Detailed steps for setting up GitLab as an OAuth SSO provider will be provided in the upcoming documentation but the entry for the oauth.json is as following:
-Superadmin Settings -> Instance Settings -> SSO -> Toggle "gitlab" -> set client id, org and client secret
+Superadmin Settings -> Instance Settings -> SSO -> Toggle "gitlab" -> set client id, org and client secret.
### Custom OAuth
-You can use other custom OAuths as resources using the "Add OAuth" button in: Superadmin Settings -> Instance Settings -> Resources -> Add OAuth
+You can use other custom OAuths as resources using the "Add OAuth" button in: Superadmin Settings -> Instance Settings -> Resources -> Add OAuth.
## OAuth Resources
@@ -244,7 +266,7 @@ settings:
See screenshot above:
-Superadmin Settings -> Instance Settings -> Resources -> Toggle "slack" -> set client id and client secret
+Superadmin Settings -> Instance Settings -> Resources -> Toggle "slack" -> set client id and client secret.
### Google Sheet
@@ -263,4 +285,4 @@ Superadmin Settings -> Instance Settings -> Resources -> Toggle "slack" -> set c
- Copy the **Client ID** and **Client Secret** from the "OAuth Client" modal.
- Superadmin Settings -> Instance Settings -> Resources -> Add OAuth "gsheet" -> set client id and client secret
-The same steps apply to enable more APIs (**gmail**, **gdrive**, etc) on your Google Account to set up the resources in WindMill.
\ No newline at end of file
+The same steps apply to enable more APIs (**gmail**, **gdrive**, etc) on your Google Account to set up the resources in Windmill.
\ No newline at end of file
diff --git a/docs/misc/7_plans_details/index.mdx b/docs/misc/7_plans_details/index.mdx
index feec670b4..be12be6a7 100644
--- a/docs/misc/7_plans_details/index.mdx
+++ b/docs/misc/7_plans_details/index.mdx
@@ -62,7 +62,7 @@ See [Upgrading to Enterprise Edition](#upgrading-to-enterprise-edition).
### Free and Open-source
- Unlimited users and executions.
-- Features [Google/Github/Microsoft/Gitlab SSO](../../misc/2_setup_oauth/index.md) and easy deployment on Fargate/Docker/Kubernetes.
+- Features [Google/Github/Microsoft/Gitlab SSO](../../misc/2_setup_oauth/index.mdx) and easy deployment on Fargate/Docker/Kubernetes.
- Community support on [Discord](https://discord.com/invite/V7PM2YHsPB).
### Enterprise Edition - Self-Hosted
diff --git a/src/landing/AppSection.tsx b/src/landing/AppSection.tsx
index 9228488c1..fdd0ddbf1 100644
--- a/src/landing/AppSection.tsx
+++ b/src/landing/AppSection.tsx
@@ -7,7 +7,10 @@ import {
Hand,
LayoutDashboard,
PieChart,
- Puzzle
+ Puzzle,
+ Palette,
+ ToyBrick,
+ Wall
} from 'lucide-react';
import { useDeveloperMode } from '../pages';
@@ -106,7 +109,34 @@ const tabs = [
}
}
]
- }
+ },
+ {
+ label: 'Styling',
+ icon: Palette,
+ id: 'styling',
+ data: [
+ {
+ title: 'Give style to each component',
+ description: 'Configure the style of each component with pre-set options, CSS, or Tailwind Classes.',
+ icon: ToyBrick,
+ caption: