Механизм секретов kv представляет собой общее хранилище ключ-значение для хранения произвольных секретов в настроенном физическом хранилище для Stronghold. Этот механизм секретов может работать в двух режимах:

  • kv версии 1, для хранения одного значения для ключа
  • kv версии 2, с версионностью и возможностью хранения произвольно настроиваемового количества версий для каждого ключа.

KV версия 1

При использовании механизма секретов kv хранилища в режиме без поддержки версионирования, сохраняется только последнее обновленное значение ключа. Основным преимуществом использования данного режима является уменьшение занимаемого пространства на хранилище для каждого ключа, так как не сохраняются дополнительные метаданные и история изменений. Кроме того, операции запроса к механизму секретов, настроенному таким образом, являются более производительными, так как для каждого конкретного запроса требуется меньше обращений к хранилищу данных и не возникает блокировки при изменении значения ключа.

KV версия 2

При использовании версии 2 механизма секретов kv ключ может сохранять настраиваемое количество версий. По умолчанию это 10 версий. Метаданные и данные старых версий могут быть извлечены из каждой сохраненной версии. Кроме того, для предотвращения случайной перезаписи данных можно использовать операции Check-and-Set.

При удалении версии данные, лежащие в ее основе, не удаляются, а помечаются как удаленные. Удаление версии может быть отменено. Для окончательного удаления данных версии можно использовать консольную команду destroy или отправить запрос в соответствующий путь API. Кроме того, все версии и метаданные для ключа могут быть удалены командой delete по метаданным или конечной точкой API. На каждую из этих операций можно наложить различные ACL, ограничивающие права на мягкое удаление, удаление без удаления или полное удаление данных.

Использование

Для взаимодействия с механизмом секретов K/V используйте команду d8 stronghold kv <подкоманда> [options] [args].

Доступные подкоманды перечислены в следующей таблице:

Подкомандаkv v1kv v2Описание
deletexxУдаление версий секретов, хранящихся в K/V
destroyxПостоянное удаление одной или нескольких версий секретов
enable-versioningxВключение версионности для существующего хранилища K/V v1
getxxПолучение данных
listxxПеречислить данные или секреты
metadataxВзаимодействие с хранилищем ключей-значений Stronghold
patchxОбновление секретов без перезаписи существующих секретов
putxxУстановка или обновление секретов (при этом происходит замена существующих секретов)
rollbackxОткат к предыдущей версии секретов
undeletexВосстановление удаленной версии секретов