diff --git a/apps/api/libs/database/src/helpers/mod.rs b/apps/api/libs/database/src/helpers/mod.rs
index 373a58ab2..e4edfcdcc 100644
--- a/apps/api/libs/database/src/helpers/mod.rs
+++ b/apps/api/libs/database/src/helpers/mod.rs
@@ -1,6 +1,7 @@
pub mod collections;
pub mod dashboard_files;
pub mod metric_files;
+pub mod report_files;
pub mod chats;
pub mod organization;
pub mod test_utils;
diff --git a/apps/api/libs/database/src/helpers/report_files.rs b/apps/api/libs/database/src/helpers/report_files.rs
new file mode 100644
index 000000000..1994c8795
--- /dev/null
+++ b/apps/api/libs/database/src/helpers/report_files.rs
@@ -0,0 +1,155 @@
+use crate::enums::{AssetPermissionRole, AssetType};
+use anyhow::Result;
+use diesel::JoinOnDsl;
+use diesel::{BoolExpressionMethods, ExpressionMethods, QueryDsl, Queryable};
+use diesel_async::RunQueryDsl;
+use tokio::try_join;
+use uuid::Uuid;
+
+use crate::models::{AssetPermission, ReportFile};
+use crate::pool::get_pg_pool;
+use crate::schema::{asset_permissions, collections_to_assets, report_files};
+
+/// Fetches a single report file by ID that hasn't been deleted
+///
+/// # Arguments
+/// * `id` - The UUID of the report file to fetch
+///
+/// # Returns
+/// * `Result