Admin Specs API
Server routes for spec document management (admin only).
POST /api/admin/specs/upload
Upload a spec document and trigger N8N processing.
Request Body
typescript
{
file: File // Spec PDF file
brandName: string // Brand name
area: string // Area type (e.g., 'guest-room', 'public')
propertyName?: string // Optional property name
}Response
json
{
"specUploadId": "uuid",
"documentId": "uuid",
"status": "pending"
}Flow
- Validate admin role
- Upload file to
specs/{brand}/{upload_id}/{filename} - Create
pip_ai_documentsrow (kind='spec') - Create
pip_ai_spec_uploadsrow - Create
pip_ai_upload_jobsrow - Trigger N8N webhook asynchronously
- Return IDs and status
POST /api/admin/specs/callback
N8N callback after spec processing completes.
Headers
x-webhook-secret: <N8N_WEBHOOK_SECRET>Request Body
typescript
{
spec_upload_id: string
status: 'completed' | 'failed'
sections_count?: number
error?: string
}Flow
- Verify webhook secret
- Update
pip_ai_spec_uploads.processing_status - Update
pip_ai_documents.processing_status - Update
pip_ai_upload_jobs.status
POST /api/admin/specs/retry
Retry a failed spec processing job.
Request Body
typescript
{
specUploadId: string
}Flow
- Validate admin role
- Reset processing status to
pending - Create new upload job
- Re-trigger N8N webhook
Source
server/api/admin/specs/