В среде CI я хочу передать учетные данные для аутентификации на нашем внутреннем сервере Gems в контейнеры докеров, запускаемые в рамках заданий CI. Я хотел бы иметь возможность настроить демон docker, чтобы он всегда извлекал переменную из среды агента и вставлял ее во все запущенные контейнеры. его можно было удалить до того, как они смогут что-то с ним сделать, например, переместить его в другой почтовый ящик.
Это крайний случай, который я знаю, но я надеялся выполнить какое-то многоэтапное удаление, установив все новые сообщения, помеченные как Недавние, чтобы я мог сделать что-то вроде:
doveadm expunge -A OLD SEEN BEFORE 7d MAILBOX Trash
doveadm flags -A remove '\Recent' SEEN BEFORE 7d MAILBOX Trash
Удалив перед , удалив флаг \ Recent
, это означает, что все сообщения, которые видны прямо в дату отключения, будут еще день или около того, прежде чем они будут фактически удалены. Проблема в том, что я не могу найти ничего, что действительно описывает, как установить \ Recent
для всех новых сообщений (а sieve
, похоже, не может этого сделать).
What I ' м интересно есть; есть ли у меня способ контролировать, когда \ Recent
установлен, чтобы я действительно мог заставить вышеуказанное работать, а если нет, есть ли другие средства достижения той же цели?
Решение, к которому я пришел, - это добавление пользовательского флага к сообщениям, которые скоро будут удалены. Я делаю это в моем ночном скрипте следующим образом:
#!/bin/bash
# Save unread messages from their impending doom
doveadm flags remove -A 'Doomed' UNSEEN KEYWORD 'Doomed'
# Soft-delete messages that were doomed by the previous pass
doveadm flags add -A '\Deleted' KEYWORD 'Doomed' SEEN
# Doom messages older than a week. In reality this will probably be
# several commands tailored to different users and/or mailboxes
doveadm flags add -A 'Doomed' SEEN SAVEDBEFORE 7d
# Purge all messages that were expunged by the previous pass
doveadm purge -A
# Expunge all messages that were deleted in this pass
doveadm expunge -A DELETED MAILBOX '*'
Это, по сути, устанавливает многоступенчатое удаление, состоящее из двух шагов для большинства почтовых ящиков, с тремя шагами для почтовых ящиков, основанных на mdbox
:
Doomed
. (1)Doomed
имеют флаг \Deleted
. (2)mdbox
. (3)Если скрипт выполняется один раз в 24 часа, то это даёт минимальную 24-часовую задержку между прочтением сообщения (с пометкой Doomed
), и его фактическим удалением. В mdbox mdbox
есть еще 24 часа до того, как сообщение будет полностью удалено.
Doomed
, скорее всего, будет включать более отдельные команды для поведения для каждого пользователя и для каждого почтового ящика, и ей должны предшествовать любые действия по архивированию. Например, в моем случае я перемещаю старые сообщения из защищенных почтовых ящиков в архивный почтовый ящик, который освобождается от удаления (и перемещается в сжатое хранилище с помощью alt-move).mdbox
(хотя IMO все должны), то шаг добавления флага \Deleted
может быть заменен на expunge
, в этом случае последние две команды могут быть сброшены. mdbox
команда cleange
является командой no-op.