From 373d8085a7bcdc41f977dd12f5ffd2f6833a5fb4 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 7 Aug 2022 14:04:17 +0200 Subject: [PATCH] do rate limit based on as_permissioned_as --- backend/sqlx-data.json | 84 +++++++++++++++++++++--------------------- backend/src/jobs.rs | 8 ++-- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/backend/sqlx-data.json b/backend/sqlx-data.json index 5bd47dff36..796dfd2238 100644 --- a/backend/sqlx-data.json +++ b/backend/sqlx-data.json @@ -1893,27 +1893,6 @@ ] } }, - "8dbab3cc7d25a38301c54756a26827a0957c4edb5e68b788c19d3e60b5f038ea": { - "query": "SELECT COUNT(id) FROM queue WHERE created_by = $1 AND workspace_id = $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "count", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Text", - "Text" - ] - }, - "nullable": [ - null - ] - } - }, "8ede6fb740b145b3a8320adb789500870c7a8ec807a7b156b9ff7a15791b78f8": { "query": "DELETE FROM usr WHERE workspace_id = $1 AND username = $2", "describe": { @@ -2047,6 +2026,27 @@ ] } }, + "92ee6274b2287bc4d368bfdb47d6452df75bd265cdd891f55112df2795294dac": { + "query": "SELECT COUNT(id) FROM queue WHERE permissioned_as = $1 AND workspace_id = $2", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [ + null + ] + } + }, "9490a4388f43e45e32911f1129e623f2d73ce2da7a948fe134bea1c87cdbefd1": { "query": "SELECT value from resource WHERE path = $1 AND (workspace_id = $2 OR workspace_id = 'starter')", "describe": { @@ -2795,27 +2795,6 @@ ] } }, - "d9beef36b05f9889794d0eb9bae309974abc85240305ca154de25a54bc7d60f9": { - "query": "\n SELECT SUM(duration_ms)\n FROM completed_job\n WHERE created_by = $1\n AND created_at > NOW() - INTERVAL '1200 seconds'\n AND workspace_id = $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "sum", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Text", - "Text" - ] - }, - "nullable": [ - null - ] - } - }, "d9c8f6ec7bd10e533876526255c15e376ccb4f898b9c0ab8840b2930bda24fdc": { "query": "SELECT * FROM group_ WHERE name = $1 AND workspace_id = $2", "describe": { @@ -2963,6 +2942,27 @@ ] } }, + "e69142610bd94f6c65022cca5ccf7458b7c5bb77b3ed0278715222dd920d8644": { + "query": "\n SELECT SUM(duration_ms)\n FROM completed_job\n WHERE permissioned_as = $1\n AND created_at > NOW() - INTERVAL '1200 seconds'\n AND workspace_id = $2", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "sum", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [ + null + ] + } + }, "e94abd39ec51b7e0c48c190d47ed766fd4f401187c3b60b3e599426c95232f7f": { "query": "UPDATE queue SET last_ping = $1 WHERE id = $2", "describe": { diff --git a/backend/src/jobs.rs b/backend/src/jobs.rs index 0d56d3935a..1e9fd5e953 100644 --- a/backend/src/jobs.rs +++ b/backend/src/jobs.rs @@ -1049,8 +1049,8 @@ pub async fn push<'c>( if !premium_workspace && std::env::var("CLOUD_HOSTED").is_ok() { let rate_limiting_queue = sqlx::query_scalar!( - "SELECT COUNT(id) FROM queue WHERE created_by = $1 AND workspace_id = $2", - user, + "SELECT COUNT(id) FROM queue WHERE permissioned_as = $1 AND workspace_id = $2", + permissioned_as, workspace_id ) .fetch_one(&mut tx) @@ -1070,10 +1070,10 @@ pub async fn push<'c>( " SELECT SUM(duration_ms) FROM completed_job - WHERE created_by = $1 + WHERE permissioned_as = $1 AND created_at > NOW() - INTERVAL '1200 seconds' AND workspace_id = $2", - user, + permissioned_as, workspace_id ) .fetch_one(&mut tx)