Implements comprehensive batch metadata operations to make metadata
management easier for developers who previously could only edit metadata
one file at a time.
New API Endpoints:
1. POST /api/v1/document/batch_set_meta
- Update metadata for multiple documents at once
- Supports partial success (some docs succeed, others fail)
- Returns detailed per-document results
2. POST /api/v1/document/get_meta
- Retrieve metadata for a single document
- Returns doc ID, name, and metadata fields
3. POST /api/v1/document/batch_get_meta
- Retrieve metadata for multiple documents
- Returns metadata for all accessible documents
- Handles authorization and errors per document
4. POST /api/v1/document/list_metadata_fields
- List all unique metadata field names in a knowledge base
- Shows field types, example values, and usage count
- Helps discover existing metadata schema
Features:
- Batch operations reduce API calls and improve UX
- Proper authorization checks for each document
- Type validation (str, int, float only)
- Partial success handling (continues on errors)
- Metadata field discovery for KB-wide analysis
- Comprehensive error handling and reporting
Test Coverage:
✅ 10/10 unit tests passing
- Request validation
- Type checking
- Response structure validation
- Authorization logic
- Partial success handling
- JSON parsing
- Field type tracking
Benefits:
- Batch update 100s of documents in one API call
- Discover metadata schema across entire KB
- Better error handling with per-document results
- Maintains backward compatibility with existing /set_meta
Fixes#11564