データ管理API
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed
- ステータス: 実験的機能
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
データ管理APIを使用して、インスタンスのデータを管理します。
前提要件:
- 管理者である必要があります。
モデルに関する情報を取得します
このエンドポイントは実験的機能であり、予告なく変更または削除される可能性があります。
GET /admin/data_management/:model_name:model_nameパラメータは、次のいずれかである必要があります:
ci_job_artifactci_pipeline_artifactci_secure_filecontainer_repositorydependency_proxy_blobdependency_proxy_manifestdesign_management_repositorygroup_wiki_repositorylfs_objectmerge_request_diffpackages_package_filepages_deploymentprojectprojects_wiki_repositorysnippet_repositoryterraform_state_versionupload
サポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
model_name | 文字列 | はい | 要求されたモデルの名前。上記の:model_nameリストに属している必要があります。 |
checksum_state | 文字列 | いいえ | チェックサムステータスで検索します。使用できる値: pending、started、succeeded、failed、disabled。 |
identifiers | 配列 | いいえ | 要求されたモデルの一意な識別子の配列で結果をフィルタリングします。これは、整数またはbase64エンコードされた文字列にすることができます。 |
成功した場合、200とモデルに関する情報が返されます。これには、次のレスポンス属性が含まれます:
| 属性 | 型 | 説明 |
|---|---|---|
checksum_information | JSON | Geo固有のチェックサム情報(利用可能な場合)。 |
created_at | タイムスタンプ | 作成タイムスタンプ(利用可能な場合)。 |
file_size | 整数 | オブジェクトのサイズ(利用可能な場合)。 |
model_class | 文字列 | モデルのクラス名。 |
record_identifier | 文字列または整数 | レコードの一意な識別子。整数またはbase64エンコードされた文字列にすることができます。 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/project"レスポンス例:
[
{
"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
}
}
]すべてのモデルレコードのチェックサムを再計算します
PUT /admin/data_management/:model_name/checksum| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
model_name | 文字列 | はい | 要求されたモデルの名前。上記の:model_nameリストに属している必要があります。 |
このエンドポイントは、モデルのすべてのレコードにチェックサムの再計算をマークします。バックグラウンドジョブをエンキューして、これを行います。成功した場合、200と、次の情報を含むJSONレスポンスが返されます:
| 属性 | 型 | 説明 |
|---|---|---|
message | 文字列 | 成功またはエラーに関する情報メッセージ。 |
status | 文字列 | “success"または"error"を指定できます。 |
{
"status": "success",
"message": "Batch update job has been successfully enqueued."
}特定のモデルレコードに関する情報を取得します
GET /admin/data_management/:model_name/:id| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
model_name | 文字列 | はい | 要求されたモデルの名前。上記の:model_nameリストに属している必要があります。 |
record_identifier | 文字列または整数 | はい | 要求されたモデルの一意な識別子。整数またはbase64エンコードされた文字列にすることができます。 |
成功した場合、200と特定のモデルレコードに関する情報が返されます。これには、次のレスポンス属性が含まれます:
| 属性 | 型 | 説明 |
|---|---|---|
checksum_information | JSON | Geo固有のチェックサム情報(利用可能な場合)。 |
created_at | タイムスタンプ | 作成タイムスタンプ(利用可能な場合)。 |
file_size | 整数 | オブジェクトのサイズ(利用可能な場合)。 |
model_class | 文字列 | モデルのクラス名。 |
record_identifier | 文字列または整数 | レコードの一意な識別子。整数またはbase64エンコードされた文字列にすることができます。 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/project/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
}
}特定のモデルレコードのチェックサムを再計算します
PUT /admin/data_management/:model_name/:record_identifier/checksum| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
model_name | 文字列 | はい | 要求されたモデルの名前。上記の:model_nameリストに属している必要があります。 |
record_identifier | 文字列または整数 | はい | レコードの一意な識別子。整数またはbase64エンコードされた文字列にすることができます(GETクエリのレスポンスから取得)。 |
成功した場合、200と特定のモデルレコードに関する情報が返されます。チェックサム値は、md5またはsha256アルゴリズムでハッシュされたクエリ対象モデルの表現です。
レスポンス例:
{
"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
}
}