Обмеження вибірки даних на основі інформації з токена

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Адміністратор регламенту може обмежувати вибірку даних під час формування запитів (queries) в інтерфейсі Redash. Це можна зробити на основі контекстної інформації, отриманої із JWT-токена.

Контекстна інформація — атрибути користувача, що передаються сервісом Keycloak.

Наприклад, атрибут edrpou може вказувати на приналежність користувача до певної установи (школи, банку, компанії тощо).

Адміністратор звітності може написати запит, який видаватиме з усієї вибірки лише ті дані, які містять заданий атрибут. Наприклад, якщо необхідно сформувати звіт за паралелями, або класами саме тієї школи, яку представляє посадовець/посадовці із таким атрибутом.

Аутентифікація у сервісі Redash відбувається через сервіс управління ідентифікацією та доступом Keycloak за протоколом SOAP у форматі XML. При цьому під час аутентифікації, з Keycloak до Redash у токені передаються всі атрибути користувача, включно з атрибутом edrpou.

Атрибути стають доступними для читання у сервісі Redash за допомогою плейсхолдерів у форматі [[<attributeName>]]. Наприклад, edrpou = '[[edrpou]]'.

2. Формування запита в Redash

Щоб обмежити вибірку, наприклад, за атрибутом edrpou, необхідно знати код ЄДРПОУ користувача. Він має бути вказаний як атрибут edrpou у сервісі Keycloak.

keycloak edrpou attr
Створіть новий запит:
  1. В інтерфейсі адміністратора Redash (redash-admin) відкрийте секцію Запити та натисніть Новий Запит.

    task 6 2 1 redash

  2. Напишіть запит для вибірки даних із відповідної таблиці-представлення.

    Приклад 1. Запит до таблиці registry.report_laboratory_v
    SELECT * FROM registry.report_laboratory_v
    WHERE edrpou = '[[edrpou]]'
  3. Натисніть кнопку Виконати.

    В результаті ви отримаєте дані лише за вказаним атрибутом.

    restrict select token redash 1

Більш детальну інформацію що формування аналітичної звітності в Redash ви можете отримати на сторінці Завдання 6. Розробка аналітичних звітів