From 9d4eeeea90d2667d7475451f33b2a865200d5246 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 12 Dec 2024 15:26:09 +0000 Subject: [PATCH] Merge pull request #22488 from overleaf/bg-add-filestore-request-logging add filestore request logging GitOrigin-RevId: 0ec5c413f0e88521e1da268699ee2ee281c560f1 --- .../web/app/src/Features/FileStore/FileStoreHandler.js | 6 +++--- services/web/app/src/Features/History/HistoryURLHelper.js | 5 +++-- .../web/app/src/Features/References/ReferencesHandler.mjs | 3 ++- .../src/Features/ThirdPartyDataStore/TpdsUpdateSender.js | 3 ++- .../web/test/unit/src/FileStore/FileStoreHandlerTests.js | 7 +++++-- .../test/unit/src/References/ReferencesHandlerTests.mjs | 8 ++++---- .../unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js | 4 ++-- 7 files changed, 21 insertions(+), 15 deletions(-) diff --git a/services/web/app/src/Features/FileStore/FileStoreHandler.js b/services/web/app/src/Features/FileStore/FileStoreHandler.js index 6f1c929f85..2167d52859 100644 --- a/services/web/app/src/Features/FileStore/FileStoreHandler.js +++ b/services/web/app/src/Features/FileStore/FileStoreHandler.js @@ -155,9 +155,9 @@ const FileStoreHandler = { }, getFileStream(projectId, fileId, query, callback) { - let queryString = '' + let queryString = '?from=getFileStream' if (query != null && query.format != null) { - queryString = `?format=${query.format}` + queryString += `&format=${query.format}` } const opts = { method: 'get', @@ -183,7 +183,7 @@ const FileStoreHandler = { getFileSize(projectId, fileId, callback) { const url = this._buildUrl(projectId, fileId) - request.head(url, (err, res) => { + request.head(`${url}?from=getFileSize`, (err, res) => { if (err) { OError.tag(err, 'failed to get file size from filestore', { projectId, diff --git a/services/web/app/src/Features/History/HistoryURLHelper.js b/services/web/app/src/Features/History/HistoryURLHelper.js index 398f1496ae..91fb8a7115 100644 --- a/services/web/app/src/Features/History/HistoryURLHelper.js +++ b/services/web/app/src/Features/History/HistoryURLHelper.js @@ -3,9 +3,10 @@ function projectHistoryURLWithFilestoreFallback( Settings, projectId, historyId, - fileRef + fileRef, + origin ) { - const filestoreURL = `${Settings.apis.filestore.url}/project/${projectId}/file/${fileRef._id}` + const filestoreURL = `${Settings.apis.filestore.url}/project/${projectId}/file/${fileRef._id}?from=${origin}` if (fileRef.hash) { return { url: `${Settings.apis.project_history.url}/project/${historyId}/blob/${fileRef.hash}`, diff --git a/services/web/app/src/Features/References/ReferencesHandler.mjs b/services/web/app/src/Features/References/ReferencesHandler.mjs index 5bce9759e5..9ff61f27e2 100644 --- a/services/web/app/src/Features/References/ReferencesHandler.mjs +++ b/services/web/app/src/Features/References/ReferencesHandler.mjs @@ -172,7 +172,8 @@ export default ReferencesHandler = { settings, projectId, historyId, - fileRef + fileRef, + 'bibFileUrls' ) ) const sourceURLs = bibDocUrls.concat(bibFileUrls) diff --git a/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js b/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js index 0e624dbc43..2aacc9058d 100644 --- a/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js +++ b/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js @@ -87,7 +87,8 @@ async function addFile(params) { settings, projectId, historyId, - { _id: fileId, hash } + { _id: fileId, hash }, + 'tpdsAddFile' ) await addEntity({ diff --git a/services/web/test/unit/src/FileStore/FileStoreHandlerTests.js b/services/web/test/unit/src/FileStore/FileStoreHandlerTests.js index f7cb98a052..817f090ac3 100644 --- a/services/web/test/unit/src/FileStore/FileStoreHandlerTests.js +++ b/services/web/test/unit/src/FileStore/FileStoreHandlerTests.js @@ -386,7 +386,9 @@ describe('FileStoreHandler', function () { return done(err) } this.request.args[0][0].method.should.equal('get') - this.request.args[0][0].uri.should.equal(fileUrl) + this.request.args[0][0].uri.should.equal( + fileUrl + '?from=getFileStream' + ) done() } ) @@ -475,7 +477,8 @@ describe('FileStoreHandler', function () { describe('getFileSize', function () { it('returns the file size reported by filestore', function (done) { const expectedFileSize = 32432 - const fileUrl = this.getFileUrl(this.projectId, this.fileId) + const fileUrl = + this.getFileUrl(this.projectId, this.fileId) + '?from=getFileSize' this.request.head.yields( new Error('request.head() received unexpected arguments') ) diff --git a/services/web/test/unit/src/References/ReferencesHandlerTests.mjs b/services/web/test/unit/src/References/ReferencesHandlerTests.mjs index 33a01ae0ae..eb140b350d 100644 --- a/services/web/test/unit/src/References/ReferencesHandlerTests.mjs +++ b/services/web/test/unit/src/References/ReferencesHandlerTests.mjs @@ -138,8 +138,8 @@ describe('ReferencesHandler', function () { expect(arg.json.docUrls).to.deep.equal([ `${this.settings.apis.docstore.url}/project/${this.projectId}/doc/aaa/raw`, `${this.settings.apis.docstore.url}/project/${this.projectId}/doc/ccc/raw`, - `${this.settings.apis.filestore.url}/project/${this.projectId}/file/fff`, - `${this.settings.apis.filestore.url}/project/${this.projectId}/file/ggg`, + `${this.settings.apis.filestore.url}/project/${this.projectId}/file/fff?from=bibFileUrls`, + `${this.settings.apis.filestore.url}/project/${this.projectId}/file/ggg?from=bibFileUrls`, ]) expect(arg.json.sourceURLs.length).to.equal(4) expect(arg.json.sourceURLs).to.deep.equal([ @@ -150,11 +150,11 @@ describe('ReferencesHandler', function () { url: `${this.settings.apis.docstore.url}/project/${this.projectId}/doc/ccc/raw`, }, { - url: `${this.settings.apis.filestore.url}/project/${this.projectId}/file/fff`, + url: `${this.settings.apis.filestore.url}/project/${this.projectId}/file/fff?from=bibFileUrls`, }, { url: `${this.settings.apis.project_history.url}/project/${this.historyId}/blob/hash`, - fallbackURL: `${this.settings.apis.filestore.url}/project/${this.projectId}/file/ggg`, + fallbackURL: `${this.settings.apis.filestore.url}/project/${this.projectId}/file/ggg?from=bibFileUrls`, }, ]) expect(arg.json.fullIndex).to.equal(true) diff --git a/services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js b/services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js index 86818f6eeb..8552cfa99e 100644 --- a/services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js +++ b/services/web/test/unit/src/ThirdPartyDataStore/TpdsUpdateSenderTests.js @@ -138,7 +138,7 @@ describe('TpdsUpdateSender', function () { method: 'pipeStreamFrom', job: { method: 'post', - streamOrigin: `${filestoreUrl}/project/${projectId}/file/${fileId}`, + streamOrigin: `${filestoreUrl}/project/${projectId}/file/${fileId}?from=tpdsAddFile`, uri: `${thirdPartyDataStoreApiUrl}/user/${userId}/entity/${encodeURIComponent( projectName )}${encodeURIComponent(path)}`, @@ -192,7 +192,7 @@ describe('TpdsUpdateSender', function () { job: { method: 'post', streamOrigin: `${projectHistoryUrl}/project/${historyId}/blob/${hash}`, - streamFallback: `${filestoreUrl}/project/${projectId}/file/${fileId}`, + streamFallback: `${filestoreUrl}/project/${projectId}/file/${fileId}?from=tpdsAddFile`, uri: `${thirdPartyDataStoreApiUrl}/user/${userId}/entity/${encodeURIComponent( projectName )}${encodeURIComponent(path)}`,