diff --git a/backend/.sqlx/query-282afbff89d3186d47ef5dbd0b65026ad37fb31b485fc44b6ec257dd77825428.json b/backend/.sqlx/query-282afbff89d3186d47ef5dbd0b65026ad37fb31b485fc44b6ec257dd77825428.json new file mode 100644 index 0000000000..200bd3155d --- /dev/null +++ b/backend/.sqlx/query-282afbff89d3186d47ef5dbd0b65026ad37fb31b485fc44b6ec257dd77825428.json @@ -0,0 +1,41 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT created_by, coalesce(job_logs.logs, '') as logs, job_logs.log_offset, job_logs.log_file_index\n FROM v2_as_completed_job\n LEFT JOIN job_logs ON job_logs.job_id = v2_as_completed_job.id\n WHERE v2_as_completed_job.id = $1 AND v2_as_completed_job.workspace_id = $2", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "created_by", + "type_info": "Varchar" + }, + { + "ordinal": 1, + "name": "logs", + "type_info": "Text" + }, + { + "ordinal": 2, + "name": "log_offset", + "type_info": "Int4" + }, + { + "ordinal": 3, + "name": "log_file_index", + "type_info": "TextArray" + } + ], + "parameters": { + "Left": [ + "Uuid", + "Text" + ] + }, + "nullable": [ + true, + null, + false, + true + ] + }, + "hash": "282afbff89d3186d47ef5dbd0b65026ad37fb31b485fc44b6ec257dd77825428" +} diff --git a/backend/.sqlx/query-4330f2e24ba625271540adce4bb4a221435179236bdc941c43dbb92fcf9b5fba.json b/backend/.sqlx/query-5820d34be1a7f7b72e656c692f53146f45ad4a6e584e917a0a86280d8f473c10.json similarity index 64% rename from backend/.sqlx/query-4330f2e24ba625271540adce4bb4a221435179236bdc941c43dbb92fcf9b5fba.json rename to backend/.sqlx/query-5820d34be1a7f7b72e656c692f53146f45ad4a6e584e917a0a86280d8f473c10.json index 26f6165efd..b83ec1db19 100644 --- a/backend/.sqlx/query-4330f2e24ba625271540adce4bb4a221435179236bdc941c43dbb92fcf9b5fba.json +++ b/backend/.sqlx/query-5820d34be1a7f7b72e656c692f53146f45ad4a6e584e917a0a86280d8f473c10.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "DELETE FROM v2_job_completed c\n WHERE completed_at + ($1::bigint::text || ' s')::interval <= now()\n RETURNING c.id", + "query": "DELETE FROM v2_job_completed c\n WHERE completed_at <= now() - ($1::bigint::text || ' s')::interval \n RETURNING c.id", "describe": { "columns": [ { @@ -18,5 +18,5 @@ false ] }, - "hash": "4330f2e24ba625271540adce4bb4a221435179236bdc941c43dbb92fcf9b5fba" + "hash": "5820d34be1a7f7b72e656c692f53146f45ad4a6e584e917a0a86280d8f473c10" } diff --git a/backend/.sqlx/query-6e2564dc37ee967c634deade67ceabc4c516418e595dee9cd7d651acc1f4af6e.json b/backend/.sqlx/query-6e2564dc37ee967c634deade67ceabc4c516418e595dee9cd7d651acc1f4af6e.json deleted file mode 100644 index 1ab5672e7d..0000000000 --- a/backend/.sqlx/query-6e2564dc37ee967c634deade67ceabc4c516418e595dee9cd7d651acc1f4af6e.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT\n cj.id AS \"id!\",\n cj.workspace_id AS \"workspace_id!\",\n cj.parent_job,\n cj.created_by AS \"created_by!\",\n cj.duration_ms AS \"duration_ms!\",\n cj.success AS \"success!\",\n cj.script_hash AS \"script_hash!: Option\",\n cj.script_path,\n cj.args AS \"args: sqlx::types::Json>>\",\n cj.result AS \"result: sqlx::types::Json>\",\n cj.deleted AS \"deleted!\",\n cj.canceled AS \"canceled!\",\n cj.canceled_by,\n cj.canceled_reason,\n cj.job_kind AS \"job_kind!: JobKind\",\n cj.schedule_path,\n cj.permissioned_as AS \"permissioned_as!\",\n cj.is_flow_step AS \"is_flow_step!\",\n cj.language AS \"language: ScriptLang\",\n cj.is_skipped AS \"is_skipped!\",\n cj.email AS \"email!\",\n cj.visible_to_owner AS \"visible_to_owner!\",\n cj.mem_peak,\n cj.tag AS \"tag!\",\n cj.created_at AS \"created_at!\",\n cj.started_at,\n job_logs.logs,\n job_logs.log_offset AS \"log_offset?\",\n job_logs.log_file_index\n\n FROM v2_as_completed_job AS cj\n LEFT JOIN job_logs ON cj.id = job_logs.job_id\n WHERE (cj.created_at > $1 AND cj.created_at < $3)\n OR cj.id = ANY($2)\n ORDER BY cj.created_at ASC LIMIT $4", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id!", - "type_info": "Uuid" - }, - { - "ordinal": 1, - "name": "workspace_id!", - "type_info": "Varchar" - }, - { - "ordinal": 2, - "name": "parent_job", - "type_info": "Uuid" - }, - { - "ordinal": 3, - "name": "created_by!", - "type_info": "Varchar" - }, - { - "ordinal": 4, - "name": "duration_ms!", - "type_info": "Int8" - }, - { - "ordinal": 5, - "name": "success!", - "type_info": "Bool" - }, - { - "ordinal": 6, - "name": "script_hash!: Option", - "type_info": "Int8" - }, - { - "ordinal": 7, - "name": "script_path", - "type_info": "Varchar" - }, - { - "ordinal": 8, - "name": "args: sqlx::types::Json>>", - "type_info": "Jsonb" - }, - { - "ordinal": 9, - "name": "result: sqlx::types::Json>", - "type_info": "Jsonb" - }, - { - "ordinal": 10, - "name": "deleted!", - "type_info": "Bool" - }, - { - "ordinal": 11, - "name": "canceled!", - "type_info": "Bool" - }, - { - "ordinal": 12, - "name": "canceled_by", - "type_info": "Varchar" - }, - { - "ordinal": 13, - "name": "canceled_reason", - "type_info": "Text" - }, - { - "ordinal": 14, - "name": "job_kind!: JobKind", - "type_info": { - "Custom": { - "name": "job_kind", - "kind": { - "Enum": [ - "script", - "preview", - "flow", - "dependencies", - "flowpreview", - "script_hub", - "identity", - "flowdependencies", - "http", - "graphql", - "postgresql", - "noop", - "appdependencies", - "deploymentcallback", - "singlescriptflow", - "flowscript", - "flownode", - "appscript" - ] - } - } - } - }, - { - "ordinal": 15, - "name": "schedule_path", - "type_info": "Varchar" - }, - { - "ordinal": 16, - "name": "permissioned_as!", - "type_info": "Varchar" - }, - { - "ordinal": 17, - "name": "is_flow_step!", - "type_info": "Bool" - }, - { - "ordinal": 18, - "name": "language: ScriptLang", - "type_info": { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible", - "csharp", - "oracledb", - "nu", - "java" - ] - } - } - } - }, - { - "ordinal": 19, - "name": "is_skipped!", - "type_info": "Bool" - }, - { - "ordinal": 20, - "name": "email!", - "type_info": "Varchar" - }, - { - "ordinal": 21, - "name": "visible_to_owner!", - "type_info": "Bool" - }, - { - "ordinal": 22, - "name": "mem_peak", - "type_info": "Int4" - }, - { - "ordinal": 23, - "name": "tag!", - "type_info": "Varchar" - }, - { - "ordinal": 24, - "name": "created_at!", - "type_info": "Timestamptz" - }, - { - "ordinal": 25, - "name": "started_at", - "type_info": "Timestamptz" - }, - { - "ordinal": 26, - "name": "logs", - "type_info": "Text" - }, - { - "ordinal": 27, - "name": "log_offset?", - "type_info": "Int4" - }, - { - "ordinal": 28, - "name": "log_file_index", - "type_info": "TextArray" - } - ], - "parameters": { - "Left": [ - "Timestamptz", - "UuidArray", - "Timestamptz", - "Int8" - ] - }, - "nullable": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - false, - true - ] - }, - "hash": "6e2564dc37ee967c634deade67ceabc4c516418e595dee9cd7d651acc1f4af6e" -} diff --git a/backend/.sqlx/query-f22964772dc2d67aee437bbbd08b64792c00da1d713d7ca8f9904ccce7bfdae7.json b/backend/.sqlx/query-f22964772dc2d67aee437bbbd08b64792c00da1d713d7ca8f9904ccce7bfdae7.json deleted file mode 100644 index b3a352de55..0000000000 --- a/backend/.sqlx/query-f22964772dc2d67aee437bbbd08b64792c00da1d713d7ca8f9904ccce7bfdae7.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT\n cj.id AS \"id!\",\n cj.workspace_id AS \"workspace_id!\",\n cj.parent_job,\n cj.created_by AS \"created_by!\",\n cj.duration_ms AS \"duration_ms!\",\n cj.success AS \"success!\",\n cj.script_hash AS \"script_hash!: Option\",\n cj.script_path,\n cj.args AS \"args: sqlx::types::Json>>\",\n cj.result AS \"result: sqlx::types::Json>\",\n cj.deleted AS \"deleted!\",\n cj.canceled AS \"canceled!\",\n cj.canceled_by,\n cj.canceled_reason,\n cj.job_kind AS \"job_kind!: JobKind\",\n cj.schedule_path,\n cj.permissioned_as AS \"permissioned_as!\",\n cj.is_flow_step AS \"is_flow_step!\",\n cj.language AS \"language: ScriptLang\",\n cj.is_skipped AS \"is_skipped!\",\n cj.email AS \"email!\",\n cj.visible_to_owner AS \"visible_to_owner!\",\n cj.mem_peak,\n cj.tag AS \"tag!\",\n cj.created_at AS \"created_at!\",\n cj.started_at,\n job_logs.logs,\n job_logs.log_offset AS \"log_offset?\",\n job_logs.log_file_index\n\n FROM v2_as_completed_job AS cj\n LEFT JOIN job_logs ON cj.id = job_logs.job_id\n WHERE cj.created_at < $1\n ORDER BY cj.created_at ASC LIMIT $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id!", - "type_info": "Uuid" - }, - { - "ordinal": 1, - "name": "workspace_id!", - "type_info": "Varchar" - }, - { - "ordinal": 2, - "name": "parent_job", - "type_info": "Uuid" - }, - { - "ordinal": 3, - "name": "created_by!", - "type_info": "Varchar" - }, - { - "ordinal": 4, - "name": "duration_ms!", - "type_info": "Int8" - }, - { - "ordinal": 5, - "name": "success!", - "type_info": "Bool" - }, - { - "ordinal": 6, - "name": "script_hash!: Option", - "type_info": "Int8" - }, - { - "ordinal": 7, - "name": "script_path", - "type_info": "Varchar" - }, - { - "ordinal": 8, - "name": "args: sqlx::types::Json>>", - "type_info": "Jsonb" - }, - { - "ordinal": 9, - "name": "result: sqlx::types::Json>", - "type_info": "Jsonb" - }, - { - "ordinal": 10, - "name": "deleted!", - "type_info": "Bool" - }, - { - "ordinal": 11, - "name": "canceled!", - "type_info": "Bool" - }, - { - "ordinal": 12, - "name": "canceled_by", - "type_info": "Varchar" - }, - { - "ordinal": 13, - "name": "canceled_reason", - "type_info": "Text" - }, - { - "ordinal": 14, - "name": "job_kind!: JobKind", - "type_info": { - "Custom": { - "name": "job_kind", - "kind": { - "Enum": [ - "script", - "preview", - "flow", - "dependencies", - "flowpreview", - "script_hub", - "identity", - "flowdependencies", - "http", - "graphql", - "postgresql", - "noop", - "appdependencies", - "deploymentcallback", - "singlescriptflow", - "flowscript", - "flownode", - "appscript" - ] - } - } - } - }, - { - "ordinal": 15, - "name": "schedule_path", - "type_info": "Varchar" - }, - { - "ordinal": 16, - "name": "permissioned_as!", - "type_info": "Varchar" - }, - { - "ordinal": 17, - "name": "is_flow_step!", - "type_info": "Bool" - }, - { - "ordinal": 18, - "name": "language: ScriptLang", - "type_info": { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible", - "csharp", - "oracledb", - "nu", - "java" - ] - } - } - } - }, - { - "ordinal": 19, - "name": "is_skipped!", - "type_info": "Bool" - }, - { - "ordinal": 20, - "name": "email!", - "type_info": "Varchar" - }, - { - "ordinal": 21, - "name": "visible_to_owner!", - "type_info": "Bool" - }, - { - "ordinal": 22, - "name": "mem_peak", - "type_info": "Int4" - }, - { - "ordinal": 23, - "name": "tag!", - "type_info": "Varchar" - }, - { - "ordinal": 24, - "name": "created_at!", - "type_info": "Timestamptz" - }, - { - "ordinal": 25, - "name": "started_at", - "type_info": "Timestamptz" - }, - { - "ordinal": 26, - "name": "logs", - "type_info": "Text" - }, - { - "ordinal": 27, - "name": "log_offset?", - "type_info": "Int4" - }, - { - "ordinal": 28, - "name": "log_file_index", - "type_info": "TextArray" - } - ], - "parameters": { - "Left": [ - "Timestamptz", - "Int8" - ] - }, - "nullable": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - false, - true - ] - }, - "hash": "f22964772dc2d67aee437bbbd08b64792c00da1d713d7ca8f9904ccce7bfdae7" -} diff --git a/backend/src/monitor.rs b/backend/src/monitor.rs index f354249ff1..dd29d2bbe1 100644 --- a/backend/src/monitor.rs +++ b/backend/src/monitor.rs @@ -833,7 +833,7 @@ pub async fn delete_expired_items(db: &DB) -> () { Ok(mut tx) => { let deleted_jobs = sqlx::query_scalar!( "DELETE FROM v2_job_completed c - WHERE completed_at + ($1::bigint::text || ' s')::interval <= now() + WHERE completed_at <= now() - ($1::bigint::text || ' s')::interval RETURNING c.id", job_retention_secs )