Настройка групп доступа к конфиденциальным данным

При использовании методов privacy активируйте функциональность и заполните блок storage параметрами настройки БД для хранения конфиденциальных данных:

privacy {
  storage {
  enabled = true
  url = "jdbc:postgresql://"${POSTGRES_ADDRESS}":"${POSTGRES_PORT}"/"${POSTGRES_DB}
  driver = "org.postgresql.Driver"
  profile = "slick.jdbc.PostgresProfile$"
  user = ${POSTGRES_USER}
  password = ${POSTGRES_PASSWORD}
  connectionPool = HikariCP
  connectionTimeout = 5000
  connectionTestQuery = "SELECT 1"
  queueSize = 10000
  numThreads = 20
  schema = "public"
  migration-dir = "db/migration"
  }
  # Data request timeout.
  request-timeout = 2 minute

  # First retry delay. With each attempt, the delay increases by 4/3.
  init-retry-delay = 30 seconds

  # Max parallel crawling tasks count.
  crawling-parallelism = 100

  # The number of attempts that the crawler will take before the data is marked as lost.
  max-attempt-count = 20

  # Delay between attempts to process the queue of lost items.
  lost-data-processing-delay = 10 minutes

  # Policy data responses cache
  cache {
  # Max count of elements
  max-size = 100
  # Time to expire for element if it hasn't got access during this time
  expire-after = 10m
  }

 }

Описание параметров

  • enabled - активация опции;

  • url - адрес БД PostgreSQL;

  • driver - имя драйвера JDBC;

  • profile - имя профиля для доступа к JDBC;

  • user - имя пользователя для доступа к БД;

  • password - пароль для доступа к БД;

  • connectionPool - имя пула соединений, по умолчанию HikariCP;

  • connectionTimeout - таймаут для соединения;

  • connectionTestQuery - имя тестового запроса;

  • queueSize - размер очереди запросов;

  • numThreads - количество одновременных подключений;

  • schema - схема взаимодействия;

  • migration-dir - директория для миграции данных.

  • request-timeout - таймаут ожидания всех ответов от пиров на запрос данных.

  • init-retry-delay - задержка от момента получения датахеша до старта его поиска по пирам.

  • crawling-parallelism - ограничение максимального количества одновременных процессов в синхронизаторе.

  • max-attempt-count - максимальное количество раундов по запросу данных от пиров, спустя которое данные считаются «утерянными».

  • lost-data-processing-delay - интервал раундов запросов «утерянных» данных.

  • cache - настройки кеш-памяти запросов.

Для хранения конфиденциальных данных используется БД PostgreSQL. База данных устанавливается на машину с нодой, также создается аккаунт доступа к БД. Вы можете воспользоваться справочной документацией на PostgreSQL для скачивания и установки версии, которая соответствует вашему типу операционной системы.

Во время установки БД система предложит создать аккаунт для доступа к БД. Эти логин и пароль для доступа необходимо внести в соответствующие параметры user/password.

Внесите URL подключения к PostgreSQL в параметр url. В URL входят следующие параметры:

  • POSTGRES_ADDRESS - адрес хоста PostgreSQL;

  • POSTGRES_PORT - номер порта хоста PostgreSQL;

  • POSTGRES_DB - наименование БД PostgreSQL.

Можно указывать URL до БД PostgreSQL в одной строке с данными аккаунта. Пример приведен ниже, где user=user_privacy_node_0@we-dev это логин пользователя, password=7nZL7Jr41qOWUHz5qKdypA&sslmode=require - пароль с опцией требования его ввода при авторизации.

Пример

privacy.storage.url = "jdbc:postgresql://vostk-dev.postgres.database.azure.com:5432/privacy_node_0?user=user_privacy_node_0@we-dev&password=7nZL7Jr41qOWUHz5qKdypA&sslmode=require"