707 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			707 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
|   "description": "observeSensitiveCommands",
 | |
|   "schemaVersion": "1.5",
 | |
|   "runOnRequirements": [
 | |
|     {
 | |
|       "auth": false
 | |
|     }
 | |
|   ],
 | |
|   "createEntities": [
 | |
|     {
 | |
|       "client": {
 | |
|         "id": "client0",
 | |
|         "observeEvents": [
 | |
|           "commandStartedEvent",
 | |
|           "commandSucceededEvent"
 | |
|         ],
 | |
|         "observeSensitiveCommands": true
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "client": {
 | |
|         "id": "client1",
 | |
|         "observeEvents": [
 | |
|           "commandStartedEvent",
 | |
|           "commandSucceededEvent"
 | |
|         ],
 | |
|         "observeSensitiveCommands": false
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "client": {
 | |
|         "id": "client2",
 | |
|         "observeEvents": [
 | |
|           "commandStartedEvent",
 | |
|           "commandSucceededEvent"
 | |
|         ]
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "database": {
 | |
|         "id": "database0",
 | |
|         "client": "client0",
 | |
|         "databaseName": "observeSensitiveCommands"
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "database": {
 | |
|         "id": "database1",
 | |
|         "client": "client1",
 | |
|         "databaseName": "observeSensitiveCommands"
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "database": {
 | |
|         "id": "database2",
 | |
|         "client": "client2",
 | |
|         "databaseName": "observeSensitiveCommands"
 | |
|       }
 | |
|     }
 | |
|   ],
 | |
|   "tests": [
 | |
|     {
 | |
|       "description": "getnonce is observed with observeSensitiveCommands=true",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "maxServerVersion": "6.1.99"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "getnonce",
 | |
|             "command": {
 | |
|               "getnonce": 1
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "getnonce",
 | |
|                 "command": {
 | |
|                   "getnonce": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "getnonce",
 | |
|                 "reply": {
 | |
|                   "ok": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "nonce": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "getnonce is not observed with observeSensitiveCommands=false",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "maxServerVersion": "6.1.99"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "getnonce",
 | |
|             "command": {
 | |
|               "getnonce": 1
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client1",
 | |
|           "events": []
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "getnonce is not observed by default",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "maxServerVersion": "6.1.99"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "getnonce",
 | |
|             "command": {
 | |
|               "getnonce": 1
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client2",
 | |
|           "events": []
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "hello with speculativeAuthenticate",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "minServerVersion": "4.9"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "hello",
 | |
|             "command": {
 | |
|               "hello": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "hello",
 | |
|             "command": {
 | |
|               "hello": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "hello",
 | |
|             "command": {
 | |
|               "hello": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "command": {
 | |
|                   "hello": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "speculativeAuthenticate": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "reply": {
 | |
|                   "isWritablePrimary": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "speculativeAuthenticate": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "client": "client1",
 | |
|           "events": []
 | |
|         },
 | |
|         {
 | |
|           "client": "client2",
 | |
|           "events": []
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "hello without speculativeAuthenticate is always observed",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "minServerVersion": "4.9"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "hello",
 | |
|             "command": {
 | |
|               "hello": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "hello",
 | |
|             "command": {
 | |
|               "hello": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "hello",
 | |
|             "command": {
 | |
|               "hello": 1
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "command": {
 | |
|                   "hello": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "reply": {
 | |
|                   "isWritablePrimary": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "client": "client1",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "command": {
 | |
|                   "hello": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "reply": {
 | |
|                   "isWritablePrimary": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "client": "client2",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "command": {
 | |
|                   "hello": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "hello",
 | |
|                 "reply": {
 | |
|                   "isWritablePrimary": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "legacy hello with speculativeAuthenticate",
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "ismaster",
 | |
|             "command": {
 | |
|               "ismaster": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "isMaster",
 | |
|             "command": {
 | |
|               "isMaster": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "ismaster",
 | |
|             "command": {
 | |
|               "ismaster": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "isMaster",
 | |
|             "command": {
 | |
|               "isMaster": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "ismaster",
 | |
|             "command": {
 | |
|               "ismaster": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "isMaster",
 | |
|             "command": {
 | |
|               "isMaster": 1,
 | |
|               "speculativeAuthenticate": {
 | |
|                 "saslStart": 1
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "command": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "speculativeAuthenticate": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "speculativeAuthenticate": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "command": {
 | |
|                   "isMaster": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "speculativeAuthenticate": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": false
 | |
|                   },
 | |
|                   "speculativeAuthenticate": {
 | |
|                     "$$exists": false
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "client": "client1",
 | |
|           "events": []
 | |
|         },
 | |
|         {
 | |
|           "client": "client2",
 | |
|           "events": []
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "legacy hello without speculativeAuthenticate is always observed",
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "ismaster",
 | |
|             "command": {
 | |
|               "ismaster": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database0",
 | |
|           "arguments": {
 | |
|             "commandName": "isMaster",
 | |
|             "command": {
 | |
|               "isMaster": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "ismaster",
 | |
|             "command": {
 | |
|               "ismaster": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "commandName": "isMaster",
 | |
|             "command": {
 | |
|               "isMaster": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "ismaster",
 | |
|             "command": {
 | |
|               "ismaster": 1
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         {
 | |
|           "name": "runCommand",
 | |
|           "object": "database2",
 | |
|           "arguments": {
 | |
|             "commandName": "isMaster",
 | |
|             "command": {
 | |
|               "isMaster": 1
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "command": {
 | |
|                   "ismaster": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "command": {
 | |
|                   "isMaster": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "client": "client1",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "command": {
 | |
|                   "ismaster": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "command": {
 | |
|                   "isMaster": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "client": "client2",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "command": {
 | |
|                   "ismaster": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "ismaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "command": {
 | |
|                   "isMaster": 1
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "commandSucceededEvent": {
 | |
|                 "commandName": "isMaster",
 | |
|                 "reply": {
 | |
|                   "ismaster": {
 | |
|                     "$$exists": true
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     }
 | |
|   ]
 | |
| }
 |