データ管理API
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed
- ステータス: 実験的機能
インスタンスのデータを管理するには、データ管理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_debian_project_component_filespackages_nuget_symbolspackages_package_filespages_deploymentsprojectsprojects_wiki_repositoriessnippet_repositoriessupply_chain_attestationsterraform_state_versionsuploads
サポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
model_name | 文字列 | はい | リクエストされたモデルの複数形名。上記の:model_nameリストに属している必要があります。 |
checksum_state | 文字列 | いいえ | チェックサムステータスで検索します。許可される値: pending、started、succeeded、失敗、disabled。 |
identifiers | 配列 | いいえ | リクエストされたモデルの固有識別子の配列で結果をフィルタリングします。これは、整数またはbase64でエンコードされた文字列のいずれかです。 |
このエンドポイントは、モデルのプライマリキーで、昇順または降順のソートとともに、キーセットページネーションをサポートします。キーセットページネーションを使用するには、pagination=keysetパラメータをリクエストに追加します。デフォルトでは、キーセットページネーションは1ページあたり20レコードを昇順で読み込みます。クエリパラメータsortと、値ascまたはdescを使用して、ソート順序を変更できます。ページあたりのレコード数を選択するには、パラメータper_pageを使用します。
成功した場合、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/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 | 文字列 | はい | リクエストされたモデルの複数形名。上記の:model_nameリストに属している必要があります。 |
checksum_state | 文字列 | いいえ | チェックサムステータスでフィルタリングします。許可される値: pending、started、succeeded、失敗、disabled。 |
identifiers | 配列 | いいえ | リクエストされたモデルの固有識別子の配列でレコードをフィルタリングします。これは、整数またはbase64でエンコードされた文字列のいずれかです。 |
成功した場合、200と次の情報を含むJSONレスポンスを返します:
| 属性 | 型 | 説明 |
|---|---|---|
message | 文字列 | 成功またはエラーに関する情報メッセージ。 |
status | 文字列 | 「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 | 文字列 | はい | リクエストされたモデルの複数形名。上記の: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/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 | 文字列 | はい | リクエストされたモデルの複数形名。上記の:model_nameリストに属している必要があります。 |
record_identifier | 文字列または整数 | はい | レコードの固有識別子。整数または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
}
}