Files
transcriber/tasks/items/admin-stats-screen.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

2.7 KiB

Сделать страницу статистики для владельца

  • Тип: feature
  • Категория: Очередь — Страница показывает собранный учёт: без учёта показывать нечего.
  • Зачем: Собранный учёт читается только запросом к базе руками: ни страницы, ни признака владельца в приложении нет.
  • Теги: goal:usage-stats

Двигает пункты 1, 2 и 3 «Завершения» цели: расход по каждому пользователю виден на странице, и открывается она только владельцу сервиса.

Затрагивает

  • новый экран приложения: таблица пользователей с объёмом, минутами и расходом, накопительно и за период;
  • эндпоинт сводки потребления с отбором по периоду;
  • признак владельца сервиса: откуда он берётся — из группы OIDC или из конфигурации;
  • docs/security.md — второй уровень доступа помимо «свой или чужой».

Критерии приёмки

  • Владелец видит на странице строку по каждому пользователю с объёмом, минутами и расходом. Оракул — тест экрана на подставном API: три пользователя, три строки, числа совпадают с ответом.
  • Обычный пользователь получает отказ и на странице, и на эндпоинте сводки, а не пустую таблицу. Оракул — тест эндпоинта под обычной учётной записью: 403.
  • Отбор по периоду меняет числа. Оракул — тест на выборке за месяц и за всё время.
  • Страница не показывает ни имён файлов, ни текстов записей — только идентификаторы и числа. Оракул — тест ответа сводки: полей с именем и текстом в нём нет.

Рамки

Берётся после usage-accounting — до неё показывать нечего. Управления пользователями на странице не делаем: заводит и отключает их Authelia. Цен и пересчёта в деньги здесь нет.