Исторический документ. План сохранён из ревизии исходника
61e75e9и не является текущим руководством по реализации. Исходный документ.
Добавить базовую и строгую политики с учётом версии для OKF v0.1 и v0.2 без расширения обязательных требований соответствия за пределы §11.
Зависимости: task09.md, task10.md.
| Целевая версия | Базовая проверка | Строгая проверка |
|---|---|---|
0.1 |
существующий контракт | старые timestamp/# Citations |
0.2 |
§11 | группы полей v0.2 и рекомендации для вычислений |
| отсутствует | v0.2 + резервные правила §13 | проверка присутствующих групп полей |
| будущая | по мере возможностей | только безопасное известное подмножество |
Определение версии должно быть общим доменным API, а не локальной эвристикой валидатора.
ERROR:
type;WARNING — только в строгом режиме или при проверке политик:
Отсутствующие необязательные группы, неизвестные типы, ключи и среды выполнения, нерабочие ресурсы и пути не являются ошибками соответствия.
Каждая новая диагностика получает стабильный Code, файл и точный путь поля,
например sources[2].resource.
sources — последовательность отображений.resource обязателен и является непустым скаляром в каждой записи.id, title, author проверять при наличии.usage_count — неотрицательное целое число в профиле инструментария.usage_window содержит from/to, корректные даты и from <= to.usage_count требует действующего окна.sources[].resource может быть описанием области.sources[].author проверять только как непустую строку из-за неоднозначности
исходной спецификации team:*.generated — отображение; by обязателен внутри присутствующего отображения;
at, если есть, соответствует RFC3339.generated.by/verified.by.verified принимает отображение и последовательность.by/at; одиночное отображение нормализуется.timestamp разрешён только при полном отсутствии generated.status: draft|stable|deprecated, отсутствие → stable.stale_after: корректная дата YYYY-MM-DD.today == stale_after означает устаревание.Поддержать абсолютные URL, пути относительно bundle и относительные пути для:
resource;computation;executor.resource;attester.resource.Не проверять сеть и существование целевого объекта как требование соответствия.
Для точного значения типа:
runtime непустой; неизвестные значения разрешены;{name,type,required} с уникальными именами и
логическим required;# Computation;executor/attester проверяются при наличии;receipt — уникальные непустые имена полей.Отсутствующие runtime/computation/executor/attester остаются предупреждениями
строгого режима, а не ошибками базового. Отложенный ABI не проверять.
timestamp/Citations только при отсутствии замены.[1] в явно указанной v0.2 не включает политику старого формата
автоматически.Добавить группы v02/positive, v02/strict, v02/compat,
v02/adversarial.
Покрыть:
type;verified в виде отображения и списка;ErrorCount == 0.Все тесты — AAA, вывод детерминированный.
type остаётся соответствующим требованиям.verified равнозначен списку из одного элемента.timestamp в v0.2.go test ./validator ./bundle и go test ./... проходят.Выполнение, ABI квитанций и вердиктов, среда выполнения, песочница и кеш attester,
привязка для конкретной среды выполнения, сетевые проверки и миграция.