diff --git a/backend/sqlx-data.json b/backend/sqlx-data.json index 21c3c7a116..6d1fa8060f 100644 --- a/backend/sqlx-data.json +++ b/backend/sqlx-data.json @@ -85,7 +85,7 @@ { "name": "value", "ordinal": 6, - "type_info": "Jsonb" + "type_info": "Json" }, { "name": "created_at", @@ -692,32 +692,6 @@ }, "query": "SELECT * FROM workspace_settings WHERE workspace_id = $1" }, - "17c2a1abcff52cfb39ae55cfafb6b5945bb87eebfdb2e030e7de3db938d0c6c9": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Left": [ - "Varchar", - "Varchar", - "Jsonb", - { - "Custom": { - "kind": { - "Enum": [ - "script", - "flow", - "app" - ] - }, - "name": "draft_type" - } - } - ] - } - }, - "query": "INSERT INTO draft\n (workspace_id, path, value, typ)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3" - }, "187a27d18f78f068319a0ec684f71a76c49dd09c5c74c2c777e35233c4f5a281": { "describe": { "columns": [ @@ -1229,6 +1203,28 @@ }, "query": "SELECT set_config('session.folders_read', $1, true)" }, + "2a3992b5e9abcfbb032d10e142d98efa969dae26a7242eb7ac12593ed5421ef3": { + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Int8" + } + ], + "nullable": [ + false + ], + "parameters": { + "Left": [ + "Int8", + "Text", + "Varchar" + ] + } + }, + "query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2::text::json, $3) RETURNING id" + }, "2a3ebe1b0eae5b2164894321e138cc4dc0293788aeb98d05d95d18dfc708d6a6": { "describe": { "columns": [], @@ -1386,6 +1382,32 @@ }, "query": "UPDATE folder SET owners = array_append(owners, $1) WHERE name = $2 AND workspace_id = $3 AND NOT $1 = ANY(owners) RETURNING name" }, + "366609f7e7fbd73ea807128b931eff2f1ab763fa630c8531f590fed2110c03d9": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Varchar", + "Varchar", + "Text", + { + "Custom": { + "kind": { + "Enum": [ + "script", + "flow", + "app" + ] + }, + "name": "draft_type" + } + } + ] + } + }, + "query": "INSERT INTO draft\n (workspace_id, path, value, typ)\n VALUES ($1, $2, $3::text::json, $4)\n ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3::text::json" + }, "372b0a81d37b6874727c1aa4dc1bec17f9475a5f446e8987ab7359f55b96436e": { "describe": { "columns": [], @@ -1729,7 +1751,7 @@ { "name": "value", "ordinal": 6, - "type_info": "Jsonb" + "type_info": "Json" }, { "name": "created_at", @@ -3235,6 +3257,28 @@ }, "query": "UPDATE group_ SET summary = $1 WHERE name = $2 AND workspace_id = $3" }, + "83d18f4e1cda2c1867168551d855d5626e766b5469c6976c986bdafc8b9407c5": { + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Int8" + } + ], + "nullable": [ + false + ], + "parameters": { + "Left": [ + "Int8", + "Text", + "Varchar" + ] + } + }, + "query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2::text::json, $3) RETURNING id" + }, "84bbd11f7bb0c65dcfb2e12038b8a9cb51d303480ac3c5f8a5e833a53c40ed9b": { "describe": { "columns": [], @@ -4179,7 +4223,7 @@ { "name": "value", "ordinal": 6, - "type_info": "Jsonb" + "type_info": "Json" }, { "name": "created_at", @@ -5560,7 +5604,7 @@ { "name": "value", "ordinal": 6, - "type_info": "Jsonb" + "type_info": "Json" }, { "name": "created_at", @@ -5659,28 +5703,6 @@ }, "query": "SELECT name, (EXISTS (SELECT 1 FROM (SELECT key, value FROM jsonb_each_text(extra_perms) WHERE key = ANY($1)) t WHERE value::boolean IS true)) as write, $1 && owners::text[] as owner FROM folder\n WHERE extra_perms ?| $1 AND workspace_id = $2" }, - "d47bff7d6b54cd6da8bb330f7321c37af5dcbd76f9acad73b5ba1b8a4afb5091": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Int8" - } - ], - "nullable": [ - false - ], - "parameters": { - "Left": [ - "Int8", - "Jsonb", - "Varchar" - ] - } - }, - "query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2, $3) RETURNING id" - }, "d4bf68b4c2bfd11db84787e41e92c13612fda7352e841f3cdef45ea762588f04": { "describe": { "columns": [], @@ -5726,28 +5748,6 @@ }, "query": "DELETE FROM resource_type WHERE name = $1 AND workspace_id = $2" }, - "d68eaf1533bbe9052f6b1737e2f212c969a18c9d7840fe419c20995404ed0be8": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Int8" - } - ], - "nullable": [ - false - ], - "parameters": { - "Left": [ - "Int8", - "Jsonb", - "Varchar" - ] - } - }, - "query": "INSERT INTO app_version\n (app_id, value, created_by)\n VALUES ($1, $2, $3) RETURNING id" - }, "d697b7311430e7bd5375ec5494179f4071e3bfe123d9600249cfa80c1103edd8": { "describe": { "columns": [], @@ -6500,7 +6500,7 @@ { "name": "value", "ordinal": 6, - "type_info": "Jsonb" + "type_info": "Json" }, { "name": "created_at", @@ -6520,7 +6520,7 @@ { "name": "draft?", "ordinal": 10, - "type_info": "Jsonb" + "type_info": "Json" } ], "nullable": [ diff --git a/backend/windmill-api/src/apps.rs b/backend/windmill-api/src/apps.rs index 8ab0e6fa19..b9b658f63f 100644 --- a/backend/windmill-api/src/apps.rs +++ b/backend/windmill-api/src/apps.rs @@ -424,9 +424,10 @@ async fn create_app( let v_id = sqlx::query_scalar!( "INSERT INTO app_version (app_id, value, created_by) - VALUES ($1, $2, $3) RETURNING id", + VALUES ($1, $2::text::json, $3) RETURNING id", id, - app.value, + //to preserve key orders + serde_json::to_string(&app.value).unwrap(), authed.username, ) .fetch_one(&mut tx) @@ -610,9 +611,10 @@ async fn update_app( let v_id = sqlx::query_scalar!( "INSERT INTO app_version (app_id, value, created_by) - VALUES ($1, $2, $3) RETURNING id", + VALUES ($1, $2::text::json, $3) RETURNING id", app_id, - nvalue, + //to preserve key orders + serde_json::to_string(&nvalue).unwrap(), authed.username, ) .fetch_one(&mut tx) diff --git a/backend/windmill-api/src/drafts.rs b/backend/windmill-api/src/drafts.rs index ee2f1f7b49..667a47cea8 100644 --- a/backend/windmill-api/src/drafts.rs +++ b/backend/windmill-api/src/drafts.rs @@ -56,11 +56,12 @@ async fn create_draft( sqlx::query!( "INSERT INTO draft (workspace_id, path, value, typ) - VALUES ($1, $2, $3, $4) - ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3", + VALUES ($1, $2, $3::text::json, $4) + ON CONFLICT (workspace_id, path, typ) DO UPDATE SET value = $3::text::json", &w_id, draft.path, - draft.value, + //to preserve key orders + serde_json::to_string(&draft.value).unwrap(), draft.typ: DraftType, ) .execute(&mut tx)