- Add digital_twin_company_id column to tenants table
- Map spifox tenant to its digital-twin companyId
- Pass companyId filter when fetching from digital-twin API
- Return 404 with clear message for unmapped tenants
- Improve API error messages in frontend (show server detail)
The digital-twin API defaults to limit=10 per page. Now fetches with
limit=500 and iterates through all pages using hasNextPage pagination
metadata, ensuring every equipment item is available for import.
Add import, sync, and push capabilities between factoryOps and the
digital-twin (BaSyx AAS) backend. Includes:
- Equipment sync service with field mapping and LWW conflict resolution
- Import preview modal with already-imported detection
- Bidirectional sync (pull updates + push local changes)
- Sync history tracking via equipment_sync_history table
- Machine detail page shows sync status and change history
- Docker networking for container-to-container communication
- UI fixes: responsive layout (375px), touch targets, section spacing
- 30 test cases for sync service