mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-15 11:00:47 +02:00
Set up document management for Stirling Engine (#6476)
# Description of Changes Change Stirling Engine to support deleting documents automatically. This happens both on user logout and after an amount of time specified by the Java when ingesting a document (allowing for personal documents to have short lifetimes but org documents to be left in the db with no expiry date). Also sets up an [ACL policy](https://en.wikipedia.org/wiki/Access-control_list) for the documents so the database knows which users have access to which documents. This is not fully implemented in the Java, so currently all docs are treated as having a single owner, the uploader, but theoretically when we need to support org storage, we shouldn't need to change the db schema.
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
from . import tool_models
|
||||
from .base import ApiModel, FileId
|
||||
from .base import ApiModel, FileId, OwnerId, PrincipalId, UserId
|
||||
from .tool_models import OPERATIONS, ParamToolModel, ToolEndpoint
|
||||
|
||||
__all__ = [
|
||||
"ApiModel",
|
||||
"FileId",
|
||||
"OPERATIONS",
|
||||
"OwnerId",
|
||||
"ParamToolModel",
|
||||
"PrincipalId",
|
||||
"ToolEndpoint",
|
||||
"UserId",
|
||||
"tool_models",
|
||||
]
|
||||
|
||||
@@ -5,11 +5,18 @@ from typing import NewType
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from pydantic.alias_generators import to_camel
|
||||
|
||||
# Stable, opaque identifier for a file supplied by the caller. Owned by the caller's
|
||||
# ID strategy (content hash, filesystem path, etc.) and used as the RAG collection key
|
||||
# throughout the engine.
|
||||
# Stable, opaque identifier for a file supplied by the caller
|
||||
FileId = NewType("FileId", str)
|
||||
|
||||
# Stable, opaque identifier for the calling user
|
||||
UserId = NewType("UserId", str)
|
||||
|
||||
# Tenant that owns a document
|
||||
OwnerId = NewType("OwnerId", str)
|
||||
|
||||
# An entity that can hold permissions on a document
|
||||
PrincipalId = NewType("PrincipalId", str)
|
||||
|
||||
|
||||
class ApiModel(BaseModel):
|
||||
"""Base for every contract model crossing a service boundary."""
|
||||
|
||||
Reference in New Issue
Block a user