mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 00:02:19 +00:00
edece035f8
* feat(EE): job debouncing Signed-off-by: pyranota <pyra@duck.com> * remove 'script' file Signed-off-by: pyranota <pyra@duck.com> * more work Signed-off-by: pyranota <pyra@duck.com> * properly gate it behind enterprise Signed-off-by: pyranota <pyra@duck.com> * update ee repo ref Signed-off-by: pyranota <pyra@duck.com> * change ee repo ref again Signed-off-by: pyranota <pyra@duck.com> * remove unused variable Signed-off-by: pyranota <pyra@duck.com> * feat(EE): implement TODOs and enhance tracing for job debouncing - Add database index on script(workspace_id, debounce_key) for efficient lookups - Update minimum version requirement to 1.564.0 throughout codebase - Add tracing warnings when debouncing is disabled due to worker version mismatch - Fix all documentation links from TODO placeholders to proper URLs - Replace Gauge icon with Timer icon for debouncing UI elements - Update placeholder text and tooltips with clear descriptions Co-authored-by: Pyra <pyranota@users.noreply.github.com> * create -> crate Signed-off-by: pyranota <pyra@duck.com> * remove index Signed-off-by: pyranota <pyra@duck.com> * some updates Signed-off-by: pyranota <pyra@duck.com> * fix once more Signed-off-by: pyranota <pyra@duck.com> * fix it once more Signed-off-by: pyranota <pyra@duck.com> * Remove flow step debouncing, keep top-level flow debouncing - Remove debounce fields from RawScript and FlowScript FlowModuleValue variants - Remove debounce fields from JobPayload::FlowScript and RawCode - Update raw_script_to_payload function signature - Remove debouncing UI from flow step runtime settings - Remove debouncing toggle handler and indicator badge - Preserve top-level flow debouncing in FlowSettings Co-authored-by: Pyra <pyranota@users.noreply.github.com> * cleanup Signed-off-by: pyranota <pyra@duck.com> * fixup claude's work Signed-off-by: pyranota <pyra@duck.com> * cleanup: remove dbg! statements, update min version to 1.566.0, add comprehensive comments - Removed all dbg! macro calls from production code - Updated MIN_VERSION_SUPPORTS_DEBOUNCING from 1.564.0 to 1.566.0 - Added comprehensive documentation comments explaining: - Debouncing feature purpose and mechanics - Database schema for debounce_key and debounce_stale_data tables - Version check logic and guard functions - Improved code clarity and maintainability Co-authored-by: Pyra <pyranota@users.noreply.github.com> * improve fallback Signed-off-by: pyranota <pyra@duck.com> * remove comments from old migration Signed-off-by: pyranota <pyra@duck.com> * fix pull Signed-off-by: pyranota <pyra@duck.com> * fix once more Signed-off-by: pyranota <pyra@duck.com> * Update frontend/src/lib/components/ScriptBuilder.svelte Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * add sqlx cache Signed-off-by: pyranota <pyra@duck.com> * fix: frontend CI - fix debounce field names and remove leftover flow step debouncing - Fix ScriptBuilder.svelte: change custom_debounce_key to debounce_key - Add debounce_key and debounce_delay_s fields to NewScript schema in openapi.yaml - Regenerate frontend types from OpenAPI spec - Remove leftover flow step debouncing code from FlowModuleComponent.svelte - Remove debounce fields from RawScript in openflow.openapi.yaml - Remove unused Timer import from FlowModuleHeader.svelte All frontend checks now passing (0 errors, 0 warnings) Co-authored-by: Pyra <pyranota@users.noreply.github.com> * fix ci Signed-off-by: pyranota <pyra@duck.com> * remove unused import Signed-off-by: pyranota <pyra@duck.com> * fix ci again Signed-off-by: pyranota <pyra@duck.com> * udpate ee repo ref Signed-off-by: pyranota <pyra@duck.com> * CI doesn't want to be fixed but I still try Signed-off-by: pyranota <pyra@duck.com> * nits Signed-off-by: pyranota <pyra@duck.com> * ci... Signed-off-by: pyranota <pyra@duck.com> * Update ee-repo-ref.txt * safer migration Signed-off-by: pyranota <pyra@duck.com> * reduce noise in logs Signed-off-by: pyranota <pyra@duck.com> * fix cli for scripts Signed-off-by: pyranota <pyra@duck.com> * nit Signed-off-by: pyranota <pyra@duck.com> --------- Signed-off-by: pyranota <pyra@duck.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Pyra <pyranota@users.noreply.github.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
172 lines
5.1 KiB
SQL
172 lines
5.1 KiB
SQL
-- SCRIPTS --
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'test-user',
|
|
'def main(x: str = "hey", b: int = 1):
|
|
pass
|
|
',
|
|
'{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"required":[],"type":"object"}',
|
|
'',
|
|
'',
|
|
'f/scripts/script_1', 533400, 'python3', '');
|
|
-- Padded Hex: 0000000000082398
|
|
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'test-user',
|
|
'def main():
|
|
pass
|
|
',
|
|
'{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"required":[],"type":"object"}',
|
|
'',
|
|
'',
|
|
'f/scripts/script_2', 533403, 'python3', '');
|
|
-- Padded Hex: 000000000008239B
|
|
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'test-user',
|
|
'
|
|
def main():
|
|
pass
|
|
',
|
|
'{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"required":[],"type":"object"}',
|
|
'',
|
|
'',
|
|
'f/scripts/script_3', 533404, 'python3', '');
|
|
|
|
|
|
-- Padded Hex: 000000000008239C
|
|
INSERT INTO public.flow(workspace_id, summary, description, path, versions, schema, value, edited_by) VALUES (
|
|
'test-workspace',
|
|
'',
|
|
'',
|
|
'f/flows/flow',
|
|
'{1443253234253454}',
|
|
'{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"properties": {},
|
|
"required": [],
|
|
"type": "object"
|
|
}',
|
|
$tag$
|
|
{
|
|
"modules": [
|
|
{
|
|
"id": "a",
|
|
"value": {
|
|
"type": "rawscript",
|
|
"assets": [],
|
|
"content": "def main(x: str, y: str):\n return x",
|
|
"language": "python3",
|
|
"debounce_delay_s": 2,
|
|
"input_transforms": {
|
|
"x": {
|
|
"type": "static",
|
|
"value": ""
|
|
},
|
|
"y": {
|
|
"type": "static",
|
|
"value": ""
|
|
}
|
|
}
|
|
},
|
|
"continue_on_error": false
|
|
}
|
|
],
|
|
"debounce_delay_s": 2
|
|
}$tag$,
|
|
'system'
|
|
);
|
|
|
|
INSERT INTO public.flow_version(id, workspace_id, path, schema, value, created_by)
|
|
SELECT versions[1], workspace_id, path, schema, value, edited_by FROM flow WHERE path = 'f/flows/flow';
|
|
|
|
-- No top level debouncing
|
|
INSERT INTO public.flow(workspace_id, summary, description, path, versions, schema, value, edited_by) VALUES (
|
|
'test-workspace',
|
|
'',
|
|
'',
|
|
'f/flows/flow_full',
|
|
'{123}',
|
|
'{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"properties": {},
|
|
"required": [],
|
|
"type": "object"
|
|
}',
|
|
$tag$
|
|
{
|
|
"modules": [
|
|
{
|
|
"id": "a",
|
|
"value": {
|
|
"lock": "# py: 3.11\n",
|
|
"type": "rawscript",
|
|
"assets": [],
|
|
"content": "import time\n\ndef main(x: str, y: str):\n time.sleep(30)\n\n return x",
|
|
"language": "python3",
|
|
"concurrent_limit": 1,
|
|
"input_transforms": {
|
|
"x": {
|
|
"type": "static",
|
|
"value": ""
|
|
},
|
|
"y": {
|
|
"type": "static",
|
|
"value": ""
|
|
}
|
|
},
|
|
"concurrency_time_window_s": 5
|
|
},
|
|
"continue_on_error": false
|
|
},
|
|
{
|
|
"id": "b",
|
|
"value": {
|
|
"type": "whileloopflow",
|
|
"modules": [
|
|
{
|
|
"id": "c",
|
|
"value": {
|
|
"lock": "# py: 3.11\n",
|
|
"type": "rawscript",
|
|
"assets": [],
|
|
"content": "# import wmill\n\n\ndef main(x: str):\n return x",
|
|
"language": "python3",
|
|
"input_transforms": {
|
|
"x": {
|
|
"type": "static",
|
|
"value": ""
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "d",
|
|
"value": {
|
|
"type": "rawscript",
|
|
"assets": [],
|
|
"content": "# import wmill\n\n\ndef main(x: str):\n return x",
|
|
"language": "python3",
|
|
"input_transforms": {
|
|
"x": {
|
|
"type": "static",
|
|
"value": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"skip_failures": false
|
|
}
|
|
}
|
|
]
|
|
}$tag$,
|
|
'system'
|
|
);
|
|
|
|
|
|
INSERT INTO public.flow_version(id, workspace_id, path, schema, value, created_by)
|
|
SELECT versions[1], workspace_id, path, schema, value, edited_by FROM flow WHERE path = 'f/flows/flow_full';
|