mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 17:19:37 +02:00
* [monorepo] remove PII and variables from error messages Exclusions: - scripts - tests - fuzzing - SplitTestManager (messages are sent to admin frontend) - Group setup (we may want an error per unique tuple) - sharejs (unused types; text type errors are shadowed already) - history-v1 error messages that are used by the ErrorRecorder - errors that flag issues with configuration/call signatures I've used these search terms for finding unwanted error messages: - new Error(` - new Error\(\n\s+` (regex search) - new OError(` - new OError\(\n\s+` (regex search) * [web] throw NotFoundError from ProjectLocator * [github-sync] fix OError.tag call in script Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com> * [templates] revert changes to test client --------- Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com> GitOrigin-RevId: 736857a4fc5d9bfb0f8cb03e0f004eda87e5a220
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
import mongodb from './mongodb.js'
|
|
import _ from 'lodash'
|
|
import crypto from 'node:crypto'
|
|
import settings from '@overleaf/settings'
|
|
import logger from '@overleaf/logger'
|
|
import { fetchNothing, fetchJson } from '@overleaf/fetch-utils'
|
|
import OError from '@overleaf/o-error'
|
|
|
|
const { db, ObjectId } = mongodb
|
|
|
|
const { port } = settings.internal.docstore
|
|
|
|
async function check() {
|
|
const docId = new ObjectId()
|
|
const projectId = new ObjectId(settings.docstore.healthCheck.project_id)
|
|
const url = `http://127.0.0.1:${port}/project/${projectId}/doc/${docId}`
|
|
const lines = [
|
|
'smoke test - delete me',
|
|
`${crypto.randomBytes(32).toString('hex')}`,
|
|
]
|
|
logger.debug({ lines, url, docId, projectId }, 'running health check')
|
|
let body
|
|
try {
|
|
await fetchNothing(url, {
|
|
method: 'POST',
|
|
json: { lines, version: 42, ranges: {} },
|
|
signal: AbortSignal.timeout(3_000),
|
|
})
|
|
body = await fetchJson(url, { signal: AbortSignal.timeout(3_000) })
|
|
} finally {
|
|
await db.docs.deleteOne({ _id: docId, project_id: projectId })
|
|
}
|
|
if (!_.isEqual(body?.lines, lines)) {
|
|
throw new OError('health check lines not equal', {
|
|
got: body.lines,
|
|
want: lines,
|
|
})
|
|
}
|
|
}
|
|
|
|
export default {
|
|
check,
|
|
}
|