once кэширует вывод команд, чтобы не запрашивать отпечаток пальца для каждого секрета
Once: Cache CLI Commands
once — утилита, которая выполняет команду в текущем каталоге, запоминает stdout в фоновом демоне и повторяет его без запуска команды до истечения TTL. Кэш привязан к рабочему каталогу и tenant-ключу, а опция --no-dir позволяет использовать одно значение во всех каталогах. Типичный сценарий — чтение секретов из 1Password: отпечаток пальца запрашивается только при первом вызове, а последующие в течение заданного времени берут результат из памяти. Демон хранит данные только в RAM и завершается, когда истекает последняя запись.
Первый вызов запрашивает отпечаток пальца, каждый следующий вызов в течение 8 часов с тем же tenant-ключом — нет.
- aktau
Такие инструменты очень полезны. У меня есть свой, называется memo (это просто shell-скрипт: https://github.com/aktau/dotfiles/blob/master/bin/memo).
О нём говорили в https://news.ycombinator.com/item?id=45670052, и другие подключились со своими (например, bkt(1) и up(1)).
Основные различия, которые я вижу:
- memo не нужно собирать (это shell-скрипт)
- once хранит кэш вывода в работающем демоне. В отличие от него, memo сохраняет содержимое в /tmp с лучшим доступным сжатием (предпочитает zstd). В этом есть свои компромиссы. Более парето-оптимальным с точки зрения безопасности может быть наличие своего рода сессионного ключа и сжатие-затем-шифрование файлов на диске.
- __MatrixMan__
Я мечтаю о приложениях, которые предоставляют достаточно метаданных о своих выводах, чтобы ОС могла знать, нужно ли перезапускать, без необходимости указывать это мне.
Nixos делает это для сборок, но я не видел, чтобы это обобщалось на произвольные процессы.
- xuhu
Хотел бы я, чтобы это работало без префикса "once" перед командами. Особенно если я запустил команду с подробным выводом, а потом решил, что хочу что-то из него grep-нуть. В терминалах вывод есть в буфере прокрутки, и, может быть, достаточно написать команду "output", которая позволит мне выполнить:
$ cmake ..
$ output | grep "libssl version"
- deadbunny
Я всегда хотел разобраться с инвалидацией кэша в своём терминале.
- giancarlostoro
> Типичный сценарий: чтение секретов из 1Password без подтверждения каждого чтения отпечатком пальца.
Ну, не знаю насчёт этого, начальник.