fix: update Paperless webhook payload to match include_document format
Build and Push / build (release) Successful in 30s

- Change model field from document_id to id (Paperless sends id)
- Add content, created, modified, added, original_file_name, owner fields
- Add extra="ignore" config to handle additional Paperless fields
- Update sync service to use content from webhook payload
- Skip Paperless API call when content already provided

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-25 14:38:40 +01:00
co-authored by Claude Opus 4.5
parent f4352841a2
commit f2b8c7d111
5 changed files with 70 additions and 33 deletions
+12 -3
View File
@@ -86,13 +86,22 @@ class DocumentUploadResponse(BaseModel):
class PaperlessWebhookPayload(BaseModel):
"""Payload from Paperless-ngx webhook."""
document_id: int = Field(..., description="Paperless document ID")
event: str = Field(..., description="Event type (document_added, document_updated)")
"""Payload from Paperless-ngx webhook (include_document=true format)."""
id: int = Field(..., description="Paperless document ID")
title: Optional[str] = Field(None, description="Document title")
content: Optional[str] = Field(None, description="Document text content")
correspondent: Optional[int] = Field(None, description="Correspondent ID")
document_type: Optional[int] = Field(None, description="Document type ID")
tags: List[int] = Field(default_factory=list, description="Tag IDs")
created: Optional[str] = Field(None, description="Created date")
modified: Optional[str] = Field(None, description="Modified datetime")
added: Optional[str] = Field(None, description="Added datetime")
original_file_name: Optional[str] = Field(None, description="Original filename")
owner: Optional[int] = Field(None, description="Owner user ID")
custom_fields: List[Dict[str, Any]] = Field(default_factory=list, description="Custom fields")
class Config:
extra = "ignore" # Ignore extra fields from Paperless
class WebhookResponse(BaseModel):