Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api/geo_sites.md')
-rw-r--r--doc/api/geo_sites.md1111
1 files changed, 1111 insertions, 0 deletions
diff --git a/doc/api/geo_sites.md b/doc/api/geo_sites.md
new file mode 100644
index 00000000000..40410cdf540
--- /dev/null
+++ b/doc/api/geo_sites.md
@@ -0,0 +1,1111 @@
+---
+stage: Systems
+group: Geo
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Geo sites API **(PREMIUM SELF)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/369140) in GitLab 16.0.
+
+Use the Geo sites API to manage Geo site endpoints.
+
+Prerequisites:
+
+- You must be an administrator.
+
+## Create a new Geo site
+
+Creates a new Geo site.
+
+```plaintext
+POST /geo_sites
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites" \
+ --request POST \
+ -d "name=himynameissomething" \
+ -d "url=https://another-node.example.com/"
+```
+
+| Attribute | Type | Required | Description |
+|---------------------------------------|---------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `primary` | boolean | no | Specifying whether this site should be primary. Defaults to false. |
+| `enabled` | boolean | no | Flag indicating if the Geo site is enabled. Defaults to true. |
+| `name` | string | yes | The unique identifier for the Geo site. Must match `geo_node_name` if it is set in `gitlab.rb`, otherwise it must match `external_url` |
+| `url` | string | yes | The user-facing URL for the Geo site. |
+| `internal_url` | string | no | The URL defined on the primary site that secondary sites should use to contact it. Returns `url` if not set. |
+| `files_max_capacity` | integer | no | Control the maximum concurrency of LFS/attachment backfill for this secondary site. Defaults to 10. |
+| `repos_max_capacity` | integer | no | Control the maximum concurrency of repository backfill for this secondary site. Defaults to 25. |
+| `verification_max_capacity` | integer | no | Control the maximum concurrency of repository verification for this site. Defaults to 100. |
+| `container_repositories_max_capacity` | integer | no | Control the maximum concurrency of container repository sync for this site. Defaults to 10. |
+| `sync_object_storage` | boolean | no | Flag indicating if the secondary Geo site should replicate blobs in Object Storage. Defaults to false. |
+| `selective_sync_type` | string | no | Limit syncing to only specific groups or shards. Valid values: `"namespaces"`, `"shards"`, or `null`. |
+| `selective_sync_shards` | array | no | The repository storage for the projects synced if `selective_sync_type` == `shards`. |
+| `selective_sync_namespace_ids` | array | no | The IDs of groups that should be synced, if `selective_sync_type` == `namespaces`. |
+| `minimum_reverification_interval` | integer | no | The interval (in days) in which the repository verification is valid. Once expired, it is reverified. This has no effect when set on a secondary site. |
+
+Example response:
+
+```json
+{
+ "id": 3,
+ "name": "Test Site 1",
+ "url": "https://secondary.example.com/",
+ "internal_url": "https://secondary.example.com/",
+ "primary": false,
+ "enabled": true,
+ "current": false,
+ "files_max_capacity": 10,
+ "repos_max_capacity": 25,
+ "verification_max_capacity": 100,
+ "container_repositories_max_capacity": 10,
+ "selective_sync_type": "namespaces",
+ "selective_sync_shards": [],
+ "selective_sync_namespace_ids": [1, 25],
+ "minimum_reverification_interval": 7,
+ "sync_object_storage": false,
+ "web_edit_url": "https://primary.example.com/admin/geo/sites/3/edit",
+ "web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/3/replication/lfs_objects",
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/3",
+ "status": "https://primary.example.com/api/v4/geo_sites/3/status",
+ "repair": "https://primary.example.com/api/v4/geo_sites/3/repair"
+ }
+}
+```
+
+## Retrieve configuration about all Geo sites
+
+```plaintext
+GET /geo_sites
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites"
+```
+
+Example response:
+
+```json
+[
+ {
+ "id": 1,
+ "name": "us-site",
+ "url": "https://primary.example.com/",
+ "internal_url": "https://internal.example.com/",
+ "primary": true,
+ "enabled": true,
+ "current": true,
+ "files_max_capacity": 10,
+ "repos_max_capacity": 25,
+ "verification_max_capacity": 100,
+ "container_repositories_max_capacity": 10,
+ "selective_sync_type": "namespaces",
+ "selective_sync_shards": [],
+ "selective_sync_namespace_ids": [1, 25],
+ "minimum_reverification_interval": 7,
+ "web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/1",
+ "status":"https://primary.example.com/api/v4/geo_sites/1/status",
+ "repair":"https://primary.example.com/api/v4/geo_sites/1/repair"
+ }
+ },
+ {
+ "id": 2,
+ "name": "cn-site",
+ "url": "https://secondary.example.com/",
+ "internal_url": "https://secondary.example.com/",
+ "primary": false,
+ "enabled": true,
+ "current": false,
+ "files_max_capacity": 10,
+ "repos_max_capacity": 25,
+ "verification_max_capacity": 100,
+ "container_repositories_max_capacity": 10,
+ "selective_sync_type": "namespaces",
+ "selective_sync_shards": [],
+ "selective_sync_namespace_ids": [1, 25],
+ "minimum_reverification_interval": 7,
+ "sync_object_storage": true,
+ "web_edit_url": "https://primary.example.com/admin/geo/sites/2/edit",
+ "web_geo_replication_details_url": "https://secondary.example.com/admin/geo/sites/2/replication/lfs_objects",
+ "_links": {
+ "self":"https://primary.example.com/api/v4/geo_sites/2",
+ "status":"https://primary.example.com/api/v4/geo_sites/2/status",
+ "repair":"https://primary.example.com/api/v4/geo_sites/2/repair"
+ }
+ }
+]
+```
+
+## Retrieve configuration about a specific Geo site
+
+```plaintext
+GET /geo_sites/:id
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/1"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "name": "us-site",
+ "url": "https://primary.example.com/",
+ "internal_url": "https://primary.example.com/",
+ "primary": true,
+ "enabled": true,
+ "current": true,
+ "files_max_capacity": 10,
+ "repos_max_capacity": 25,
+ "verification_max_capacity": 100,
+ "container_repositories_max_capacity": 10,
+ "selective_sync_type": "namespaces",
+ "selective_sync_shards": [],
+ "selective_sync_namespace_ids": [1, 25],
+ "minimum_reverification_interval": 7,
+ "web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/1",
+ "status":"https://primary.example.com/api/v4/geo_sites/1/status",
+ "repair":"https://primary.example.com/api/v4/geo_sites/1/repair"
+ }
+}
+```
+
+## Edit a primary Geo site
+
+Updates settings of an existing primary Geo site.
+
+```plaintext
+PUT /geo_sites/:id
+```
+
+| Attribute | Type | Required | Description |
+|---------------------------------------|---------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `id` | integer | yes | The ID of the Geo site. |
+| `enabled` | boolean | no | Flag indicating if the Geo site is enabled. |
+| `name` | string | no | The unique identifier for the Geo site. Must match `geo_node_name` if it is set in `gitlab.rb`, otherwise it must match `external_url`. |
+| `url` | string | no | The user-facing URL of the Geo site. |
+| `internal_url` | string | no | The URL defined on the primary site that secondary sites should use to contact it. Returns `url` if not set. |
+| `files_max_capacity` | integer | no | Control the maximum concurrency of LFS/attachment backfill for this secondary site. |
+| `repos_max_capacity` | integer | no | Control the maximum concurrency of repository backfill for this secondary site. |
+| `verification_max_capacity` | integer | no | Control the maximum concurrency of verification for this site. |
+| `container_repositories_max_capacity` | integer | no | Control the maximum concurrency of container repository sync for this site. |
+| `selective_sync_type` | string | no | Limit syncing to only specific groups or shards. Valid values: `"namespaces"`, `"shards"`, or `null`. |
+| `selective_sync_shards` | array | no | The repository storage for the projects synced if `selective_sync_type` == `shards`. |
+| `selective_sync_namespace_ids` | array | no | The IDs of groups that should be synced, if `selective_sync_type` == `namespaces`. |
+| `minimum_reverification_interval` | integer | no | The interval (in days) in which the repository verification is valid. Once expired, it is reverified. This has no effect when set on a secondary site. |
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "name": "us-site",
+ "url": "https://primary.example.com/",
+ "internal_url": "https://internal.example.com/",
+ "primary": true,
+ "enabled": true,
+ "current": true,
+ "files_max_capacity": 10,
+ "repos_max_capacity": 25,
+ "verification_max_capacity": 100,
+ "container_repositories_max_capacity": 10,
+ "selective_sync_type": "namespaces",
+ "selective_sync_shards": [],
+ "selective_sync_namespace_ids": [1, 25],
+ "minimum_reverification_interval": 7,
+ "web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/1",
+ "status": "https://primary.example.com/api/v4/geo_sites/1/status",
+ "repair": "https://primary.example.com/api/v4/geo_sites/1/repair"
+ }
+}
+
+```
+
+## Delete a Geo site
+
+Removes the Geo site.
+
+```plaintext
+DELETE /geo_sites/:id
+```
+
+| Attribute | Type | Required | Description |
+|-----------|---------|----------|-------------------------|
+| `id` | integer | yes | The ID of the Geo site. |
+
+## Repair a primary Geo site
+
+Repairs the OAuth authentication of a primary Geo site.
+
+```plaintext
+POST /geo_sites/:id/repair
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "name": "us-site",
+ "url": "https://primary.example.com/",
+ "internal_url": "https://primary.example.com/",
+ "primary": true,
+ "enabled": true,
+ "current": true,
+ "files_max_capacity": 10,
+ "repos_max_capacity": 25,
+ "verification_max_capacity": 100,
+ "container_repositories_max_capacity": 10,
+ "web_edit_url": "https://primary.example.com/admin/geo/sites/1/edit",
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/1",
+ "status":"https://primary.example.com/api/v4/geo_sites/1/status",
+ "repair":"https://primary.example.com/api/v4/geo_sites/1/repair"
+ }
+}
+```
+
+## Retrieve status about all Geo sites
+
+```plaintext
+GET /geo_sites/status
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/status"
+```
+
+Example response:
+
+```json
+[
+ {
+ "geo_node_id": 1,
+ "repository_verification_enabled": true,
+ "repositories_replication_enabled": null,
+ "repositories_synced_count": null,
+ "repositories_failed_count": null,
+ "wikis_synced_count": null,
+ "wikis_failed_count": null,
+ "repositories_verified_count": null,
+ "repositories_verification_failed_count": null,
+ "repositories_verification_total_count": null,
+ "wikis_verified_count": null,
+ "wikis_verification_failed_count": null,
+ "wikis_verification_total_count": null,
+ "job_artifacts_synced_missing_on_primary_count": null,
+ "repositories_checksummed_count": 19,
+ "repositories_checksum_failed_count": 0,
+ "repositories_checksum_mismatch_count": null,
+ "repositories_checksum_total_count": 19,
+ "wikis_checksummed_count": 0,
+ "wikis_checksum_failed_count": 0,
+ "wikis_checksum_mismatch_count": null,
+ "wikis_checksum_total_count": 19,
+ "repositories_retrying_verification_count": null,
+ "wikis_retrying_verification_count": null,
+ "projects_count": 19,
+ "container_repositories_replication_enabled": null,
+ "design_repositories_replication_enabled": null,
+ "design_repositories_count": null,
+ "design_repositories_synced_count": null,
+ "design_repositories_failed_count": null,
+ "lfs_objects_count": 0,
+ "lfs_objects_checksum_total_count": 0,
+ "lfs_objects_checksummed_count": 0,
+ "lfs_objects_checksum_failed_count": 0,
+ "lfs_objects_synced_count": null,
+ "lfs_objects_failed_count": null,
+ "lfs_objects_registry_count": null,
+ "lfs_objects_verification_total_count": null,
+ "lfs_objects_verified_count": null,
+ "lfs_objects_verification_failed_count": null,
+ "merge_request_diffs_count": 0,
+ "merge_request_diffs_checksum_total_count": 0,
+ "merge_request_diffs_checksummed_count": 0,
+ "merge_request_diffs_checksum_failed_count": 0,
+ "merge_request_diffs_synced_count": null,
+ "merge_request_diffs_failed_count": null,
+ "merge_request_diffs_registry_count": null,
+ "merge_request_diffs_verification_total_count": null,
+ "merge_request_diffs_verified_count": null,
+ "merge_request_diffs_verification_failed_count": null,
+ "package_files_count": 25,
+ "package_files_checksum_total_count": 25,
+ "package_files_checksummed_count": 25,
+ "package_files_checksum_failed_count": 0,
+ "package_files_synced_count": null,
+ "package_files_failed_count": null,
+ "package_files_registry_count": null,
+ "package_files_verification_total_count": null,
+ "package_files_verified_count": null,
+ "package_files_verification_failed_count": null,
+ "terraform_state_versions_count": 18,
+ "terraform_state_versions_checksum_total_count": 18,
+ "terraform_state_versions_checksummed_count": 18,
+ "terraform_state_versions_checksum_failed_count": 0,
+ "terraform_state_versions_synced_count": null,
+ "terraform_state_versions_failed_count": null,
+ "terraform_state_versions_registry_count": null,
+ "terraform_state_versions_verification_total_count": null,
+ "terraform_state_versions_verified_count": null,
+ "terraform_state_versions_verification_failed_count": null,
+ "snippet_repositories_count": 20,
+ "snippet_repositories_checksum_total_count": 20,
+ "snippet_repositories_checksummed_count": 20,
+ "snippet_repositories_checksum_failed_count": 0,
+ "snippet_repositories_synced_count": null,
+ "snippet_repositories_failed_count": null,
+ "snippet_repositories_registry_count": null,
+ "snippet_repositories_verification_total_count": null,
+ "snippet_repositories_verified_count": null,
+ "snippet_repositories_verification_failed_count": null,
+ "group_wiki_repositories_count": 0,
+ "group_wiki_repositories_checksum_total_count": null,
+ "group_wiki_repositories_checksummed_count": null,
+ "group_wiki_repositories_checksum_failed_count": null,
+ "group_wiki_repositories_synced_count": null,
+ "group_wiki_repositories_failed_count": null,
+ "group_wiki_repositories_registry_count": null,
+ "group_wiki_repositories_verification_total_count": null,
+ "group_wiki_repositories_verified_count": null,
+ "group_wiki_repositories_verification_failed_count": null,
+ "pipeline_artifacts_count": 0,
+ "pipeline_artifacts_checksum_total_count": 0,
+ "pipeline_artifacts_checksummed_count": 0,
+ "pipeline_artifacts_checksum_failed_count": 0,
+ "pipeline_artifacts_synced_count": null,
+ "pipeline_artifacts_failed_count": null,
+ "pipeline_artifacts_registry_count": null,
+ "pipeline_artifacts_verification_total_count": null,
+ "pipeline_artifacts_verified_count": null,
+ "pipeline_artifacts_verification_failed_count": null,
+ "pages_deployments_count": 0,
+ "pages_deployments_checksum_total_count": 0,
+ "pages_deployments_checksummed_count": 0,
+ "pages_deployments_checksum_failed_count": 0,
+ "pages_deployments_synced_count": null,
+ "pages_deployments_failed_count": null,
+ "pages_deployments_registry_count": null,
+ "pages_deployments_verification_total_count": null,
+ "pages_deployments_verified_count": null,
+ "pages_deployments_verification_failed_count": null,
+ "uploads_count": 51,
+ "uploads_checksum_total_count": 51,
+ "uploads_checksummed_count": 51,
+ "uploads_checksum_failed_count": 0,
+ "uploads_synced_count": null,
+ "uploads_failed_count": null,
+ "uploads_registry_count": null,
+ "uploads_verification_total_count": null,
+ "uploads_verified_count": null,
+ "uploads_verification_failed_count": null,
+ "job_artifacts_count": 205,
+ "job_artifacts_checksum_total_count": 205,
+ "job_artifacts_checksummed_count": 205,
+ "job_artifacts_checksum_failed_count": 0,
+ "job_artifacts_synced_count": null,
+ "job_artifacts_failed_count": null,
+ "job_artifacts_registry_count": null,
+ "job_artifacts_verification_total_count": null,
+ "job_artifacts_verified_count": null,
+ "job_artifacts_verification_failed_count": null,
+ "ci_secure_files_count": 0,
+ "ci_secure_files_checksum_total_count": 0,
+ "ci_secure_files_checksummed_count": 0,
+ "ci_secure_files_checksum_failed_count": 0,
+ "ci_secure_files_synced_count": null,
+ "ci_secure_files_failed_count": null,
+ "ci_secure_files_registry_count": null,
+ "ci_secure_files_verification_total_count": null,
+ "ci_secure_files_verified_count": null,
+ "ci_secure_files_verification_failed_count": null,
+ "container_repositories_count": 0,
+ "container_repositories_checksum_total_count": 0,
+ "container_repositories_checksummed_count": 0,
+ "container_repositories_checksum_failed_count": 0,
+ "container_repositories_synced_count": null,
+ "container_repositories_failed_count": null,
+ "container_repositories_registry_count": null,
+ "container_repositories_verification_total_count": null,
+ "container_repositories_verified_count": null,
+ "container_repositories_verification_failed_count": null,
+ "dependency_proxy_blobs_count": 0,
+ "dependency_proxy_blobs_checksum_total_count": 0,
+ "dependency_proxy_blobs_checksummed_count": 0,
+ "dependency_proxy_blobs_checksum_failed_count": 0,
+ "dependency_proxy_blobs_synced_count": null,
+ "dependency_proxy_blobs_failed_count": null,
+ "dependency_proxy_blobs_registry_count": null,
+ "dependency_proxy_blobs_verification_total_count": null,
+ "dependency_proxy_blobs_verified_count": null,
+ "dependency_proxy_blobs_verification_failed_count": null,
+ "dependency_proxy_manifests_count": 0,
+ "dependency_proxy_manifests_checksum_total_count": 0,
+ "dependency_proxy_manifests_checksummed_count": 0,
+ "dependency_proxy_manifests_checksum_failed_count": 0,
+ "dependency_proxy_manifests_synced_count": null,
+ "dependency_proxy_manifests_failed_count": null,
+ "dependency_proxy_manifests_registry_count": null,
+ "dependency_proxy_manifests_verification_total_count": null,
+ "dependency_proxy_manifests_verified_count": null,
+ "dependency_proxy_manifests_verification_failed_count": null,
+ "project_wiki_repositories_count": 19,
+ "project_wiki_repositories_checksum_total_count": 19,
+ "project_wiki_repositories_checksummed_count": 19,
+ "project_wiki_repositories_checksum_failed_count": 0,
+ "project_wiki_repositories_synced_count": null,
+ "project_wiki_repositories_failed_count": null,
+ "project_wiki_repositories_registry_count": null,
+ "project_wiki_repositories_verification_total_count": null,
+ "project_wiki_repositories_verified_count": null,
+ "project_wiki_repositories_verification_failed_count": null,
+ "git_fetch_event_count_weekly": null,
+ "git_push_event_count_weekly": null,
+ "proxy_remote_requests_event_count_weekly": null,
+ "proxy_local_requests_event_count_weekly": null,
+ "repositories_synced_in_percentage": "0.00%",
+ "repositories_checksummed_in_percentage": "100.00%",
+ "repositories_verified_in_percentage": "0.00%",
+ "repositories_checked_in_percentage": "0.00%",
+ "wikis_synced_in_percentage": "0.00%",
+ "wikis_checksummed_in_percentage": "0.00%",
+ "wikis_verified_in_percentage": "0.00%",
+ "replication_slots_used_in_percentage": "100.00%",
+ "design_repositories_synced_in_percentage": "0.00%",
+ "lfs_objects_synced_in_percentage": "0.00%",
+ "lfs_objects_verified_in_percentage": "0.00%",
+ "merge_request_diffs_synced_in_percentage": "0.00%",
+ "merge_request_diffs_verified_in_percentage": "0.00%",
+ "package_files_synced_in_percentage": "0.00%",
+ "package_files_verified_in_percentage": "0.00%",
+ "terraform_state_versions_synced_in_percentage": "0.00%",
+ "terraform_state_versions_verified_in_percentage": "0.00%",
+ "snippet_repositories_synced_in_percentage": "0.00%",
+ "snippet_repositories_verified_in_percentage": "0.00%",
+ "group_wiki_repositories_synced_in_percentage": "0.00%",
+ "group_wiki_repositories_verified_in_percentage": "0.00%",
+ "pipeline_artifacts_synced_in_percentage": "0.00%",
+ "pipeline_artifacts_verified_in_percentage": "0.00%",
+ "pages_deployments_synced_in_percentage": "0.00%",
+ "pages_deployments_verified_in_percentage": "0.00%",
+ "uploads_synced_in_percentage": "0.00%",
+ "uploads_verified_in_percentage": "0.00%",
+ "job_artifacts_synced_in_percentage": "0.00%",
+ "job_artifacts_verified_in_percentage": "0.00%",
+ "ci_secure_files_synced_in_percentage": "0.00%",
+ "ci_secure_files_verified_in_percentage": "0.00%",
+ "container_repositories_synced_in_percentage": "0.00%",
+ "container_repositories_verified_in_percentage": "0.00%",
+ "dependency_proxy_blobs_synced_in_percentage": "0.00%",
+ "dependency_proxy_blobs_verified_in_percentage": "0.00%",
+ "dependency_proxy_manifests_synced_in_percentage": "0.00%",
+ "dependency_proxy_manifests_verified_in_percentage": "0.00%",
+ "project_wiki_repositories_synced_in_percentage": "0.00%",
+ "project_wiki_repositories_verified_in_percentage": "0.00%",
+ "repositories_count": 19,
+ "wikis_count": 19,
+ "replication_slots_count": 1,
+ "replication_slots_used_count": 1,
+ "healthy": true,
+ "health": "Healthy",
+ "health_status": "Healthy",
+ "missing_oauth_application": false,
+ "db_replication_lag_seconds": null,
+ "replication_slots_max_retained_wal_bytes": 0,
+ "repositories_checked_count": null,
+ "repositories_checked_failed_count": null,
+ "last_event_id": 357,
+ "last_event_timestamp": 1683127088,
+ "cursor_last_event_id": null,
+ "cursor_last_event_timestamp": 0,
+ "last_successful_status_check_timestamp": 1683129788,
+ "version": "16.0.0-pre",
+ "revision": "129eb954664",
+ "selective_sync_type": null,
+ "namespaces": [],
+ "updated_at": "2023-05-03T16:03:10.117Z",
+ "storage_shards_match": true,
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/1/status",
+ "site": "https://primary.example.com/api/v4/geo_sites/1"
+ }
+ },
+ {
+ "geo_node_id": 2,
+ "repository_verification_enabled": true,
+ "repositories_replication_enabled": true,
+ "repositories_synced_count": 18,
+ "repositories_failed_count": 0,
+ "wikis_synced_count": 18,
+ "wikis_failed_count": 0,
+ "repositories_verified_count": 0,
+ "repositories_verification_failed_count": 0,
+ "repositories_verification_total_count": 19,
+ "wikis_verified_count": 0,
+ "wikis_verification_failed_count": 0,
+ "wikis_verification_total_count": 19,
+ "job_artifacts_synced_missing_on_primary_count": null,
+ "repositories_checksummed_count": null,
+ "repositories_checksum_failed_count": null,
+ "repositories_checksum_mismatch_count": 0,
+ "repositories_checksum_total_count": null,
+ "wikis_checksummed_count": null,
+ "wikis_checksum_failed_count": null,
+ "wikis_checksum_mismatch_count": 0,
+ "wikis_checksum_total_count": null,
+ "repositories_retrying_verification_count": 0,
+ "wikis_retrying_verification_count": 0,
+ "projects_count": 19,
+ "container_repositories_replication_enabled": null,
+ "design_repositories_replication_enabled": true,
+ "design_repositories_count": 0,
+ "design_repositories_synced_count": 0,
+ "design_repositories_failed_count": 0,
+ "lfs_objects_count": 0,
+ "lfs_objects_checksum_total_count": null,
+ "lfs_objects_checksummed_count": null,
+ "lfs_objects_checksum_failed_count": null,
+ "lfs_objects_synced_count": 0,
+ "lfs_objects_failed_count": 0,
+ "lfs_objects_registry_count": 0,
+ "lfs_objects_verification_total_count": 0,
+ "lfs_objects_verified_count": 0,
+ "lfs_objects_verification_failed_count": 0,
+ "merge_request_diffs_count": 0,
+ "merge_request_diffs_checksum_total_count": null,
+ "merge_request_diffs_checksummed_count": null,
+ "merge_request_diffs_checksum_failed_count": null,
+ "merge_request_diffs_synced_count": 0,
+ "merge_request_diffs_failed_count": 0,
+ "merge_request_diffs_registry_count": 0,
+ "merge_request_diffs_verification_total_count": 0,
+ "merge_request_diffs_verified_count": 0,
+ "merge_request_diffs_verification_failed_count": 0,
+ "package_files_count": 25,
+ "package_files_checksum_total_count": null,
+ "package_files_checksummed_count": null,
+ "package_files_checksum_failed_count": null,
+ "package_files_synced_count": 1,
+ "package_files_failed_count": 24,
+ "package_files_registry_count": 25,
+ "package_files_verification_total_count": 1,
+ "package_files_verified_count": 1,
+ "package_files_verification_failed_count": 0,
+ "terraform_state_versions_count": 18,
+ "terraform_state_versions_checksum_total_count": null,
+ "terraform_state_versions_checksummed_count": null,
+ "terraform_state_versions_checksum_failed_count": null,
+ "terraform_state_versions_synced_count": 0,
+ "terraform_state_versions_failed_count": 0,
+ "terraform_state_versions_registry_count": 18,
+ "terraform_state_versions_verification_total_count": 0,
+ "terraform_state_versions_verified_count": 0,
+ "terraform_state_versions_verification_failed_count": 0,
+ "snippet_repositories_count": 20,
+ "snippet_repositories_checksum_total_count": null,
+ "snippet_repositories_checksummed_count": null,
+ "snippet_repositories_checksum_failed_count": null,
+ "snippet_repositories_synced_count": 20,
+ "snippet_repositories_failed_count": 0,
+ "snippet_repositories_registry_count": 20,
+ "snippet_repositories_verification_total_count": 20,
+ "snippet_repositories_verified_count": 20,
+ "snippet_repositories_verification_failed_count": 0,
+ "group_wiki_repositories_count": 0,
+ "group_wiki_repositories_checksum_total_count": null,
+ "group_wiki_repositories_checksummed_count": null,
+ "group_wiki_repositories_checksum_failed_count": null,
+ "group_wiki_repositories_synced_count": 0,
+ "group_wiki_repositories_failed_count": 0,
+ "group_wiki_repositories_registry_count": 0,
+ "group_wiki_repositories_verification_total_count": null,
+ "group_wiki_repositories_verified_count": null,
+ "group_wiki_repositories_verification_failed_count": null,
+ "pipeline_artifacts_count": 0,
+ "pipeline_artifacts_checksum_total_count": null,
+ "pipeline_artifacts_checksummed_count": null,
+ "pipeline_artifacts_checksum_failed_count": null,
+ "pipeline_artifacts_synced_count": 0,
+ "pipeline_artifacts_failed_count": 0,
+ "pipeline_artifacts_registry_count": 0,
+ "pipeline_artifacts_verification_total_count": 0,
+ "pipeline_artifacts_verified_count": 0,
+ "pipeline_artifacts_verification_failed_count": 0,
+ "pages_deployments_count": 0,
+ "pages_deployments_checksum_total_count": null,
+ "pages_deployments_checksummed_count": null,
+ "pages_deployments_checksum_failed_count": null,
+ "pages_deployments_synced_count": 0,
+ "pages_deployments_failed_count": 0,
+ "pages_deployments_registry_count": 0,
+ "pages_deployments_verification_total_count": 0,
+ "pages_deployments_verified_count": 0,
+ "pages_deployments_verification_failed_count": 0,
+ "uploads_count": 51,
+ "uploads_checksum_total_count": null,
+ "uploads_checksummed_count": null,
+ "uploads_checksum_failed_count": null,
+ "uploads_synced_count": 0,
+ "uploads_failed_count": 1,
+ "uploads_registry_count": 51,
+ "uploads_verification_total_count": 0,
+ "uploads_verified_count": 0,
+ "uploads_verification_failed_count": 0,
+ "job_artifacts_count": 0,
+ "job_artifacts_checksum_total_count": null,
+ "job_artifacts_checksummed_count": null,
+ "job_artifacts_checksum_failed_count": null,
+ "job_artifacts_synced_count": 0,
+ "job_artifacts_failed_count": 0,
+ "job_artifacts_registry_count": 0,
+ "job_artifacts_verification_total_count": 0,
+ "job_artifacts_verified_count": 0,
+ "job_artifacts_verification_failed_count": 0,
+ "ci_secure_files_count": 0,
+ "ci_secure_files_checksum_total_count": null,
+ "ci_secure_files_checksummed_count": null,
+ "ci_secure_files_checksum_failed_count": null,
+ "ci_secure_files_synced_count": 0,
+ "ci_secure_files_failed_count": 0,
+ "ci_secure_files_registry_count": 0,
+ "ci_secure_files_verification_total_count": 0,
+ "ci_secure_files_verified_count": 0,
+ "ci_secure_files_verification_failed_count": 0,
+ "container_repositories_count": null,
+ "container_repositories_checksum_total_count": null,
+ "container_repositories_checksummed_count": null,
+ "container_repositories_checksum_failed_count": null,
+ "container_repositories_synced_count": null,
+ "container_repositories_failed_count": null,
+ "container_repositories_registry_count": null,
+ "container_repositories_verification_total_count": null,
+ "container_repositories_verified_count": null,
+ "container_repositories_verification_failed_count": null,
+ "dependency_proxy_blobs_count": 0,
+ "dependency_proxy_blobs_checksum_total_count": null,
+ "dependency_proxy_blobs_checksummed_count": null,
+ "dependency_proxy_blobs_checksum_failed_count": null,
+ "dependency_proxy_blobs_synced_count": 0,
+ "dependency_proxy_blobs_failed_count": 0,
+ "dependency_proxy_blobs_registry_count": 0,
+ "dependency_proxy_blobs_verification_total_count": 0,
+ "dependency_proxy_blobs_verified_count": 0,
+ "dependency_proxy_blobs_verification_failed_count": 0,
+ "dependency_proxy_manifests_count": 0,
+ "dependency_proxy_manifests_checksum_total_count": null,
+ "dependency_proxy_manifests_checksummed_count": null,
+ "dependency_proxy_manifests_checksum_failed_count": null,
+ "dependency_proxy_manifests_synced_count": 0,
+ "dependency_proxy_manifests_failed_count": 0,
+ "dependency_proxy_manifests_registry_count": 0,
+ "dependency_proxy_manifests_verification_total_count": 0,
+ "dependency_proxy_manifests_verified_count": 0,
+ "dependency_proxy_manifests_verification_failed_count": 0,
+ "project_wiki_repositories_count": 19,
+ "project_wiki_repositories_checksum_total_count": null,
+ "project_wiki_repositories_checksummed_count": null,
+ "project_wiki_repositories_checksum_failed_count": null,
+ "project_wiki_repositories_synced_count": 19,
+ "project_wiki_repositories_failed_count": 0,
+ "project_wiki_repositories_registry_count": 19,
+ "project_wiki_repositories_verification_total_count": 19,
+ "project_wiki_repositories_verified_count": 19,
+ "project_wiki_repositories_verification_failed_count": 0,
+ "git_fetch_event_count_weekly": null,
+ "git_push_event_count_weekly": null,
+ "proxy_remote_requests_event_count_weekly": null,
+ "proxy_local_requests_event_count_weekly": null,
+ "repositories_synced_in_percentage": "94.74%",
+ "repositories_checksummed_in_percentage": "0.00%",
+ "repositories_verified_in_percentage": "0.00%",
+ "repositories_checked_in_percentage": "0.00%",
+ "wikis_synced_in_percentage": "94.74%",
+ "wikis_checksummed_in_percentage": "0.00%",
+ "wikis_verified_in_percentage": "0.00%",
+ "replication_slots_used_in_percentage": "0.00%",
+ "design_repositories_synced_in_percentage": "0.00%",
+ "lfs_objects_synced_in_percentage": "0.00%",
+ "lfs_objects_verified_in_percentage": "0.00%",
+ "merge_request_diffs_synced_in_percentage": "0.00%",
+ "merge_request_diffs_verified_in_percentage": "0.00%",
+ "package_files_synced_in_percentage": "4.00%",
+ "package_files_verified_in_percentage": "4.00%",
+ "terraform_state_versions_synced_in_percentage": "0.00%",
+ "terraform_state_versions_verified_in_percentage": "0.00%",
+ "snippet_repositories_synced_in_percentage": "100.00%",
+ "snippet_repositories_verified_in_percentage": "100.00%",
+ "group_wiki_repositories_synced_in_percentage": "0.00%",
+ "group_wiki_repositories_verified_in_percentage": "0.00%",
+ "pipeline_artifacts_synced_in_percentage": "0.00%",
+ "pipeline_artifacts_verified_in_percentage": "0.00%",
+ "pages_deployments_synced_in_percentage": "0.00%",
+ "pages_deployments_verified_in_percentage": "0.00%",
+ "uploads_synced_in_percentage": "0.00%",
+ "uploads_verified_in_percentage": "0.00%",
+ "job_artifacts_synced_in_percentage": "0.00%",
+ "job_artifacts_verified_in_percentage": "0.00%",
+ "ci_secure_files_synced_in_percentage": "0.00%",
+ "ci_secure_files_verified_in_percentage": "0.00%",
+ "container_repositories_synced_in_percentage": "0.00%",
+ "container_repositories_verified_in_percentage": "0.00%",
+ "dependency_proxy_blobs_synced_in_percentage": "0.00%",
+ "dependency_proxy_blobs_verified_in_percentage": "0.00%",
+ "dependency_proxy_manifests_synced_in_percentage": "0.00%",
+ "dependency_proxy_manifests_verified_in_percentage": "0.00%",
+ "project_wiki_repositories_synced_in_percentage": "100.00%",
+ "project_wiki_repositories_verified_in_percentage": "100.00%",
+ "repositories_count": 19,
+ "wikis_count": 19,
+ "replication_slots_count": null,
+ "replication_slots_used_count": null,
+ "healthy": false,
+ "health": "An existing tracking database cannot be reused..",
+ "health_status": "Unhealthy",
+ "missing_oauth_application": false,
+ "db_replication_lag_seconds": 0,
+ "replication_slots_max_retained_wal_bytes": null,
+ "repositories_checked_count": null,
+ "repositories_checked_failed_count": null,
+ "last_event_id": 357,
+ "last_event_timestamp": 1683127088,
+ "cursor_last_event_id": 357,
+ "cursor_last_event_timestamp": 1683127088,
+ "last_successful_status_check_timestamp": 1683127146,
+ "version": "16.0.0-pre",
+ "revision": "129eb954664",
+ "selective_sync_type": "",
+ "namespaces": [],
+ "updated_at": "2023-05-03T15:19:06.174Z",
+ "storage_shards_match": true,
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/2/status",
+ "site": "https://primary.example.com/api/v4/geo_sites/2"
+ }
+ }
+]
+```
+
+## Retrieve status about a specific Geo site
+
+```plaintext
+GET /geo_sites/:id/status
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/2/status"
+```
+
+Example response:
+
+```json
+ {
+ "geo_node_id": 2,
+ "repository_verification_enabled": true,
+ "repositories_replication_enabled": true,
+ "repositories_synced_count": 18,
+ "repositories_failed_count": 0,
+ "wikis_synced_count": 18,
+ "wikis_failed_count": 0,
+ "repositories_verified_count": 0,
+ "repositories_verification_failed_count": 0,
+ "repositories_verification_total_count": 19,
+ "wikis_verified_count": 0,
+ "wikis_verification_failed_count": 0,
+ "wikis_verification_total_count": 19,
+ "job_artifacts_synced_missing_on_primary_count": null,
+ "repositories_checksummed_count": null,
+ "repositories_checksum_failed_count": null,
+ "repositories_checksum_mismatch_count": 0,
+ "repositories_checksum_total_count": null,
+ "wikis_checksummed_count": null,
+ "wikis_checksum_failed_count": null,
+ "wikis_checksum_mismatch_count": 0,
+ "wikis_checksum_total_count": null,
+ "repositories_retrying_verification_count": 0,
+ "wikis_retrying_verification_count": 0,
+ "projects_count": 19,
+ "container_repositories_replication_enabled": null,
+ "design_repositories_replication_enabled": true,
+ "design_repositories_count": 0,
+ "design_repositories_synced_count": 0,
+ "design_repositories_failed_count": 0,
+ "lfs_objects_count": 0,
+ "lfs_objects_checksum_total_count": null,
+ "lfs_objects_checksummed_count": null,
+ "lfs_objects_checksum_failed_count": null,
+ "lfs_objects_synced_count": 0,
+ "lfs_objects_failed_count": 0,
+ "lfs_objects_registry_count": 0,
+ "lfs_objects_verification_total_count": 0,
+ "lfs_objects_verified_count": 0,
+ "lfs_objects_verification_failed_count": 0,
+ "merge_request_diffs_count": 0,
+ "merge_request_diffs_checksum_total_count": null,
+ "merge_request_diffs_checksummed_count": null,
+ "merge_request_diffs_checksum_failed_count": null,
+ "merge_request_diffs_synced_count": 0,
+ "merge_request_diffs_failed_count": 0,
+ "merge_request_diffs_registry_count": 0,
+ "merge_request_diffs_verification_total_count": 0,
+ "merge_request_diffs_verified_count": 0,
+ "merge_request_diffs_verification_failed_count": 0,
+ "package_files_count": 25,
+ "package_files_checksum_total_count": null,
+ "package_files_checksummed_count": null,
+ "package_files_checksum_failed_count": null,
+ "package_files_synced_count": 1,
+ "package_files_failed_count": 24,
+ "package_files_registry_count": 25,
+ "package_files_verification_total_count": 1,
+ "package_files_verified_count": 1,
+ "package_files_verification_failed_count": 0,
+ "terraform_state_versions_count": 18,
+ "terraform_state_versions_checksum_total_count": null,
+ "terraform_state_versions_checksummed_count": null,
+ "terraform_state_versions_checksum_failed_count": null,
+ "terraform_state_versions_synced_count": 0,
+ "terraform_state_versions_failed_count": 0,
+ "terraform_state_versions_registry_count": 18,
+ "terraform_state_versions_verification_total_count": 0,
+ "terraform_state_versions_verified_count": 0,
+ "terraform_state_versions_verification_failed_count": 0,
+ "snippet_repositories_count": 20,
+ "snippet_repositories_checksum_total_count": null,
+ "snippet_repositories_checksummed_count": null,
+ "snippet_repositories_checksum_failed_count": null,
+ "snippet_repositories_synced_count": 20,
+ "snippet_repositories_failed_count": 0,
+ "snippet_repositories_registry_count": 20,
+ "snippet_repositories_verification_total_count": 20,
+ "snippet_repositories_verified_count": 20,
+ "snippet_repositories_verification_failed_count": 0,
+ "group_wiki_repositories_count": 0,
+ "group_wiki_repositories_checksum_total_count": null,
+ "group_wiki_repositories_checksummed_count": null,
+ "group_wiki_repositories_checksum_failed_count": null,
+ "group_wiki_repositories_synced_count": 0,
+ "group_wiki_repositories_failed_count": 0,
+ "group_wiki_repositories_registry_count": 0,
+ "group_wiki_repositories_verification_total_count": null,
+ "group_wiki_repositories_verified_count": null,
+ "group_wiki_repositories_verification_failed_count": null,
+ "pipeline_artifacts_count": 0,
+ "pipeline_artifacts_checksum_total_count": null,
+ "pipeline_artifacts_checksummed_count": null,
+ "pipeline_artifacts_checksum_failed_count": null,
+ "pipeline_artifacts_synced_count": 0,
+ "pipeline_artifacts_failed_count": 0,
+ "pipeline_artifacts_registry_count": 0,
+ "pipeline_artifacts_verification_total_count": 0,
+ "pipeline_artifacts_verified_count": 0,
+ "pipeline_artifacts_verification_failed_count": 0,
+ "pages_deployments_count": 0,
+ "pages_deployments_checksum_total_count": null,
+ "pages_deployments_checksummed_count": null,
+ "pages_deployments_checksum_failed_count": null,
+ "pages_deployments_synced_count": 0,
+ "pages_deployments_failed_count": 0,
+ "pages_deployments_registry_count": 0,
+ "pages_deployments_verification_total_count": 0,
+ "pages_deployments_verified_count": 0,
+ "pages_deployments_verification_failed_count": 0,
+ "uploads_count": 51,
+ "uploads_checksum_total_count": null,
+ "uploads_checksummed_count": null,
+ "uploads_checksum_failed_count": null,
+ "uploads_synced_count": 0,
+ "uploads_failed_count": 1,
+ "uploads_registry_count": 51,
+ "uploads_verification_total_count": 0,
+ "uploads_verified_count": 0,
+ "uploads_verification_failed_count": 0,
+ "job_artifacts_count": 0,
+ "job_artifacts_checksum_total_count": null,
+ "job_artifacts_checksummed_count": null,
+ "job_artifacts_checksum_failed_count": null,
+ "job_artifacts_synced_count": 0,
+ "job_artifacts_failed_count": 0,
+ "job_artifacts_registry_count": 0,
+ "job_artifacts_verification_total_count": 0,
+ "job_artifacts_verified_count": 0,
+ "job_artifacts_verification_failed_count": 0,
+ "ci_secure_files_count": 0,
+ "ci_secure_files_checksum_total_count": null,
+ "ci_secure_files_checksummed_count": null,
+ "ci_secure_files_checksum_failed_count": null,
+ "ci_secure_files_synced_count": 0,
+ "ci_secure_files_failed_count": 0,
+ "ci_secure_files_registry_count": 0,
+ "ci_secure_files_verification_total_count": 0,
+ "ci_secure_files_verified_count": 0,
+ "ci_secure_files_verification_failed_count": 0,
+ "container_repositories_count": null,
+ "container_repositories_checksum_total_count": null,
+ "container_repositories_checksummed_count": null,
+ "container_repositories_checksum_failed_count": null,
+ "container_repositories_synced_count": null,
+ "container_repositories_failed_count": null,
+ "container_repositories_registry_count": null,
+ "container_repositories_verification_total_count": null,
+ "container_repositories_verified_count": null,
+ "container_repositories_verification_failed_count": null,
+ "dependency_proxy_blobs_count": 0,
+ "dependency_proxy_blobs_checksum_total_count": null,
+ "dependency_proxy_blobs_checksummed_count": null,
+ "dependency_proxy_blobs_checksum_failed_count": null,
+ "dependency_proxy_blobs_synced_count": 0,
+ "dependency_proxy_blobs_failed_count": 0,
+ "dependency_proxy_blobs_registry_count": 0,
+ "dependency_proxy_blobs_verification_total_count": 0,
+ "dependency_proxy_blobs_verified_count": 0,
+ "dependency_proxy_blobs_verification_failed_count": 0,
+ "dependency_proxy_manifests_count": 0,
+ "dependency_proxy_manifests_checksum_total_count": null,
+ "dependency_proxy_manifests_checksummed_count": null,
+ "dependency_proxy_manifests_checksum_failed_count": null,
+ "dependency_proxy_manifests_synced_count": 0,
+ "dependency_proxy_manifests_failed_count": 0,
+ "dependency_proxy_manifests_registry_count": 0,
+ "dependency_proxy_manifests_verification_total_count": 0,
+ "dependency_proxy_manifests_verified_count": 0,
+ "dependency_proxy_manifests_verification_failed_count": 0,
+ "project_wiki_repositories_count": 19,
+ "project_wiki_repositories_checksum_total_count": null,
+ "project_wiki_repositories_checksummed_count": null,
+ "project_wiki_repositories_checksum_failed_count": null,
+ "project_wiki_repositories_synced_count": 19,
+ "project_wiki_repositories_failed_count": 0,
+ "project_wiki_repositories_registry_count": 19,
+ "project_wiki_repositories_verification_total_count": 19,
+ "project_wiki_repositories_verified_count": 19,
+ "project_wiki_repositories_verification_failed_count": 0,
+ "git_fetch_event_count_weekly": null,
+ "git_push_event_count_weekly": null,
+ "proxy_remote_requests_event_count_weekly": null,
+ "proxy_local_requests_event_count_weekly": null,
+ "repositories_synced_in_percentage": "94.74%",
+ "repositories_checksummed_in_percentage": "0.00%",
+ "repositories_verified_in_percentage": "0.00%",
+ "repositories_checked_in_percentage": "0.00%",
+ "wikis_synced_in_percentage": "94.74%",
+ "wikis_checksummed_in_percentage": "0.00%",
+ "wikis_verified_in_percentage": "0.00%",
+ "replication_slots_used_in_percentage": "0.00%",
+ "design_repositories_synced_in_percentage": "0.00%",
+ "lfs_objects_synced_in_percentage": "0.00%",
+ "lfs_objects_verified_in_percentage": "0.00%",
+ "merge_request_diffs_synced_in_percentage": "0.00%",
+ "merge_request_diffs_verified_in_percentage": "0.00%",
+ "package_files_synced_in_percentage": "4.00%",
+ "package_files_verified_in_percentage": "4.00%",
+ "terraform_state_versions_synced_in_percentage": "0.00%",
+ "terraform_state_versions_verified_in_percentage": "0.00%",
+ "snippet_repositories_synced_in_percentage": "100.00%",
+ "snippet_repositories_verified_in_percentage": "100.00%",
+ "group_wiki_repositories_synced_in_percentage": "0.00%",
+ "group_wiki_repositories_verified_in_percentage": "0.00%",
+ "pipeline_artifacts_synced_in_percentage": "0.00%",
+ "pipeline_artifacts_verified_in_percentage": "0.00%",
+ "pages_deployments_synced_in_percentage": "0.00%",
+ "pages_deployments_verified_in_percentage": "0.00%",
+ "uploads_synced_in_percentage": "0.00%",
+ "uploads_verified_in_percentage": "0.00%",
+ "job_artifacts_synced_in_percentage": "0.00%",
+ "job_artifacts_verified_in_percentage": "0.00%",
+ "ci_secure_files_synced_in_percentage": "0.00%",
+ "ci_secure_files_verified_in_percentage": "0.00%",
+ "container_repositories_synced_in_percentage": "0.00%",
+ "container_repositories_verified_in_percentage": "0.00%",
+ "dependency_proxy_blobs_synced_in_percentage": "0.00%",
+ "dependency_proxy_blobs_verified_in_percentage": "0.00%",
+ "dependency_proxy_manifests_synced_in_percentage": "0.00%",
+ "dependency_proxy_manifests_verified_in_percentage": "0.00%",
+ "project_wiki_repositories_synced_in_percentage": "100.00%",
+ "project_wiki_repositories_verified_in_percentage": "100.00%",
+ "repositories_count": 19,
+ "wikis_count": 19,
+ "replication_slots_count": null,
+ "replication_slots_used_count": null,
+ "healthy": false,
+ "health": "An existing tracking database cannot be reused..",
+ "health_status": "Unhealthy",
+ "missing_oauth_application": false,
+ "db_replication_lag_seconds": 0,
+ "replication_slots_max_retained_wal_bytes": null,
+ "repositories_checked_count": null,
+ "repositories_checked_failed_count": null,
+ "last_event_id": 357,
+ "last_event_timestamp": 1683127088,
+ "cursor_last_event_id": 357,
+ "cursor_last_event_timestamp": 1683127088,
+ "last_successful_status_check_timestamp": 1683127146,
+ "version": "16.0.0-pre",
+ "revision": "129eb954664",
+ "selective_sync_type": "",
+ "namespaces": [],
+ "updated_at": "2023-05-03T15:19:06.174Z",
+ "storage_shards_match": true,
+ "_links": {
+ "self": "https://primary.example.com/api/v4/geo_sites/2/status",
+ "site": "https://primary.example.com/api/v4/geo_sites/2"
+ }
+}
+```
+
+NOTE:
+The `health_status` parameter can only be in an "Healthy" or "Unhealthy" state, while the `health` parameter can be empty, "Healthy", or contain the actual error message.
+
+## Retrieve project sync or verification failures that occurred on the current site
+
+This only works on a secondary site.
+
+```plaintext
+GET /geo_sites/current/failures
+```
+
+| Attribute | Type | Required | Description |
+|----------------|--------|----------|--------------------------------------------------------------|
+| `type` | string | no | Type of failed objects (`repository`/`wiki`) |
+| `failure_type` | string | no | Type of failures (`sync`/`checksum_mismatch`/`verification`) |
+
+This endpoint uses [Pagination](rest/index.md#pagination).
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/geo_sites/current/failures"
+```
+
+Example response:
+
+```json
+[
+ {
+ "project_id": 3,
+ "last_repository_synced_at": "2017-10-31 14:25:55 UTC",
+ "last_repository_successful_sync_at": "2017-10-31 14:26:04 UTC",
+ "last_wiki_synced_at": "2017-10-31 14:26:04 UTC",
+ "last_wiki_successful_sync_at": "2017-10-31 14:26:11 UTC",
+ "repository_retry_count": null,
+ "wiki_retry_count": 1,
+ "last_repository_sync_failure": null,
+ "last_wiki_sync_failure": "Error syncing Wiki repository",
+ "last_repository_verification_failure": "",
+ "last_wiki_verification_failure": "",
+ "repository_verification_checksum_sha": "da39a3ee5e6b4b0d32e5bfef9a601890afd80709",
+ "wiki_verification_checksum_sha": "da39a3ee5e6b4b0d3255bfef9ef0189aafd80709",
+ "repository_checksum_mismatch": false,
+ "wiki_checksum_mismatch": false
+ }
+]
+```