From e293c627a16118c3cb93e893f88c99c3f3d7376e Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 11 Aug 2022 12:04:23 +0100 Subject: [PATCH] Merge pull request #9212 from overleaf/jpa-record-dropbox-file-id [third-party-datastore] start recording dropbox id for docs/files GitOrigin-RevId: 699fe63994848b65aa4d9cbc7966b867de56eabf --- .../ThirdPartyDataStore/TpdsUpdateSender.js | 6 +++++ .../web/app/src/infrastructure/mongodb.js | 1 + ...0811111800_create_dropboxEntities_index.js | 22 +++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 services/web/migrations/20220811111800_create_dropboxEntities_index.js diff --git a/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js b/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js index 39c16139a0..67672b8277 100644 --- a/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js +++ b/services/web/app/src/Features/ThirdPartyDataStore/TpdsUpdateSender.js @@ -23,6 +23,8 @@ async function addDoc(options) { `/doc/${options.doc_id}`, '/raw' ) + options.entity_id = options.doc_id + options.entity_type = 'doc' return addEntity(options) } @@ -34,6 +36,8 @@ async function addEntity(options) { const job = { method: 'post', headers: { + sl_entity_id: options.entity_id, + sl_entity_type: options.entity_type, sl_entity_rev: options.rev, sl_project_id: options.project_id, sl_all_user_ids: JSON.stringify([userId]), @@ -54,6 +58,8 @@ async function addFile(options) { options.streamOrigin = settings.apis.filestore.url + path.join(`/project/${options.project_id}`, `/file/${options.file_id}`) + options.entity_id = options.file_id + options.entity_type = 'file' return addEntity(options) } diff --git a/services/web/app/src/infrastructure/mongodb.js b/services/web/app/src/infrastructure/mongodb.js index 8ebc6b5a1a..4e8d476914 100644 --- a/services/web/app/src/infrastructure/mongodb.js +++ b/services/web/app/src/infrastructure/mongodb.js @@ -38,6 +38,7 @@ async function setupDb() { db.deletedProjects = internalDb.collection('deletedProjects') db.deletedSubscriptions = internalDb.collection('deletedSubscriptions') db.deletedUsers = internalDb.collection('deletedUsers') + db.dropboxEntities = internalDb.collection('dropboxEntities') db.docHistory = internalDb.collection('docHistory') db.docHistoryIndex = internalDb.collection('docHistoryIndex') db.docOps = internalDb.collection('docOps') diff --git a/services/web/migrations/20220811111800_create_dropboxEntities_index.js b/services/web/migrations/20220811111800_create_dropboxEntities_index.js new file mode 100644 index 0000000000..12b038100b --- /dev/null +++ b/services/web/migrations/20220811111800_create_dropboxEntities_index.js @@ -0,0 +1,22 @@ +const Helpers = require('./lib/helpers') + +exports.tags = ['saas'] + +const indexes = [ + { + key: { + entityId: 1, + }, + name: 'entityId_1', + }, +] + +exports.migrate = async client => { + const { db } = client + await Helpers.addIndexesToCollection(db.dropboxEntities, indexes) +} + +exports.rollback = async client => { + const { db } = client + await Helpers.dropIndexesFromCollection(db.dropboxEntities, indexes) +}