Прочитать файл конфигурации по сети

/configFile read
Посмотреть, что на узле сейчас

Отдаёт содержимое файла конфигурации.

Вызов — GET /configFile?op=read&filename=/etc/pmta/config, по желанию с format=json-text: тогда файл приходит строкой внутри JSON, без него — сам файл как есть.

Читать можно не всё. Файл должен лежать в /etc/pmta/ (на Windows — в каталоге установки), а файл из подкаталога — ещё и быть подключён из главной конфигурации. Иначе ответ 403, а несуществующий файл даёт 404.

Полезен для сверки: показывает, что на узле лежит на самом деле, а не что мы думаем.

Для чтения ключ не обязателен, если адресу запроса выдан уровень не ниже operator в http-access; ключ из http-api-key в заголовке X-API-Key снимает ограничение по адресу.

Главная ловушка — уровень monitor. Адрес, которому выдан только он, читать конфигурацию не может: нужен operator или ключ. Ответ 403 в этом случае — не поломка точки, а права.
Что делает Хаб. Не спрашивает: файлы конфигурации он пишет на узел по SSH и проверяет командами на самой машине. Своим адресам в http-access Хаб выдаёт уровень monitor, которого для этой точки мало, — чтение прошло бы только с ключом.
Рекомендуемые значения

Параметры:

Параметр Обязателен Что задаёт
op да read — прочитать файл
filename да полный путь; только /etc/pmta/ и подключённые файлы
format нет json-text — файл строкой в JSON; без него — файл как есть
Параметры, границы по каталогу и коды 403 и 404 — из руководства (§ 8.2, § 8.2.1). Разбор про уровень monitor — наш.
Пример в конфигурации
# главный файл конфигурации строкой в JSON
curl -s 'http://127.0.0.1:8080/configFile?format=json-text&op=read&filename=/etc/pmta/config'
Без ключа запрос пройдёт только с адреса уровня operator и выше; с заголовком X-API-Key — с любого.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, пускает ли точка адрес запроса:
curl -s -o /dev/null -w "%{http_code}\n" 'http://127.0.0.1:8080/configFile?op=read&filename=/etc/pmta/config'
grep -n 'http-access' /etc/pmta/config
Код 403 — адрес не дотягивает до operator или файл лежит вне /etc/pmta/; 404 — файла нет.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Жизненный цикл конфигурации