?
APC-64
Created: 2026-02-01 Updated: 2026-02-01
Relationships Loading...
Attachments
Loading...
Comments (4)
QA Agent · 2026-02-01
[QA] ✅ VERIFICATION PASSED Complete verification performed on commit 7063e12. All requirements met: ✅ 68 backend tests passing ✅ 111 frontend tests passing ✅ Database migration clean (single head: 38edcd97e7f9) ✅ All 6 requirements implemented correctly ✅ Already merged to main ✅ Production ready No issues found. Implementation is complete and working as specified. Detailed report: /tmp/qa-APC-64.md
agent · 2026-02-01
## QA Issue Resolution Verified The duplicate migration issue reported by QA has been resolved: **Verification:** - Only one migration file exists: `38edcd97e7f9_add_network_interfaces_table.py` - Alembic shows single head: `38edcd97e7f9` - No duplicate file `6fb33aaff12f_add_network_interfaces_table.py` present **Test Results:** - Backend: 68 config API tests passing - Frontend: 111 tests passing - Migration chain: Clean, single head **Commit:** 7063e12 (APC-64: Add network interface MAC addresses to device form) The feature is complete and merged to main.
QA Agent · 2026-02-01
[QA] FAILED - Critical database migration issue found The feature implementation is functionally complete and all tests pass (68 backend + 111 frontend), but there is a critical issue that must be fixed: **DUPLICATE MIGRATION FILES:** - `38edcd97e7f9_add_network_interfaces_table.py` (committed, correct) - `6fb33aaff12f_add_network_interfaces_table.py` (staged, duplicate) Both migrations have identical content and point to the same parent revision, creating a branching conflict in the migration chain. This will cause deployment failures. **Required fix:** ```bash git restore --staged alembic/versions/6fb33aaff12f_add_network_interfaces_table.py rm alembic/versions/6fb33aaff12f_add_network_interfaces_table.py ``` **What works:** - ✅ Backend: NetworkInterface model, API schemas, all endpoints - ✅ Frontend: Network Interfaces section with add/remove pattern, MAC validation - ✅ All 179 tests pass - ✅ Follows requirements exactly See detailed report: /tmp/qa-APC-64.md
agent · 2026-02-01
## Implementation Complete ### Changes Made **Backend:** - Created `NetworkInterface` model in `app/db/models.py:99-112` with fields: - `device_id` (FK to devices) - `interface_name` (e.g., eth0, eno1, bond0) - `mac_address` (format: XX:XX:XX:XX:XX:XX) - Added Alembic migration `38edcd97e7f9_add_network_interfaces_table.py` - Updated API schemas in `app/api/schemas.py:103-140` with: - `NetworkInterfaceCreate` - for creating interfaces - `NetworkInterfaceResponse` - for API responses - Modified device endpoints in `app/api/config_router.py`: - `list_devices` - includes network interfaces in response - `get_device` - includes network interfaces in response - `create_device` - accepts optional network_interfaces array - `update_device` - replaces network interfaces if provided **Frontend:** - Updated `frontend/src/lib/api.ts:41-52` with NetworkInterface types - Added "Network Interfaces" collapsible section to device form dialog (`frontend/src/components/device-form-dialog.tsx:552-623`) - Uses "add one more" pattern as specified - MAC address validation with regex - Remove individual interface button - Display NIC count in device list on settings page (`frontend/src/app/settings/page.tsx:262-271`) - Updated tests to include `network_interfaces` field in mock data ### Testing - All 68 backend config API tests pass - All 111 frontend tests pass - MAC address validation uses format XX:XX:XX:XX:XX:XX ### Verification The implementation can be verified by: 1. Opening Settings page 2. Editing or creating a device 3. Expanding "Network Interfaces" section 4. Adding interfaces with names and MAC addresses 5. Saving and verifying data persists