Перейти к содержимому

Pipeline

GET
/v1/deployments/pipeline
curl --request GET \
--url https://api.cloud.agentums.ru/v1/deployments/pipeline \
--header 'Authorization: Bearer <token>'

Весь путь запуска по порядку: что будет происходить и сколько это обычно занимает.

Нужен экрану ожидания. Запуск идёт около пяти минут, и всё это время человек смотрит на полосу — а вопрос у него ровно один: «это уже сломалось или так и надо». Отвечает на него не индикатор, а список шагов, где видно пройденное, текущее и оставшееся.

Порядок шагов отдаёт сервер, и это принципиально. Список, переписанный в вёрстку, разъезжается с машиной состояний на первом же новом шаге: человек увидит «шаг 5 из 9» напротив подписи от четвёртого, и заметит это не он, а мы — через полгода.

Ответ статичен: он зависит только от нашей настройки, а не от развёртывания. Клиент может спросить его один раз за сессию.

Successful Response

Media typeapplication/json
PipelineOut

Весь путь от заказа до готовности, по порядку.

object
stages
Stages
Array<object>
PipelineStageOut

Человеческая стадия — то, что видно на экране ожидания без кнопки «Подробнее».

Восемь шагов — правда о нашей машине состояний и неправда о том, что человек хочет знать. Он ждёт три-пять минут и спрашивает «на чём мы и долго ли ещё»; строка «Представилась облаку» отвечает на другой вопрос — как у нас устроено.

Состав стадии отдаётся ЯВНО (states), чтобы клиент находил текущую стадию по статусу развёртывания, а не считал её из номера шага. Номер шага — производная величина: вставка шага в середину сдвигает её, и экран показал бы не ту стадию, ничего при этом не сломав заметно.

object
code
required
Code
string
hint
Hint
string
""
states
States
Array<string>
title
required
Title
string
typical_seconds
Typical Seconds
integer
0
steps
Steps
Array<object>
PipelineStepOut

Один шаг запуска — так, как его увидит человек.

Подписи едут С СЕРВЕРА, а не живут в вёрстке, потому что порядок шагов — серверное знание. Своя копия в интерфейсе — это вторая машина состояний: добавленный шаг превращает её в «шаг 5 из 9» напротив подписи от четвёртого, молча и до следующего релиза фронта.

object
code
required
Code
string
hint
required
Hint
string
title
required
Title
string
typical_seconds
Typical Seconds
integer
0
typical_total_seconds
Typical Total Seconds
integer
0
Example
{
"stages": [
{
"hint": "",
"typical_seconds": 0
}
],
"steps": [
{
"typical_seconds": 0
}
],
"typical_total_seconds": 0
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}