mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
Cleanup
This commit is contained in:
parent
e4e0ffe2cc
commit
c061e49216
@ -77,7 +77,7 @@ const _homeUrlReachableProbe: Probe = {
|
|||||||
id: 'reachable',
|
id: 'reachable',
|
||||||
name: 'Grist is reachable',
|
name: 'Grist is reachable',
|
||||||
apply: async (server, req) => {
|
apply: async (server, req) => {
|
||||||
const url = server.getHomeInternalUrl(req);
|
const url = server.getHomeInternalUrl();
|
||||||
try {
|
try {
|
||||||
const resp = await fetch(url);
|
const resp = await fetch(url);
|
||||||
if (resp.status !== 200) {
|
if (resp.status !== 200) {
|
||||||
@ -102,7 +102,7 @@ const _statusCheckProbe: Probe = {
|
|||||||
id: 'health-check',
|
id: 'health-check',
|
||||||
name: 'Built-in Health check',
|
name: 'Built-in Health check',
|
||||||
apply: async (server, req) => {
|
apply: async (server, req) => {
|
||||||
const baseUrl = server.getHomeInternalUrl(req);
|
const baseUrl = server.getHomeInternalUrl();
|
||||||
const url = new URL(baseUrl);
|
const url = new URL(baseUrl);
|
||||||
url.pathname = removeTrailingSlash(url.pathname) + '/status';
|
url.pathname = removeTrailingSlash(url.pathname) + '/status';
|
||||||
try {
|
try {
|
||||||
|
@ -1098,7 +1098,7 @@ export class DocWorkerApi {
|
|||||||
if (req.body.sourceDocId) {
|
if (req.body.sourceDocId) {
|
||||||
options.sourceDocId = await this._confirmDocIdForRead(req, String(req.body.sourceDocId));
|
options.sourceDocId = await this._confirmDocIdForRead(req, String(req.body.sourceDocId));
|
||||||
// Make sure that if we wanted to download the full source, we would be allowed.
|
// Make sure that if we wanted to download the full source, we would be allowed.
|
||||||
const homeUrl = this._grist.getHomeInternalUrl(req, `/api/docs/${options.sourceDocId}/download?dryrun=1`);
|
const homeUrl = this._grist.getHomeInternalUrl(`/api/docs/${options.sourceDocId}/download?dryrun=1`);
|
||||||
const result = await fetch(homeUrl, {
|
const result = await fetch(homeUrl, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: {
|
headers: {
|
||||||
@ -1112,7 +1112,7 @@ export class DocWorkerApi {
|
|||||||
}
|
}
|
||||||
// We should make sure the source document has flushed recently.
|
// We should make sure the source document has flushed recently.
|
||||||
// It may not be served by the same worker, so work through the api.
|
// It may not be served by the same worker, so work through the api.
|
||||||
await fetch(this._grist.getHomeInternalUrl(req, `/api/docs/${options.sourceDocId}/flush`), {
|
await fetch(this._grist.getHomeInternalUrl(`/api/docs/${options.sourceDocId}/flush`), {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
...getTransitiveHeaders(req),
|
...getTransitiveHeaders(req),
|
||||||
@ -1171,7 +1171,7 @@ export class DocWorkerApi {
|
|||||||
const showDetails = isAffirmative(req.query.detail);
|
const showDetails = isAffirmative(req.query.detail);
|
||||||
const docSession = docSessionFromRequest(req);
|
const docSession = docSessionFromRequest(req);
|
||||||
const {states} = await this._getStates(docSession, activeDoc);
|
const {states} = await this._getStates(docSession, activeDoc);
|
||||||
const ref = await fetch(this._grist.getHomeInternalUrl(req, `/api/docs/${req.params.docId2}/states`), {
|
const ref = await fetch(this._grist.getHomeInternalUrl(`/api/docs/${req.params.docId2}/states`), {
|
||||||
headers: {
|
headers: {
|
||||||
...getTransitiveHeaders(req),
|
...getTransitiveHeaders(req),
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
@ -1200,7 +1200,7 @@ export class DocWorkerApi {
|
|||||||
|
|
||||||
// Calculate changes from the (common) parent to the current version of the other document.
|
// Calculate changes from the (common) parent to the current version of the other document.
|
||||||
const url = `/api/docs/${req.params.docId2}/compare?left=${parent.h}`;
|
const url = `/api/docs/${req.params.docId2}/compare?left=${parent.h}`;
|
||||||
const rightChangesReq = await fetch(this._grist.getHomeInternalUrl(req, url), {
|
const rightChangesReq = await fetch(this._grist.getHomeInternalUrl(url), {
|
||||||
headers: {
|
headers: {
|
||||||
...getTransitiveHeaders(req),
|
...getTransitiveHeaders(req),
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
@ -309,9 +309,9 @@ export class FlexServer implements GristServer {
|
|||||||
* If relPath is given, returns that path relative to homeUrl. If omitted, note that
|
* If relPath is given, returns that path relative to homeUrl. If omitted, note that
|
||||||
* getHomeUrl() will still return a URL ending in "/".
|
* getHomeUrl() will still return a URL ending in "/".
|
||||||
*/
|
*/
|
||||||
public getHomeUrl(req: express.Request, relPath: string = '', defaultHomeUrl = this.getDefaultHomeUrl()): string {
|
public getHomeUrl(req: express.Request, relPath: string = ''): string {
|
||||||
// Get the default home url.
|
// Get the default home url.
|
||||||
const homeUrl = new URL(relPath, defaultHomeUrl);
|
const homeUrl = new URL(relPath, this.getDefaultHomeUrl());
|
||||||
adaptServerUrl(homeUrl, req as RequestWithOrg);
|
adaptServerUrl(homeUrl, req as RequestWithOrg);
|
||||||
return homeUrl.href;
|
return homeUrl.href;
|
||||||
}
|
}
|
||||||
@ -319,7 +319,7 @@ export class FlexServer implements GristServer {
|
|||||||
/**
|
/**
|
||||||
* Same as getHomeUrl, but for requesting internally.
|
* Same as getHomeUrl, but for requesting internally.
|
||||||
*/
|
*/
|
||||||
public getHomeInternalUrl(req: express.Request, relPath: string = ''): string {
|
public getHomeInternalUrl(relPath: string = ''): string {
|
||||||
const homeUrl = new URL(relPath, this.getDefaultHomeInternalUrl());
|
const homeUrl = new URL(relPath, this.getDefaultHomeInternalUrl());
|
||||||
return homeUrl.href;
|
return homeUrl.href;
|
||||||
}
|
}
|
||||||
@ -1444,12 +1444,12 @@ export class FlexServer implements GristServer {
|
|||||||
return this._sendAppPage(req, resp, {path: 'app.html', status: 200, config: {}});
|
return this._sendAppPage(req, resp, {path: 'app.html', status: 200, config: {}});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const createDoom = async (req: express.Request) => {
|
const createDoom = async () => {
|
||||||
const dbManager = this.getHomeDBManager();
|
const dbManager = this.getHomeDBManager();
|
||||||
const permitStore = this.getPermitStore();
|
const permitStore = this.getPermitStore();
|
||||||
const notifier = this.getNotifier();
|
const notifier = this.getNotifier();
|
||||||
const loginSystem = await this.resolveLoginSystem();
|
const loginSystem = await this.resolveLoginSystem();
|
||||||
const homeUrl = this.getHomeInternalUrl(req).replace(/\/$/, '');
|
const homeUrl = this.getHomeInternalUrl().replace(/\/$/, '');
|
||||||
return new Doom(dbManager, permitStore, notifier, loginSystem, homeUrl);
|
return new Doom(dbManager, permitStore, notifier, loginSystem, homeUrl);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1473,7 +1473,7 @@ export class FlexServer implements GristServer {
|
|||||||
|
|
||||||
// Reuse Doom cli tool for account deletion. It won't allow to delete account if it has access
|
// Reuse Doom cli tool for account deletion. It won't allow to delete account if it has access
|
||||||
// to other (not public) team sites.
|
// to other (not public) team sites.
|
||||||
const doom = await createDoom(req);
|
const doom = await createDoom();
|
||||||
await doom.deleteUser(userId);
|
await doom.deleteUser(userId);
|
||||||
this.getTelemetry().logEvent(req as RequestWithLogin, 'deletedAccount');
|
this.getTelemetry().logEvent(req as RequestWithLogin, 'deletedAccount');
|
||||||
return resp.status(200).json(true);
|
return resp.status(200).json(true);
|
||||||
@ -1506,7 +1506,7 @@ export class FlexServer implements GristServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reuse Doom cli tool for org deletion. Note, this removes everything as a super user.
|
// Reuse Doom cli tool for org deletion. Note, this removes everything as a super user.
|
||||||
const doom = await createDoom(req);
|
const doom = await createDoom();
|
||||||
await doom.deleteOrg(org.id);
|
await doom.deleteOrg(org.id);
|
||||||
|
|
||||||
this.getTelemetry().logEvent(req as RequestWithLogin, 'deletedSite', {
|
this.getTelemetry().logEvent(req as RequestWithLogin, 'deletedSite', {
|
||||||
@ -2433,7 +2433,7 @@ export class FlexServer implements GristServer {
|
|||||||
const workspace = workspaces.find(w => w.name === 'Home');
|
const workspace = workspaces.find(w => w.name === 'Home');
|
||||||
if (!workspace) { throw new Error('Home workspace not found'); }
|
if (!workspace) { throw new Error('Home workspace not found'); }
|
||||||
|
|
||||||
const copyDocUrl = this.getHomeInternalUrl(req, '/api/docs');
|
const copyDocUrl = this.getHomeInternalUrl('/api/docs');
|
||||||
const response = await fetch(copyDocUrl, {
|
const response = await fetch(copyDocUrl, {
|
||||||
headers: {
|
headers: {
|
||||||
...getTransitiveHeaders(req),
|
...getTransitiveHeaders(req),
|
||||||
|
@ -35,7 +35,7 @@ export interface GristServer {
|
|||||||
settings?: Readonly<Record<string, unknown>>;
|
settings?: Readonly<Record<string, unknown>>;
|
||||||
getHost(): string;
|
getHost(): string;
|
||||||
getHomeUrl(req: express.Request, relPath?: string): string;
|
getHomeUrl(req: express.Request, relPath?: string): string;
|
||||||
getHomeInternalUrl(req: express.Request, relPath?: string): string;
|
getHomeInternalUrl(relPath?: string): string;
|
||||||
getHomeUrlByDocId(docId: string, relPath?: string): Promise<string>;
|
getHomeUrlByDocId(docId: string, relPath?: string): Promise<string>;
|
||||||
getOwnUrl(): string;
|
getOwnUrl(): string;
|
||||||
getOrgUrl(orgKey: string|number): Promise<string>;
|
getOrgUrl(orgKey: string|number): Promise<string>;
|
||||||
|
@ -417,7 +417,7 @@ export async function fetchDoc(server: GristServer, docId: string, req: Request,
|
|||||||
|
|
||||||
// Find the doc worker responsible for the document we wish to copy.
|
// Find the doc worker responsible for the document we wish to copy.
|
||||||
// The backend needs to be well configured for this to work.
|
// The backend needs to be well configured for this to work.
|
||||||
const homeUrl = server.getHomeInternalUrl(req);
|
const homeUrl = server.getHomeInternalUrl();
|
||||||
const fetchUrl = new URL(`/api/worker/${docId}`, homeUrl);
|
const fetchUrl = new URL(`/api/worker/${docId}`, homeUrl);
|
||||||
const response: FetchResponse = await Deps.fetch(fetchUrl.href, {headers});
|
const response: FetchResponse = await Deps.fetch(fetchUrl.href, {headers});
|
||||||
await _checkForError(response);
|
await _checkForError(response);
|
||||||
|
Loading…
Reference in New Issue
Block a user