Reactive EngineeringRE Docs
Архитектура

Модель данных

Трёхслойная модель ИТ-актива и связанные домены.

Три слоя актива

Asset core

Общие поля: permanent code, name, description, type, current state, criticality, org unit, completeness, archive flag и attestation dates. Код генерируется из AssetType.codeMask; при отсутствии mask вводится вручную.

Typed profiles

ProfileТипы активовДля чего нужен
ApplicationProfileInformation systemКласс ИС, RTO/RPO, support, data flags, successor
ComputeProfileVM, physical serverCPU/RAM, OS, environment, hostname и аппаратные поля
StorageVolumeProfileVolume/LUNProvisioned/used GB, pool, replication и дата измерения
LicenseProfileSoftware license, subscriptionMetric, entitled/consumed, срок, vendor и commercial data

Числовые и структурированные поля находятся в profiles, чтобы отчёты не разбирали произвольный JSONB.

Custom attributes

AttributeDefinition описывает поля типа актива. Значения хранятся в Asset.attributes JSONB и валидируются динамической Zod-схемой. GIN index ускоряет JSONB lookup, хотя UI пока не предоставляет отдельные attribute filters.

Метамодель

  • AssetClass — Applications, Infrastructure, Licenses, Other;
  • AssetType — конкретный тип, class, profile, lifecycle и code mask;
  • Lifecycle / LifecycleState — доступные статусы;
  • DictionaryType / DictionaryValue — все перечисления;
  • RelationType — каталог допустимых направленных связей.

В текущей модели нет transition graph. Lifecycle — только список статусов.

Люди и ответственность

OrgUnit образует иерархию подразделений. Person хранит контакты и может быть связан с одним login user. AssetRoleAssignment назначает сотрудника на актив с role, FTE, primary/backup и периодом действия. Завершённые назначения не удаляются.

Производные данные

Не сохраняются отдельно:

  • resource aggregation ИС — считается по PART_OF и Compute profiles;
  • license compliance — считается из entitled/consumed;
  • report datasets — строятся при запросе;
  • FTE utilization — сумма активных назначений;
  • status распределения — агрегация текущего реестра.

Это уменьшает риск расхождения между паспортом и фактическими связями.

On this page