mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-13 21:53:43 +01:00
Merge pull request #25486 from overleaf/bg-add-logging-when-projects-are-expired
add logging when projects are expired GitOrigin-RevId: 5107f9f3d2f35aac1ee3f02a9a92c5f625d47f7a
This commit is contained in:
@@ -106,8 +106,24 @@ async function expireDeletedProjectsAfterDuration() {
|
||||
deletedProject => deletedProject.deleterData.deletedProjectId
|
||||
)
|
||||
)
|
||||
for (const projectId of projectIds) {
|
||||
await expireDeletedProject(projectId)
|
||||
logger.info(
|
||||
{ projectCount: projectIds.length },
|
||||
'expiring batch of deleted projects'
|
||||
)
|
||||
try {
|
||||
for (const projectId of projectIds) {
|
||||
await expireDeletedProject(projectId)
|
||||
}
|
||||
logger.info(
|
||||
{ projectCount: projectIds.length },
|
||||
'batch of deleted projects expired successfully'
|
||||
)
|
||||
} catch (error) {
|
||||
logger.warn(
|
||||
{ error },
|
||||
'something went wrong expiring batch of deleted projects'
|
||||
)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,12 +292,15 @@ async function deleteProject(projectId, options = {}) {
|
||||
)
|
||||
|
||||
await Project.deleteOne({ _id: projectId }).exec()
|
||||
|
||||
logger.info(
|
||||
{ projectId, userId: project.owner_ref },
|
||||
'successfully deleted project'
|
||||
)
|
||||
} catch (err) {
|
||||
logger.warn({ err }, 'problem deleting project')
|
||||
throw err
|
||||
}
|
||||
|
||||
logger.debug({ projectId }, 'successfully deleted project')
|
||||
}
|
||||
|
||||
async function undeleteProject(projectId, options = {}) {
|
||||
@@ -335,16 +354,22 @@ async function undeleteProject(projectId, options = {}) {
|
||||
|
||||
async function expireDeletedProject(projectId) {
|
||||
try {
|
||||
logger.info({ projectId }, 'expiring deleted project')
|
||||
const activeProject = await Project.findById(projectId).exec()
|
||||
if (activeProject) {
|
||||
// That project is active. The deleted project record might be there
|
||||
// because of an incomplete delete or undelete operation. Clean it up and
|
||||
// return.
|
||||
logger.info(
|
||||
{ projectId },
|
||||
'deleted project record found but project is active'
|
||||
)
|
||||
await DeletedProject.deleteOne({
|
||||
'deleterData.deletedProjectId': projectId,
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
const deletedProject = await DeletedProject.findOne({
|
||||
'deleterData.deletedProjectId': projectId,
|
||||
}).exec()
|
||||
@@ -360,12 +385,14 @@ async function expireDeletedProject(projectId) {
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
const userId = deleteProject.deletedProjectOwnerId
|
||||
const historyId =
|
||||
deletedProject.project.overleaf &&
|
||||
deletedProject.project.overleaf.history &&
|
||||
deletedProject.project.overleaf.history.id
|
||||
|
||||
logger.info({ projectId, userId }, 'destroying expired project data')
|
||||
|
||||
await Promise.all([
|
||||
DocstoreManager.promises.destroyProject(deletedProject.project._id),
|
||||
HistoryManager.promises.deleteProject(
|
||||
@@ -378,6 +405,10 @@ async function expireDeletedProject(projectId) {
|
||||
Modules.promises.hooks.fire('projectExpired', deletedProject.project._id),
|
||||
])
|
||||
|
||||
logger.info(
|
||||
{ projectId, userId },
|
||||
'redacting PII from the deleted project record'
|
||||
)
|
||||
await DeletedProject.updateOne(
|
||||
{
|
||||
_id: deletedProject._id,
|
||||
@@ -389,6 +420,7 @@ async function expireDeletedProject(projectId) {
|
||||
},
|
||||
}
|
||||
).exec()
|
||||
logger.info({ projectId, userId }, 'expired deleted project successfully')
|
||||
} catch (error) {
|
||||
logger.warn({ projectId, error }, 'error expiring deleted project')
|
||||
throw error
|
||||
|
||||
Reference in New Issue
Block a user