feat(portal): anonymize workforce report exports

This commit is contained in:
igor04091968
2026-06-03 15:50:14 +03:00
parent d155aed779
commit 2bf8ecfea8
4 changed files with 112 additions and 14 deletions
+11
View File
@@ -93,6 +93,17 @@ PDF-экспорт выполняется штатной печатью брау
являются portfolio-level объяснением, а не персональной раскладкой приложений.
Это честнее, чем выводить ложную детализацию.
Для коммерческих демо, экспертных проверок и внешних PDF/Markdown материалов
используется режим обезличивания:
- `GET /api/reports?anonymize=1`;
- `GET /api/workforce/policy/explain?anonymize=1`;
- кнопка `Демо без имен` во вкладке `Отчеты`.
В этом режиме `employee_details[].user` и `employee_details[].user_id`
заменяются на `Сотрудник N` и `EMPLOYEE-N`. Live-режим без query-флага
сохраняет реальные имена для внутреннего коммерческого контура DetMir.
Для быстрой загрузки вкладки руководителя explainability-блок доступен отдельным
легким endpoint:
+4
View File
@@ -55,6 +55,10 @@ baseline и раздела `Phase 8: Post-MVP Enhancements`.
`active / plan => index`; per-user app-weight breakdown пока невозможен,
потому что текущий worktime payload отдает приложения только на уровне
портфеля;
- employee drill-down явно помечен как `не персональный weighted KPI`;
- для демо/экспертных PDF и Markdown добавлен режим обезличивания:
`?anonymize=1` на `/api/reports` и `/api/workforce/policy/explain`, плюс
кнопка `Демо без имен` во вкладке `Отчеты`;
- вкладка `Руководитель` получает этот блок через легкий endpoint
`/api/workforce/policy/explain`, без загрузки полного `/api/reports`;
- contract легкого endpoint защищен unit-тестом