6ede33ccdb
Build and Push Docker Images / create_manifest (web, surfsense-web, , cpu) (push) Has been cancelled
Build and Push Docker Images / finalize_release (push) Has been cancelled
Obsidian Plugin Lint / lint (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, cpu, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64, , runner, false, cpu) (push) Has been cancelled
Build and Push Docker Images / compute_version (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cpu, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, , production, false, cpu) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu126, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda126, production, true, cuda126) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, cu128, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64, -cuda, production, true, cuda) (push) Has been cancelled
Build and Push Docker Images / verify_digests (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, , cpu) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda, cuda) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend, -cuda126, cuda126) (push) Has been cancelled
65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
"""Schemas for Google Drive connector."""
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class DriveItem(BaseModel):
|
|
"""Represents a Google Drive file or folder."""
|
|
|
|
id: str = Field(..., description="Google Drive item ID")
|
|
name: str = Field(..., description="Item display name")
|
|
|
|
|
|
class GoogleDriveIndexingOptions(BaseModel):
|
|
"""Indexing options for Google Drive connector."""
|
|
|
|
max_files_per_folder: int = Field(
|
|
default=100,
|
|
ge=1,
|
|
le=1000,
|
|
description="Maximum number of files to index from each folder (1-1000)",
|
|
)
|
|
incremental_sync: bool = Field(
|
|
default=True,
|
|
description="Only sync changes since last index (faster). Disable for a full re-index.",
|
|
)
|
|
include_subfolders: bool = Field(
|
|
default=True,
|
|
description="Recursively index files in subfolders of selected folders",
|
|
)
|
|
|
|
|
|
class GoogleDriveIndexRequest(BaseModel):
|
|
"""Request body for indexing Google Drive content."""
|
|
|
|
folders: list[DriveItem] = Field(
|
|
default_factory=list, description="List of folders to index"
|
|
)
|
|
files: list[DriveItem] = Field(
|
|
default_factory=list, description="List of specific files to index"
|
|
)
|
|
indexing_options: GoogleDriveIndexingOptions = Field(
|
|
default_factory=GoogleDriveIndexingOptions,
|
|
description="Indexing configuration options",
|
|
)
|
|
|
|
def has_items(self) -> bool:
|
|
"""Check if any items are selected."""
|
|
return len(self.folders) > 0 or len(self.files) > 0
|
|
|
|
def get_folder_ids(self) -> list[str]:
|
|
"""Get list of folder IDs."""
|
|
return [folder.id for folder in self.folders]
|
|
|
|
def get_folder_names(self) -> list[str]:
|
|
"""Get list of folder names."""
|
|
return [folder.name for folder in self.folders]
|
|
|
|
def get_file_ids(self) -> list[str]:
|
|
"""Get list of file IDs."""
|
|
return [file.id for file in self.files]
|
|
|
|
def get_file_names(self) -> list[str]:
|
|
"""Get list of file names."""
|
|
return [file.name for file in self.files]
|