mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-08 08:04:25 +00:00
Merge branch 'main' into fix-no-uv-fallback
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## [1.434.2](https://github.com/windmill-labs/windmill/compare/v1.434.1...v1.434.2) (2024-12-04)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* custom http routes auth ([#4835](https://github.com/windmill-labs/windmill/issues/4835)) ([02611e4](https://github.com/windmill-labs/windmill/commit/02611e42e1b5c81d9bc57e3b46795e4c8cad67f7))
|
||||
|
||||
## [1.434.1](https://github.com/windmill-labs/windmill/compare/v1.434.0...v1.434.1) (2024-11-29)
|
||||
|
||||
|
||||
|
||||
Generated
+198
-188
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "windmill"
|
||||
version = "1.434.1"
|
||||
version = "1.434.2"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
|
||||
@@ -29,7 +29,7 @@ members = [
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "1.434.1"
|
||||
version = "1.434.2"
|
||||
authors = ["Ruben Fiszel <ruben@windmill.dev>"]
|
||||
edition = "2021"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
openapi: "3.0.3"
|
||||
|
||||
info:
|
||||
version: 1.434.1
|
||||
version: 1.434.2
|
||||
title: Windmill API
|
||||
|
||||
contact:
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts";
|
||||
import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts";
|
||||
import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts";
|
||||
|
||||
export const VERSION = "v1.434.1";
|
||||
export const VERSION = "v1.434.2";
|
||||
|
||||
export async function login(email: string, password: string): Promise<string> {
|
||||
return await windmill.UserService.login({
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ export {
|
||||
// }
|
||||
// });
|
||||
|
||||
export const VERSION = "1.434.1";
|
||||
export const VERSION = "1.434.2";
|
||||
|
||||
const command = new Command()
|
||||
.name("wmill")
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "windmill-components",
|
||||
"version": "1.434.1",
|
||||
"version": "1.434.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "windmill-components",
|
||||
"version": "1.434.1",
|
||||
"version": "1.434.2",
|
||||
"license": "AGPL-3.0",
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.32.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "windmill-components",
|
||||
"version": "1.434.1",
|
||||
"version": "1.434.2",
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<script lang="ts">
|
||||
export let link: string | undefined = undefined
|
||||
</script>
|
||||
|
||||
<div class="text-xs text-tertiary font-normal">
|
||||
<slot />
|
||||
{#if link}
|
||||
<a href={link} target="_blank">Learn more</a>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -14,6 +14,7 @@
|
||||
import Toggle from './Toggle.svelte'
|
||||
import { loadSchedules, saveSchedule } from './flows/scheduleUtils'
|
||||
import { type Writable, writable } from 'svelte/store'
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
|
||||
export let schema: any
|
||||
export let isFlow: boolean
|
||||
@@ -48,14 +49,18 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<ScheduleEditor
|
||||
on:update={() => {
|
||||
updateSchedules(true)
|
||||
}}
|
||||
bind:this={scheduleEditor}
|
||||
/>
|
||||
|
||||
<div class="flex flex-col gap-4 w-full">
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/scheduling">
|
||||
Run scripts and flows automatically on a recurring basis using cron expressions. Each script or
|
||||
flow can have multiple schedules, with one designated as primary.
|
||||
</Description>
|
||||
<ScheduleEditor
|
||||
on:update={() => {
|
||||
updateSchedules(true)
|
||||
}}
|
||||
bind:this={scheduleEditor}
|
||||
/>
|
||||
|
||||
{#if $primarySchedule == undefined}
|
||||
<Skeleton layout={[[12]]} />
|
||||
{:else if $primarySchedule}
|
||||
@@ -163,7 +168,7 @@
|
||||
}}
|
||||
variant="contained"
|
||||
color="dark"
|
||||
size="md"
|
||||
size="sm"
|
||||
startIcon={{ icon: Calendar }}
|
||||
>
|
||||
Set Primary Schedule
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
import Label from '$lib/components/Label.svelte'
|
||||
import TriggerTokens from '../triggers/TriggerTokens.svelte'
|
||||
let userSettings: UserSettings
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
|
||||
export let token: string
|
||||
export let scopes: string[] = []
|
||||
@@ -79,6 +80,11 @@
|
||||
/>
|
||||
|
||||
<div class="flex flex-col w-full gap-4">
|
||||
<Description link="https://www.windmill.dev/docs/advanced/email_triggers">
|
||||
Email triggers execute scripts and flows when emails are sent to specific addresses. Each
|
||||
trigger has its own unique email address that can be used to invoke the script or flow.
|
||||
</Description>
|
||||
|
||||
{#if loading}
|
||||
<Skeleton layout={[[18]]} />
|
||||
{:else}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
import KafkaTriggerEditor from './KafkaTriggerEditor.svelte'
|
||||
import { isCloudHosted } from '$lib/cloud'
|
||||
import KafkaIcon from '../icons/KafkaIcon.svelte'
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
|
||||
export let isFlow: boolean
|
||||
export let path: string
|
||||
@@ -47,60 +48,66 @@
|
||||
bind:this={kafkaTriggerEditor}
|
||||
/>
|
||||
|
||||
{#if !$enterpriseLicense}
|
||||
<Alert title="EE Only" type="warning" size="xs">
|
||||
Kafka triggers are an enterprise only feature.
|
||||
</Alert>
|
||||
{:else if isCloudHosted()}
|
||||
<Alert title="Not compatible with multi-tenant cloud" type="warning" size="xs">
|
||||
Kafka triggers are disabled in the multi-tenant cloud.
|
||||
</Alert>
|
||||
{:else}
|
||||
<div class="flex flex-col gap-4">
|
||||
{#if newItem}
|
||||
<Alert title="Triggers disabled" type="warning" size="xs">
|
||||
Deploy the {isFlow ? 'flow' : 'script'} to add kafka triggers.
|
||||
</Alert>
|
||||
{:else}
|
||||
<Button
|
||||
on:click={() => kafkaTriggerEditor?.openNew(isFlow, path)}
|
||||
variant="border"
|
||||
color="light"
|
||||
size="xs"
|
||||
startIcon={{ icon: KafkaIcon }}
|
||||
>
|
||||
New Kafka Trigger
|
||||
</Button>
|
||||
{#if kafkaTriggers}
|
||||
{#if kafkaTriggers.length == 0}
|
||||
<div class="text-xs text-secondary"> No kafka triggers </div>
|
||||
{:else}
|
||||
<div class="flex flex-col divide-y pt-2">
|
||||
{#each kafkaTriggers as kafkaTrigger (kafkaTrigger.path)}
|
||||
<div class="grid grid-cols-5 text-2xs items-center py-2">
|
||||
<div class="col-span-2 truncate">{kafkaTrigger.path}</div>
|
||||
<div class="col-span-2 truncate">
|
||||
{kafkaTrigger.kafka_resource_path}
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<button
|
||||
on:click={() => kafkaTriggerEditor?.openEdit(kafkaTrigger.path, isFlow)}
|
||||
class="px-2"
|
||||
>
|
||||
{#if kafkaTrigger.canWrite}
|
||||
Edit
|
||||
{:else}
|
||||
View
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
<div class="flex flex-col w-full gap-4">
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/kafka_triggers">
|
||||
Kafka triggers execute scripts and flows in response to messages published to Kafka topics.
|
||||
</Description>
|
||||
|
||||
{#if !$enterpriseLicense}
|
||||
<Alert title="EE Only" type="warning" size="xs">
|
||||
Kafka triggers are an enterprise only feature.
|
||||
</Alert>
|
||||
{:else if isCloudHosted()}
|
||||
<Alert title="Not compatible with multi-tenant cloud" type="warning" size="xs">
|
||||
Kafka triggers are disabled in the multi-tenant cloud.
|
||||
</Alert>
|
||||
{:else}
|
||||
<div class="flex flex-col gap-4">
|
||||
{#if newItem}
|
||||
<Alert title="Triggers disabled" type="warning" size="xs">
|
||||
Deploy the {isFlow ? 'flow' : 'script'} to add kafka triggers.
|
||||
</Alert>
|
||||
{:else}
|
||||
<Skeleton layout={[[8]]} />
|
||||
<Button
|
||||
on:click={() => kafkaTriggerEditor?.openNew(isFlow, path)}
|
||||
variant="border"
|
||||
color="light"
|
||||
size="xs"
|
||||
startIcon={{ icon: KafkaIcon }}
|
||||
>
|
||||
New Kafka Trigger
|
||||
</Button>
|
||||
{#if kafkaTriggers}
|
||||
{#if kafkaTriggers.length == 0}
|
||||
<div class="text-xs text-secondary"> No kafka triggers </div>
|
||||
{:else}
|
||||
<div class="flex flex-col divide-y pt-2">
|
||||
{#each kafkaTriggers as kafkaTrigger (kafkaTrigger.path)}
|
||||
<div class="grid grid-cols-5 text-2xs items-center py-2">
|
||||
<div class="col-span-2 truncate">{kafkaTrigger.path}</div>
|
||||
<div class="col-span-2 truncate">
|
||||
{kafkaTrigger.kafka_resource_path}
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<button
|
||||
on:click={() => kafkaTriggerEditor?.openEdit(kafkaTrigger.path, isFlow)}
|
||||
class="px-2"
|
||||
>
|
||||
{#if kafkaTrigger.canWrite}
|
||||
Edit
|
||||
{:else}
|
||||
View
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
{:else}
|
||||
<Skeleton layout={[[8]]} />
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
import Alert from '../common/alert/Alert.svelte'
|
||||
import type { TriggerContext } from '../triggers'
|
||||
import { getContext } from 'svelte'
|
||||
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
export let isFlow: boolean
|
||||
export let path: string
|
||||
export let newItem: boolean = false
|
||||
@@ -48,6 +48,11 @@
|
||||
/>
|
||||
|
||||
<div class="flex flex-col gap-4">
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/http_routing">
|
||||
Routes expose your scripts and flows as HTTP endpoints. Each route can be configured with a
|
||||
specific HTTP method and path.
|
||||
</Description>
|
||||
|
||||
{#if !newItem}
|
||||
{#if $userStore?.is_admin || $userStore?.is_super_admin}
|
||||
<Button
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
<script lang="ts">
|
||||
import Alert from '$lib/components/common/alert/Alert.svelte'
|
||||
import Label from '$lib/components/Label.svelte'
|
||||
import { base } from '$lib/base'
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
</script>
|
||||
|
||||
<div class="flex flex-col w-full gap-4 text-sm">
|
||||
<Alert
|
||||
title="Scheduled Poll"
|
||||
size="xs"
|
||||
documentationLink="https://www.windmill.dev/docs/flows/flow_trigger"
|
||||
>
|
||||
Sheduled Poll is a trigger that polls an external API at a given interval. It is useful for
|
||||
<Description link="https://www.windmill.dev/docs/flows/flow_trigger">
|
||||
Scheduled Poll is a trigger that polls an external API at a given interval. It is useful for
|
||||
triggering jobs based on the change of external states. Under the hood, it is a script triggered
|
||||
by a schedule, and returning a list of the changed states so we can iterate over them.
|
||||
</Alert>
|
||||
</Description>
|
||||
|
||||
<Label label="Setting a scheduled poll" primary>
|
||||
<ul class="pt-4 space-y-2 text-sm">
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
import { base } from '$lib/base'
|
||||
import Label from '$lib/components/Label.svelte'
|
||||
import TriggerTokens from './TriggerTokens.svelte'
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
let userSettings: UserSettings
|
||||
|
||||
export let token: string
|
||||
@@ -227,18 +228,22 @@ done`
|
||||
|
||||
<HighlightTheme />
|
||||
|
||||
<UserSettings
|
||||
bind:this={userSettings}
|
||||
on:tokenCreated={(e) => {
|
||||
token = e.detail
|
||||
triggerTokens?.listTokens()
|
||||
}}
|
||||
newTokenWorkspace={$workspaceStore}
|
||||
newTokenLabel={`webhook-${$userStore?.username ?? 'superadmin'}-${generateRandomString(4)}`}
|
||||
{scopes}
|
||||
/>
|
||||
|
||||
<div class="flex flex-col w-full gap-4">
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/webhooks">
|
||||
Webhooks trigger scripts or flows via HTTP requests. Each webhook can be configured to run
|
||||
synchronously or asynchronously. You can secure webhooks using tokens with specific permissions.
|
||||
</Description>
|
||||
|
||||
<UserSettings
|
||||
bind:this={userSettings}
|
||||
on:tokenCreated={(e) => {
|
||||
token = e.detail
|
||||
triggerTokens?.listTokens()
|
||||
}}
|
||||
newTokenWorkspace={$workspaceStore}
|
||||
newTokenLabel={`webhook-${$userStore?.username ?? 'superadmin'}-${generateRandomString(4)}`}
|
||||
{scopes}
|
||||
/>
|
||||
{#if SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON}
|
||||
<Label label="Token">
|
||||
<div class="flex flex-row justify-between gap-2">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
import { getContext } from 'svelte'
|
||||
import WebsocketTriggerEditor from './WebsocketTriggerEditor.svelte'
|
||||
import { isCloudHosted } from '$lib/cloud'
|
||||
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
export let isFlow: boolean
|
||||
export let path: string
|
||||
export let newItem: boolean = false
|
||||
@@ -48,54 +48,61 @@
|
||||
bind:this={wsTriggerEditor}
|
||||
/>
|
||||
|
||||
{#if isCloudHosted()}
|
||||
<Alert title="Not compatible with multi-tenant cloud" type="warning" size="xs">
|
||||
Websocket triggers are disabled in the multi-tenant cloud.
|
||||
</Alert>
|
||||
{:else}
|
||||
<div class="flex flex-col gap-4">
|
||||
{#if newItem}
|
||||
<Alert title="Triggers disabled" type="warning" size="xs">
|
||||
Deploy the {isFlow ? 'flow' : 'script'} to add WS triggers.
|
||||
</Alert>
|
||||
{:else if wsTriggers}
|
||||
<Button
|
||||
on:click={() => wsTriggerEditor?.openNew(isFlow, path)}
|
||||
variant="border"
|
||||
color="light"
|
||||
size="xs"
|
||||
startIcon={{ icon: UnplugIcon }}
|
||||
>
|
||||
New WS Trigger
|
||||
</Button>
|
||||
{#if wsTriggers.length == 0}
|
||||
<div class="text-xs text-secondary"> No WS triggers </div>
|
||||
<div class="flex flex-col w-full gap-4">
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/websocket_triggers">
|
||||
Websocket triggers allow real-time bidirectional communication between your scripts/flows and
|
||||
external systems. Each trigger creates a unique websocket endpoint.
|
||||
</Description>
|
||||
|
||||
{#if isCloudHosted()}
|
||||
<Alert title="Not compatible with multi-tenant cloud" type="warning" size="xs">
|
||||
Websocket triggers are disabled in the multi-tenant cloud.
|
||||
</Alert>
|
||||
{:else}
|
||||
<div class="flex flex-col gap-4">
|
||||
{#if newItem}
|
||||
<Alert title="Triggers disabled" type="warning" size="xs">
|
||||
Deploy the {isFlow ? 'flow' : 'script'} to add WS triggers.
|
||||
</Alert>
|
||||
{:else if wsTriggers}
|
||||
<Button
|
||||
on:click={() => wsTriggerEditor?.openNew(isFlow, path)}
|
||||
variant="border"
|
||||
color="light"
|
||||
size="xs"
|
||||
startIcon={{ icon: UnplugIcon }}
|
||||
>
|
||||
New WS Trigger
|
||||
</Button>
|
||||
{#if wsTriggers.length == 0}
|
||||
<div class="text-xs text-secondary"> No WS triggers </div>
|
||||
{:else}
|
||||
<div class="flex flex-col divide-y pt-2">
|
||||
{#each wsTriggers as wsTriggers (wsTriggers.path)}
|
||||
<div class="grid grid-cols-5 text-2xs items-center py-2">
|
||||
<div class="col-span-2 truncate">{wsTriggers.path}</div>
|
||||
<div class="col-span-2 truncate">
|
||||
{wsTriggers.url}
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<button
|
||||
on:click={() => wsTriggerEditor?.openEdit(wsTriggers.path, isFlow)}
|
||||
class="px-2"
|
||||
>
|
||||
{#if wsTriggers.canWrite}
|
||||
Edit
|
||||
{:else}
|
||||
View
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
{:else}
|
||||
<div class="flex flex-col divide-y pt-2">
|
||||
{#each wsTriggers as wsTriggers (wsTriggers.path)}
|
||||
<div class="grid grid-cols-5 text-2xs items-center py-2">
|
||||
<div class="col-span-2 truncate">{wsTriggers.path}</div>
|
||||
<div class="col-span-2 truncate">
|
||||
{wsTriggers.url}
|
||||
</div>
|
||||
<div class="flex justify-end">
|
||||
<button
|
||||
on:click={() => wsTriggerEditor?.openEdit(wsTriggers.path, isFlow)}
|
||||
class="px-2"
|
||||
>
|
||||
{#if wsTriggers.canWrite}
|
||||
Edit
|
||||
{:else}
|
||||
View
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
<Skeleton layout={[[8]]} />
|
||||
{/if}
|
||||
{:else}
|
||||
<Skeleton layout={[[8]]} />
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
import ToggleButtonGroup from '$lib/components/common/toggleButton-v2/ToggleButtonGroup.svelte'
|
||||
import ToggleButton from '$lib/components/common/toggleButton-v2/ToggleButton.svelte'
|
||||
import type { AiProviderTypes } from '$lib/components/copilot/lib'
|
||||
import Description from '$lib/components/Description.svelte'
|
||||
|
||||
type GitSyncTypeMap = {
|
||||
scripts: boolean
|
||||
@@ -693,18 +694,12 @@
|
||||
{:else if tab == 'deploy_to'}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold">
|
||||
<div class="text-primary text-lg font-semibold">
|
||||
Link this workspace to another Staging / Prod workspace
|
||||
</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
Connecting this workspace with another staging/production workspace enables web-based
|
||||
deployment to that workspace.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/staging_prod"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/staging_prod">
|
||||
Connecting this workspace with another staging/production workspace enables web-based deployment to that workspace.
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
{#if $enterpriseLicense}
|
||||
@@ -722,15 +717,10 @@
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"> Connect workspace to Slack </div>
|
||||
<div class="text-tertiary text-xs">
|
||||
<Description link="https://www.windmill.dev/docs/integrations/slack">
|
||||
Connect your Windmill workspace to your Slack workspace to trigger a script or a flow
|
||||
with a '/windmill' command or to configure Slack error handlers.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/integrations/slack"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
</Description>
|
||||
</div>
|
||||
|
||||
{#if team_name}
|
||||
@@ -891,15 +881,10 @@
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"> Workspace Webhook</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/webhooks#workspace-webhook">
|
||||
Connect your Windmill workspace to an external service to sync or get notified about any
|
||||
change.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/webhooks#workspace-webhook"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-col gap-4 my-4">
|
||||
@@ -926,20 +911,15 @@
|
||||
{/if}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"> Workspace Error Handler</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
<div class="text-primary text-lg font-semibold"> Workspace Error Handler</div>
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/error_handling#workspace-error-handler">
|
||||
Define a script or flow to be executed automatically in case of error in the workspace.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/error_handling#workspace-error-handler"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-col gap-4 my-4">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-base font-semibold">
|
||||
<div class="text-primary text-base font-semibold">
|
||||
Script or flow to run as error handler</div
|
||||
>
|
||||
</div>
|
||||
@@ -1001,16 +981,10 @@
|
||||
</div>
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"> Workspace Critical Alerts</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
Critical alerts within the scope of a workspace are sent to the workspace admins through
|
||||
a UI notification.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/critical_alerts"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
<div class="text-primary text-lg font-semibold"> Workspace Critical Alerts</div>
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/critical_alerts">
|
||||
Critical alerts within the scope of a workspace are sent to the workspace admins through a UI notification.
|
||||
</Description>
|
||||
<div class="flex flex-col mt-5 gap-5 items-start">
|
||||
<Button
|
||||
disabled={!$enterpriseLicense}
|
||||
@@ -1037,24 +1011,20 @@
|
||||
{:else if tab == 'ai'}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"> Windmill AI</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
<div class="text-primary text-lg font-semibold"> Windmill AI</div>
|
||||
<Description>
|
||||
Select an OpenAI resource to unlock Windmill AI features.
|
||||
</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
</Description>
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/ai_generation">
|
||||
Windmill AI supports integration with your preferred AI provider for all AI features.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/ai_generation"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
<ToggleButtonGroup
|
||||
bind:selected
|
||||
on:selected={() => {
|
||||
aiResourceInitialPath = ''
|
||||
aiResourceInitialProvider = ''
|
||||
}}
|
||||
>
|
||||
<ToggleButton value="openai" label="OpenAI" />
|
||||
@@ -1091,18 +1061,10 @@
|
||||
{:else if tab == 'windmill_lfs'}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"
|
||||
>Workspace object storage (S3/Azure Blob)</div
|
||||
>
|
||||
<div class="text-tertiary text-xs">
|
||||
Connect your Windmill workspace to your S3 bucket or your Azure Blob storage to enable
|
||||
users to read and write from S3 without having to have access to the credentials.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/object_storage_in_windmill#workspace-object-storage"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
<div class="text-primary text-lg font-semibold">Workspace object storage (S3/Azure Blob)</div>
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/object_storage_in_windmill#workspace-object-storage">
|
||||
Connect your Windmill workspace to your S3 bucket or your Azure Blob storage to enable users to read and write from S3 without having to have access to the credentials.
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
{#if !$enterpriseLicense}
|
||||
@@ -1278,16 +1240,10 @@
|
||||
{:else if tab == 'git_sync'}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold"> Git Sync </div>
|
||||
<div class="text-tertiary text-xs">
|
||||
Connect the Windmill workspace to a Git repository to automatically commit and push
|
||||
scripts, flows, and apps to the repository on each deploy.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/advanced/git_sync"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
<div class="text-primary text-lg font-semibold">Git Sync</div>
|
||||
<Description link="https://www.windmill.dev/docs/advanced/git_sync">
|
||||
Connect the Windmill workspace to a Git repository to automatically commit and push scripts, flows, and apps to the repository on each deploy.
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
{#if !$enterpriseLicense}
|
||||
@@ -1732,20 +1688,13 @@ git push</code
|
||||
{:else if tab == 'default_app'}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold">Workspace default app</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
If configured, users who are operators in this workspace will be redirected to this app
|
||||
automatically when logging into this workspace.
|
||||
</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
Make sure the default app is shared with all the operators of this workspace before
|
||||
turning this feature on.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/apps/default_app"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
<div class="text-primary text-lg font-semibold">Workspace default app</div>
|
||||
<Description>
|
||||
If configured, users who are operators in this workspace will be redirected to this app automatically when logging into this workspace.
|
||||
</Description>
|
||||
<Description link="https://www.windmill.dev/docs/apps/default_app">
|
||||
Make sure the default app is shared with all the operators of this workspace before turning this feature on.
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
{#if !$enterpriseLicense}
|
||||
@@ -1771,21 +1720,13 @@ git push</code
|
||||
{:else if tab == 'encryption'}
|
||||
<div class="flex flex-col gap-4 my-8">
|
||||
<div class="flex flex-col gap-1">
|
||||
<div class=" text-primary text-lg font-semibold">Workspace secret encryption</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
When updating the encryption key of a workspace, all secrets will be re-encrypted with
|
||||
the new key and the previous key will be replaced by the new one.
|
||||
</div>
|
||||
<div class="text-tertiary text-xs">
|
||||
If you're manually updating the key to match another workspace key from another Windmill
|
||||
instance, make sure not to use the 'SECRET_SALT' environment variable or, if you're
|
||||
using it, make sure it the salt matches across both instances.
|
||||
<a
|
||||
href="https://www.windmill.dev/docs/core_concepts/workspace_secret_encryption"
|
||||
target="_blank"
|
||||
class="text-blue-500">Learn more</a
|
||||
>.
|
||||
</div>
|
||||
<div class="text-primary text-lg font-semibold">Workspace secret encryption</div>
|
||||
<Description>
|
||||
When updating the encryption key of a workspace, all secrets will be re-encrypted with the new key and the previous key will be replaced by the new one.
|
||||
</Description>
|
||||
<Description link="https://www.windmill.dev/docs/core_concepts/workspace_secret_encryption">
|
||||
If you're manually updating the key to match another workspace key from another Windmill instance, make sure not to use the 'SECRET_SALT' environment variable or, if you're using it, make sure it the salt matches across both instances.
|
||||
</Description>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-5 flex gap-1 mb-10">
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
wmill = ">=1.434.1"
|
||||
wmill_pg = ">=1.434.1"
|
||||
wmill = ">=1.434.2"
|
||||
wmill_pg = ">=1.434.2"
|
||||
sendgrid = "*"
|
||||
mysql-connector-python = "*"
|
||||
pymongo = "*"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
openapi: "3.0.3"
|
||||
|
||||
info:
|
||||
version: 1.434.1
|
||||
version: 1.434.2
|
||||
title: OpenFlow Spec
|
||||
contact:
|
||||
name: Ruben Fiszel
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
RootModule = 'WindmillClient.psm1'
|
||||
|
||||
# Version number of this module.
|
||||
ModuleVersion = '1.434.1'
|
||||
ModuleVersion = '1.434.2'
|
||||
|
||||
# Supported PSEditions
|
||||
# CompatiblePSEditions = @()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "wmill"
|
||||
version = "1.434.1"
|
||||
version = "1.434.2"
|
||||
description = "A client library for accessing Windmill server wrapping the Windmill client API"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://windmill.dev"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "wmill-pg"
|
||||
version = "1.434.1"
|
||||
version = "1.434.2"
|
||||
description = "An extension client for the wmill client library focused on pg"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://windmill.dev"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@windmill/windmill",
|
||||
"version": "1.434.1",
|
||||
"version": "1.434.2",
|
||||
"exports": "./src/index.ts",
|
||||
"publish": {
|
||||
"exclude": ["!src", "./s3Types.ts", "./client.ts"]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "windmill-client",
|
||||
"description": "Windmill SDK client for browsers and Node.js",
|
||||
"version": "1.434.1",
|
||||
"version": "1.434.2",
|
||||
"author": "Ruben Fiszel",
|
||||
"license": "Apache 2.0",
|
||||
"devDependencies": {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
1.434.1
|
||||
1.434.2
|
||||
|
||||
Reference in New Issue
Block a user