1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
---
stage: Data Stores
group: Global Search
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
# Search admin API **(PREMIUM SELF)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120751) in GitLab 16.1
The search admin API returns information about [advanced search migrations](../integration/advanced_search/elasticsearch.md#advanced-search-migrations).
You must have administrator access to use this API.
## List all advanced search migrations
Get a list of all advanced search migrations for the GitLab instance.
```plaintext
GET /admin/search/migrations
```
Example request:
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/search/migrations"
```
Example response:
```json
[
{
"version": 20230427555555,
"name": "BackfillHiddenOnMergeRequests",
"started_at": "2023-05-12T01:35:05.469+00:00",
"completed_at": "2023-05-12T01:36:06.432+00:00",
"completed": true,
"obsolete": false,
"migration_state": {}
},
{
"version": 20230428500000,
"name": "AddSuffixProjectInWikiRid",
"started_at": "2023-05-04T18:59:43.542+00:00",
"completed_at": "2023-05-04T18:59:43.542+00:00",
"completed": false,
"obsolete": false,
"migration_state": {
"pause_indexing": true,
"slice": 1,
"task_id": null,
"max_slices": 5,
"retry_attempt": 0
}
},
{
"version": 20230503064300,
"name": "BackfillProjectPermissionsInBlobsUsingPermutations",
"started_at": "2023-05-03T16:04:44.074+00:00",
"completed_at": "2023-05-03T16:04:44.074+00:00",
"completed": true,
"obsolete": false,
"migration_state": {
"permutation_idx": 8,
"documents_remaining": 5,
"task_id": "I2_LXc-xQlOeu-KmjYpM8g:172820",
"documents_remaining_for_permutation": 0
}
}
]
```
## Get an advanced search migration
Get a single advanced search migration by providing the migration version or name.
```plaintext
GET /admin/search/mirations/:version_or_name
```
Parameters:
| Attribute | Type | Required | Description |
|-------------------|----------------|----------|--------------------------------------|
| `version_or_name` | integer/string | Yes | The version or name of the migration. |
Example request:
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/search/mirations/20230503064300"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/search/mirations/BackfillProjectPermissionsInBlobsUsingPermutations"
```
If successful, returns [`200`](rest/index.md#status-codes) and the following
response attributes:
| Attribute | Type | Description |
|:------------------|:---------|:------------------------------------------------------|
| `version` | integer | Version of the migration. |
| `name` | string | Name of the migration. |
| `started_at` | datetime | Start date for the migration. |
| `completed_at` | datetime | Completion date for the migration. |
| `completed` | boolean | If `true`, the migration is completed. |
| `obsolete` | boolean | If `true`, the migration has been marked as obsolete. |
| `migration_state` | object | Stored migration state. |
Example response:
```json
{
"version": 20230503064300,
"name": "BackfillProjectPermissionsInBlobsUsingPermutations",
"started_at": "2023-05-03T16:04:44.074+00:00",
"completed_at": "2023-05-03T16:04:44.074+00:00",
"completed": true,
"obsolete": false,
"migration_state": {
"permutation_idx": 8,
"documents_remaining": 5,
"task_id": "I2_LXc-xQlOeu-KmjYpM8g:172820",
"documents_remaining_for_permutation": 0
}
}
```
|