Оформление
Видимость полей (CLS)
Правила видимости строк ограничивают строки, но не колонки: кто получил доступ к датасету, видит все его поля. Видимость полей решает эту задачу — зарплату, себестоимость или персональные данные не нужно выносить в отдельный датасет и дублировать поверх него виджеты.
Закрытое поле исчезает для пользователя целиком: его нет ни в списке полей датасета, ни в данных, ни в подсказках значений при настройке фильтра.
Откройте датасет и нажмите Видимость данных в верхней панели, затем вкладку Колонки (CLS). На соседней вкладке Строки (RLS) живут правила видимости строк.
Правило скрывает не только само поле, но и всё, что от него считается: если оставить доступ к «Сумме заказа» одному создателю, у исследователя пропадут два поля — сама сумма и вычисляемое поле «Сумма с НДС», которое на неё ссылается. Виджет, построенный на закрытой мере, ответит такому пользователю отказом целиком.
Когда поле закрыто
Правило задаётся для конкретного поля и перечисляет, кому оно остаётся видимым: пользователей и группы.
| Ситуация | Что видит пользователь |
|---|---|
| Правил на поле нет | Поле видно, как обычно |
| Правило есть, пользователь в списке | Поле видно |
| Правила есть, пользователь ни в одном не указан | Поле закрыто |
| Правило есть, список пуст | Поле закрыто для всех |
На одно поле можно задать несколько правил, они складываются по «или»: у доступа бывают разные основания — руководители подразделения, аудиторы, аналитик на время расследования, — и держать их одним списком неудобно.
Новое правило создаётся выключенным: пока вы его не включите, поле видно всем, как и раньше. Так правило можно подготовить и согласовать, прежде чем оно начнёт закрывать данные.
Выключенное правило ничего не закрывает
Пока переключатель слева от названия не включён, зарплата, себестоимость или персональные данные остаются видны каждому, у кого есть доступ к датасету. Правило в списке выглядит готовым, и это легко принять за настроенный доступ. Заведя правило, сразу включите его и проверьте результат — как, описано ниже.
Обхода нет ни у кого
Ни владелец датасета, ни администратор пространства, ни администратор платформы не видят закрытое поле автоматически. Чтобы видеть его, администратор вносит себя в список явно.
Так сделано ради предсказуемости: иначе автор правила видел бы все колонки и считал, что правило работает.
Как проверить, что получилось
Закрытое поле проверяется сравнением двух картин: у того, кто в списке, колонка есть, у того, кого нет, — её нет вовсе. Своя собственная картина для этого не годится. Порядок — Проверка правил видимости.
Отдельно посмотрите виджет, где закрытое поле единственная мера: вместо пустых ячеек он отвечает отказом целиком, и об этом лучше знать заранее.
Как создать правило
Нажмите Новое правило на вкладке Колонки (CLS) и заполните форму:
| Поле формы | Что указать |
|---|---|
| Название | Понятное описание, например «Зарплата — только HR» |
| Закрываемое поле | Поле датасета, которое перестанет быть видно |
| Кому поле остаётся видно | Списки Пользователи и Группы; оба можно оставить пустыми — тогда поле закроется для всех, включая вас |
Нажмите Готово. Правило появляется в списке: переключатель включения, название, таблица и поле, а рядом — «Видно: …» с перечислением тех, кому поле остаётся доступным. Щелчок по строке открывает правило на правку, корзина справа удаляет его.

Правила сохраняются сразу — отдельной кнопки «Применить» у окна нет. Действовать правило начинает после включения.
Управлять видимостью полей может владелец датасета и тот, кому выдано право администрирование на него: кнопка Видимость данных есть и на карточке, и в конструкторе. Права «редактирование» для этого мало — управление доступом.
То же запросом к API
Когда правил много или их заводит скрипт, тот же результат дают три запроса. Токен берётся входом — авторизация в API; $API ниже — адрес установки с /api на конце.
Идентификатор закрываемого поля лежит в описании датасета — GET $API/dataset/{id}, блок fields. В теле правила field_id — это поле, а subjects перечисляет тех, кому оно остаётся видимым; у субъекта задаётся либо user_id, либо group_id, вместе они не принимаются:
bash
curl -s -X POST -H "Authorization: Bearer $T" -H "Content-Type: application/json" \
-d '{ "field_id": 134549, "name": "Сумму видит только финансовый отдел",
"enabled": true, "subjects": [{ "group_id": 2 }] }' \
"$API/dataset/1413/cls"Список правил и удаление лишнего:
bash
curl -s -H "Authorization: Bearer $T" "$API/dataset/1413/cls"
curl -s -X DELETE -H "Authorization: Bearer $T" "$API/dataset/1413/cls/2"Правило действует сразу и на вас тоже
Как только правило включено, поле закрывается для всех, кого нет в списке, — включая автора правила и администратора. Создатель датасета, не указавший себя, получает на виджет с закрытой мерой ответ 403 Доступ запрещён — не пустые ячейки, а отказ целиком. Прежде чем закрывать поле, на котором построены рабочие виджеты, добавьте в список тех, кому они нужны.
Поля, которые считаются от закрытых
Закрытость передаётся по ссылкам: вычисляемое поле [Зарплата] * 1 было бы очевидной лазейкой, поэтому оно закрывается вместе с исходным. То же касается групп и бинов, построенных на закрытом поле.
Цепочку можно оборвать намеренно — собственное правило на производном поле отменяет наследование. Так публикуют среднюю зарплату по отделу, не открывая саму зарплату: заведите обычным порядком ещё одно правило, выберите закрываемым полем AVG([Зарплата]) и перечислите тех, кому оно остаётся видно. Отдельной кнопки «разорвать наследование» для этого не нужно — достаточно того, что у производного поля появилось своё правило.
Что происходит с остальными настройками
| Конструкция | Поведение |
|---|---|
| Иерархия, где закрыт хотя бы один уровень | Скрывается целиком: с пропущенным уровнем переход по иерархии выдавал бы соседний уровень |
| Сортировка поля по закрытому полю (настройка датасета) | Игнорируется, поле сортируется по себе: порядок строк выдал бы ранжирование скрытой колонки |
| Фильтры датасета и правила видимости строк | Могут ссылаться на закрытые поля: они ограничивают строки, но значений не показывают |
Если виджет ссылается на закрытое поле
Виджет не строится: пользователь получает отказ целиком, а не урезанную выборку без предупреждения. Проверяются все места, где может встретиться поле: полки категорий, серий и мер, фильтры виджета и дашборда, сортировки, вычисляемые поля виджета, ограничение по значимости, переход по уровням иерархии.
Молча исключить колонку опаснее, чем отказать: без меры и без фильтра виджет даст правдоподобные, но другие числа, и подмену никто не заметит.
Маскирование значений не поддерживается
Поле либо видно целиком, либо не видно вовсе. Показа вида «последние четыре цифры» или «звёздочки вместо суммы» в текущей версии нет.
Что дальше
- Проверка правил видимости — сравнение двух картин и режим «от имени».
Ограничение по строкам настраивается отдельно — см. Видимость строк (RLS).