Перейти к содержанию

Глава 38. Текстовый редактор CPL

Текстовый редактор CPL доступен в веб-интерфейсе по адресу Configuration > Policy > CPL Editor (маршрут /configuration/policy/cpl-editor). Это полноэкранный визуальный редактор для прямого редактирования CPL-файла политики с синтаксической подсветкой, валидацией и структурированным предпросмотром.

37.1. Режимы отображения

Редактор поддерживает четыре режима отображения, переключаемых в панели инструментов:

Режим Иконка Описание
Visual LayoutGrid Визуальное представление правил — список правил с условиями и действиями, возможность добавления/удаления/дублирования/переупорядочивания правил через UI
Split Columns Слева — текстовый редактор CPL (с изменяемой шириной 200-600px), справа — структурированный предпросмотр. Разделитель перетаскивается мышью
Code Code Полноэкранный текстовый редактор CPL на полную ширину
Text FileText Прямое редактирование исходного текста CPL в textarea

По умолчанию используется режим Visual.

37.2. Навигация по секциям

Вверху редактора расположены горизонтальные вкладки для переключения между секциями (слоями) CPL:

Секция ID Описание
Proxy proxy Основные правила веб-доступа
Cache cache Управление кэшированием
Forward forward Маршрутизация (forwarding)
SSL ssl SSL-доступ
SSL-Intercept ssl_intercept TLS-инспекция (MITM)
Admin admin Административный доступ
DNS-Proxy dns_proxy DNS-прокси фильтрация
Exception exception Страницы исключений

Каждая вкладка отображает счётчик правил в скобках (например, Proxy (12)). Активная вкладка подсвечивается синим. При клике на вкладку переключается активная секция.

37.3. Синтаксическая подсветка

Исходный текст CPL разбивается на токены, каждый из которых имеет один из следующих типов:

Тип токена Что подсвечивает
tag Теги секций: <Proxy>, <Forward>, </SSL-Intercept> и др.
keyword Ключевые слова: define, end, condition, action
field Условия (80+ полей): url.domain=, client.address=, geo.src.country= и др.
operator Операторы: =, !=, .regex=, .prefix=, .suffix=
value Строковые значения в кавычках, действия: allow, deny, redirect
comment Комментарии, начинающиеся с ;
text Прочий текст

37.4. Возможности редактирования

Основные функции:

Функция Описание
Нумерация строк Номера строк отображаются в левом гаттере
Undo / Redo Ctrl+Z / Ctrl+Y (Cmd+Z / Cmd+Y на macOS) — отмена и повтор последних изменений
Автодополнение Ctrl+Space — подсказки из define-объектов и значений полей
Встроенная валидация Ошибки подсвечиваются красным прямо в тексте
Загрузка с бэкенда При открытии редактора политика загружается автоматически; несохранённые изменения при этом не перезаписываются
Автообновление Редактор автоматически обновляется при изменении политики из другого источника (CLI, другая вкладка). Если есть несохранённые изменения, отображается предупреждение с кнопкой Reload
Откат Кнопка Rollback открывает диалог возврата к предыдущей версии

Toolbar (режим Visual):

  • Add Rule — кнопка добавления нового правила в текущую секцию
  • Duplicate — дублирование выбранного правила
  • Delete — удаление выбранного правила (с диалогом подтверждения)
  • Undo / Redo — кнопки истории изменений
  • Rollback — откат к предыдущей версии политики

37.5. Сохранение и применение

Внизу экрана расположена панель применения политики:

  • Индикатор несохранённых изменений
  • Кнопка Save Policy — генерирует CPL из текущего состояния и отправляет его на установку (POST /api/v1/policy/install)
  • Кнопка Reload — принудительная загрузка политики с бэкенда

37.6. Интеграция с бэкендом

Все три страницы политик (CPL Editor, VPM, Object Library) используют единое общее хранилище состояния:

Операция API endpoint Описание
Загрузка GET /api/v1/policy/rules Получение CPL-текста; парсинг в структуры store
Сохранение POST /api/v1/policy/install Запись и горячая перезагрузка политики прокси без перезапуска
Валидация POST /api/v1/policy/validate Проверка без установки
Загрузка файла POST /api/v1/policy/validate Загрузка .cpl файла: валидация, затем разбор и загрузка в хранилище