Schema-first

Каталог модулей

Модуль — единица работы, которую применяет один шаг Destiny. Core-модули включены в исполняемые файлы: отдельная установка не нужна, версия модуля = версия сборки. Кастомные подключаются как процессы-плагины по gRPC.

Форма имени

Шаг адресует модуль и состояние как core.<module>.<state>. state — желаемое состояние (installed / present / running) либо verb (run / probe / fetched). Каждый declarative-state идемпотентен: итог шага — changed=true или changed=false.

Живые контракты

У каждого модуля — строгая схема параметров. Валидатор ловит опечатки и типы до применения, а не на хосте.

core.pkg.installed
namestring · requiredимя пакета
versionstringконкретная версия (иначе — любая)
stateenuminstalled · absent · latest
core.file.rendered
pathstring · requiredпуть на хосте
templatestring · requiredшаблон (text/template, strict)
varsmapзначения из Essence
mode / owner / groupstringправа и владелец

Soul-side — на управляемом хосте

Пакеты и репозитории

core.pkg
Пакеты OS через native pkg-mgr (apt / dnf / yum / apk).
installed · absent · latest
core.repo
Пакетный репозиторий OS (с GPG-ключом для apt).
present · absent

Файлы

core.file
Файл из содержимого или шаблона, каталог, удаление.
present · absent · rendered · directory
core.line
In-place построчная правка файла (lineinfile).
present · absent
core.archive
Распаковка архивов (tar / tar.gz / zip).
extracted

Сервисы и процессы

core.service
Сервис OS через systemd / openrc / sysv.
running · stopped · restarted · enabled
core.exec
Команда напрямую через exec() — без shell.
run
core.cmd
Shell-строка через sh -c (pipes, redirects).
shell
core.cron
Cron-задачи через /etc/cron.d/.
present · absent

Пользователи и группы

core.user
Локальные пользователи OS.
present · absent
core.group
Локальные группы OS.
present · absent

Система

core.mount
Точки монтирования и /etc/fstab.
present · mounted · unmounted
core.sysctl
Kernel-параметры (vm.* / kernel.* / net.*).
present · applied
core.firewall
Одно правило файрвола (ufw / firewalld).
present · absent

Сеть и внешние данные

core.git
Клонирование и обновление git-репозитория.
cloned · pulled
core.url
Загрузка файла по URL (checksum-верификация).
fetched
core.http
Read-probe HTTP (health-check / readiness).
probe
core.augur
Read-probe живого доступа к внешней системе.
fetch

Утилита

core.noop
Barrier-якорь: ничего не делает, всегда успех.
run

Keeper-side — на стороне сервера

Диспетчер on: keeper. Работают с реестрами, облаком и Vault, а не с файловой системой хоста.

core.soul
Привязка хоста (SID) к coven-меткам реестра.
registered
core.cloud
Создание / удаление / расширение cloud-инстансов.
created · destroyed · resized
core.choir
Членство хоста в choir-е инкарнации.
present · absent
core.vault
Чтение секрета из Vault KV с audit-event-ом.
read

Безопасные дефолты

  • core.url / core.http — только https:// и SSRF-guard по умолчанию; послабления — явными флагами с обязательным warning.
  • core.url — checksum-верификация до появления файла в целевом пути.
  • core.repogpg_check включён; http://-зеркало даёт warning.
  • core.firewall — никогда не трогает default policy и не включает файрвол целиком.
  • core.archive — защита от zip-slip / zip-bomb, маскировка setuid/setgid.