데이터 관리 API
Offering: GitLab Self-Managed
데이터 관리 API를 사용하여 인스턴스의 데이터를 관리합니다. 인스턴스의 데이터 모델에 대한 정보를 조회합니다. :model_name 매개변수는 다음 중 하나여야 합니다: 이 엔드포인트는 모델의 기본 키에서 오름차순 또는 내림차순으로 정렬하는 키셋 페이지네이션을 지원합니다.
히스토리
데이터 관리 API를 사용하여 인스턴스의 데이터를 관리합니다.
사전 요건:
- 관리자여야 합니다.
모델 정보 조회#
인스턴스의 데이터 모델에 대한 정보를 조회합니다. 이 작업은 실험 단계이며 예고 없이 변경되거나 제거될 수 있습니다.
GET /admin/data_management/:model_name
:model_name 매개변수는 다음 중 하나여야 합니다:
ci_job_artifactsci_pipeline_artifactsci_secure_filescontainer_repositoriesdependency_proxy_blobsdependency_proxy_manifestsdesign_management_repositoriesgroup_wiki_repositorieslfs_objectsmerge_request_diffspackages_nuget_symbolspackages_package_filespages_deploymentsprojectsprojects_wiki_repositoriessnippet_repositoriessupply_chain_attestationsterraform_state_versionsuploads
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
model_name |
string | Yes | 요청된 모델의 복수화된 이름. 위의 :model_name 목록에 속해야 합니다. |
checksum_state |
string | No | 체크섬 상태로 검색. 허용되는 값: pending, started, succeeded, failed, disabled. |
identifiers |
array | No | 정수 또는 base64 인코딩 문자열일 수 있는 요청된 모델의 고유 식별자 배열로 결과를 필터링합니다. |
이 엔드포인트는 모델의 기본 키에서 오름차순 또는 내림차순으로 정렬하는 키셋 페이지네이션을 지원합니다. 키셋 페이지네이션을 사용하려면 요청에 pagination=keyset 매개변수를 추가합니다. 기본적으로 키셋 페이지네이션은 오름차순으로 페이지당 20개의 레코드를 로드합니다. 쿼리 매개변수 sort와 값 asc 또는 desc로 정렬 순서를 수정할 수 있습니다. 페이지당 레코드 수를 선택하려면 per_page 매개변수를 사용합니다.
성공하면 200과 모델에 대한 정보를 반환합니다. 다음 응답 속성이 포함됩니다:
| 속성 | 유형 | 설명 |
|---|---|---|
checksum_information |
JSON | 사용 가능한 경우 Geo 특정 체크섬 정보. |
created_at |
timestamp | 사용 가능한 경우 생성 타임스탬프. |
file_size |
integer | 사용 가능한 경우 객체 크기. |
model_class |
string | 모델의 클래스 이름. |
record_identifier |
string or integer | 레코드의 고유 식별자. 정수 또는 base64 인코딩 문자열일 수 있습니다. |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/projects?pagination=keyset"
응답 예시:
[
{
"record_identifier": 1,
"model_class": "Project",
"created_at": "2025-02-05T11:27:10.173Z",
"file_size": null,
"checksum_information": {
"checksum": "<object checksum>",
"last_checksum": "2025-07-24T14:22:18.643Z",
"checksum_state": "succeeded",
"checksum_retry_count": 0,
"checksum_retry_at": null,
"checksum_failure": null
}
},
{
"record_identifier": 2,
"model_class": "Project",
"created_at": "2025-02-05T11:27:14.402Z",
"file_size": null,
"checksum_information": {
"checksum": "<object checksum>",
"last_checksum": "2025-07-24T14:22:18.214Z",
"checksum_state": "succeeded",
"checksum_retry_count": 0,
"checksum_retry_at": null,
"checksum_failure": null
}
}
]
모델 레코드의 체크섬 재계산#
checksum_state 및 identifiers 매개변수가 제공된 경우 이를 기준으로 필터링하여 지정된 모델의 선택된 레코드에 대한 체크섬을 재계산합니다. 요청은 재계산을 수행하기 위한 백그라운드 작업을 큐에 넣습니다.
PUT /admin/data_management/:model_name/checksum
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
model_name |
string | Yes | 요청된 모델의 복수화된 이름. 위의 :model_name 목록에 속해야 합니다. |
checksum_state |
string | No | 체크섬 상태로 필터링. 허용되는 값: pending, started, succeeded, failed, disabled. |
identifiers |
array | No | 정수 또는 base64 인코딩 문자열일 수 있는 요청된 모델의 고유 식별자 배열로 레코드를 필터링합니다. |
성공하면 200과 다음 정보가 포함된 JSON 응답을 반환합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
message |
string | 성공 또는 오류에 대한 정보 메시지. |
status |
string | "success" 또는 "error"일 수 있습니다. |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/projects/checksum"
응답 예시:
{
"status": "success",
"message": "Batch update job has been successfully enqueued."
}
모델 레코드에 대한 정보 조회#
지정된 모델 레코드에 대한 정보를 조회합니다.
GET /admin/data_management/:model_name/:id
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
model_name |
string | Yes | 요청된 모델의 복수화된 이름. 위의 :model_name 목록에 속해야 합니다. |
record_identifier |
string or integer | Yes | 요청된 모델의 고유 식별자. 정수 또는 base64 인코딩 문자열일 수 있습니다. |
성공하면 200과 특정 모델 레코드에 대한 정보를 반환합니다. 다음 응답 속성이 포함됩니다:
| 속성 | 유형 | 설명 |
|---|---|---|
checksum_information |
JSON | 사용 가능한 경우 Geo 특정 체크섬 정보. |
created_at |
timestamp | 사용 가능한 경우 생성 타임스탬프. |
file_size |
integer | 사용 가능한 경우 객체 크기. |
model_class |
string | 모델의 클래스 이름. |
record_identifier |
string or integer | 레코드의 고유 식별자. 정수 또는 base64 인코딩 문자열일 수 있습니다. |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/projects/1"
응답 예시:
{
"record_identifier": 1,
"model_class": "Project",
"created_at": "2025-02-05T11:27:10.173Z",
"file_size": null,
"checksum_information": {
"checksum": "<object checksum>",
"last_checksum": "2025-07-24T14:22:18.643Z",
"checksum_state": "succeeded",
"checksum_retry_count": 0,
"checksum_retry_at": null,
"checksum_failure": null
}
}
모델 레코드의 체크섬 재계산#
지정된 모델 레코드의 체크섬을 재계산합니다. 체크섬 값은 md5 또는 sha256 알고리즘으로 해시된 쿼리된 모델의 표현입니다.
PUT /admin/data_management/:model_name/:record_identifier/checksum
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
model_name |
string | Yes | 요청된 모델의 복수화된 이름. 위의 :model_name 목록에 속해야 합니다. |
record_identifier |
string or integer | Yes | 레코드의 고유 식별자. 정수 또는 base64 인코딩 문자열일 수 있습니다 (GET 쿼리의 응답에서 가져옴). |
성공하면 200과 특정 모델 레코드에 대한 정보를 반환합니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/projects/1/checksum"
응답 예시:
{
"record_identifier": 1,
"model_class": "Project",
"created_at": "2025-02-05T11:27:10.173Z",
"file_size": null,
"checksum_information": {
"checksum": "<sha256 or md5 string>",
"last_checksum": "2025-07-24T14:22:18.643Z",
"checksum_state": "succeeded",
"checksum_retry_count": 0,
"checksum_retry_at": null,
"checksum_failure": null
}
}
