SDK

DriveNode

One file or folder of a workspace (`docs/PROTOCOL.md §9`) — the vault's index of it, never its content. Every node has its own DEK, wrapped for its security group in `encrypted_keys`; the name stays sealed in `encrypted_name` until `name_of` opens it on demand (doing it eagerly for a whole page would mean an AES-GCM per row nobody asked for). A folder has no content and no upload fields; a file's `size` is what the vault measured, never just what was declared.

On this page

class

Signature #

class DriveNode(*, node_id: str, workspace_id: str, security_group_id: str, kind: Literal['file', 'folder'] = 'file', status: Literal['pending', 'ready', 'failed'], exam_id: str | None = None, parent_id: str | None = None, mode: Literal['single', 'multipart'] | None = None, media_kind: Literal['image', 'video', 'dicom', 'other'] | None = None, declared_size: int | None = None, size: int | None = None, mime_type: str | None = None, encrypted_name: EncryptedPayload, encrypted_keys: dict[str, EncryptedPayload], storage_path: str | None = None, optimized_variants: list[OptimizedVariant] = [], processing_status: str | None = None, processing_error: str | None = None, total_size: int | None = None, created_by: str, created_at: str, completed_at: str | None = None, is_deleted: bool = False)

Bases: BaseModel

One file or folder of a workspace (docs/PROTOCOL.md §9) — the vault's index of it, never its content.

Every node has its own DEK, wrapped for its security group in encrypted_keys; the name stays sealed in encrypted_name until name_of opens it on demand (doing it eagerly for a whole page would mean an AES-GCM per row nobody asked for). A folder has no content and no upload fields; a file's size is what the vault measured, never just what was declared.

Members #

node_id: str #

attribute

workspace_id: str #

attribute

security_group_id: str #

attribute

kind: Literal['file', 'folder'] = 'file' #

attribute

status: Literal['pending', 'ready', 'failed'] #

attribute

exam_id: str | None = None #

attribute

parent_id: str | None = None #

attribute

mode: Literal['single', 'multipart'] | None = None #

attribute

media_kind: Literal['image', 'video', 'dicom', 'other'] | None = None #

attribute

declared_size: int | None = None #

attribute

size: int | None = None #

attribute

mime_type: str | None = None #

attribute

encrypted_name: EncryptedPayload #

attribute

encrypted_keys: dict[str, EncryptedPayload] #

attribute

storage_path: str | None = None #

attribute

optimized_variants: list[OptimizedVariant] = [] #

attribute

processing_status: str | None = None #

attribute

processing_error: str | None = None #

attribute

total_size: int | None = None #

attribute

created_by: str #

attribute

created_at: str #

attribute

completed_at: str | None = None #

attribute

is_deleted: bool = False #

attribute