Опубликован nxs-data-anonymizer 1.4.0 – инструмент для анонимизации дампа баз данных PostgreSQL и MySQL/MariaDB/Percona. Утилита поддерживает анонимизацию данных на основе шаблонов и функций библиотеки Sprig. Среди прочего, для заполнения можно использовать значения других столбцов для той же строки. Допустимо использовать инструмент через неименованные каналы (pipe) в командной строке и перенаправить дамп из исходной БД непосредственно в целевую БД с необходимыми преобразованиями. Инструмент написан на языке Go и выпускается под лицензией Apache License 2.0.
Менее чем за год после первого релиза версии 1.0.0, в инструменте появились следующие возможности:
- Добавлена функция фильтров для работы со значениями null.
- Реализована команда -l/–log-format, позволяющая выбрать формат логирования (json или plain).
- Добавлена индикация процесса анонимизации – через указанные промежутки выводятся данные о прогрессе выполнения операции.
- В версии 1.4 появилась возможность задавать значения полей с помощью внешних команд, через добавление в значение столбца “type: command”. Например: filters: some_table_name: columns: some_column_name: type: command value: /path/to/command/or/script.sh
Если для столбца указано “type: command”, то значение поля value воспринимается как файловых путь к команде, которая будет запущена каждый раз для этого поля. Во время выполнения команды будут доступны дополнительные переменные окружения:
- ENVVARTABLE={TABLE_NAME}: содержит имя фильтруемой таблицы
- ENVVARCOLUMN_{COLUMN_NAME}={COLUMN_VALUE}: содержит все столбцы и их значения (до замены) для текущей фильтруемой строки
Stdout команды считается за новое значение фильтруемого поля.