Pouzor
|
3d89ba3b6f
|
feat: replace static hardware fields with dynamic node properties
Replaces the 4 fixed hardware columns (cpu_count, cpu_model, ram_gb,
disk_gb) with a flexible properties system. Each property has a key,
value, icon (from a curated Lucide picker), and a visibility toggle
that controls whether it appears on the canvas node card.
- Backend: add `properties` JSON column to Node model; data migration
converts existing hardware rows to properties with correct icons
(idempotent, old columns kept for safety)
- Backend: add `properties` to NodeBase, NodeUpdate, NodeSave schemas
and canvasSerializer so values survive canvas save/load
- Frontend: add NodeProperty type; new propertyIcons.ts registry (20
icons); BaseNode renders visible properties with legacy hardware
fallback for unmigrated nodes
- Frontend: DetailPanel gains interactive properties section (add /
edit / remove / toggle visibility / icon picker) replacing the
read-only hardware block; hardware section removed from NodeModal
- Tests: 6 migration tests, 7 API tests, 8 DetailPanel property tests,
6 BaseNode render/fallback tests, 9 propertyIcons util tests
|
2026-04-09 13:47:36 +02:00 |
|