31 lines
879 B
JavaScript
31 lines
879 B
JavaScript
const Metrics = require('@overleaf/metrics')
|
|
|
|
const config = require('config')
|
|
const { MongoClient } = require('mongodb')
|
|
|
|
const client = new MongoClient(config.mongo.uri)
|
|
const db = client.db()
|
|
|
|
const chunks = db.collection('projectHistoryChunks')
|
|
const blobs = db.collection('projectHistoryBlobs')
|
|
const globalBlobs = db.collection('projectHistoryGlobalBlobs')
|
|
const shardedBlobs = db.collection('projectHistoryShardedBlobs')
|
|
const projects = db.collection('projects')
|
|
// Temporary collection for tracking progress of backed up old blobs (without a hash).
|
|
// The initial sync process will be able to skip over these.
|
|
// Schema: _id: projectId, blobs: [Binary]
|
|
const backedUpBlobs = db.collection('projectHistoryBackedUpBlobs')
|
|
|
|
Metrics.mongodb.monitor(client)
|
|
|
|
module.exports = {
|
|
client,
|
|
db,
|
|
chunks,
|
|
blobs,
|
|
globalBlobs,
|
|
projects,
|
|
shardedBlobs,
|
|
backedUpBlobs,
|
|
}
|