Files
openspec-lab/openspec/changes/archive/2026-09-08-grafana-readonly-user/design.md
T

49 lines
2.4 KiB
Markdown

# Design: Grafana read-only user — ручное создание (OSS-совместимо)
## Файлы
| Файл | Действие | Назначение |
|---|---|---|
| `/opt/monitoring/grafana-data/grafana.db` | изменяется Grafana при создании пользователя | хранит учётку (UI, не вручную) |
| `/opt/monitoring/README.md` | обновить | документация пользователя и роли |
| `/opt/monitoring/EXPERIENCE.md` | обновить | вывод: OSS 11.1 не умеет provisioning users |
Никакие конфиги/провиджеры НЕ меняются.
## Почему не provisioning
- `grafana/provisioning/access-control/users.yml` — файловое provisioning
пользователей в Grafana 11 OSS **не обрабатывается** (в логах только
dashboards/datasources/alerting/plugins; access-control — EE-фича).
- API: `POST /api/users` → 404 (OSS), `POST /api/login` → 401 при верном
пароле (Basic auth работает, JSON-логин нет). Доступно только создание
пользователя в **UI**.
## Создание в UI
1. Открыть `http://grafana.nixg.ru` (или `http://127.0.0.1:3001`), войти
как `estorozhenko` (admin).
2. Administration → Users → **New user**:
- Email: `it@vinogorod.ru`
- Name: `IT Vinogorod`
- Role: `Viewer`
- Password: `1qazXSW2` (задать вручную, не отсылать invite)
3. Сохранить.
## Проверка (после создания)
```bash
# 1. логин рабочий
curl -s -u 'it@vinogorod.ru:1qazXSW2' http://127.0.0.1:3001/api/user
# 2. роль Viewer в орге
curl -s -u 'estorozhenko:...' http://127.0.0.1:3001/api/orgs/1/users
# 3. read-only: админ-ручка недоступна
curl -s -u 'it@vinogorod.ru:1qazXSW2' http://127.0.0.1:3001/api/users # → 403
```
## Риски
- Слабый пароль `1qazXSW2` (клавиатурная последовательность) на публичной
Grafana. Рекомендовать смену или ограничение доступа по IP (caddy/VPN).
- Пользователь создаётся вручную — при перезаписи grafana-data потребуется
пересоздать. Продублировать в README.