1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- Purge History API
- =================
- The purge history API allows server admins to purge historic events from their
- database, reclaiming disk space.
- Depending on the amount of history being purged a call to the API may take
- several minutes or longer. During this period users will not be able to
- paginate further back in the room from the point being purged from.
- The API is:
- ``POST /_synapse/admin/v1/purge_history/<room_id>[/<event_id>]``
- including an ``access_token`` of a server admin.
- By default, events sent by local users are not deleted, as they may represent
- the only copies of this content in existence. (Events sent by remote users are
- deleted.)
- Room state data (such as joins, leaves, topic) is always preserved.
- To delete local message events as well, set ``delete_local_events`` in the body:
- .. code:: json
- {
- "delete_local_events": true
- }
- The caller must specify the point in the room to purge up to. This can be
- specified by including an event_id in the URI, or by setting a
- ``purge_up_to_event_id`` or ``purge_up_to_ts`` in the request body. If an event
- id is given, that event (and others at the same graph depth) will be retained.
- If ``purge_up_to_ts`` is given, it should be a timestamp since the unix epoch,
- in milliseconds.
- The API starts the purge running, and returns immediately with a JSON body with
- a purge id:
- .. code:: json
- {
- "purge_id": "<opaque id>"
- }
- Purge status query
- ------------------
- It is possible to poll for updates on recent purges with a second API;
- ``GET /_synapse/admin/v1/purge_history_status/<purge_id>``
- (again, with a suitable ``access_token``). This API returns a JSON body like
- the following:
- .. code:: json
- {
- "status": "active"
- }
- The status will be one of ``active``, ``complete``, or ``failed``.
- Reclaim disk space (Postgres)
- -----------------------------
- To reclaim the disk space and return it to the operating system, you need to run
- `VACUUM FULL;` on the database.
- https://www.postgresql.org/docs/current/sql-vacuum.html
|