Skip to content

Commit

Permalink
End metadata menu & update global css (#315)
Browse files Browse the repository at this point in the history
  • Loading branch information
hcourdent authored Sep 25, 2023
1 parent 1c8af4c commit 8241e2d
Show file tree
Hide file tree
Showing 54 changed files with 251 additions and 195 deletions.
2 changes: 1 addition & 1 deletion docs/apps/4_app_configuration_settings/4_app_styling.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ The Global CSS Editor is a feature exclusive to [Enterprise Edition](../../misc/

Styling on a component level can be replicated to all the components of the same class from the Rich Editor.

Just click on `Copy style to global CSS`.
Just click on `Convert to global CSS`.

<video
className="border-2 rounded-xl object-cover w-full h-full dark:border-gray-800"
Expand Down
2 changes: 1 addition & 1 deletion docs/compared_to/peers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ From a tech stack perspective, we rely on the ACID properties of PostgreSQL to a
<br/>

To do a fair comparison, looking at the quickstart is a great way to see the different orientation of the product.
The [Airflow quickstart](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/fundamentals.html#example-pipeline-definition) is a great starting point. One has to learn what is an Airflow pipeline before being able to create or edit them. They also do not provide a great way to debug locally and iterate on those pipelines. You have to write them, deploy them, and then test them. By comparison, in Windmill you can [write scripts locally](../advanced/4_local_development/index.mdx), or test them either step by step or the full flow in the [web UI](../core_concepts/6_auto_generated_uis/index.md).
The [Airflow quickstart](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/fundamentals.html#example-pipeline-definition) is a great starting point. One has to learn what is an Airflow pipeline before being able to create or edit them. They also do not provide a great way to debug locally and iterate on those pipelines. You have to write them, deploy them, and then test them. By comparison, in Windmill you can [write scripts locally](../advanced/4_local_development/index.mdx), or test them either step by step or the full flow in the [web UI](../core_concepts/6_auto_generated_uis/index.mdx).

<br/>

Expand Down
2 changes: 1 addition & 1 deletion docs/compared_to/prefect.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ The structuring of the flow and the configurations for each step are defined fro
<br/>

In particular, Windmill [generates automatically UIs](../core_concepts/6_auto_generated_uis/index.md) for flows and steps and lets users [test](../core_concepts/23_instant_preview/index.mdx) flows, steps or flow until a given step, from the UI.
In particular, Windmill [generates automatically UIs](../core_concepts/6_auto_generated_uis/index.mdx) for flows and steps and lets users [test](../core_concepts/23_instant_preview/index.mdx) flows, steps or flow until a given step, from the UI.

Flows can be [defined visually / YAML](../advanced/4_local_development/index.mdx) on a local environment. Windmill will soon unveil an extension to facilitate the editing of flows in local development.

Expand Down
2 changes: 1 addition & 1 deletion docs/compared_to/retool.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ For each of those languages, scripts can be run [without having to deal with sep
For other languages, Windmill supports [running any docker container](../advanced/7_docker/index.mdx) through its bash support.

All operations in Windmill are based on scripts. Unlike Retool, scripts in Windmill can be considered as standalone endpoints:
executable through [autogenerated UIs](../core_concepts/6_auto_generated_uis/index.md), [webhooks](../core_concepts/4_webhooks/index.md), etc.
executable through [autogenerated UIs](../core_concepts/6_auto_generated_uis/index.mdx), [webhooks](../core_concepts/4_webhooks/index.md), etc.

<div class="grid grid-cols-2 gap-6 mb-4">
<DocCard
Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/0_draft_and_deploy/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Drafts can be run and tested only from the editor (script, flow or app) with the

## Deployed Version

The deployed version is the authoritative version of a runnable. Once deployed, it is not only visible by workspace members [with the right permissions](../16_roles_and_permissions/index.mdx) but has its own [auto-generated UI](../6_auto_generated_uis/index.md), [webhooks](../4_webhooks/index.md), or can be called from flows and apps (for sripts and flows). This also means that local edits and drafts can be made in parallel to a deployed version of a runnable without affecting its behavior.
The deployed version is the authoritative version of a runnable. Once deployed, it is not only visible by workspace members [with the right permissions](../16_roles_and_permissions/index.mdx) but has its own [auto-generated UI](../6_auto_generated_uis/index.mdx), [webhooks](../4_webhooks/index.md), or can be called from flows and apps (for sripts and flows). This also means that local edits and drafts can be made in parallel to a deployed version of a runnable without affecting its behavior.

If you want to have several versions of the same runnable, just fork it with the `Fork` button on the drop down menu of `Deploy`.

Expand Down
4 changes: 2 additions & 2 deletions docs/core_concepts/11_persistent_storage/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ For Postgres databases (best for structured data storage and retrieval, where yo
- Click `Database`.
- Find your Connection Info and Connection String. Direct connections are on port 5432.

4. From Windmill, add your Supabase connection string as a [Postgresql resource](https://hub.windmill.dev/resource_types/6/postgresql) and [Execute queries](https://hub.windmill.dev/scripts/postgresql/1294/execute-query-and-return-results-postgresql). Tip: you might need to set the `sslmode` to "disable".
4. From Windmill, add your Supabase connection string as a [Postgresql resource](https://hub.windmill.dev/resource_types/114/postgresql) and [Execute queries](https://hub.windmill.dev/scripts/postgresql/1294/execute-query-and-return-results-postgresql). Tip: you might need to set the `sslmode` to "disable".

<video
className="border-2 rounded-xl object-cover w-full h-full dark:border-gray-800"
Expand Down Expand Up @@ -208,7 +208,7 @@ More tutorials on Supabase:

3. Get a [Connection string](https://neon.tech/docs/connect/query-with-psql-editor). You can obtain it connection string from the Connection Details widget on the Neon Dashboard: select a branch, a role, and the database you want to connect to and a connection string will be constructed for you.

4. From Windmill, add your Neon.tech connection string as a [Postgresql resource](https://hub.windmill.dev/resource_types/6/postgresql) and [Execute queries](https://hub.windmill.dev/scripts/postgresql/1294/execute-query-and-return-results-postgresql).
4. From Windmill, add your Neon.tech connection string as a [Postgresql resource](https://hub.windmill.dev/resource_types/114/postgresql) and [Execute queries](https://hub.windmill.dev/scripts/postgresql/1294/execute-query-and-return-results-postgresql).

<video
className="border-2 rounded-xl object-cover w-full h-full dark:border-gray-800"
Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/13_json_schema_and_parsing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ Resource types in Windmill are associated with JSON Schemas. A resource type def

## Advanced Settings

Some arguments' types can be given advanced settings that will affect the inputs' [auto-generated UI](../../core_concepts/6_auto_generated_uis/index.md) and JSON Schema.
Some arguments' types can be given advanced settings that will affect the inputs' [auto-generated UI](../../core_concepts/6_auto_generated_uis/index.mdx) and JSON Schema.

Here is an example on how to define a python list as an enum of strings using the `Customize` menu.

Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/16_roles_and_permissions/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Users can be given different levels of permissions:
3. **Author**: Authors can execute and view scripts, flows, and apps within a workspace. Authors see the full interface of Windmill and contrary to the Operators, they have the ability to create and edit scripts, flows and apps. Authors have read and write access to the entities they create or have been [granted access to by others](../8_groups_and_folders/index.mdx).

4. **Operator**: Operators have limited access within a workspace. They can only execute and view scripts, flows, and apps that they have visibility on, and only those that are within their allowed path or [folders](../8_groups_and_folders/index.mdx). Operators do not have the ability to create or modify entities.
The recommended way to share scripts and flows with operators is through [auto-generated apps](../6_auto_generated_uis/index.md#automatically-generated-apps).
The recommended way to share scripts and flows with operators is through [auto-generated apps](../6_auto_generated_uis/index.mdx#automatically-generated-apps).
With the second option being of sharing the script and [variables](../2_variables_and_secrets/index.mdx) it depends on (but operators won't be able to load variable directly from the UI/api, only use them within the scripts they have access to).

5. **Anonymous app viewers**: Anonymous app viewers are individuals who can access and view Windmill apps without being a user but by knowing the [secret URL](../../apps/0_toolbar.md#deploy) that allows app viewing. They do not have any editing or privileges to execute scripts and flows. The apps that they see execute the scripts and flows that are part of the app but only on behalf of the app author. The anonymous user cannot execute any of the scripts and flows part of the apps outside of the inputs authorized by the app through a policy that is automatically generated by the app.
Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/1_scheduling/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ If you want to handle failure and receive another message in that case, add an [

### Manage permissions from the workflow

From the metadata menu, change the owner to a [folder](../../core_concepts/8_groups_and_folders/index.mdx#folders) (group of people) to manage view and editing rights.
From the settings menu, change the owner to a [folder](../../core_concepts/8_groups_and_folders/index.mdx#folders) (group of people) to manage view and editing rights.

![Manage permissions](./5-manage-rights.png.webp 'Manage permissions')

Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/21_concurrency_limits/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ When jobs reach the concurrency limit, they are automatically queued for executi

## Concurrency limit of Script

Concurrency limit can be set from the metadata menu. Pick "Concurrency" and define a time window and max number of executions of the flow within that time window.
Concurrency limit can be set from the Settings menu. Pick "Concurrency" and define a time window and max number of executions of the flow within that time window.

![Concurrency Limit](../../assets/code_editor/concurrency_limit.png.webp)

Expand Down
4 changes: 2 additions & 2 deletions docs/core_concepts/24_caching/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ Caching a script means caching the results of that script for a certain duration

<br/>

You can enable caching for a script directly in the script metadata. Here's how you can do it:
You can enable caching for a script directly in the script Settings. Here's how you can do it:

1. **Metadata**: From the Script Editor, pick the "Metdata" menu an scroll to "Cache".
1. **Settings**: From the Script Editor, pick the "Settings" menu an scroll to "Cache".

2. **Enable Caching**: To enable caching, toggle on "Cache the results for each possible inputs" and specify the desired duration for caching results (in seconds.)

Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/25_dedicated_workers/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ To use:

The worker group will restart (assuming the pods/restart are set to restart automatically) and will now wait for step 2. below to happen:

2. toggle the "Dedicated Workers" option for that script in the metadata:
2. toggle the "Dedicated Workers" option for that script in the Settings:

![Dedicated Workers](./dedicated_workers.png)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import DocCard from '@site/src/components/DocCard';

# Auto-Generated UIs

Windmill automatically generates user interfaces (UIs) for scripts and flows based on their parameters.
Expand All @@ -18,35 +20,43 @@ You might also be interested by Windmill's [App editor](../../getting_started/7_

:::

## Details Page

By analyzing the parameters of the main function, Windmill generates an input specification for the script or flow in the [JSON Schema](../13_json_schema_and_parsing/index.md) format. Windmill then renders the UI for the Script or Flow from that specification.

You don't need to directly interact with the JSON Schema associated with the Script or Flow. It is the result of the analysis of the script parameters of the main function and the optional UI customization.

In the UI customization interface, you can refine information that couldn't be inferred directly from the parameters, such as specifying string enums or restricting lists to numbers. You can also add helpful descriptions to each field.
In the [UI customization interface](../../script_editor/customize_ui.mdx), you can refine information that couldn't be inferred directly from the parameters, such as specifying string enums or restricting lists to numbers. You can also add helpful descriptions to each field.

![Customize inputs](./customize_inputs.png.webp)

> The inputs' positions and properties can be customized
<br/>

:::tip Test code
<div class="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Customize UI"
description="Some arguments' types can be given advanced settings that will affect the inputs' auto-generated UI and JSON Schema."
href="/docs/script_editor/generated_ui"
/>
</div>

This feature can be directly used in the [script](../../getting_started/0_scripts_quickstart/index.mdx) & [flow](../../getting_started/6_flows_quickstart/index.mdx) editors to test your code.
## Test code

<br/>
This feature can be directly used in the [script](../../getting_started/0_scripts_quickstart/index.mdx) & [flow](../../getting_started/6_flows_quickstart/index.mdx) editors to [test your code](../23_instant_preview/index.mdx).

<video
className="border-2 rounded-xl object-cover w-full h-full dark:border-gray-800"
controls
src="/videos/ui_from_script_editor.mp4"
/>

:::
<br/>

## Automatically Generated Apps
<div class="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Instant Preview & Testing"
description="Windmill allows users to test what they are building directly from the editor, even before deployment."
href="/docs/core_concepts/instant_preview"
/>
</div>

## Build App

You can generate a dedicated [app](../../apps/0_app_editor/index.mdx) to execute your script or flow.

Expand All @@ -68,4 +78,12 @@ The apps will be permissioned on behalf of the [admin/author](../16_roles_and_pe
<br/>

At last, this is an easy way to get an app for your scripts and flows to be customized with [Styling](../../apps/4_app_configuration_settings/4_app_styling.mdx) and [Components](../../apps/4_app_configuration_settings/1_app_component_library.mdx).
At last, this is an easy way to get an app for your scripts and flows to be customized with [Styling](../../apps/4_app_configuration_settings/4_app_styling.mdx) and [Components](../../apps/4_app_configuration_settings/1_app_component_library.mdx).

<div class="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Instant Preview & Testing"
description="Windmill allows users to test what they are building directly from the editor, even before deployment."
href="/docs/core_concepts/instant_preview"
/>
</div>
2 changes: 1 addition & 1 deletion docs/core_concepts/9_worker_groups/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ WORKER_TAGS=tag1,tag2

## How to assign a custom worker group to a script or flow

For scripts saved on the script editor, select the corresponding worker group tag in the metadata section.
For scripts saved on the script editor, select the corresponding worker group tag in the settings section.

![Worker group tag](./select_script_builder.png.webp)

Expand Down
4 changes: 2 additions & 2 deletions docs/core_concepts/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,9 @@ All details on Scripts can be found in the [Script section](../script_editor/ind
href="/docs/script_editor/script_kinds"
/>
<DocCard
title="Customize Arguments"
title="Customize UI"
description="Some arguments' types can be given advanced settings that will affect the inputs' auto-generated UI and JSON Schema."
href="/docs/script_editor/customize_arguments"
href="/docs/script_editor/customize_ui"
/>
<DocCard
title="Versioning"
Expand Down
8 changes: 4 additions & 4 deletions docs/flows/3_editor_components.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ This is where you can give instructions to users on how to run your Flow. It sup

### Schedule

Flows can be [triggered](../getting_started/9_trigger_flows/index.mdx) by any [schedules](../core_concepts/1_scheduling/index.md), their [webhooks](../core_concepts/4_webhooks/index.md) or their [UI](../core_concepts/6_auto_generated_uis/index.md) but they only have only one primary schedules with which they share the same path. The primary schedule can be set here.
Flows can be [triggered](../getting_started/9_trigger_flows/index.mdx) by any [schedules](../core_concepts/1_scheduling/index.md), their [webhooks](../core_concepts/4_webhooks/index.md) or their [UI](../core_concepts/6_auto_generated_uis/index.mdx) but they only have only one primary schedules with which they share the same path. The primary schedule can be set here.

A CRON expression is used to define the schedule. Schedules can also be disabled.

Expand Down Expand Up @@ -155,7 +155,7 @@ Flows can be assigned custom [worker groups](../core_concepts/9_worker_groups/in

## Test flow

Test your current version of the flow with the `Test flow` button. This will opens a menu with an [auto-generated UI](../core_concepts/6_auto_generated_uis/index.md) of your current configuration.
Test your current version of the flow with the `Test flow` button. This will opens a menu with an [auto-generated UI](../core_concepts/6_auto_generated_uis/index.mdx) of your current configuration.

You can also test up to a certain step by clicking on an action (x) and then on `Test up to x`.

Expand Down Expand Up @@ -202,14 +202,14 @@ It will open a slider where you can configure the flow input.
- **Type**: the type of the flow input: Integer, Number, String, Boolean, Array, Object, or Any.
- **Default value**: the default value of the flow input.

Some arguments' types can be given advanced settings that will affect the inputs' [auto-generated UI](../core_concepts/6_auto_generated_uis/index.md) and [JSON Schema](../core_concepts/13_json_schema_and_parsing/index.md).
Some arguments' types can be given advanced settings that will affect the inputs' [auto-generated UI](../core_concepts/6_auto_generated_uis/index.mdx) and [JSON Schema](../core_concepts/13_json_schema_and_parsing/index.md).

Here is an example on how to define a list as an enum of strings using the `Customize` menu.

<video
className="border-2 rounded-xl object-cover w-full h-full dark:border-gray-800"
controls
src="customize_arguments_flow.mp4"
src="generated_ui_flow.mp4"
/>

<br />
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 8241e2d

Please sign in to comment.