Справочники и метамодель
Настройка перечислений, типов активов, полей и статусов.
Dictionaries
Каждое перечисление хранится как DictionaryType → DictionaryValue, а не как
database enum или строка в коде. Value содержит code, name, description, color,
order, active/system flags, optional parent и meta.
Правила:
- type code постоянен;
- value code можно менять, но seed может восстановить original system code;
- archive сохраняет ссылки;
- hard delete возможен только для неиспользуемого value;
- hierarchy защищена от циклов;
- system type нельзя удалить.
Для удаления нужен dictionaries.delete, для create/edit/archive —
dictionaries.write.
Asset types
Asset type определяет class, profile, lifecycle и code mask. Attributes задают data type, dictionary source, required/filterable flags, group и validation.
Изменение permanent code может сломать business rules — UI не предоставляет обычный update path. Перед публикацией нового типа проверьте dynamic form preview.
Lifecycles
Lifecycle содержит states, включая initial/operational/final flags. Transition graph удалён: все states доступны из любого текущего состояния. Не описывайте business approval только порядком statuses — приложение его не enforce.
Seed и customization
Seed запускается при production startup. Для редактируемых system records он не перезаписывает значения, помеченные как customized. Permissions, system roles, AssetRole и RelationType не имеют edit UI и обновляются seed-upsert.
Когда нужен код
UI достаточно для нового dictionary/type/custom attribute/lifecycle state. Изменение требует release, если нужно:
- новое typed profile с числовой логикой;
- новое автоматическое license calcRule;
- новый relation type;
- изменение
DictionaryValue.meta, например OS EOS; - новый системный AssetRole;
- новая permission или report.

