(core) make document assignment endpoint available via /housekeeping api

Summary:
The /assign endpoint checks if a document is on the desired worker
and moves it if not. This is never done under regular operation, but
is useful when quarantining a misbehaving document.

The endpoint was failing to operate correctly if the requester did
not have access to the document. This diff makes the endpoint
accessible through a /housekeeping route, using the same pattern as
the /force-reload endpoint.

Test Plan: added test

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D3109
This commit is contained in:
Paul Fitzpatrick
2021-11-04 12:25:42 -04:00
parent cce679d928
commit 10a4cbb6bd
2 changed files with 11 additions and 3 deletions

View File

@@ -161,6 +161,16 @@ export class Housekeeper {
headers,
});
}));
// Move a document to its assigned worker. Can be useful during administrative
// actions.
app.post('/api/housekeeping/docs/:docId/assign', this._withSupport(async (docId, headers) => {
const url = await this._server.getHomeUrlByDocId(docId, `/api/docs/${docId}/assign`);
return fetch(url, {
method: 'POST',
headers,
});
}));
}
/**