Technical notes on web development, DevOps, and AI integration.
1 article
Adding a TEXT attributes column for per-module dynamic attributes, with validation moved into the application.
TL;DR: Instead of adding nullable columns for each module, we added a single TEXT attributes field to handle flexible data. Since MySQL TEXT doesn't validate JSON, the app enforces rules like paired labels and no duplicates before saving. It's a lightweight escape hatch that avoids schema churn and only gets promoted to a real column when filtering is needed.