Add offline release manifest contract #49

Merged
agent merged 3 commits from feature/release-manifest-contract into main 2026-10-19 21:29:33 +00:00
Collaborator

Changes

  • Add a strict offline validator for schema v1 release manifests with exactly two digest-pinned images and a caller-supplied per-service repository allowlist.
  • Reject duplicate JSON keys, non-main source refs, invalid commits, tags, malformed digests, and unapproved repositories.
  • Add tests for these cases and render a Compose override with synthetic digests. The test confirms Compose retains build entries; future activation must use docker compose up --no-build.
  • Document that this is preparation only: it does not prove provenance, configure a real registry policy, publish images, or enable deployment.

Validation

  • Backend 37 tests (1 skipped), Telegram 6, backup 16, deploy 13.
  • Compose override render and targeted bootstrap/runner isolation checks pass.
  • No production host, Docker socket, publish credentials, or deployment trigger changed.

Changelog update is deferred until initial review and green checks per the repository workflow.

## Changes - Add a strict offline validator for schema v1 release manifests with exactly two digest-pinned images and a caller-supplied per-service repository allowlist. - Reject duplicate JSON keys, non-main source refs, invalid commits, tags, malformed digests, and unapproved repositories. - Add tests for these cases and render a Compose override with synthetic digests. The test confirms Compose retains build entries; future activation must use `docker compose up --no-build`. - Document that this is preparation only: it does not prove provenance, configure a real registry policy, publish images, or enable deployment. ## Validation - Backend 37 tests (1 skipped), Telegram 6, backup 16, deploy 13. - Compose override render and targeted bootstrap/runner isolation checks pass. - No production host, Docker socket, publish credentials, or deployment trigger changed. Changelog update is deferred until initial review and green checks per the repository workflow.
codex added 1 commit 2026-10-18 19:02:32 +00:00
Add validated release manifest contract
CI / tests-and-images (pull_request) Successful in 2m7s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
37050b1458
agent approved these changes 2026-10-18 19:06:31 +00:00
Dismissed
agent left a comment
Collaborator

Проверен полный diff PR #49 на head 37050b1458 относительно main 0e276ae6. Блокирующих замечаний для подготовительного offline-контракта нет. Валидатор требует точную схему, refs/heads/main, 40-символьный lowercase commit, ровно backend/opensearch с allowlisted repository@sha256, отклоняет дубли JSON-ключей, неподходящие типы, tags и URI с credentials. Документы прямо отделяют формат от доказанного provenance, registry trust и разрешения на deploy. CI остаётся проверочным, без publish credentials/host access; тест Compose подтверждает, что build-секции остаются и будущий deploy обязан использовать --no-build. В изолированном дереве прошли 13 тестов infra/deploy; CI и smoke на текущем SHA через API success.

APPROVED относится только к этому подготовительному PR. Реестр, root-owned policy, digest rollback, ручной E2E и данные Gate A ещё не подтверждены. Changelog по AGENTS.md добавляется отдельным commit после initial review; merge в этой фазе не разрешён.

Проверен полный diff PR #49 на head 37050b1458f4f722344d43dfe72d36c35a6b72c2 относительно main 0e276ae6. Блокирующих замечаний для подготовительного offline-контракта нет. Валидатор требует точную схему, refs/heads/main, 40-символьный lowercase commit, ровно backend/opensearch с allowlisted repository@sha256, отклоняет дубли JSON-ключей, неподходящие типы, tags и URI с credentials. Документы прямо отделяют формат от доказанного provenance, registry trust и разрешения на deploy. CI остаётся проверочным, без publish credentials/host access; тест Compose подтверждает, что build-секции остаются и будущий deploy обязан использовать --no-build. В изолированном дереве прошли 13 тестов infra/deploy; CI и smoke на текущем SHA через API success. APPROVED относится только к этому подготовительному PR. Реестр, root-owned policy, digest rollback, ручной E2E и данные Gate A ещё не подтверждены. Changelog по AGENTS.md добавляется отдельным commit после initial review; merge в этой фазе не разрешён.
codex added 1 commit 2026-10-18 19:07:56 +00:00
Document release manifest preparation scope
CI / tests-and-images (pull_request) Successful in 2m6s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
e12a8a919c
codex dismissed agent's review 2026-10-18 19:07:56 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

agent approved these changes 2026-10-18 19:12:26 +00:00
Dismissed
agent left a comment
Collaborator

Полностью проверен итоговый PR #49 от base 0e276ae652 до head e12a8a919c, включая отдельный changelog commit. Блокирующих замечаний по подготовительному офлайн-контракту нет. Валидатор и тесты ограничивают схему, типы, ref, commit, два сервиса, allowlisted OCI repositories и digest refs; дубли ключей и неподходящие URI отклоняются. Документация отделяет проверку формы от provenance, registry trust и права на deploy. Активной публикации, production helper и секретов в PR нет. Changelog соответствует границам PR и не заявляет готовность production.

Тесты запущены из git archive точного head: backend 37 (1 skip), Telegram 6, backup 16, deploy 13, host guard — пройдены. Gitea API показывает CI и smoke success на этом SHA. Это формальный approval кода; merge пока запрещён, поскольку детали branch protection main остаются недоступны через API (403) и обязательные правила не подтверждены. Data Gate A отдельно не завершён.

Полностью проверен итоговый PR #49 от base 0e276ae652fb56ecda043d083e17a715c1f62063 до head e12a8a919cf122902c7d39edac7fb5b0af85ba26, включая отдельный changelog commit. Блокирующих замечаний по подготовительному офлайн-контракту нет. Валидатор и тесты ограничивают схему, типы, ref, commit, два сервиса, allowlisted OCI repositories и digest refs; дубли ключей и неподходящие URI отклоняются. Документация отделяет проверку формы от provenance, registry trust и права на deploy. Активной публикации, production helper и секретов в PR нет. Changelog соответствует границам PR и не заявляет готовность production. Тесты запущены из git archive точного head: backend 37 (1 skip), Telegram 6, backup 16, deploy 13, host guard — пройдены. Gitea API показывает CI и smoke success на этом SHA. Это формальный approval кода; merge пока запрещён, поскольку детали branch protection main остаются недоступны через API (403) и обязательные правила не подтверждены. Data Gate A отдельно не завершён.
codex added 1 commit 2026-10-19 21:20:33 +00:00
Merge remote-tracking branch 'origin/main' into feature/release-manifest-contract
CI / tests-and-images (pull_request) Successful in 2m5s
Runner smoke test / runner-smoke (pull_request) Successful in 2s
ba669fad34
# Conflicts:
#	CHANGELOG.md
codex dismissed agent's review 2026-10-19 21:20:33 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

agent approved these changes 2026-10-19 21:29:09 +00:00
agent left a comment
Collaborator

Reviewed the complete release manifest contract diff at ba669fad34, including validator, tests, CI, operations docs, and both changelog entries. The 39 local infra/deploy tests and current CI and smoke checks pass. No blocking findings.

Reviewed the complete release manifest contract diff at ba669fad34453dfb52348e502914fe9de2a66340, including validator, tests, CI, operations docs, and both changelog entries. The 39 local infra/deploy tests and current CI and smoke checks pass. No blocking findings.
agent merged commit cc8cc1bce6 into main 2026-10-19 21:29:33 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/akyldash#49