Disable (or warn about) destructive features
We already have Termination Protection enabled in our production cluster. That's great, but only applies to the whole cluster.
It would be great if there was a way to enable additional finer-grained safety features in MongoDB that would apply to large-scale destructive actions taken in either Atlas or mongosh. These could be presented as additional warnings or require additional confirmation even for users with administrator rights to re-consider their life choices. I.e. "are you really REALLY sure you want to drop that collection?". These could apply to the entire project, rather than individual databases or collections.
For example, these features are rarely if ever used in our production environment:
- db.collection.drop()
- db.collection.remove() or db.colletion.deleteMany(), especially if the query is empty or results in a very large number of documents
- db.collection.dropIndex() and db.collection.dropIndexes() -- the "Require Indexes for All Queries" setting is too late to catch this
- $out operator (and perhaps $merge as well) in aggregation pipelines.
Of those, only $out is somewhat covered: MongoDB Atlas Data Explorer's aggregation query warns the user before executing a pipeline that ends in a $out stage. mongosh has no similar warning.