From 8a7804f0a76d5271840cdc5cc5b4820f9172c9c2 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Mon, 15 Jul 2019 13:45:34 +0100 Subject: [PATCH] make event order check a configuration setting --- services/real-time/app/coffee/DocumentUpdaterController.coffee | 2 +- services/real-time/app/coffee/WebsocketLoadBalancer.coffee | 2 +- services/real-time/config/settings.defaults.coffee | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/services/real-time/app/coffee/DocumentUpdaterController.coffee b/services/real-time/app/coffee/DocumentUpdaterController.coffee index ddd5702b54..05b95e5fac 100644 --- a/services/real-time/app/coffee/DocumentUpdaterController.coffee +++ b/services/real-time/app/coffee/DocumentUpdaterController.coffee @@ -34,7 +34,7 @@ module.exports = DocumentUpdaterController = logger.error {err: error, channel}, "error parsing JSON" return if message.op? - if message._id? + if message._id? && settings.checkEventOrder status = EventLogger.checkEventOrder("applied-ops", message._id, message) if status is 'duplicate' return # skip duplicate events diff --git a/services/real-time/app/coffee/WebsocketLoadBalancer.coffee b/services/real-time/app/coffee/WebsocketLoadBalancer.coffee index 6de7b7c4e7..a9d5052410 100644 --- a/services/real-time/app/coffee/WebsocketLoadBalancer.coffee +++ b/services/real-time/app/coffee/WebsocketLoadBalancer.coffee @@ -41,7 +41,7 @@ module.exports = WebsocketLoadBalancer = if message.room_id == "all" io.sockets.emit(message.message, message.payload...) else if message.room_id? - if message._id? + if message._id? && Settings.checkEventOrder status = EventLogger.checkEventOrder("editor-events", message._id, message) if status is "duplicate" return # skip duplicate events diff --git a/services/real-time/config/settings.defaults.coffee b/services/real-time/config/settings.defaults.coffee index cc091a83f1..ceeb65191d 100644 --- a/services/real-time/config/settings.defaults.coffee +++ b/services/real-time/config/settings.defaults.coffee @@ -52,6 +52,8 @@ settings = continualPubsubTraffic: process.env['CONTINUAL_PUBSUB_TRAFFIC'] or false + checkEventOrder: process.env['CHECK_EVENT_ORDER'] or false + sentry: dsn: process.env.SENTRY_DSN