Перейти к содержимому

Модуль VII — развёртывание и интеграция

Модуль VII — единственный модуль, который мутирует инфраструктуру клиента: любая другая часть продукта работает в режиме read-first. Он провизионирует, обновляет и выводит из эксплуатации агентов и MCP-серверы как декларативные, версионированные, обратимые операции и декларирует подключения и используемую идентичность (referenced identity), через которые агент обращается к корпоративному ресурсу. Поскольку он воздействует, его планка безопасности — самая высокая в продукте, а живое исполнение (live actuation) удерживается за seam-ом deny-closed, пока оператор явно его не предоставит.

Планировать и управлять, затем (возможно) применять

Заголовок раздела «Планировать и управлять, затем (возможно) применять»

Жизненный цикл — это plan → apply → verify → retire, согласующий желаемое состояние с реальным. Принципиальное разделение — declare ≠ mutate:

  • Декларирование желаемого состояния — создание, обновление, откат определения (в том числе через ресурс manage-as-code olivares_deployment) — относится только к control plane и никогда не касается инфраструктуры.
  • plan — это чистый dry-run diff; verify проверяет дрейф и обновляет снимок (snapshot). Ни то, ни другое не мутирует.
  • apply и retire — единственные мутирующие операции. Они двухфазные и deny-by-default: первая фаза вычисляет diff и запрашивает человеческое одобрение, привязанное к хешу плана, ничего не меняя; вторая фаза выполняется только если одобрение имеет статус approved и хеш плана по-прежнему совпадает — любое другое состояние (pending, expired, rejected, отсутствие шлюза, устаревший план) отклоняется и фиксируется. Повторное указание изменений меняет хеш и аннулирует одобрение (anti-TOCTOU).

Мутирующие apply/retire не работают вживую по умолчанию. Seam исполнения (Executor) — deny-closed: без предоставленного executor-а apply/retire/plan/verify отказывают по принципу fail closed с кодом 503 — control plane может декларировать желаемое состояние, но не может согласовать его с реальной инфраструктурой. Реальный движок (Tofu/Terraform, GitOps, Kubernetes, Docker, Nomad, Crossplane) плюс источник короткоживущих, аттестованных учётных данных на каждую операцию подключаются только при конфигурации оператором; без этого модуль никогда не действует молча.

Модуль декларирует четыре сущности в собственном пространстве имён плюс ядровую Deployment как применённый снимок:

СущностьРоль
definitionжелаемое состояние — желаемая и применённая версия, хеш спецификации, ссылка на ядровую Deployment
revisionнеизменяемая история спецификаций, доступная только для добавления — обратимый источник для отката
wiringразрешённое (permitted) подключение agent → resource, которое оно декларирует (контракт, с которым сопоставляет модуль III)
operationжурнал управления изменениями, доступный только для добавления — версия, хеш плана, кто одобрил, результат

Желаемая спецификация типизирована и пересериализуется из структуры (никогда через round-trip операторского JSON): неизвестные поля отклоняются, выполняется проверка на inline-учётные данные, а спецификация, несущая материал учётных данных в открытом виде, отклоняется на этапе декларации. Учётные данные передаются только по ссылке (<scheme>:<locator>, схема из allow-list) — это свойство канала, а не хранимый секрет.

Что он публикует в шине (сторона PERMITTED модуля III)

Заголовок раздела «Что он публикует в шине (сторона PERMITTED модуля III)»

Модуль VII никогда не пишет access map; модуль III — единственный, кто пишет её рёбра. При зафиксированном apply для каждого wiring модуль публикует событие policy-grant edge.observed (Source = policy), несущее только ссылки и режим. Модуль III согласует его в сторону PERMITTED своего diff-а permitted-vs-observed — так что то, что декларирует этот модуль, и есть ровно то, с чем модуль III сопоставляет наблюдаемое. Идентичность привязывается к каждому агенту через governance: твёрдая, уникальная нечеловеческая идентичность даёт ребро attributed; общая или отсутствующая идентичность отмечается как approximateпомечается, никогда не подделывается.