Adds logical deletes to shared channel remotes and remote clusters (#28159)

* Adds logical deletes to shared channel remotes and remote clusters

Instead of physically deleting the shared channel remote and remote
clusters records when a channel is unshared, a remote uninvited or a
remote cluster is deleted, now those have a logical `DeleteAt` field
that is set.

This allows us to safely restore shared channels between two remote
clusters (as of now resetting the cursor without backfilling their
contents) and to know which connections were established in the past
and now are severed.

* Delete the index in remoteclusters before adding the new column

* Fix bad error check
Этот коммит содержится в:
Miguel de la Cruz
2024-09-12 13:55:11 +02:00
коммит произвёл GitHub
родитель 19733eef1e
Коммит f8202309ce
31 изменённых файлов: 645 добавлений и 178 удалений

Просмотреть файл

@@ -3505,6 +3505,9 @@ components:
create_at:
description: Time in milliseconds that the remote cluster was created
type: integer
delete_at:
description: Time in milliseconds that the remote cluster record was deleted
type: integer
last_ping_at:
description: Time in milliseconds when the last ping to the remote cluster was run
type: integer
@@ -3553,6 +3556,9 @@ components:
update_at:
description: Time in milliseconds that the shared channel remote record was last updated
type: integer
delete_at:
description: Time in milliseconds that the shared chanenl remote record was deleted
type: integer
is_invite_accepted:
description: Indicates if the invite has been accepted by the remote
type: boolean

Просмотреть файл

@@ -50,6 +50,11 @@
description: Select only remote clusters that don't belong to a plugin
schema:
type: boolean
- name: include_deleted
in: query
description: Include those remote clusters that have been deleted
schema:
type: boolean
responses:
"200":
description: Remote clusters fetch successful. Result might be empty.

Просмотреть файл

@@ -75,6 +75,11 @@
description: Show only those Shared channel remotes that were shared from this server
schema:
type: boolean
- name: include_deleted
in: query
description: Include those Shared channel remotes that have been deleted
schema:
type: boolean
- name: page
in: query
description: The page to select