Аудит: читаемые имена и «было → стало» вместо сырых данных #28

Merged
rust merged 8 commits from t25_audit_readable into main 2026-09-14 23:36:11 +03:00
Owner

Ссылки на задачи: #25, #29

Замечания владельца в операторской консоли: аудит показывал сырые идентификаторы
(Карточка: c_c6183f1a9ae4, Колонка: b_f52b98e78b55) и разнобой форматов у старых записей
(Изменённые поля: autoMonitorNew и Изменённые поля: ["autoMonitorNew"]), без «было → стало».

Что сделано

«Было → стало» (задача #25)

  • card_moved пишет прежнюю/новую колонку; container_updated — «Имя: было → стало».
  • settings_updated пишет по каждому ключу PATCH «было → стало»; составные значения — пометкой «изменено».
  • Устаревший плоский формат лимитов спаривается (oldBudgetbudgetTokens, oldPeriodperiod).
  • Убран слипшийся пробел в строке изменения (field: from → to).

Читаемые ссылки и единый формат (задача #29)

  • Новый IAuditReferenceResolver/AuditReferenceResolver: в проекции аудита идентификаторы карточек
    (c_…) разрешаются в заголовок, контейнеров (b_…) — в имя колонки. Работает и для старых,
    и для новых записей; чтение идёт в scope нужного тенанта, сбои одного тенанта не ломают страницу.
  • Устаревший список изменённых настроек (fields как JSON-массив) нормализуется к строке через запятую.
  • Фронтенд: ключи настроек подписаны по-русски, служебные колонки (inbox/archive/trash) —
    человекочитаемо, поле «Куда» переименовано в «Колонка».

Живые проверки (локальный докер)

  • card_moved[{"field":"cardId","to":"Бэкенд-разработчик C# .NET"},{"field":"to","to":"C#"}]
  • settings_updated[{"field":"autoMonitorNew","from":"false","to":"true"},{"field":"minLen","from":"24","to":"42"}]
  • старый fields[{"field":"fields","to":"autoMonitorNew"}] (без скобок JSON)

Проверки

  • Сборка 5 решений: 0 ошибок / 0 предупреждений.
  • Тесты core: 1358 (добавлены тесты разбора fields и резолвера ссылок) — зелёные.
  • Фронтенд: npm run build + npm run lint:i18n — чисто.
Ссылки на задачи: [#25](https://gitea.khomegeneric.keenetic.pro/rust/Deal/issues/25), [#29](https://gitea.khomegeneric.keenetic.pro/rust/Deal/issues/29) Замечания владельца в операторской консоли: аудит показывал сырые идентификаторы (`Карточка: c_c6183f1a9ae4`, `Колонка: b_f52b98e78b55`) и разнобой форматов у старых записей (`Изменённые поля: autoMonitorNew` и `Изменённые поля: ["autoMonitorNew"]`), без «было → стало». ## Что сделано **«Было → стало» (задача #25)** - `card_moved` пишет прежнюю/новую колонку; `container_updated` — «Имя: было → стало». - `settings_updated` пишет по каждому ключу PATCH «было → стало»; составные значения — пометкой «изменено». - Устаревший плоский формат лимитов спаривается (`oldBudget` ↔ `budgetTokens`, `oldPeriod` ↔ `period`). - Убран слипшийся пробел в строке изменения (`field: from → to`). **Читаемые ссылки и единый формат (задача #29)** - Новый `IAuditReferenceResolver`/`AuditReferenceResolver`: в проекции аудита идентификаторы карточек (`c_…`) разрешаются в заголовок, контейнеров (`b_…`) — в имя колонки. Работает и для старых, и для новых записей; чтение идёт в scope нужного тенанта, сбои одного тенанта не ломают страницу. - Устаревший список изменённых настроек (`fields` как JSON-массив) нормализуется к строке через запятую. - Фронтенд: ключи настроек подписаны по-русски, служебные колонки (`inbox`/`archive`/`trash`) — человекочитаемо, поле «Куда» переименовано в «Колонка». ## Живые проверки (локальный докер) - `card_moved` → `[{"field":"cardId","to":"Бэкенд-разработчик C# .NET"},{"field":"to","to":"C#"}]` - `settings_updated` → `[{"field":"autoMonitorNew","from":"false","to":"true"},{"field":"minLen","from":"24","to":"42"}]` - старый `fields` → `[{"field":"fields","to":"autoMonitorNew"}]` (без скобок JSON) ## Проверки - Сборка 5 решений: 0 ошибок / 0 предупреждений. - Тесты core: 1358 (добавлены тесты разбора `fields` и резолвера ссылок) — зелёные. - Фронтенд: `npm run build` + `npm run lint:i18n` — чисто.
stepan added 2 commits 2026-09-13 21:08:35 +03:00
Перемещение карточки пишет прежнюю и новую колонку (CardMoveResultDto.From/To), изменение колонки — переименование «было → стало», разбор старого плоского формата спаривает oldBudget/budgetTokens и oldPeriod/period. Добавлены тесты разбора.
stepan requested review from rust 2026-09-13 21:08:36 +03:00
stepan added 2 commits 2026-09-13 21:21:05 +03:00
settings_updated пишет по каждому ключу «поле: было → стало» (скаляры и списки; секреты и снимки состояния — пометкой «изменено»), длинные значения обрезаются.
stepan added 3 commits 2026-09-13 21:39:10 +03:00
stepan changed title from Аудит: показывать изменение «было → стало» to Аудит: читаемые имена и «было → стало» вместо сырых данных 2026-09-13 21:39:19 +03:00
stepan added 1 commit 2026-09-13 21:45:30 +03:00
Author
Owner

Дополнение: изменения без изменения значения (например, Период: Месяц → Месяц из старого формата лимитов)
больше не показываются — в проекции аудита пары «было == стало» отфильтровываются.
Живая проверка: tenant_limit_changed теперь отдаёт только изменившийся бюджет.

Тест: AuditViewFactoryTests.Project_DropsUnchangedValues (core 1363 — зелёные).

Дополнение: изменения без изменения значения (например, `Период: Месяц → Месяц` из старого формата лимитов) больше не показываются — в проекции аудита пары «было == стало» отфильтровываются. Живая проверка: `tenant_limit_changed` теперь отдаёт только изменившийся бюджет. Тест: `AuditViewFactoryTests.Project_DropsUnchangedValues` (core 1363 — зелёные).
rust merged commit dda314cddc into main 2026-09-14 23:36:11 +03:00
rust deleted branch t25_audit_readable 2026-09-14 23:36:11 +03:00
Sign in to join this conversation.