* feat: captures * flow UI and improvements * fix: build * fix sqlx * Move Capture WIP * Add capture to webhook and websocket * Move connection status viewer in the head * change trigger section label * Add popover capture picker using melt ui * Add shortcut to triggers capture from input form * remove capture tab in input * Allways show capture * remove useless logs * Add email capture * Add kafka capture into triggers * Add edit option in capture table * use light header for arg input * Add prefilled group id * Change button label * fix logic * Open resource drawer if prototype has fields * fix default completion * Change name Prototype * Dissociate Editor Mode for triggers * Fix bug for script * Fix apply args * fix apply schema * Add capture table to script * fix apply args * Add capture button for script * Delete capture tab * Set capture on when opening triggers capture * fix connection indicator * fix minor issues * Add preprocessor logic * Use slot in log Panel for captures * handle capture refresh in script * Delete capture tab from script editor * reset kafka resource on toggle static * fix minor issue * Allow resource in kafka capture * use simple capture button in flow * Remove capture panel * Polish route trigger editor * Fix resource saving * Remove excessive padding * merge nits * add workflow_dispatch to build * add workflow_dispatch to build * better capture UI * fix sqlx * fix build * fix build * build * make initial_messages optional in line with db * fix npm check * better handle args for capture webhook and http * improve migration + http capture fixes * fix sqlx * update ee ref --------- Co-authored-by: Guilhem <guilhemlemouel@gmail.com> Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com> Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
66 lines
2.2 KiB
SQL
66 lines
2.2 KiB
SQL
-- Add up migration script here
|
|
CREATE TYPE TRIGGER_KIND AS ENUM ('webhook', 'http', 'websocket', 'kafka', 'email');
|
|
ALTER TABLE capture ADD COLUMN is_flow BOOLEAN NOT NULL DEFAULT TRUE, ADD COLUMN trigger_kind TRIGGER_KIND NOT NULL DEFAULT 'webhook', ADD COLUMN trigger_extra JSONB;
|
|
ALTER TABLE capture ALTER COLUMN is_flow DROP DEFAULT, ALTER COLUMN trigger_kind DROP DEFAULT;
|
|
ALTER TABLE capture DROP CONSTRAINT capture_pkey;
|
|
ALTER TABLE capture ADD COLUMN id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY;
|
|
|
|
DROP POLICY see_own ON capture;
|
|
DROP POLICY see_member ON capture;
|
|
DROP POLICY see_folder_extra_perms_user ON capture;
|
|
|
|
CREATE POLICY see_from_allowed_runnables ON capture FOR ALL TO windmill_user
|
|
USING (
|
|
(capture.is_flow AND EXISTS (
|
|
SELECT 1
|
|
FROM flow
|
|
WHERE flow.workspace_id = capture.workspace_id
|
|
AND flow.path = capture.path
|
|
))
|
|
OR (NOT capture.is_flow AND EXISTS (
|
|
SELECT 1
|
|
FROM script
|
|
WHERE script.workspace_id = capture.workspace_id
|
|
AND script.path = capture.path
|
|
))
|
|
);
|
|
|
|
|
|
CREATE TABLE capture_config (
|
|
workspace_id VARCHAR(50) NOT NULL,
|
|
path VARCHAR(255) NOT NULL,
|
|
is_flow BOOLEAN NOT NULL,
|
|
trigger_kind TRIGGER_KIND NOT NULL,
|
|
trigger_config JSONB NULL,
|
|
owner VARCHAR(50) NOT NULL,
|
|
email VARCHAR(255) NOT NULL,
|
|
server_id VARCHAR(50) NULL,
|
|
last_client_ping TIMESTAMPTZ NULL,
|
|
last_server_ping TIMESTAMPTZ NULL,
|
|
error TEXT NULL,
|
|
PRIMARY KEY (workspace_id, path, is_flow, trigger_kind),
|
|
FOREIGN KEY (workspace_id) REFERENCES workspace(id) ON DELETE CASCADE
|
|
);
|
|
|
|
ALTER TABLE capture_config ENABLE ROW LEVEL SECURITY;
|
|
|
|
CREATE POLICY see_from_allowed_runnables ON capture_config FOR ALL TO windmill_user
|
|
USING (
|
|
(capture_config.is_flow AND EXISTS (
|
|
SELECT 1
|
|
FROM flow
|
|
WHERE flow.workspace_id = capture_config.workspace_id
|
|
AND flow.path = capture_config.path
|
|
))
|
|
OR (NOT capture_config.is_flow AND EXISTS (
|
|
SELECT 1
|
|
FROM script
|
|
WHERE script.workspace_id = capture_config.workspace_id
|
|
AND script.path = capture_config.path
|
|
))
|
|
);
|
|
|
|
|
|
GRANT ALL ON capture_config TO windmill_user;
|
|
GRANT ALL ON capture_config TO windmill_admin;
|