diff --git a/shared/workspaces/workspaces/capability/schema.py b/shared/workspaces/workspaces/capability/schema.py
index dd466cc8513b9dcc1e7f44f9ecb2efbf6698b438..f11ed424c112af2e15f2daeab3c7b33289f420c7 100644
--- a/shared/workspaces/workspaces/capability/schema.py
+++ b/shared/workspaces/workspaces/capability/schema.py
@@ -1329,10 +1329,13 @@ class CapabilityRequest(JSONSerializable):
         )
 
     # Pyramid support method: must accept a "request" argument that is unused by us
-    def __json__(self, request=None) -> dict:
+    def __json__(self, request=None, **kwargs) -> dict:
         # Calculate state to ensure it's up-to-date
         self.determine_state()
 
+        # are we loading files?
+        hide_files = 'hide_files' in kwargs and kwargs['hide_files']
+
         return {
             "type": self.__class__.__name__,
             "id": self.id,
@@ -1344,7 +1347,7 @@ class CapabilityRequest(JSONSerializable):
             "ingested": self.ingested,
             "created_at": self.created_at.isoformat(),
             "updated_at": self.updated_at.isoformat(),
-            "versions": [v.__json__() for v in self.versions],
+            "versions": [v.__json__(hide_files=hide_files) for v in self.versions],
             "status_url": self.status_url,
             "system_messages": self.system_messages,
         }
@@ -1400,7 +1403,8 @@ class CapabilityVersion(JSONSerializable):
         return self.executions[-1] if len(self.executions) else None
 
     # Pyramid support method: must accept a "request" argument that is unused by us
-    def __json__(self, request=None) -> dict:
+    def __json__(self, request=None, **kwargs) -> dict:
+        hide_files = 'hide_files' in kwargs and kwargs['hide_files']
         return {
             "type": self.__class__.__name__,
             "capability_request_id": self.capability_request_id,
@@ -1410,7 +1414,7 @@ class CapabilityVersion(JSONSerializable):
             "parameters": self.parameters,
             "workflow_metadata": self.workflow_metadata,
             "sealed": self.sealed,
-            "files": [file.__json__() for file in self.files],
+            "files": [file.__json__() for file in self.files] if not hide_files else [],
             "capability_name": self.capability.name if self.capability else None,
             "status_url": self.request.status_url,
             "internal_notes": self.internal_notes,
diff --git a/shared/workspaces/workspaces/capability/services/capability_info.py b/shared/workspaces/workspaces/capability/services/capability_info.py
index 04290e4648b4789c47479bc89bf67a35ed7e420d..ada1ac9833da65bb5f6ccfa9d96d4eee9a510e4f 100644
--- a/shared/workspaces/workspaces/capability/services/capability_info.py
+++ b/shared/workspaces/workspaces/capability/services/capability_info.py
@@ -28,7 +28,7 @@ from typing import Dict, List, Optional
 import transaction
 from sqlalchemy import desc, text
 from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy.orm import Session
+from sqlalchemy.orm import Session, selectinload, defer
 
 from workspaces.capability.enums import CapabilityRequestState, QueueState
 from workspaces.capability.helpers_interfaces import ParameterIF
@@ -378,6 +378,7 @@ class CapabilityInfo:
         """
         default_query = (
             self.session.query(CapabilityRequest)
+            .options(selectinload(CapabilityRequest.versions))
             .filter_by(capability_name=capability_name)
             .filter(CapabilityRequest.state != "Complete")
             .filter(CapabilityRequest.sealed == False)
@@ -400,7 +401,7 @@ class CapabilityInfo:
 
         json_list = []
         for request in active_list:
-            json_list.append(request.__json__())
+            json_list.append(request.__json__(hide_files=True))
 
         return {"active_requests": json_list}