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

Система и состояние ​

Живость, готовность, метрики, документ OpenAPI и возможности сервера.

Операции этой группы с правилом доступа, правилом повтора, параметрами и ответами. Каждый запрос несёт ключ: Authorization: Bearer <ключ> (см. «Аутентификация»).

Операции ​

Проверить подробную готовность ​

GET HEAD /health/ready

Доступ: Любой действующий ключ или сессия · Повтор: Можно повторять (чтение)

Отвечает ready, когда база данных и хранилище откликаются, и сообщает role этого узла (api или reader), принимает ли он сейчас запись (writable равно false на шлюзе чтения и пока на диске остаётся только резерв свободного места), общий слот скачивания шлюза чтения, а также сводные счётчики допуска и полосы пропускания для загрузок и скачиваний. Пока сервер останавливается, завершая текущие запросы, или зависимость недоступна, он отвечает 503 с Retry-After. Запрос не учитывается в лимите запросов; для балансировщика без ключа используйте getReadinessStatus.

Ответ 200

ПолеТипОбязателенПравила
rolestringдаодно из api, reader
sharedDownloadsobjectдаможет быть null
sharedDownloads.slotintegerдане меньше 0
sharedDownloads.slotsintegerдане меньше 0
sharedDownloads.activebooleanда—
sharedDownloads.leaseSecondsintegerдане меньше 0
statusstringдаодно из ready
writablebooleanда—
replicationobjectнетможет быть null
replication.copiesintegerда0–16
replication.requiredintegerда1–16
replication.singleCopyUntilstring (date-time)даможет быть null
replication.nodestringнетне длиннее 63 символов
replication.profilestringнетодно из ha-2, ha-3
replication.peersмассив objectнетне больше 16 элементов
replication.peers[].namestringдане длиннее 63 символов
replication.peers[].connectedbooleanда—
replication.peers[].diskstringдане длиннее 24 символов
replication.peers[].completebooleanда—
replication.peers[].witnessbooleanда—
transfersobjectда—
transfers.uploadsobjectда—
transfers.uploads.admissionobjectда—
transfers.uploads.bandwidthobjectда—
transfers.uploads.sessionsobjectнет—
transfers.downloadsobjectда—
transfers.downloads.admissionobjectда—
transfers.downloads.bandwidthobjectда—
transfers.downloads.sessionsobjectнет—

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/health/ready" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Получить возможности и ограничения сервера ​

GET HEAD /api/v1/capabilities

Доступ: Любой действующий ключ или сессия · Повтор: Можно повторять (чтение)

Возвращает версии API, роль шлюза, флаги возможностей (например, selfRegistration или mirrorFeed) и ограничения, под которые подстраивается клиент: наибольший объект (maxObjectBytes, десятичная строка), наименьший и наибольший размер части при загрузке по частям, наибольшее число частей и наибольший размер страницы. Прочитайте его один раз при запуске клиента; ресурсов он не перечисляет.

Ответ 200

ПолеТипОбязателенПравила
apiVersionsмассив stringда—
gatewayRolestringдаодно из api, reader
featuresсловарь booleanда—
limitsobjectда—
limits.maxObjectBytesstringнетцелое число десятичными цифрами, передаётся строкой
limits.partBytesintegerнетНаименьшая часть при загрузке по частям.
limits.maxPartBytesintegerнет—
limits.maxPartsintegerнет—
limits.maxPageSizeintegerнет—

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/api/v1/capabilities" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Проверить готовность для балансировщика ​

GET HEAD /health/status

Доступ: Любой, без ключа · Повтор: Можно повторять (чтение)

Не требует ключа и не возвращает подробностей: 200 с {"status":"ready"} или 503 с unavailable или draining и Retry-After. Проверка зависимостей общая и кэшируется на одну секунду, поэтому частые пробы не нагружают базу данных; проба не учитывается в лимите запросов.

Ответ 200

ПолеТипОбязателенПравила
statusstringдаодно из ready, unavailable, draining

Ответы: 200, 400, 403, 503

Пример

bash
curl -X GET "$ARKVORY_URL/health/status"

Проверить, что процесс жив ​

GET HEAD /health/live

Доступ: Любой, без ключа · Повтор: Можно повторять (чтение)

Возвращает 200 с {"status":"ok"}, пока процесс отвечает по HTTP. Зависимости не проверяются, поэтому по этому ответу решайте о перезапуске, а по getReadinessStatus — о направлении трафика.

Ответ 200

ПолеТипОбязателенПравила
statusstringдаодно из ok

Ответы: 200, 400, 403, 503

Пример

bash
curl -X GET "$ARKVORY_URL/health/live"

Получить документ OpenAPI ​

GET HEAD /api/v1/openapi.json

Доступ: Любой действующий ключ или сессия · Повтор: Можно повторять (чтение)

Возвращает документ OpenAPI 3.0 этого развёртывания с расширениями x-arkvory-*, которые описывают правила доступа, повтора и шлюза каждой операции. surface (discovery, identity, catalog, transfers, administration или operations) возвращает только эту область; неизвестный или повторяющийся параметр запроса — ошибка 400. Документ одинаков для всех вызывающих и ничего не разрешает: чтобы узнать, что можно вызывать с этими учётными данными, используйте listVisibleOperations.

Параметры

ИмяГдеТипОбязателенПравила
surfaceзапросstringнетодно из discovery, identity, catalog, transfers, administration, operations; Documentation view only; not filtered by caller permissions.

Ответ 200

ПолеТипОбязателенПравила
openapistringдаодно из 3.0.3
infoobjectда—
pathsobjectда—

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/api/v1/openapi.json" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Получить метрики Prometheus ​

GET HEAD /health/metrics

Доступ: Любой действующий ключ или сессия · Повтор: Можно повторять (чтение)

Возвращает метрики процесса в текстовом формате Prometheus (text/plain; version=0.0.4) для сборщика метрик. Счётчики и гистограммы относятся к этому процессу и после перезапуска начинаются с нуля (см. arkvory_process_start_time_seconds); метки ограничены шаблоном маршрута, методом, классом статуса и направлением передачи и никогда не называют артефакт, ключ или учётную запись. Сбор метрик не учитывается в лимите запросов.

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/health/metrics" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

Перечислить операции, которые можно вызвать с этими учётными данными ​

GET HEAD /api/v1/operations

Доступ: Любой действующий ключ или сессия · Повтор: Можно повторять (чтение)

Перечисляет в порядке operationId операции этого шлюза, которые можно вызвать с этими учётными данными; для каждой указаны область (surface), правило повтора, требуемые действия и conditions, проверяемые только в момент вызова (например, resource-state или upload-owner). repository добавляет операции этого репозитория (неизвестный или чужой репозиторий — 404), surface сужает список до одной области; страницы содержат limit элементов (1–100, по умолчанию 50), продолжайте с after, равным next. Ответ носит справочный характер: стройте по нему меню, но каждый реальный запрос авторизуется заново, а шлюз чтения не показывает изменяющие методы.

Параметры

ИмяГдеТипОбязателенПравила
repositoryзапросstringнетпо шаблону ^[a-z0-9][a-z0-9_-]{0,63}$
surfaceзапросstringнетодно из discovery, identity, catalog, transfers, administration, operations
afterзапросstringнетпо шаблону ^[A-Za-z][A-Za-z0-9]{0,95}$
limitзапросintegerнет1–100; по умолчанию 50

Ответ 200

ПолеТипОбязателенПравила
apiVersionstringдаодно из v1
documentVersionstringдапо шаблону ^\d+\.\d+\.\d+$
gatewayRolestringдаодно из api, reader
repositorystringдапо шаблону ^[a-z0-9][a-z0-9_-]{0,63}$; может быть null
advisorybooleanдаодно из true
itemsмассив objectдане больше 100 элементов
items[].operationIdstringдапо шаблону ^[A-Za-z][A-Za-z0-9]{0,95}$
items[].methodstringдаодно из get, head, post, put, patch, delete
items[].pathstringдапо шаблону ^/; не длиннее 512 символов
items[].summarystringдане длиннее 1024 символов
items[].surfacestringдаодно из discovery, identity, catalog, transfers, administration, operations
items[].visibilitystringдаодно из public, authenticated, self, repository, owned-resource, delegated, bootstrap, administrator
items[].retrystringдаодно из read, never-automatic, idempotent, idempotency-key, compare-and-swap, reconcile-upload, reconcile-job
items[].requiredActionsмассив stringдане больше 33 элементов; без повторов; каждый элемент: одно из repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read, service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read, backup.read, backup.manage
items[].conditionsмассив stringдане больше 6 элементов; без повторов; каждый элемент: одно из resource-state, upload-owner, job-owner, reference-owner, delegation-target-and-ceiling, own-key
nextstringдапо шаблону ^[A-Za-z][A-Za-z0-9]{0,95}$; может быть null

Ответы: 200, 400, 401, 403, 404, 409, 422, 503, 507

Пример

bash
curl -X GET "$ARKVORY_URL/api/v1/operations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Arkvory · ProAnimaStudio