---
title: "Прочитать готовность своей версии к публикации"
method: GET
path: "/api/v1/developer/apps/{key}/versions/{version}/publication"
tags: ["Developer account"]
---

# Прочитать готовность своей версии к публикации

`GET /api/v1/developer/apps/{key}/versions/{version}/publication`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/developer/apps/{key}/versions/{version}/publication`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Отчёт называет КАЖДОЕ ворот: что проверяется, прошло ли, машинную причину отказа и те значения, которые издатель подал сам, — имена прав, адреса из манифеста, режим исполнения, отпечаток документа. Числа ворот в описании нет намеренно: список растёт, и написанное здесь число устаревает молча. Готовность приезжает отдельным полем: читатель не должен выводить её из списка и ошибиться в пользу разрешения.

Отчёт считает ТА ЖЕ функция, что отвечает оператору. Второй расчёт «для издателя» разошёлся бы с первым на первой правке правил, и портал показывал бы зелёное там, где публикация отказывает.

ЧЕГО ЗДЕСЬ НЕТ. Свободного текста, который у нас пишет человек в поле ввода операторского экрана (вывод инструмента и заметка ревьюера): это та самая колонка, через которую наружу уезжают чужие слова — имя кабинета, из-за которого начали смотреть, внутренний адрес прогона. Отброшена она по тому же правилу, что и причина отказа в журнале доставки. Нет и карточки издателя: основание проверки и имя проверившего — сведения о НАШЕМ решении, а не о его версии.

Ворота, результат которых приносит персонал платформы, отвечают `awaiting_review`, а не `failed`: чинить издателю там нечего, и общий ответ отправил бы его править исправный манифест — каждой правкой роняя отпечаток, под которым ревью уже начали.

ПУБЛИКАЦИИ ЗДЕСЬ НЕТ. Соседнего POST по этому адресу не существует: второй способ перевести версию в опубликованные и есть обход ворот.

## Path parameters

- `key` string, required
- `version` string, required

## Response `200`

Отчёт ворот без внутренних сведений

- DeveloperPublicationResult
  - `publication` DeveloperPublicationReport, required
    - `version` string, required
    - `status` string, required: Состояние версии: черновик, на ревью, опубликована
    - `channel` string, required: Канал, объявленный манифестом этой версии
    - `publisher_status` string, required: Состояние СВОЕГО издателя: оно объясняет ворот publisher
    - `manifest_fingerprint` string, required: Отпечаток текущего манифеста: им запрет называет предмет, и по нему видно, что документ поменялся после проверки
    - `ready` boolean, required: Все обязательные ворота пройдены. Отдельным полем: выводить готовность из списка — ошибиться в пользу разрешения
    - `checks` DeveloperGateCheck[], required
      - `gate` 'publisher' | 'scopes' | 'sensitivity' | 'endpoints' | 'egress' | 'manifest' | 'scope_review' | 'blocklist' | 'functions', required: Какое ворот
      - `status` 'passed' | 'failed' | 'awaiting_review', required: `awaiting_review` — ход за персоналом платформы: результат внешнего ворота либо не приносили вовсе, либо приносили для другого документа. Своё состояние, а не `failed`: чинить издателю там нечего, и общий ответ отправил бы его править исправный манифест.
      - `external` boolean, required: Результат приносит не сервер — по нему видно, чинится ли отказ правкой манифеста
      - `reason` string: Машинный код отказа: текст на двух языках собирает портал
      - `values` string[]: Что именно не подошло: имена прав, адреса, режим, отпечаток. Всё это издатель подал сам
      - `checked_at` string, date-time: Когда внешнее ворот смотрели в последний раз; у несмотренного его нет

## Other responses

- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Приложения или версии нет; тот же ответ получает чужой ключ
- `503`: Ворота публикации в этой сборке не собраны; пустой отчёт читался бы как «ничто не мешает»

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
