Сохранённые представления консоли
Модуль consoleviews добавляет в консоль сохранённые представления:
именованные снимки состояния представления — тех же фильтров, временных
диапазонов и областей, которые консоль кодирует в URL. Они хранятся
на сервере отдельно для каждого тенанта, поэтому расследование вроде
«неудачные допуски за последние 24 часа» сохраняется после закрытия браузера,
доступно оператору с другого компьютера и, если им поделились, открывается всей
командой одним щелчком.
Что хранится — и что не хранится никогда
Заголовок раздела «Что хранится — и что не хранится никогда»Сохранённое представление содержит только параметры: ограниченный по размеру
объект JSON (не более 4 КБ) с состоянием URL представления, а также имя,
необязательное описание, принципала-владельца и флаг shared. Модуль никогда
не хранит результаты запросов, строки журнала или какие-либо данные, которые
выбрали бы эти параметры. Загрузка сохранённого представления заново выполняет
исходный запрос с собственными разрешениями вызывающего. Консоль рассматривает
сохранённые параметры строго как данные.
Владение, общий доступ и разрешённые действия
Заголовок раздела «Владение, общий доступ и разрешённые действия»- Создание/обновление — любой участник с
consoleviews:view:write(уровень editor). Представление принадлежит создавшему его принципалу; редактировать его может только владелец. - Видимость — владелец всегда видит собственные представления. Представление
с флагом
sharedвидят все участники тенанта сconsoleviews:view:read(уровень viewer). Недоступное вам представление отвечает404, а не403, чтобы его существование не раскрывалось. - Удаление — владелец либо роль admin/owner тенанта для любого представления (это позволяет очищать представления, оставшиеся после ухода пользователей).
- Лимиты — 200 представлений на владельца и 2000 на тенанта. При достижении
лимита операция отклоняется с понятным сообщением.
(feature, owner, name)— естественный ключ: повторное имя для той же функции получает ответ409.
Каждое создание, обновление и удаление записывается в журнал аудита тенанта с указанием реального принципала. Записанные метаданные идентифицируют представление (функцию, имя и флаг общего доступа), но никогда не содержат его параметров.
Маршруты
Заголовок раздела «Маршруты»| Метод | Маршрут | Разрешение |
|---|---|---|
GET | /v1/m/consoleviews/views?feature_id= | consoleviews:view:read |
GET | /v1/m/consoleviews/views/{id} | consoleviews:view:read |
POST | /v1/m/consoleviews/views | consoleviews:view:write |
PUT | /v1/m/consoleviews/views/{id} | consoleviews:view:write |
DELETE | /v1/m/consoleviews/views/{id} | consoleviews:view:write |
Маршруты модулей входят в поверхность beta — см. справочник маршрутов модулей.
Честные ограничения
Заголовок раздела «Честные ограничения»- Сервер проверяет, что
feature_idпредставления является slug, но не фиксирует список функций консоли. Источником истины служит реестр консоли, который меняется с каждым выпуском; консоль игнорирует сохранённые представления для больше не существующих функций. - Общее представление передаёт параметры, а не результаты. Два оператора, открывшие одно представление, могут увидеть разные данные, если их разрешения различаются. Это предусмотрено: общий доступ никогда не расширяет доступ к данным.
- Сохранённые представления — удобство консоли, а не доказательства. Сами они находятся вне цепочки журнала; доказательствами становятся только события их жизненного цикла.
- Оператор, ограниченный рабочей областью, может читать сохранённые представления, но не может создавать, редактировать или удалять их. Движок грантов с областями deny-closed запрещает ограниченным принципалам записи на уровне коллекции, а общетенантное переопределение удаления для admin явно исключает ограниченных администраторов.
- При конкурентной записи в Postgres лимиты на владельца и тенанта мягкие (небольшое превышение ограничено); повторяющиеся имена всегда жёстко отклоняются.