本文へスキップ

システムとヘルス ​

稼働状態(liveness)、準備状態(readiness)、メトリクス、OpenAPIドキュメント、サーバーの機能。

このグループの操作と、それぞれのアクセスルール、再試行ルール、パラメーター、レスポンスです。すべてのリクエストにはキーを付けます:Authorization: Bearer <key>(「認証」を参照)。

操作 ​

詳細なレディネスの確認 ​

GET HEAD /health/ready

アクセス: 有効なキーまたはセッション · 再試行: 再試行しても安全(読み取り)

データベースとストレージが応答するとreadyを返します。あわせて、このノードのrole(apiまたはreader)、現在書き込みを受け付けるかどうか(読み取りゲートウェイ、およびディスクの空き容量が予約分まで減っている間はwritableがfalse)、読み取りゲートウェイの共有ダウンロードスロット、アップロードとダウンロードの受け入れ状況と帯域幅の集計カウンターを返します。サーバーがドレイン中、または依存先が利用できない間は、Retry-After付きで503を返します。リクエスト予算には含まれません。キーを持たないロードバランサーには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.peersobjectの配列いいえ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、10進数の文字列)、マルチパートのセグメントの最小サイズと最大サイズ、パート数の上限、ページサイズの上限が含まれます。クライアントの起動時に一度読み取ってください。リソースの一覧は含まれません。

レスポンス 200

フィールド型必須ルール
apiVersionsstringの配列はい—
gatewayRolestringはい次のいずれか:api, reader
featuresbooleanのマップはい—
limitsobjectはい—
limits.maxObjectBytesstringいいえ10進数字で表した整数(文字列として送信)
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"}を返すか、unavailableまたはdrainingを伴う503とRetry-Afterを返します。依存先の確認は共有され、1秒間キャッシュされるため、頻繁なプローブでもデータベースに負荷がかかりません。また、このプローブはリクエスト予算に含まれません。

レスポンス 200

フィールド型必須ルール
statusstringはい次のいずれか:ready, unavailable, draining

レスポンス: 200, 400, 403, 503

例

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

プロセスの生存確認 ​

GET HEAD /health/live

アクセス: 誰でも(キー不要) · 再試行: 再試行しても安全(読み取り)

プロセスがHTTPに応答している間、200と{"status":"ok"}を返します。依存先は確認しないため、再起動するかどうかの判断にはこちらを、トラフィックを流すかどうかの判断には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を指定すると一覧を1つの領域に絞り込みます。ページには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
itemsobjectの配列はい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[].requiredActionsstringの配列はい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[].conditionsstringの配列はい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