ObjDocumentSet manages organized collections (sets) of related documents with shared metadata, permissions, and operations.
Module: factory.core/ObjDocumentSet.py
Inherits from: ObjDocument.ObjDocument
Database table: def_document_set
| Field | Type | Description |
|---|---|---|
| SetGuid | VARCHAR | Unique set identifier |
| SetName | VARCHAR | Set name |
| Description | TEXT | Set description |
| ParentSetGuid | VARCHAR | Parent set (for hierarchy) |
| Metadata | JSON | Set metadata |
| Permissions | JSON | Access permissions |
| CreatedBy | VARCHAR | Creator |
| CreatedAt | DATETIME | Creation timestamp |
from ObjDocumentSet import ObjDocumentSet
# Create instance
doc_set = ObjDocumentSet()
# Create new set
set_guid = doc_set.create_set(
name="Q1 Financial Reports",
description="All financial reports for Q1 2026",
metadata={"quarter": "Q1", "year": 2026, "department": "Finance"}
)
# Add documents to set
doc_set.add_document(set_guid, document_guid_1)
doc_set.add_document(set_guid, document_guid_2)
# Create parent set
parent_guid = doc_set.create_set("2026 Reports")
# Create child set
child_guid = doc_set.create_set(
name="Q1 Reports",
parent_guid=parent_guid
)
# Get set hierarchy
hierarchy = doc_set.get_set_hierarchy(parent_guid)
# Get all documents in set
documents = doc_set.get_documents(set_guid)
# Search within set
results = doc_set.search_in_set(
set_guid=set_guid,
query="budget analysis"
)
# Export entire set
doc_set.export_set(
set_guid=set_guid,
format="zip",
destination="/exports/q1_reports.zip"
)
# Delete set (optionally delete documents)
doc_set.delete_set(set_guid, delete_documents=False)
ObjDocument.py - Individual document managementObjDocuments.py - Bulk document operationsObjDocumentStore.py - Document storage