Перейти к основному содержимому

Релиз 2.12.0 — одна модель прав без дыр, багрепорты и версия системы в интерфейсе, ИИ-анализ периода

Дата релиза: 2026-10-05

Этот релиз — про фундамент платформы: после сквозного аудита права доступа живут в одной модели вместо разрозненных проверок, а все найденные по пути дыры закрыты. Сверху — интерфейсы, которых ждали пользователи: отправить баг, не выходя со страницы, видеть запущенную версию в футере и спрашивать ИИ про любой период, а не только про один день.

Релиз 2.12.0 — одна модель прав

В релиз вошли следующие компоненты:

PanDev Metrics Core​

Версия: 5.12.0

PanDev Metrics Web (бэкофис)​

Версия: 2.12.0

CLI, расширение Chrome и плагины IDE в этом релизе не меняются — их актуальные версии те же, что вышли с 2.11.0 (CLI 2.5.16, Chrome 3.3.0, Cursor / Antigravity 2.5.0, DBeaver 1.2.0, Eclipse 1.4.5).

Главное​

  • Одна модель прав — и закрытые дыры. Роли и доступ переработаны целиком: золотая матрица доступа как гейт для всех дальнейших изменений, одна политика AccessPolicy в Core вместо проверок в каждом эндпоинте, правила выдачи ролей, которые не дают выдать права выше своих, и сторож в CI, который обходит все ручки /api/** и ищет те, где нет проверки департамента или компании.
  • Больше никаких «пользователь без прав открыл страницу». Переработка началась с аудита безопасности, поэтому закрывает конкретные дыры, а не только наводит порядок в коде: мейнтейнер мог выдать роли выше своих и пригласить людей; ручка приглашения доверяла вызывающему; у ручек /excel-statics проверки прав не было вовсе, и любой вошедший мог выгрузить отчёт по любому департаменту и отправить Excel на любые адреса; «чистый» тимлид получал 403 на списке департаментов; ADMIN компании не видел секцию DORA, а владелец департамента — «Календарь».
  • Багрепорты из самого приложения. Кнопка бага собирает отчёт с диагностикой клиента — без пересылки скриншотов и без «опишите, пожалуйста, ваше окружение».
  • Запущенная версия — в футере. Версии фронта и Core с индикатором, когда доступен более новый образ.
  • ИИ-анализ за период, а не только за день. Спросите про диапазон дат и получите агрегированные метрики активности в модальном окне; эндпоинт ежедневного анализа расширен под тот же контракт.
  • Task Flow, который ведёт себя при фильтрах. Перетаскивание работает с включённым «Назначено мне» и другими фильтрами, секция релиза появляется при создании задачи, а перенос карточки между колонками отвечает заметно быстрее.
  • Виджет встреч переработан, и «Время активности» в сводке дня наконец учитывает время встреч — день менеджера на звонках больше не выглядит пустым.
  • Интеграции сами сообщают о сбоях. Неудачные подключения интеграций попадают в таблицу ошибок, вебхуки Jira Server/DC снова работают на старых версиях Jira, а Jira 11 больше не падает на HTML-ответе.
  • Быстрее там, где болело: список релизов вернулся к доле секунды после регресса до 3 с, сводка финансов — меньше 10 с, а перенос карточек задач больше не ждёт медленного ответа.

PanDev Metrics Core 5.12.0​

Права без дыр: золотая матрица, AccessPolicy, выдача по старшинству, сторож в CI

  • Одна политика доступа. Permission и AccessPolicy заменяют разрозненные проверки в эндпоинтах: пилот на графиках, канбане и «админе компании», затем раскатка на все фасады и SecurityConfig. Теперь у авторизации одно место, где её читать, и одно, где менять.
  • Золотая матрица доступа — снимок того, кому что можно, зафиксированный как гейт для всех последующих изменений: регресс прав падает громко, а не уезжает тихо.
  • Выдача ролей по старшинству. Давать и снимать можно только роли ниже своей и только тем, кто ниже вас; OWNER департамента может и выдать, и снять OWNER у другого OWNER; «глава» департамента становится подписью без прав и назначается вручную. ADMIN компании может назначить себе любую роль в департаменте и вступить с любой ролью.
  • Укреплённые приглашения и членство. Приглашение v1 проверяет права (роль и компанию департамента), мейнтейнер больше не может пригласить выше своего уровня, при регистрации не появляется дубль строки членства в первом департаменте (cloud), а изменение членства — одна операция: перевод с ролью, правила главы и последнего владельца, приглашение существующего человека.
  • Роли в токене — из базы. Токен приложения берёт роли и компании, и департаментов из базы вместо тела токена, бессрочный токен плагина не теряет роли компании, выборка ролей департаментов сверяет компанию самого человека, а refresh-токен принимается только на входе, выходе и смене компании.
  • Меньше лишних чтений на запрос. Версия ролей едет в токене вместо чтения jwt_token на каждый веб-запрос, а протухшие строки jwt_token вычищаются.
  • Сторож в CI над всем API. Реестр ручек /api/** со сторожем в CI валит сборку, когда появляется новая ручка без проверки департамента или компании — механизм, который не даёт дырам вернуться.
  • Правила видимости — по одному на понятие. Видимость департаментов в списках v1/v3, карточке и на досках Task Flow подчиняется одному правилу; видимость людей — одно правило для списка, справочника, карточек и графиков; для записи нужен участник и выше, Viewer только читает.
  • Изоляция тенантов и утечки данных. Чтение данных другого тенанта, скоуп TENANT, расход ИИ коллег и проект чужой компании закрыты в рамках аудита — вместе с «Task Flow в чужом департаменте».
  • Качество данных и интеграции. GitLab-поллинг корректно сохраняет курсор нового проекта (в text[], а не jsonb), отказы подключений попадают в таблицу ошибок, пути вебхуков Jira Server/DC верны для legacy Jira, Jira 11 терпит HTML-ответ и читает исполнителя на Cloud, а /api/v1/roles отдаёт пустые списки вместо null, чтобы страница «Сотрудники» не падала у не-админов.
  • Производительность. Список релизов вернул счётчики по статусам в SQL и вернулся с 3 с, а сводка финансов перестала грузиться дольше 10 с.
  • Читаемый и тестируемый код. Тесты ChartsFacade больше не зависят от чужого SecurityContext, а JWT-фильтры работают только в своих цепочках — убран корень двойной проверки.

PanDev Metrics Web 2.12.0​

Сообщить о баге и версия системы в футере

  • Багрепорт в интерфейсе. Кнопка бага открывает отчёт с собранной диагностикой клиента и остаётся доступной даже когда UI-ошибка занимает весь экран — ровно тогда, когда отчёт нужнее всего.
  • Версия системы в футере. Версии фронта и Core с подсказкой об обновлении, когда есть более новый релиз, и приведённая в порядок вёрстка футера (исправлены наложения на Windows 11 и Mac 14"/15").

ИИ-анализ за любой период

  • ИИ-анализ периода. Модальное окно анализа периода показывает агрегированные метрики активности за выбранный диапазон, а PeriodAnalysisModal отрефакторен в тонкие компоненты.

Время активности учитывает встречи

  • Встречи и активность. Виджет «Активность встреч» переработан, время активности в сводке дня учитывает встречи, а ось «сегодня» синхронизирована между таймлайном задач и виджетами активности.
  • Редактор документации. Исправлено: редактирование больше не удаляет записи; тултип упоминания через @ указывает на нужное; сам редактор в стиле Notion отполирован.
  • Task Flow. Релиз предлагается при создании задачи или бага, перетаскивание работает с включёнными фильтрами, перенос карточек между колонками быстрее, а NaN больше не попадает в api/v1/dashboards/NaN/releases.
  • Организация в сайдбаре. Пользователи, департаменты и команды собраны в одну папку «Организация», а в навигационном меню у секций со вложенными всегда видна стрелка ›.
  • Роли в интерфейсе. Экран «Пользователи» показывает и меняет роли, владелец департамента может изменить роль администратора компании в своём департаменте, «Разработчик» переименован в «Участника», устаревшая роль MANAGER убрана, а меню — объединение ролей вместо прежних меню по ролям.
  • Фронт выровнен по новой модели прав бэкенда — включая поле ставки в карточке сотрудника и крайний случай «пригласить себя», чтобы интерфейс и Core одинаково понимали, кому что можно.
  • Единообразные элементы управления. Одно правило и более яркое отображение тогглов, иконка User Story зелёная, а ошибки интеграций больше не показываются текстами YouTrack.
  • Качество жизни. Фильтр диапазона сохраняется при переходе от команды к людям, выпадающий список команд на метриках команды отсортирован, секция «Выберите диапазон дат» не выходит за рамки страницы, лоадеры совпадают с загрузочными картинками, а автотесты фронтенда расширены.

Замечания по обновлению​

  1. Core 5.12.0 и Web 2.12.0 обновляются вместе — новая модель прав охватывает оба компонента, а интерфейс рассчитывает на новый контракт /me/permissions.
  2. Ждите изменений в правах. Роли теперь применяются по старшинству: если кто-то мог выдать роль равную своей или выше, теперь не может. Проверьте, у кого в ваших департаментах роль OWNER: «глава» департамента теперь подпись без прав и назначается вручную.
  3. Роль LEADER становится OWNER в модели департамента — проверьте приглашения и членства, где она использовалась.
  4. Интеграции: отказы подключений теперь пишутся в таблицу ошибок, поэтому после обновления там появятся новые строки — это работа механизма, а не регресс.
  5. Новых версий плагинов в этом релизе нет; CLI, Chrome и плагины IDE остаются на версиях из 2.11.0.

Скачать релиз:

  • PanDev Metrics Core 5.12.0: docker pull pandevofficial/pandev-metrics:5.12.0
  • PanDev Metrics Web 2.12.0: docker pull pandevofficial/pandev-metrics-backoffice:2.12.0
  • PanDev Metrics CLI 2.5.16: brew install pandev-metriks/pandev-cli/pandev-cli-plugin (или brew upgrade)
  • Chrome 3.3.0, Cursor 2.5.0, Antigravity 2.5.0: обновляются автоматически из своих магазинов
  • DBeaver 1.2.0 и Eclipse 1.4.5: со страницы плагинов вашего воркспейса