modelcanoncheck

command
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

Команда model-canon-check — исполнитель побайтовой сверки модели доступов с манифестами модулей (задача PRO-Robotech/kacho#1089, приёмка services/iam/docs/engineering/acceptance/model-generated-from-manifest.md).

Обходит закрытый набор модулей платформы, порождает блоки типов из манифеста каждого и сверяет порождённое с каноном `proto/kaname/cloud/iam/v1/fga_model.fga` ПОБАЙТОВО. Второй операнд сверки резолвится ОТ КОРНЯ ДЕРЕВА по постоянному относительному пути, за его пределы не выходит (#2159) и параметром не является — подменить его снимком нечем (§2 п. 2).

Тонкая обёртка: ЧТО сверяется и почему исходов три, документировано на пакете services/iam/internal/modelrender. Здесь живут вызов, ведомость послаблений и перевод отчёта в код возврата.

Зачем исполнитель, когда есть пробы пакета

Пробы пакета судят обход на СИНТЕТИЧЕСКИХ деревьях и о дереве продукта не утверждают ничего. Без исполнителя пакет не имеет прод-потребителя (`architecture.md` §LEAN), перепись §2 п. 5 не печатается нигде, а «сверка побайтовая» остаётся библиотекой, а не гейтом.

Коды возврата

0  сверено — каждый блок канона, принадлежащий модулю набора, порождён и равен;
1  находка — расхождение блоков, блок без источника в манифесте, модуль без
             манифеста и без записи ведомости, негодный документ, запись
             ведомости без предмета;
2  VOID    — сверять нечего НИ ДЛЯ ОДНОГО модуля;
3  проверка НЕ ИСПОЛНЯЛАСЬ — вызов разобрать не удалось ЛИБО канона в этом
   дереве нет by construction (самостоятельный клон модуля: контракты в его
   поставку не входят, сверять не с чем).

Третий код отделён от нулевого потому, что «ноль находок» обязано быть отличимо от «ноль прочитанного»; четвёртый — потому, что «не выполнилось» не вычитается из вердикта и не зачитывается в успех (`testing.md` §«Чтение вердикта»). Разбор аргументов у flag.ExitOnError выходит кодом 2 — то есть СОВПАЛ БЫ с VOID и объявил бы пустым деревом опечатку в вызове; поэтому здесь свой набор флагов с ContinueOnError и свой код. Тот же довод и тот же выбор, что у соседа module-manifest-check.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL