본문으로 건너뛰기

시스템 및 상태 ​

활성 상태(liveness), 준비 상태(readiness), 메트릭, OpenAPI 문서, 서버 기능.

이 그룹의 작업과 각 작업의 액세스 규칙, 재시도 규칙, 매개 변수, 응답입니다. 모든 요청에는 키가 포함됩니다: Authorization: Bearer <키>(“인증” 참조).

작업 ​

상세 준비 상태 확인 ​

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

액세스: 누구나, 키 없이 · 재시도: 반복해도 안전함(읽기)

키가 필요 없고 세부 정보도 반환하지 않습니다. {"status":"ready"} 본문과 함께 200을 반환하거나, unavailable 또는 draining 상태와 Retry-After를 포함한 503을 반환합니다. 종속 서비스 검사는 공유되며 1초 동안 캐시되므로 잦은 프로브가 데이터베이스에 부하를 주지 않고, 프로브는 요청 한도에 포함되지 않습니다.

응답 200

필드형식필수규칙
statusstring예ready, unavailable, draining 중 하나

응답: 200, 400, 403, 503

예제

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

프로세스 생존 확인 ​

GET HEAD /health/live

액세스: 누구나, 키 없이 · 재시도: 반복해도 안전함(읽기)

프로세스가 HTTP에 응답하는 동안 {"status":"ok"} 본문과 함께 200을 반환합니다. 종속 서비스를 검사하지 않으므로 재시작 여부를 판단할 때 사용하고, 트래픽 수신 여부는 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)으로 반환합니다. 카운터와 히스토그램은 이 프로세스에 속하며 재시작 후 0에서 다시 시작합니다(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 순으로 나열하며, 각 항목에 영역, 재시도 규칙, 필요한 권한 액션, 호출 시점에만 검사되는 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 중 하나
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