Compare commits

..

2 Commits

Author SHA1 Message Date
Ruben Fiszel
e2953862af chore(main): release 1.591.4 (#7354)
* chore(main): release 1.591.4

* Apply automatic changes

---------

Co-authored-by: rubenfiszel <275584+rubenfiszel@users.noreply.github.com>
2025-12-12 12:27:45 +00:00
Ruben Fiszel
857adf5b63 fix(app): fix raw scripts forbidden by policy if no args 2025-12-12 12:22:35 +00:00
18 changed files with 91 additions and 110 deletions

View File

@@ -1,5 +1,12 @@
# Changelog
## [1.591.4](https://github.com/windmill-labs/windmill/compare/v1.591.3...v1.591.4) (2025-12-12)
### Bug Fixes
* **app:** fix raw scripts forbidden by policy if no args ([857adf5](https://github.com/windmill-labs/windmill/commit/857adf5b63fe243736366c38a7e573678552a99b))
## [1.591.3](https://github.com/windmill-labs/windmill/compare/v1.591.2...v1.591.3) (2025-12-11)

58
backend/Cargo.lock generated
View File

@@ -2166,9 +2166,9 @@ dependencies = [
[[package]]
name = "cmake"
version = "0.1.54"
version = "0.1.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0"
checksum = "d49d74c227b6cc9f3c51a2c7c667a05b6453f7f0f952a5f8e4493bb9e731d68e"
dependencies = [
"cc",
]
@@ -15165,7 +15165,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windmill"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"aws-sdk-config",
@@ -15227,7 +15227,7 @@ dependencies = [
[[package]]
name = "windmill-api"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"argon2",
@@ -15348,7 +15348,7 @@ dependencies = [
[[package]]
name = "windmill-api-client"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"base64 0.22.1",
"chrono",
@@ -15363,7 +15363,7 @@ dependencies = [
[[package]]
name = "windmill-audit"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"chrono",
"lazy_static",
@@ -15377,7 +15377,7 @@ dependencies = [
[[package]]
name = "windmill-autoscaling"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"axum",
@@ -15396,7 +15396,7 @@ dependencies = [
[[package]]
name = "windmill-common"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"async-recursion",
@@ -15489,7 +15489,7 @@ dependencies = [
[[package]]
name = "windmill-git-sync"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"regex",
"serde",
@@ -15504,7 +15504,7 @@ dependencies = [
[[package]]
name = "windmill-indexer"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"bytes",
@@ -15528,7 +15528,7 @@ dependencies = [
[[package]]
name = "windmill-macros"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"itertools 0.14.0",
"lazy_static",
@@ -15544,7 +15544,7 @@ dependencies = [
[[package]]
name = "windmill-parser"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"convert_case 0.6.0",
"serde",
@@ -15553,7 +15553,7 @@ dependencies = [
[[package]]
name = "windmill-parser-bash"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"lazy_static",
@@ -15565,7 +15565,7 @@ dependencies = [
[[package]]
name = "windmill-parser-csharp"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"serde_json",
@@ -15577,7 +15577,7 @@ dependencies = [
[[package]]
name = "windmill-parser-go"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"gosyn",
@@ -15589,7 +15589,7 @@ dependencies = [
[[package]]
name = "windmill-parser-graphql"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"lazy_static",
@@ -15601,7 +15601,7 @@ dependencies = [
[[package]]
name = "windmill-parser-java"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"serde_json",
@@ -15613,7 +15613,7 @@ dependencies = [
[[package]]
name = "windmill-parser-nu"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"nu-parser",
@@ -15624,7 +15624,7 @@ dependencies = [
[[package]]
name = "windmill-parser-php"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"itertools 0.14.0",
@@ -15635,7 +15635,7 @@ dependencies = [
[[package]]
name = "windmill-parser-py"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"itertools 0.14.0",
@@ -15648,7 +15648,7 @@ dependencies = [
[[package]]
name = "windmill-parser-py-imports"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"async-recursion",
@@ -15672,7 +15672,7 @@ dependencies = [
[[package]]
name = "windmill-parser-ruby"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"lazy_static",
@@ -15686,7 +15686,7 @@ dependencies = [
[[package]]
name = "windmill-parser-rust"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"convert_case 0.6.0",
@@ -15703,7 +15703,7 @@ dependencies = [
[[package]]
name = "windmill-parser-sql"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"lazy_static",
@@ -15717,7 +15717,7 @@ dependencies = [
[[package]]
name = "windmill-parser-ts"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"lazy_static",
@@ -15736,7 +15736,7 @@ dependencies = [
[[package]]
name = "windmill-parser-yaml"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"serde",
@@ -15747,7 +15747,7 @@ dependencies = [
[[package]]
name = "windmill-queue"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"async-recursion",
@@ -15784,7 +15784,7 @@ dependencies = [
[[package]]
name = "windmill-sql-datatype-parser-wasm"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"wasm-bindgen",
"wasm-bindgen-test",
@@ -15794,7 +15794,7 @@ dependencies = [
[[package]]
name = "windmill-worker"
version = "1.591.3"
version = "1.591.4"
dependencies = [
"anyhow",
"async-once-cell",

View File

@@ -1,6 +1,6 @@
[package]
name = "windmill"
version = "1.591.3"
version = "1.591.4"
authors.workspace = true
edition.workspace = true
@@ -33,7 +33,7 @@ members = [
exclude = ["./windmill-duckdb-ffi-internal"]
[workspace.package]
version = "1.591.3"
version = "1.591.4"
authors = ["Ruben Fiszel <ruben@windmill.dev>"]
edition = "2021"

View File

@@ -1,7 +1,7 @@
openapi: "3.0.3"
info:
version: 1.591.3
version: 1.591.4
title: Windmill API
contact:

View File

@@ -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.591.3";
export const VERSION = "v1.591.4";
export async function login(email: string, password: string): Promise<string> {
return await windmill.UserService.login({

View File

@@ -70,7 +70,7 @@ export {
// }
// });
export const VERSION = "1.591.3";
export const VERSION = "1.591.4";
export const WM_FORK_PREFIX = "wm-fork";

View File

@@ -27,29 +27,23 @@ export class LockfileGenerationError extends Error {
export async function generateAllMetadata() {}
export async function getRawWorkspaceDependencies(): Promise<
Record<string, string>
> {
export async function getRawWorkspaceDependencies(): Promise<Record<string, string>> {
const rawWorkspaceDeps: Record<string, string> = {};
try {
for await (const entry of Deno.readDir("dependencies")) {
if (entry.isDirectory) continue;
const filePath = `dependencies/${entry.name}`;
const content = await Deno.readTextFile(filePath);
// Find matching language
for (const lang of workspaceDependenciesLanguages) {
if (entry.name.endsWith(lang.filename)) {
// Check if out of sync
const contentHash = await generateHash(content + filePath);
const isUpToDate = await checkifMetadataUptodate(
filePath,
contentHash,
undefined
);
const isUpToDate = await checkifMetadataUptodate(filePath, contentHash, undefined);
if (!isUpToDate) {
rawWorkspaceDeps[filePath] = content;
}
@@ -60,24 +54,19 @@ export async function getRawWorkspaceDependencies(): Promise<
} catch {
// dependencies directory doesn't exist
}
return rawWorkspaceDeps;
return rawWorkspaceDeps;
}
export function workspaceDependenciesPathToLanguageAndFilename(
path: string
): { name: string | undefined; language: ScriptLanguage } | undefined {
const relativePath = path.replace("dependencies/", "");
for (const { filename, language } of workspaceDependenciesLanguages) {
if (relativePath.endsWith(filename)) {
return {
name:
relativePath === filename
? undefined
: relativePath.replace("." + filename, ""),
language,
};
export function workspaceDependenciesPathToLanguageAndFilename(path: string): { name: string | undefined, language: ScriptLanguage } | undefined {
const relativePath = path.replace("dependencies/", "");
for (const { filename, language } of workspaceDependenciesLanguages) {
if (relativePath.endsWith(filename)) {
return {
name: relativePath === filename ? undefined : relativePath.replace("." + filename, ""),
language
};
}
}
}
}
// on windows, when using powershell, blue is not readable
@@ -108,27 +97,24 @@ export async function generateScriptMetadataInternal(
// Filter workspace dependencies to only include those matching the script's language
const filteredRawWorkspaceDependencies: Record<string, string> = {};
for (const [depPath, depContent] of Object.entries(
rawWorkspaceDependencies
)) {
for (const [depPath, depContent] of Object.entries(rawWorkspaceDependencies)) {
const depInfo = workspaceDependenciesPathToLanguageAndFilename(depPath);
if (depInfo && depInfo.language === language) {
filteredRawWorkspaceDependencies[depPath] = depContent;
}
}
const metadataWithType = await parseMetadataFile(remotePath, undefined);
const metadataWithType = await parseMetadataFile(
remotePath,
undefined,
);
// read script content
const scriptContent = await Deno.readTextFile(scriptPath);
const metadataContent = await Deno.readTextFile(metadataWithType.path);
// Note: rawWorkspaceDependencies are now passed in as parameter instead of being searched hierarchically
let hash = await generateScriptHash(
filteredRawWorkspaceDependencies,
scriptContent,
metadataContent
);
let hash = await generateScriptHash(filteredRawWorkspaceDependencies, scriptContent, metadataContent);
if (await checkifMetadataUptodate(remotePath, hash, undefined)) {
if (!noStaleMessage) {
@@ -174,7 +160,7 @@ export async function generateScriptMetadataInternal(
} else {
metadataParsedContent.lock = "";
}
} else if (!opts.schemaOnly || metadataParsedContent.lock != "") {
} else {
metadataParsedContent.lock =
"!inline " + remotePath.replaceAll(SEP, "/") + ".script.lock";
}
@@ -244,13 +230,12 @@ async function updateScriptLock(
return;
}
if (Object.keys(rawWorkspaceDependencies).length > 0) {
const dependencyPaths = Object.keys(rawWorkspaceDependencies).join(", ");
log.info(
`Generating script lock for ${remotePath} with raw workspace dependencies: ${dependencyPaths}`
);
}
if (Object.keys(rawWorkspaceDependencies).length > 0) {
const dependencyPaths = Object.keys(rawWorkspaceDependencies).join(', ');
log.info(`Generating script lock for ${remotePath} with raw workspace dependencies: ${dependencyPaths}`);
}
// generate the script lock running a dependency job in Windmill and update it inplace
// TODO: update this once the client is released
const extraHeaders = getHeaders();
@@ -271,10 +256,8 @@ async function updateScriptLock(
script_path: remotePath,
},
],
raw_workspace_dependencies:
Object.keys(rawWorkspaceDependencies).length > 0
? rawWorkspaceDependencies
: null,
raw_workspace_dependencies: Object.keys(rawWorkspaceDependencies).length > 0
? rawWorkspaceDependencies : null,
entrypoint: remotePath,
}),
}
@@ -560,7 +543,7 @@ export async function parseMetadataFile(
workspaceRemote: Workspace;
schemaOnly?: boolean;
rawWorkspaceDependencies: Record<string, string>;
codebases: SyncCodebase[];
codebases: SyncCodebase[]
})
| undefined
): Promise<{ isJson: boolean; payload: any; path: string }> {
@@ -594,11 +577,7 @@ export async function parseMetadataFile(
metadataFilePath = scriptPath + ".script.yaml";
let scriptInitialMetadata = defaultScriptMetadata();
const lockPath = scriptPath + ".script.lock";
if (generateMetadataIfMissing && !generateMetadataIfMissing?.schemaOnly) {
log.info(`Using inline lock for ${metadataFilePath}`);
scriptInitialMetadata.lock = "!inline " + lockPath;
}
scriptInitialMetadata.lock = "!inline " + lockPath;
const scriptInitialMetadataYaml = yamlStringify(
scriptInitialMetadata as Record<string, any>,
yamlOptions
@@ -607,14 +586,11 @@ export async function parseMetadataFile(
await Deno.writeTextFile(metadataFilePath, scriptInitialMetadataYaml, {
createNew: true,
});
await Deno.writeTextFile(lockPath, "", {
createNew: true,
});
if (generateMetadataIfMissing) {
if (!generateMetadataIfMissing.schemaOnly) {
await Deno.writeTextFile(lockPath, "", {
createNew: true,
});
}
log.info(
(await blueColor())(
`Generating lockfile and schema for ${metadataFilePath}`
@@ -714,9 +690,7 @@ export async function generateScriptHash(
newMetadataContent: string
) {
return await generateHash(
JSON.stringify(rawWorkspaceDependencies) +
scriptContent +
newMetadataContent
JSON.stringify(rawWorkspaceDependencies) + scriptContent + newMetadataContent
);
}

View File

@@ -1,12 +1,12 @@
{
"name": "windmill-components",
"version": "1.591.3",
"version": "1.591.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "windmill-components",
"version": "1.591.3",
"version": "1.591.4",
"hasInstallScript": true,
"license": "AGPL-3.0",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "windmill-components",
"version": "1.591.3",
"version": "1.591.4",
"scripts": {
"dev": "vite dev",
"build": "vite build",

View File

@@ -524,7 +524,7 @@
const requestBody: ExecuteComponentData['requestBody'] = {
args: nonStaticRunnableInputs,
component: id,
force_viewer_static_fields: !isEditor ? undefined : undefinedIfEmpty(staticRunnableInputs),
force_viewer_static_fields: !isEditor ? undefined : staticRunnableInputs,
force_viewer_one_of_fields: !isEditor ? undefined : undefinedIfEmpty(oneOfRunnableInputs),
force_viewer_allow_user_resources: !isEditor
? undefined

View File

@@ -4,8 +4,8 @@ verify_ssl = true
name = "pypi"
[packages]
wmill = ">=1.591.3"
wmill_pg = ">=1.591.3"
wmill = ">=1.591.4"
wmill_pg = ">=1.591.4"
sendgrid = "*"
mysql-connector-python = "*"
pymongo = "*"

View File

@@ -1,7 +1,7 @@
openapi: "3.0.3"
info:
version: 1.591.3
version: 1.591.4
title: OpenFlow Spec
contact:
name: Ruben Fiszel

View File

@@ -12,7 +12,7 @@
RootModule = 'WindmillClient.psm1'
# Version number of this module.
ModuleVersion = '1.591.3'
ModuleVersion = '1.591.4'
# Supported PSEditions
# CompatiblePSEditions = @()

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "wmill"
version = "1.591.3"
version = "1.591.4"
description = "A client library for accessing Windmill server wrapping the Windmill client API"
license = "Apache-2.0"
homepage = "https://windmill.dev"

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "wmill-pg"
version = "1.591.3"
version = "1.591.4"
description = "An extension client for the wmill client library focused on pg"
license = "Apache-2.0"
homepage = "https://windmill.dev"

View File

@@ -1,6 +1,6 @@
{
"name": "@windmill/windmill",
"version": "1.591.3",
"version": "1.591.4",
"exports": "./src/index.ts",
"publish": {
"exclude": ["!src", "./s3Types.ts", "./sqlUtils.ts", "./client.ts"]

View File

@@ -1,7 +1,7 @@
{
"name": "windmill-client",
"description": "Windmill SDK client for browsers and Node.js",
"version": "1.591.3",
"version": "1.591.4",
"author": "Ruben Fiszel",
"license": "Apache 2.0",
"devDependencies": {

View File

@@ -1 +1 @@
1.591.3
1.591.4