- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
38 lines
2.7 KiB
Markdown
38 lines
2.7 KiB
Markdown
# ✨ Сделать страницу статистики для владельца
|
|
|
|
- **Тип:** feature
|
|
- **Категория:** Очередь — Страница показывает собранный учёт: без учёта показывать нечего.
|
|
- **Зачем:** Собранный учёт читается только запросом к базе руками: ни страницы, ни признака владельца в приложении нет.
|
|
- **Теги:** goal:usage-stats
|
|
|
|
Двигает пункты 1, 2 и 3 «Завершения» цели: расход по каждому пользователю виден
|
|
на странице, и открывается она только владельцу сервиса.
|
|
|
|
## Затрагивает
|
|
|
|
- новый экран приложения: таблица пользователей с объёмом, минутами и расходом,
|
|
накопительно и за период;
|
|
- эндпоинт сводки потребления с отбором по периоду;
|
|
- признак владельца сервиса: откуда он берётся — из группы OIDC или из
|
|
конфигурации;
|
|
- `docs/security.md` — второй уровень доступа помимо «свой или чужой».
|
|
|
|
## Критерии приёмки
|
|
|
|
- Владелец видит на странице строку по каждому пользователю с объёмом, минутами
|
|
и расходом. Оракул — тест экрана на подставном API: три пользователя, три
|
|
строки, числа совпадают с ответом.
|
|
- Обычный пользователь получает отказ и на странице, и на эндпоинте сводки, а не
|
|
пустую таблицу. Оракул — тест эндпоинта под обычной учётной записью: `403`.
|
|
- Отбор по периоду меняет числа. Оракул — тест на выборке за месяц и за всё
|
|
время.
|
|
- Страница не показывает ни имён файлов, ни текстов записей — только
|
|
идентификаторы и числа. Оракул — тест ответа сводки: полей с именем и текстом
|
|
в нём нет.
|
|
|
|
## Рамки
|
|
|
|
Берётся после `usage-accounting` — до неё показывать нечего. Управления
|
|
пользователями на странице не делаем: заводит и отключает их Authelia. Цен и
|
|
пересчёта в деньги здесь нет.
|