mongo 2.17.4 → 2.18.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +21 -37
- data/lib/mongo/auth/base.rb +8 -1
- data/lib/mongo/auth.rb +12 -1
- data/lib/mongo/bulk_write/result.rb +10 -1
- data/lib/mongo/bulk_write/result_combiner.rb +2 -4
- data/lib/mongo/bulk_write.rb +108 -28
- data/lib/mongo/client.rb +114 -12
- data/lib/mongo/client_encryption.rb +30 -9
- data/lib/mongo/cluster/reapers/cursor_reaper.rb +11 -1
- data/lib/mongo/cluster.rb +20 -24
- data/lib/mongo/collection/helpers.rb +43 -0
- data/lib/mongo/collection/queryable_encryption.rb +122 -0
- data/lib/mongo/collection/view/aggregation.rb +19 -16
- data/lib/mongo/collection/view/change_stream.rb +56 -23
- data/lib/mongo/collection/view/explainable.rb +1 -1
- data/lib/mongo/collection/view/iterable.rb +2 -18
- data/lib/mongo/collection/view/map_reduce.rb +18 -9
- data/lib/mongo/collection/view/readable.rb +19 -23
- data/lib/mongo/collection/view/writable.rb +133 -40
- data/lib/mongo/collection/view.rb +0 -1
- data/lib/mongo/collection.rb +108 -48
- data/lib/mongo/config/options.rb +62 -0
- data/lib/mongo/config/validators/option.rb +26 -0
- data/lib/mongo/config.rb +31 -0
- data/lib/mongo/crypt/auto_encrypter.rb +79 -6
- data/lib/mongo/crypt/binding.rb +395 -143
- data/lib/mongo/crypt/context.rb +5 -2
- data/lib/mongo/crypt/data_key_context.rb +7 -104
- data/lib/mongo/crypt/encryption_io.rb +28 -60
- data/lib/mongo/crypt/explicit_encrypter.rb +27 -25
- data/lib/mongo/crypt/explicit_encryption_context.rb +31 -3
- data/lib/mongo/crypt/handle.rb +102 -79
- data/lib/mongo/crypt/hooks.rb +25 -2
- data/lib/mongo/crypt/kms/aws.rb +128 -0
- data/lib/mongo/crypt/kms/azure.rb +136 -0
- data/lib/mongo/crypt/kms/credentials.rb +81 -0
- data/lib/mongo/crypt/kms/gcp.rb +182 -0
- data/lib/mongo/crypt/kms/kmip.rb +110 -0
- data/lib/mongo/crypt/kms/local.rb +74 -0
- data/lib/mongo/crypt/kms/master_key_document.rb +65 -0
- data/lib/mongo/crypt/kms.rb +117 -0
- data/lib/mongo/crypt.rb +1 -0
- data/lib/mongo/cursor/kill_spec.rb +27 -6
- data/lib/mongo/cursor.rb +21 -16
- data/lib/mongo/database/view.rb +6 -3
- data/lib/mongo/database.rb +73 -12
- data/lib/mongo/dbref.rb +1 -105
- data/lib/mongo/error/bulk_write_error.rb +31 -4
- data/lib/mongo/error/invalid_config_option.rb +20 -0
- data/lib/mongo/error/invalid_replacement_document.rb +27 -9
- data/lib/mongo/error/invalid_update_document.rb +27 -7
- data/lib/mongo/error/labelable.rb +72 -0
- data/lib/mongo/error/missing_connection.rb +25 -0
- data/lib/mongo/error/notable.rb +7 -0
- data/lib/mongo/error/operation_failure.rb +34 -86
- data/lib/mongo/error/read_write_retryable.rb +108 -0
- data/lib/mongo/{operation/kill_cursors/legacy.rb → error/session_not_materialized.rb} +7 -19
- data/lib/mongo/error.rb +5 -37
- data/lib/mongo/index/view.rb +22 -7
- data/lib/mongo/monitoring/event/command_failed.rb +8 -2
- data/lib/mongo/monitoring/event/command_started.rb +1 -1
- data/lib/mongo/monitoring/event/command_succeeded.rb +9 -2
- data/lib/mongo/monitoring/publishable.rb +9 -5
- data/lib/mongo/operation/collections_info/result.rb +5 -2
- data/lib/mongo/operation/command/op_msg.rb +6 -0
- data/lib/mongo/operation/context.rb +24 -6
- data/lib/mongo/operation/count/op_msg.rb +4 -1
- data/lib/mongo/operation/create/op_msg.rb +16 -1
- data/lib/mongo/operation/create_index/op_msg.rb +2 -1
- data/lib/mongo/operation/delete/op_msg.rb +1 -0
- data/lib/mongo/operation/delete.rb +0 -1
- data/lib/mongo/operation/drop_index/op_msg.rb +5 -1
- data/lib/mongo/operation/get_more/command_builder.rb +5 -1
- data/lib/mongo/operation/insert/bulk_result.rb +5 -1
- data/lib/mongo/operation/insert/command.rb +0 -4
- data/lib/mongo/operation/insert/op_msg.rb +6 -3
- data/lib/mongo/operation/insert/result.rb +6 -3
- data/lib/mongo/operation/insert.rb +0 -1
- data/lib/mongo/operation/kill_cursors.rb +0 -1
- data/lib/mongo/operation/list_collections/op_msg.rb +4 -1
- data/lib/mongo/operation/map_reduce/result.rb +16 -0
- data/lib/mongo/operation/result.rb +21 -5
- data/lib/mongo/operation/shared/executable.rb +21 -6
- data/lib/mongo/operation/shared/polymorphic_operation.rb +15 -3
- data/lib/mongo/operation/shared/response_handling.rb +6 -5
- data/lib/mongo/operation/shared/sessions_supported.rb +3 -7
- data/lib/mongo/operation/shared/write.rb +18 -12
- data/lib/mongo/operation/update/op_msg.rb +2 -1
- data/lib/mongo/operation/update.rb +0 -1
- data/lib/mongo/protocol/caching_hash.rb +69 -0
- data/lib/mongo/protocol/msg.rb +37 -1
- data/lib/mongo/protocol.rb +1 -0
- data/lib/mongo/query_cache.rb +15 -0
- data/lib/mongo/retryable.rb +78 -30
- data/lib/mongo/server/connection.rb +33 -0
- data/lib/mongo/server/connection_base.rb +2 -0
- data/lib/mongo/server/connection_common.rb +4 -1
- data/lib/mongo/server/connection_pool.rb +69 -42
- data/lib/mongo/server/description/features.rb +3 -1
- data/lib/mongo/server/description.rb +7 -2
- data/lib/mongo/server/monitor/connection.rb +5 -10
- data/lib/mongo/server/monitor.rb +21 -13
- data/lib/mongo/server/push_monitor.rb +9 -3
- data/lib/mongo/server.rb +9 -5
- data/lib/mongo/session/session_pool.rb +8 -0
- data/lib/mongo/session.rb +111 -35
- data/lib/mongo/socket/ocsp_verifier.rb +4 -5
- data/lib/mongo/socket/tcp.rb +3 -0
- data/lib/mongo/srv/resolver.rb +24 -3
- data/lib/mongo/uri/options_mapper.rb +2 -0
- data/lib/mongo/uri/srv_protocol.rb +1 -1
- data/lib/mongo/uri.rb +20 -0
- data/lib/mongo/version.rb +1 -1
- data/lib/mongo.rb +20 -0
- data/mongo.gemspec +10 -4
- data/spec/README.md +5 -5
- data/spec/integration/aws_lambda_examples_spec.rb +68 -0
- data/spec/integration/bulk_write_error_message_spec.rb +32 -0
- data/spec/integration/bulk_write_spec.rb +0 -16
- data/spec/integration/change_stream_spec.rb +6 -5
- data/spec/integration/client_construction_spec.rb +1 -1
- data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +9 -9
- data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +18 -19
- data/spec/integration/client_side_encryption/auto_encryption_mongocryptd_spawn_spec.rb +0 -1
- data/spec/integration/client_side_encryption/auto_encryption_reconnect_spec.rb +31 -0
- data/spec/integration/client_side_encryption/auto_encryption_spec.rb +108 -1
- data/spec/integration/client_side_encryption/bson_size_limit_spec.rb +2 -2
- data/spec/integration/client_side_encryption/bypass_mongocryptd_spawn_spec.rb +2 -2
- data/spec/integration/client_side_encryption/client_close_spec.rb +1 -1
- data/spec/integration/client_side_encryption/corpus_spec.rb +64 -35
- data/spec/integration/client_side_encryption/custom_endpoint_spec.rb +39 -42
- data/spec/integration/client_side_encryption/data_key_spec.rb +97 -7
- data/spec/integration/client_side_encryption/explicit_encryption_spec.rb +59 -0
- data/spec/integration/client_side_encryption/explicit_queryable_encryption_spec.rb +147 -0
- data/spec/integration/client_side_encryption/external_key_vault_spec.rb +6 -6
- data/spec/integration/client_side_encryption/kms_tls_options_spec.rb +394 -0
- data/spec/integration/client_side_encryption/kms_tls_spec.rb +92 -0
- data/spec/integration/client_side_encryption/queryable_encryption_examples_spec.rb +111 -0
- data/spec/integration/client_side_encryption/views_spec.rb +1 -1
- data/spec/integration/client_update_spec.rb +2 -2
- data/spec/integration/crud_spec.rb +12 -0
- data/spec/integration/cursor_pinning_spec.rb +3 -3
- data/spec/integration/fork_reconnect_spec.rb +15 -8
- data/spec/integration/grid_fs_bucket_spec.rb +3 -3
- data/spec/integration/ocsp_verifier_spec.rb +1 -0
- data/spec/integration/query_cache_spec.rb +34 -30
- data/spec/integration/retryable_writes/retryable_writes_36_and_older_spec.rb +1 -1
- data/spec/integration/sdam_events_spec.rb +0 -40
- data/spec/integration/server_monitor_spec.rb +2 -1
- data/spec/integration/size_limit_spec.rb +4 -1
- data/spec/integration/snapshot_query_examples_spec.rb +127 -0
- data/spec/integration/srv_monitoring_spec.rb +37 -0
- data/spec/integration/step_down_spec.rb +20 -4
- data/spec/integration/transaction_pinning_spec.rb +2 -2
- data/spec/integration/versioned_api_examples_spec.rb +37 -31
- data/spec/lite_spec_helper.rb +14 -5
- data/spec/mongo/address/ipv6_spec.rb +7 -0
- data/spec/mongo/address_spec.rb +7 -0
- data/spec/mongo/auth/scram/conversation_spec.rb +23 -23
- data/spec/mongo/auth/scram256/conversation_spec.rb +20 -20
- data/spec/mongo/auth/scram_negotiation_spec.rb +1 -0
- data/spec/mongo/bulk_write/result_spec.rb +15 -1
- data/spec/mongo/bulk_write_spec.rb +128 -20
- data/spec/mongo/client_construction_spec.rb +141 -7
- data/spec/mongo/client_encryption_spec.rb +11 -11
- data/spec/mongo/client_spec.rb +297 -1
- data/spec/mongo/cluster/cursor_reaper_spec.rb +21 -3
- data/spec/mongo/cluster_spec.rb +0 -44
- data/spec/mongo/collection/view/aggregation_spec.rb +2 -2
- data/spec/mongo/collection/view/change_stream_spec.rb +2 -2
- data/spec/mongo/collection/view/readable_spec.rb +35 -56
- data/spec/mongo/collection/view/writable_spec.rb +144 -32
- data/spec/mongo/collection_crud_spec.rb +63 -13
- data/spec/mongo/config/options_spec.rb +75 -0
- data/spec/mongo/config_spec.rb +73 -0
- data/spec/mongo/crypt/auto_decryption_context_spec.rb +17 -1
- data/spec/mongo/crypt/auto_encrypter_spec.rb +106 -0
- data/spec/mongo/crypt/auto_encryption_context_spec.rb +17 -1
- data/spec/mongo/crypt/binding/context_spec.rb +99 -17
- data/spec/mongo/crypt/binding/mongocrypt_spec.rb +17 -46
- data/spec/mongo/crypt/binding/version_spec.rb +25 -0
- data/spec/mongo/crypt/binding_unloaded_spec.rb +14 -0
- data/spec/mongo/crypt/data_key_context_spec.rb +42 -114
- data/spec/mongo/crypt/encryption_io_spec.rb +2 -0
- data/spec/mongo/crypt/explicit_decryption_context_spec.rb +32 -1
- data/spec/mongo/crypt/explicit_encryption_context_spec.rb +89 -1
- data/spec/mongo/crypt/handle_spec.rb +47 -169
- data/spec/mongo/crypt/hooks_spec.rb +30 -0
- data/spec/mongo/crypt/kms/credentials_spec.rb +404 -0
- data/spec/mongo/crypt/kms_spec.rb +59 -0
- data/spec/mongo/cursor_spec.rb +37 -51
- data/spec/mongo/database_spec.rb +66 -1
- data/spec/mongo/error/operation_failure_heavy_spec.rb +49 -0
- data/spec/mongo/index/view_spec.rb +69 -0
- data/spec/mongo/operation/create/op_msg_spec.rb +286 -0
- data/spec/mongo/operation/delete/op_msg_spec.rb +13 -4
- data/spec/mongo/operation/delete_spec.rb +0 -30
- data/spec/mongo/operation/insert/op_msg_spec.rb +18 -10
- data/spec/mongo/operation/insert_spec.rb +0 -32
- data/spec/mongo/operation/result_spec.rb +20 -0
- data/spec/mongo/operation/update/op_msg_spec.rb +13 -4
- data/spec/mongo/operation/update_spec.rb +0 -29
- data/spec/mongo/protocol/caching_hash_spec.rb +82 -0
- data/spec/mongo/protocol/msg_spec.rb +41 -0
- data/spec/mongo/query_cache_spec.rb +1 -0
- data/spec/mongo/retryable_spec.rb +32 -3
- data/spec/mongo/server/connection_auth_spec.rb +3 -1
- data/spec/mongo/server/connection_common_spec.rb +13 -1
- data/spec/mongo/server/connection_pool_spec.rb +94 -49
- data/spec/mongo/server/connection_spec.rb +50 -159
- data/spec/mongo/server/description/features_spec.rb +24 -0
- data/spec/mongo/server/push_monitor_spec.rb +2 -8
- data/spec/mongo/session_spec.rb +26 -6
- data/spec/mongo/session_transaction_spec.rb +2 -1
- data/spec/mongo/socket/ssl_spec.rb +15 -4
- data/spec/mongo/uri/srv_protocol_spec.rb +101 -2
- data/spec/mongo/uri_spec.rb +25 -0
- data/spec/runners/connection_string.rb +8 -0
- data/spec/runners/crud/operation.rb +12 -3
- data/spec/runners/crud/requirement.rb +3 -3
- data/spec/runners/crud/spec.rb +5 -0
- data/spec/runners/crud/verifier.rb +6 -0
- data/spec/runners/transactions/test.rb +33 -14
- data/spec/runners/transactions.rb +9 -6
- data/spec/runners/unified/assertions.rb +59 -10
- data/spec/runners/unified/change_stream_operations.rb +9 -0
- data/spec/runners/unified/crud_operations.rb +50 -2
- data/spec/runners/unified/ddl_operations.rb +20 -0
- data/spec/runners/unified/error.rb +2 -1
- data/spec/runners/unified/support_operations.rb +5 -2
- data/spec/runners/unified/test.rb +19 -4
- data/spec/runners/unified.rb +9 -2
- data/spec/shared/lib/mrss/constraints.rb +10 -17
- data/spec/shared/lib/mrss/docker_runner.rb +21 -3
- data/spec/shared/lib/mrss/lite_constraints.rb +32 -1
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/share/Dockerfile.erb +56 -54
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +2 -1
- data/spec/shared/shlib/server.sh +46 -21
- data/spec/shared/shlib/set_env.sh +40 -5
- data/spec/spec_helper.rb +0 -1
- data/spec/spec_tests/crud_spec.rb +0 -10
- data/spec/spec_tests/data/change_streams_unified/change-streams-errors.yml +124 -0
- data/spec/spec_tests/data/change_streams_unified/change-streams-pre_and_post_images.yml +351 -0
- data/spec/spec_tests/data/change_streams_unified/change-streams-resume-allowlist.yml +1171 -0
- data/spec/spec_tests/data/change_streams_unified/change-streams-resume-errorLabels.yml +1068 -0
- data/spec/spec_tests/data/change_streams_unified/change-streams.yml +859 -4
- data/spec/spec_tests/data/client_side_encryption/aggregate.yml +3 -17
- data/spec/spec_tests/data/client_side_encryption/azureKMS.yml +46 -0
- data/spec/spec_tests/data/client_side_encryption/badQueries.yml +12 -2
- data/spec/spec_tests/data/client_side_encryption/basic.yml +3 -17
- data/spec/spec_tests/data/client_side_encryption/bulk.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/bypassAutoEncryption.yml +2 -2
- data/spec/spec_tests/data/client_side_encryption/count.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/countDocuments.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/delete.yml +2 -16
- data/spec/spec_tests/data/client_side_encryption/distinct.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/explain.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/find.yml +2 -16
- data/spec/spec_tests/data/client_side_encryption/findOneAndDelete.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/findOneAndReplace.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/findOneAndUpdate.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/fle2-BypassQueryAnalysis.yml +101 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-Compact.yml +80 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-CreateCollection.yml +1263 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-DecryptExistingData.yml +64 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-Delete.yml +107 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFields-vs-EncryptedFieldsMap.yml +80 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFields-vs-jsonSchema.yml +90 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFieldsMap-defaults.yml +57 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-FindOneAndUpdate.yml +213 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-InsertFind-Indexed.yml +86 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-InsertFind-Unindexed.yml +83 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-MissingKey.yml +41 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-NoEncryption.yml +42 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-Update.yml +221 -0
- data/spec/spec_tests/data/client_side_encryption/fle2-validatorAndPartialFieldExpression.yml +168 -0
- data/spec/spec_tests/data/client_side_encryption/gcpKMS.yml +46 -0
- data/spec/spec_tests/data/client_side_encryption/getMore.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/insert.yml +2 -16
- data/spec/spec_tests/data/client_side_encryption/keyAltName.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/localKMS.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/localSchema.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/maxWireVersion.yml +2 -0
- data/spec/spec_tests/data/client_side_encryption/missingKey.yml +2 -9
- data/spec/spec_tests/data/client_side_encryption/noSchema.yml +39 -0
- data/spec/spec_tests/data/client_side_encryption/replaceOne.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/types.yml +44 -70
- data/spec/spec_tests/data/client_side_encryption/updateMany.yml +1 -8
- data/spec/spec_tests/data/client_side_encryption/updateOne.yml +1 -8
- data/spec/spec_tests/data/collection_management/clustered-indexes.yml +135 -0
- data/spec/spec_tests/data/collection_management/createCollection-pre_and_post_images.yml +50 -0
- data/spec/spec_tests/data/collection_management/modifyCollection-pre_and_post_images.yml +58 -0
- data/spec/spec_tests/data/command_monitoring_unified/pre-42-server-connection-id.yml +56 -0
- data/spec/spec_tests/data/command_monitoring_unified/server-connection-id.yml +56 -0
- data/spec/spec_tests/data/crud/read/aggregate-collation.yml +1 -1
- data/spec/spec_tests/data/crud/read/count-collation.yml +1 -1
- data/spec/spec_tests/data/crud/read/distinct-collation.yml +1 -1
- data/spec/spec_tests/data/crud/read/find-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/bulkWrite-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/deleteMany-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/deleteOne-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/findOneAndDelete-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/findOneAndReplace-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/findOneAndUpdate-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/replaceOne-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/updateMany-collation.yml +1 -1
- data/spec/spec_tests/data/crud/write/updateOne-collation.yml +1 -1
- data/spec/spec_tests/data/crud_unified/aggregate-allowdiskuse.yml +75 -0
- data/spec/spec_tests/data/crud_unified/aggregate-merge.yml +185 -0
- data/spec/spec_tests/data/crud_unified/aggregate-out-readConcern.yml +171 -0
- data/spec/spec_tests/data/crud_unified/aggregate.yml +215 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-arrayFilters-clientError.yml +98 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-arrayFilters.yml +174 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-comment.yml +189 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint-clientError.yml +113 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint-serverError.yml +142 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint.yml +154 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-deleteMany-hint-unacknowledged.yml +98 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-deleteMany-let.yml +86 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-deleteOne-hint-unacknowledged.yml +97 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-deleteOne-let.yml +86 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-insertOne-dots_and_dollars.yml +138 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-dots_and_dollars.yml +165 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-hint-unacknowledged.yml +103 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-let.yml +93 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint-clientError.yml +148 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint-serverError.yml +239 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint.yml +256 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-update-validation.yml +73 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-dots_and_dollars.yml +150 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-hint-unacknowledged.yml +104 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-let.yml +96 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-dots_and_dollars.yml +150 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-hint-unacknowledged.yml +103 -0
- data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-let.yml +95 -0
- data/spec/spec_tests/data/crud_unified/countDocuments-comment.yml +92 -0
- data/spec/spec_tests/data/crud_unified/db-aggregate.yml +73 -0
- data/spec/spec_tests/data/crud_unified/deleteMany-comment.yml +97 -0
- data/spec/spec_tests/data/crud_unified/deleteMany-hint-clientError.yml +87 -0
- data/spec/spec_tests/data/crud_unified/deleteMany-hint-serverError.yml +107 -0
- data/spec/spec_tests/data/crud_unified/deleteMany-hint-unacknowledged.yml +90 -0
- data/spec/spec_tests/data/crud_unified/deleteMany-hint.yml +99 -0
- data/spec/spec_tests/data/crud_unified/deleteMany-let.yml +2 -0
- data/spec/spec_tests/data/crud_unified/deleteOne-comment.yml +98 -0
- data/spec/spec_tests/data/crud_unified/deleteOne-hint-clientError.yml +80 -0
- data/spec/spec_tests/data/crud_unified/deleteOne-hint-serverError.yml +100 -0
- data/spec/spec_tests/data/crud_unified/deleteOne-hint-unacknowledged.yml +89 -0
- data/spec/spec_tests/data/crud_unified/deleteOne-hint.yml +95 -0
- data/spec/spec_tests/data/crud_unified/deleteOne-let.yml +2 -0
- data/spec/spec_tests/data/crud_unified/estimatedDocumentCount-comment.yml +95 -0
- data/spec/spec_tests/data/crud_unified/estimatedDocumentCount.yml +5 -135
- data/spec/spec_tests/data/crud_unified/find-allowdiskuse-clientError.yml +55 -0
- data/spec/spec_tests/data/crud_unified/find-allowdiskuse-serverError.yml +68 -0
- data/spec/spec_tests/data/crud_unified/find-allowdiskuse.yml +79 -0
- data/spec/spec_tests/data/crud_unified/find-comment.yml +166 -0
- data/spec/spec_tests/data/crud_unified/find.yml +68 -0
- data/spec/spec_tests/data/crud_unified/findOneAndDelete-comment.yml +96 -0
- data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-clientError.yml +91 -0
- data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-serverError.yml +107 -0
- data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-unacknowledged.yml +88 -0
- data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint.yml +102 -0
- data/spec/spec_tests/data/crud_unified/findOneAndDelete-let.yml +2 -4
- data/spec/spec_tests/data/crud_unified/findOneAndReplace-comment.yml +101 -0
- data/spec/spec_tests/data/crud_unified/findOneAndReplace-dots_and_dollars.yml +140 -0
- data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-clientError.yml +83 -0
- data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-serverError.yml +99 -0
- data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-unacknowledged.yml +96 -0
- data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint.yml +98 -0
- data/spec/spec_tests/data/crud_unified/findOneAndUpdate-comment.yml +95 -0
- data/spec/spec_tests/data/crud_unified/findOneAndUpdate-dots_and_dollars.yml +127 -0
- data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-clientError.yml +84 -0
- data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-serverError.yml +100 -0
- data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-unacknowledged.yml +92 -0
- data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint.yml +99 -0
- data/spec/spec_tests/data/crud_unified/insertMany-comment.yml +93 -0
- data/spec/spec_tests/data/crud_unified/insertMany-dots_and_dollars.yml +128 -0
- data/spec/spec_tests/data/crud_unified/insertOne-comment.yml +91 -0
- data/spec/spec_tests/data/crud_unified/insertOne-dots_and_dollars.yml +238 -0
- data/spec/spec_tests/data/crud_unified/replaceOne-comment.yml +105 -0
- data/spec/spec_tests/data/crud_unified/replaceOne-dots_and_dollars.yml +180 -0
- data/spec/spec_tests/data/crud_unified/replaceOne-hint-unacknowledged.yml +95 -0
- data/spec/spec_tests/data/crud_unified/replaceOne-hint.yml +108 -0
- data/spec/spec_tests/data/crud_unified/replaceOne-let.yml +98 -0
- data/spec/spec_tests/data/crud_unified/replaceOne-validation.yml +37 -0
- data/spec/spec_tests/data/crud_unified/updateMany-comment.yml +104 -0
- data/spec/spec_tests/data/crud_unified/updateMany-dots_and_dollars.yml +138 -0
- data/spec/spec_tests/data/crud_unified/updateMany-hint-clientError.yml +91 -0
- data/spec/spec_tests/data/crud_unified/updateMany-hint-serverError.yml +115 -0
- data/spec/spec_tests/data/crud_unified/updateMany-hint-unacknowledged.yml +96 -0
- data/spec/spec_tests/data/crud_unified/updateMany-hint.yml +115 -0
- data/spec/spec_tests/data/crud_unified/updateMany-let.yml +5 -1
- data/spec/spec_tests/data/crud_unified/updateMany-validation.yml +39 -0
- data/spec/spec_tests/data/crud_unified/updateOne-comment.yml +104 -0
- data/spec/spec_tests/data/crud_unified/updateOne-dots_and_dollars.yml +138 -0
- data/spec/spec_tests/data/crud_unified/updateOne-hint-clientError.yml +85 -0
- data/spec/spec_tests/data/crud_unified/updateOne-hint-serverError.yml +109 -0
- data/spec/spec_tests/data/crud_unified/updateOne-hint-unacknowledged.yml +95 -0
- data/spec/spec_tests/data/crud_unified/updateOne-hint.yml +109 -0
- data/spec/spec_tests/data/crud_unified/updateOne-let.yml +5 -1
- data/spec/spec_tests/data/crud_unified/updateOne-validation.yml +37 -0
- data/spec/spec_tests/data/crud_unified/updateWithPipelines.yml +8 -14
- data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount-serverErrors-pre4.9.yml → legacy/estimatedDocumentCount-serverErrors.yml} +0 -2
- data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount-pre4.9.yml → legacy/estimatedDocumentCount.yml} +0 -2
- data/spec/spec_tests/data/retryable_reads/unified/handshakeError.yml +129 -0
- data/spec/spec_tests/data/retryable_writes/{bulkWrite-serverErrors.yml → legacy/bulkWrite-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{deleteOne-serverErrors.yml → legacy/deleteOne-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{findOneAndDelete-serverErrors.yml → legacy/findOneAndDelete-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{findOneAndReplace-serverErrors.yml → legacy/findOneAndReplace-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{findOneAndUpdate-serverErrors.yml → legacy/findOneAndUpdate-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{insertMany-serverErrors.yml → legacy/insertMany-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{insertOne-serverErrors.yml → legacy/insertOne-serverErrors.yml} +5 -5
- data/spec/spec_tests/data/retryable_writes/{replaceOne-serverErrors.yml → legacy/replaceOne-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/{updateOne-serverErrors.yml → legacy/updateOne-serverErrors.yml} +1 -1
- data/spec/spec_tests/data/retryable_writes/unified/bulkWrite-serverErrors.yml +96 -0
- data/spec/spec_tests/data/retryable_writes/unified/handshakeError.yml +137 -0
- data/spec/spec_tests/data/retryable_writes/unified/insertOne-serverErrors.yml +78 -0
- data/spec/spec_tests/data/sdam/errors/prefer-error-code.yml +2 -2
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-no-results.yml +5 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-conflicts_with_loadBalanced-true-txt.yml +5 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-conflicts_with_loadBalanced-true.yml +5 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-zero-txt.yml +10 -0
- data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-zero.yml +10 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srv-service-name.yml +11 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-conflicts_with_replicaSet-txt.yml +5 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-conflicts_with_replicaSet.yml +5 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-equal_to_srv_records.yml +16 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-greater_than_srv_records.yml +15 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-less_than_srv_records.yml +15 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-zero-txt.yml +15 -0
- data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-zero.yml +15 -0
- data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-equal_to_srv_records.yml +13 -0
- data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-greater_than_srv_records.yml +12 -0
- data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-less_than_srv_records.yml +10 -0
- data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-zero.yml +11 -0
- data/spec/spec_tests/data/server_selection/Unknown/read/ghost.yml +11 -0
- data/spec/spec_tests/data/server_selection/Unknown/write/ghost.yml +11 -0
- data/spec/spec_tests/data/sessions_unified/driver-sessions-server-support.yml +123 -0
- data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-client-error.yml +9 -3
- data/spec/spec_tests/data/transactions/error-labels.yml +1 -1
- data/spec/spec_tests/data/transactions/errors-client.yml +8 -9
- data/spec/spec_tests/data/transactions/mongos-recovery-token.yml +1 -1
- data/spec/spec_tests/data/transactions/retryable-abort-errorLabels.yml +0 -2
- data/spec/spec_tests/data/transactions/retryable-abort.yml +7 -9
- data/spec/spec_tests/data/transactions/retryable-commit-errorLabels.yml +0 -2
- data/spec/spec_tests/data/transactions/retryable-commit.yml +7 -9
- data/spec/spec_tests/data/transactions/retryable-writes.yml +0 -2
- data/spec/spec_tests/data/unified/invalid/expectedEventsForClient-ignoreExtraEvents-type.yml +15 -0
- data/spec/spec_tests/data/unified/valid-fail/operation-unsupported.yml +13 -0
- data/spec/spec_tests/data/unified/valid-pass/expectedEventsForClient-ignoreExtraEvents.yml +78 -0
- data/spec/spec_tests/data/unified/valid-pass/poc-change-streams.yml +4 -1
- data/spec/spec_tests/data/unified/valid-pass/poc-command-monitoring.yml +3 -3
- data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +3 -2
- data/spec/spec_tests/data/uri_options/srv-options.yml +96 -0
- data/spec/spec_tests/data/versioned_api/crud-api-version-1-strict.yml +6 -4
- data/spec/spec_tests/data/versioned_api/crud-api-version-1.yml +7 -5
- data/spec/spec_tests/retryable_reads_spec.rb +4 -1
- data/spec/spec_tests/retryable_reads_unified_spec.rb +22 -0
- data/spec/spec_tests/retryable_writes_spec.rb +4 -1
- data/spec/spec_tests/retryable_writes_unified_spec.rb +21 -0
- data/spec/spec_tests/seed_list_discovery_spec.rb +10 -1
- data/spec/spec_tests/unified_spec.rb +6 -1
- data/spec/stress/connection_pool_timing_spec.rb +2 -1
- data/spec/stress/fork_reconnect_stress_spec.rb +3 -2
- data/spec/support/authorization.rb +1 -1
- data/spec/support/certificates/atlas-ocsp-ca.crt +47 -40
- data/spec/support/certificates/atlas-ocsp.crt +106 -101
- data/spec/support/cluster_tools.rb +1 -1
- data/spec/support/common_shortcuts.rb +22 -0
- data/spec/support/crypt/corpus/corpus-encrypted.json +9515 -0
- data/spec/support/crypt/corpus/corpus-key-aws.json +32 -32
- data/spec/support/crypt/corpus/corpus-key-azure.json +33 -0
- data/spec/support/crypt/corpus/corpus-key-gcp.json +35 -0
- data/spec/support/crypt/corpus/corpus-key-kmip.json +32 -0
- data/spec/support/crypt/corpus/corpus-key-local.json +30 -30
- data/spec/support/crypt/corpus/corpus-schema.json +4399 -121
- data/spec/support/crypt/corpus/corpus.json +4999 -37
- data/spec/support/crypt/data_keys/key_document_azure.json +33 -0
- data/spec/support/crypt/data_keys/key_document_gcp.json +37 -0
- data/spec/support/crypt/data_keys/key_document_kmip.json +32 -0
- data/spec/support/crypt/encryptedFields.json +33 -0
- data/spec/support/crypt/keys/key1-document.json +30 -0
- data/spec/support/crypt/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/crypt/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/crypt/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/crypt/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/crypt/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/crypt/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/crypt.rb +207 -6
- data/spec/support/macros.rb +18 -0
- data/spec/support/mongos_macros.rb +17 -0
- data/spec/support/shared/scram_conversation.rb +2 -1
- data/spec/support/shared/session.rb +13 -7
- data/spec/support/spec_config.rb +82 -1
- data/spec/support/utils.rb +25 -4
- data.tar.gz.sig +0 -0
- metadata +1499 -1252
- metadata.gz.sig +0 -0
- data/lib/mongo/operation/delete/legacy.rb +0 -64
- data/lib/mongo/operation/insert/legacy.rb +0 -68
- data/lib/mongo/operation/update/legacy/result.rb +0 -112
- data/lib/mongo/operation/update/legacy.rb +0 -76
- data/spec/integration/find_options_spec.rb +0 -227
- data/spec/mongo/dbref_spec.rb +0 -152
- data/spec/mongo/operation/kill_cursors_spec.rb +0 -47
- data/spec/spec_tests/change_streams_spec.rb +0 -93
- data/spec/spec_tests/data/change_streams/change-streams-errors.yml +0 -101
- data/spec/spec_tests/data/change_streams/change-streams-resume-allowlist.yml +0 -1173
- data/spec/spec_tests/data/change_streams/change-streams-resume-errorLabels.yml +0 -1105
- data/spec/spec_tests/data/change_streams/change-streams.yml +0 -535
- data/spec/spec_tests/data/crud_v2/aggregate-merge.yml +0 -103
- data/spec/spec_tests/data/crud_v2/aggregate-out-readConcern.yml +0 -111
- data/spec/spec_tests/data/crud_v2/bulkWrite-arrayFilters.yml +0 -103
- data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint-clientError.yml +0 -63
- data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint-serverError.yml +0 -92
- data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint.yml +0 -103
- data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint-clientError.yml +0 -90
- data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint-serverError.yml +0 -147
- data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint.yml +0 -164
- data/spec/spec_tests/data/crud_v2/db-aggregate.yml +0 -39
- data/spec/spec_tests/data/crud_v2/deleteMany-hint-clientError.yml +0 -43
- data/spec/spec_tests/data/crud_v2/deleteMany-hint-serverError.yml +0 -62
- data/spec/spec_tests/data/crud_v2/deleteMany-hint.yml +0 -58
- data/spec/spec_tests/data/crud_v2/deleteOne-hint-clientError.yml +0 -41
- data/spec/spec_tests/data/crud_v2/deleteOne-hint-serverError.yml +0 -60
- data/spec/spec_tests/data/crud_v2/deleteOne-hint.yml +0 -57
- data/spec/spec_tests/data/crud_v2/find-allowdiskuse-clientError.yml +0 -28
- data/spec/spec_tests/data/crud_v2/find-allowdiskuse-serverError.yml +0 -44
- data/spec/spec_tests/data/crud_v2/find-allowdiskuse.yml +0 -50
- data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint-clientError.yml +0 -45
- data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint-serverError.yml +0 -60
- data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint.yml +0 -56
- data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint-serverError.yml +0 -59
- data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint.yml +0 -55
- data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint-serverError.yml +0 -58
- data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint.yml +0 -55
- data/spec/spec_tests/data/crud_v2/replaceOne-hint.yml +0 -61
- data/spec/spec_tests/data/crud_v2/unacknowledged-bulkWrite-delete-hint-clientError.yml +0 -60
- data/spec/spec_tests/data/crud_v2/unacknowledged-bulkWrite-update-hint-clientError.yml +0 -88
- data/spec/spec_tests/data/crud_v2/unacknowledged-deleteMany-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/unacknowledged-deleteOne-hint-clientError.yml +0 -38
- data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndDelete-hint-clientError.yml +0 -42
- data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndReplace-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndUpdate-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/unacknowledged-replaceOne-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/unacknowledged-updateMany-hint-clientError.yml +0 -43
- data/spec/spec_tests/data/crud_v2/unacknowledged-updateOne-hint-clientError.yml +0 -40
- data/spec/spec_tests/data/crud_v2/updateMany-hint-clientError.yml +0 -45
- data/spec/spec_tests/data/crud_v2/updateMany-hint-serverError.yml +0 -66
- data/spec/spec_tests/data/crud_v2/updateMany-hint.yml +0 -65
- data/spec/spec_tests/data/crud_v2/updateOne-hint-clientError.yml +0 -43
- data/spec/spec_tests/data/crud_v2/updateOne-hint-serverError.yml +0 -62
- data/spec/spec_tests/data/crud_v2/updateOne-hint.yml +0 -61
- data/spec/spec_tests/data/crud_v2/updateWithPipelines.yml +0 -157
- data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-4.9.yml +0 -60
- data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors-4.9.yml +0 -146
- data/spec/support/crypt/corpus/corpus_encrypted.json +0 -4152
- data/spec/support/session_registry.rb +0 -55
- /data/spec/spec_tests/data/retryable_reads/{aggregate-merge.yml → legacy/aggregate-merge.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{aggregate-serverErrors.yml → legacy/aggregate-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{aggregate.yml → legacy/aggregate.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{changeStreams-client.watch-serverErrors.yml → legacy/changeStreams-client.watch-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{changeStreams-client.watch.yml → legacy/changeStreams-client.watch.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{changeStreams-db.coll.watch-serverErrors.yml → legacy/changeStreams-db.coll.watch-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{changeStreams-db.coll.watch.yml → legacy/changeStreams-db.coll.watch.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{changeStreams-db.watch-serverErrors.yml → legacy/changeStreams-db.watch-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{changeStreams-db.watch.yml → legacy/changeStreams-db.watch.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{count-serverErrors.yml → legacy/count-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{count.yml → legacy/count.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{countDocuments-serverErrors.yml → legacy/countDocuments-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{countDocuments.yml → legacy/countDocuments.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{distinct-serverErrors.yml → legacy/distinct-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{distinct.yml → legacy/distinct.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{find-serverErrors.yml → legacy/find-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{find.yml → legacy/find.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{findOne-serverErrors.yml → legacy/findOne-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{findOne.yml → legacy/findOne.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{gridfs-download-serverErrors.yml → legacy/gridfs-download-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{gridfs-download.yml → legacy/gridfs-download.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{gridfs-downloadByName-serverErrors.yml → legacy/gridfs-downloadByName-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{gridfs-downloadByName.yml → legacy/gridfs-downloadByName.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listCollectionNames-serverErrors.yml → legacy/listCollectionNames-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listCollectionNames.yml → legacy/listCollectionNames.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listCollectionObjects-serverErrors.yml → legacy/listCollectionObjects-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listCollectionObjects.yml → legacy/listCollectionObjects.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listCollections-serverErrors.yml → legacy/listCollections-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listCollections.yml → legacy/listCollections.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listDatabaseNames-serverErrors.yml → legacy/listDatabaseNames-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listDatabaseNames.yml → legacy/listDatabaseNames.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listDatabaseObjects-serverErrors.yml → legacy/listDatabaseObjects-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listDatabaseObjects.yml → legacy/listDatabaseObjects.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listDatabases-serverErrors.yml → legacy/listDatabases-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listDatabases.yml → legacy/listDatabases.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listIndexNames-serverErrors.yml → legacy/listIndexNames-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listIndexNames.yml → legacy/listIndexNames.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listIndexes-serverErrors.yml → legacy/listIndexes-serverErrors.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{listIndexes.yml → legacy/listIndexes.yml} +0 -0
- /data/spec/spec_tests/data/retryable_reads/{mapReduce.yml → legacy/mapReduce.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{bulkWrite-errorLabels.yml → legacy/bulkWrite-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{bulkWrite.yml → legacy/bulkWrite.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{deleteMany.yml → legacy/deleteMany.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{deleteOne-errorLabels.yml → legacy/deleteOne-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{deleteOne.yml → legacy/deleteOne.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{findOneAndDelete-errorLabels.yml → legacy/findOneAndDelete-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{findOneAndDelete.yml → legacy/findOneAndDelete.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{findOneAndReplace-errorLabels.yml → legacy/findOneAndReplace-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{findOneAndReplace.yml → legacy/findOneAndReplace.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{findOneAndUpdate-errorLabels.yml → legacy/findOneAndUpdate-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{findOneAndUpdate.yml → legacy/findOneAndUpdate.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{insertMany-errorLabels.yml → legacy/insertMany-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{insertMany.yml → legacy/insertMany.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{insertOne-errorLabels.yml → legacy/insertOne-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{insertOne.yml → legacy/insertOne.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{replaceOne-errorLabels.yml → legacy/replaceOne-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{replaceOne.yml → legacy/replaceOne.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{updateMany.yml → legacy/updateMany.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{updateOne-errorLabels.yml → legacy/updateOne-errorLabels.yml} +0 -0
- /data/spec/spec_tests/data/retryable_writes/{updateOne.yml → legacy/updateOne.yml} +0 -0
@@ -3,7 +3,8 @@
|
|
3
3
|
|
4
4
|
require 'spec_helper'
|
5
5
|
|
6
|
-
describe 'Change stream integration'
|
6
|
+
describe 'Change stream integration' do
|
7
|
+
retry_test 4
|
7
8
|
require_mri
|
8
9
|
max_example_run_time 7
|
9
10
|
min_server_fcv '3.6'
|
@@ -101,7 +102,7 @@ describe 'Change stream integration', retry: 4 do
|
|
101
102
|
it 'watch raises error' do
|
102
103
|
expect do
|
103
104
|
client['change-stream'].watch
|
104
|
-
end.to raise_error(Mongo::Error::OperationFailure, /10107\b.*Failing command due to 'failCommand' failpoint/)
|
105
|
+
end.to raise_error(Mongo::Error::OperationFailure, /10107\b.*Failing command (due to|via) 'failCommand' failpoint/)
|
105
106
|
end
|
106
107
|
end
|
107
108
|
|
@@ -286,7 +287,7 @@ describe 'Change stream integration', retry: 4 do
|
|
286
287
|
|
287
288
|
expect do
|
288
289
|
enum.next
|
289
|
-
end.to raise_error(Mongo::Error::OperationFailure, /101\b.*Failing command due to 'failCommand' failpoint/)
|
290
|
+
end.to raise_error(Mongo::Error::OperationFailure, /101\b.*Failing command (due to|via) 'failCommand' failpoint/)
|
290
291
|
end
|
291
292
|
end
|
292
293
|
end
|
@@ -417,7 +418,7 @@ describe 'Change stream integration', retry: 4 do
|
|
417
418
|
|
418
419
|
expect do
|
419
420
|
enum.try_next
|
420
|
-
end.to raise_error(Mongo::Error::OperationFailure, /10107\b.*Failing command due to 'failCommand' failpoint/)
|
421
|
+
end.to raise_error(Mongo::Error::OperationFailure, /10107\b.*Failing command (due to|via) 'failCommand' failpoint/)
|
421
422
|
end
|
422
423
|
end
|
423
424
|
|
@@ -444,7 +445,7 @@ describe 'Change stream integration', retry: 4 do
|
|
444
445
|
|
445
446
|
expect do
|
446
447
|
enum.try_next
|
447
|
-
end.to raise_error(Mongo::Error::OperationFailure, /10107\b.*Failing command due to 'failCommand' failpoint/)
|
448
|
+
end.to raise_error(Mongo::Error::OperationFailure, /10107\b.*Failing command (due to|via) 'failCommand' failpoint/)
|
448
449
|
end
|
449
450
|
end
|
450
451
|
end
|
@@ -184,7 +184,7 @@ describe 'Client construction' do
|
|
184
184
|
it 'raises an exception' do
|
185
185
|
expect do
|
186
186
|
client
|
187
|
-
end.to raise_error(ArgumentError, /The
|
187
|
+
end.to raise_error(ArgumentError, /The access_key_id option must be a String with at least one character; it is currently an empty string/)
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
@@ -132,8 +132,8 @@ describe 'Bulk writes with auto-encryption enabled' do
|
|
132
132
|
context 'when total request size does not exceed 2MiB' do
|
133
133
|
let(:requests) do
|
134
134
|
[
|
135
|
-
{
|
136
|
-
{
|
135
|
+
{ replace_one: { filter: { _id: 1 }, replacement: { ssn: 'a' * (size_limit/2) } } },
|
136
|
+
{ replace_one: { filter: { _id: 2 }, replacement: { ssn: 'a' * (size_limit/2) } } },
|
137
137
|
]
|
138
138
|
end
|
139
139
|
|
@@ -143,8 +143,8 @@ describe 'Bulk writes with auto-encryption enabled' do
|
|
143
143
|
context 'when each operation is smaller than 2MiB, but the total request size is greater than 2MiB' do
|
144
144
|
let(:requests) do
|
145
145
|
[
|
146
|
-
{
|
147
|
-
{
|
146
|
+
{ replace_one: { filter: { _id: 1 }, replacement: { ssn: 'a' * (size_limit - 2000) } } },
|
147
|
+
{ replace_one: { filter: { _id: 2 }, replacement: { ssn: 'a' * (size_limit - 2000) } } },
|
148
148
|
]
|
149
149
|
end
|
150
150
|
|
@@ -154,8 +154,8 @@ describe 'Bulk writes with auto-encryption enabled' do
|
|
154
154
|
context 'when each operation is larger than 2MiB' do
|
155
155
|
let(:requests) do
|
156
156
|
[
|
157
|
-
{
|
158
|
-
{
|
157
|
+
{ replace_one: { filter: { _id: 1 }, replacement: { ssn: 'a' * (size_limit * 2) } } },
|
158
|
+
{ replace_one: { filter: { _id: 2 }, replacement: { ssn: 'a' * (size_limit * 2) } } },
|
159
159
|
]
|
160
160
|
end
|
161
161
|
|
@@ -165,8 +165,8 @@ describe 'Bulk writes with auto-encryption enabled' do
|
|
165
165
|
context 'when one operation is larger than 16MiB' do
|
166
166
|
let(:requests) do
|
167
167
|
[
|
168
|
-
{
|
169
|
-
{
|
168
|
+
{ replace_one: { filter: { _id: 1 }, replacement: { ssn: 'a' * (Mongo::Server::ConnectionBase::DEFAULT_MAX_BSON_OBJECT_SIZE) } } },
|
169
|
+
{ replace_one: { filter: { _id: 2 }, replacement: { ssn: 'a' * size_limit } } },
|
170
170
|
]
|
171
171
|
end
|
172
172
|
|
@@ -272,7 +272,7 @@ describe 'Bulk writes with auto-encryption enabled' do
|
|
272
272
|
let(:requests) do
|
273
273
|
[
|
274
274
|
{ insert_one: { _id: 1, ssn: 'a' * (size_limit/3) } },
|
275
|
-
{
|
275
|
+
{ replace_one: { filter: { _id: 1 }, replacement: { ssn: 'b' * (size_limit/3) } } },
|
276
276
|
{ delete_one: { filter: { ssn: 'b' * (size_limit/3) } } }
|
277
277
|
]
|
278
278
|
end
|
@@ -32,7 +32,7 @@ describe 'Auto Encryption' do
|
|
32
32
|
database: db_name
|
33
33
|
),
|
34
34
|
).tap do |client|
|
35
|
-
client.subscribe(Mongo::Monitoring::COMMAND, subscriber)
|
35
|
+
client.encrypter.key_vault_client.subscribe(Mongo::Monitoring::COMMAND, subscriber)
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -62,10 +62,9 @@ describe 'Auto Encryption' do
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
shared_examples 'it has
|
66
|
-
it '
|
67
|
-
expect(key_vault_list_collections_event).
|
68
|
-
expect(key_vault_list_collections_event.command['$db']).to eq(key_vault_db)
|
65
|
+
shared_examples 'it has a non-encrypted key_vault_client' do
|
66
|
+
it 'does not register a listCollections event on the key vault client' do
|
67
|
+
expect(key_vault_list_collections_event).to be_nil
|
69
68
|
end
|
70
69
|
end
|
71
70
|
|
@@ -86,7 +85,7 @@ describe 'Auto Encryption' do
|
|
86
85
|
expect(succeeded_event.reply["cursor"]["firstBatch"].first["ssn"]).to be_ciphertext
|
87
86
|
end
|
88
87
|
|
89
|
-
it_behaves_like 'it has
|
88
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
90
89
|
end
|
91
90
|
|
92
91
|
describe '#count' do
|
@@ -102,7 +101,7 @@ describe 'Auto Encryption' do
|
|
102
101
|
expect(started_event.command["query"]["ssn"]["$eq"]).to be_ciphertext
|
103
102
|
end
|
104
103
|
|
105
|
-
it_behaves_like 'it has
|
104
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
106
105
|
end
|
107
106
|
|
108
107
|
describe '#distinct' do
|
@@ -118,7 +117,7 @@ describe 'Auto Encryption' do
|
|
118
117
|
expect(succeeded_event.reply["values"].first).to be_ciphertext
|
119
118
|
end
|
120
119
|
|
121
|
-
it_behaves_like 'it has
|
120
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
122
121
|
end
|
123
122
|
|
124
123
|
describe '#delete_one' do
|
@@ -134,7 +133,7 @@ describe 'Auto Encryption' do
|
|
134
133
|
expect(started_event.command["deletes"].first["q"]["ssn"]["$eq"]).to be_ciphertext
|
135
134
|
end
|
136
135
|
|
137
|
-
it_behaves_like 'it has
|
136
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
138
137
|
end
|
139
138
|
|
140
139
|
describe '#delete_many' do
|
@@ -150,7 +149,7 @@ describe 'Auto Encryption' do
|
|
150
149
|
expect(started_event.command["deletes"].first["q"]["ssn"]["$eq"]).to be_ciphertext
|
151
150
|
end
|
152
151
|
|
153
|
-
it_behaves_like 'it has
|
152
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
154
153
|
end
|
155
154
|
|
156
155
|
describe '#find' do
|
@@ -168,7 +167,7 @@ describe 'Auto Encryption' do
|
|
168
167
|
expect(succeeded_event.reply["cursor"]["firstBatch"].first["ssn"]).to be_ciphertext
|
169
168
|
end
|
170
169
|
|
171
|
-
it_behaves_like 'it has
|
170
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
172
171
|
end
|
173
172
|
|
174
173
|
describe '#find_one_and_delete' do
|
@@ -186,7 +185,7 @@ describe 'Auto Encryption' do
|
|
186
185
|
expect(succeeded_event.reply["value"]["ssn"]).to be_ciphertext
|
187
186
|
end
|
188
187
|
|
189
|
-
it_behaves_like 'it has
|
188
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
190
189
|
end
|
191
190
|
|
192
191
|
describe '#find_one_and_replace' do
|
@@ -208,7 +207,7 @@ describe 'Auto Encryption' do
|
|
208
207
|
expect(succeeded_event.reply["value"]["ssn"]).to be_ciphertext
|
209
208
|
end
|
210
209
|
|
211
|
-
it_behaves_like 'it has
|
210
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
212
211
|
end
|
213
212
|
|
214
213
|
describe '#find_one_and_update' do
|
@@ -231,7 +230,7 @@ describe 'Auto Encryption' do
|
|
231
230
|
expect(succeeded_event.reply["value"]["ssn"]).to be_ciphertext
|
232
231
|
end
|
233
232
|
|
234
|
-
it_behaves_like 'it has
|
233
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
235
234
|
end
|
236
235
|
|
237
236
|
describe '#insert_one' do
|
@@ -247,7 +246,7 @@ describe 'Auto Encryption' do
|
|
247
246
|
expect(started_event.command["documents"].first["ssn"]).to be_ciphertext
|
248
247
|
end
|
249
248
|
|
250
|
-
it_behaves_like 'it has
|
249
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
251
250
|
end
|
252
251
|
|
253
252
|
describe '#replace_one' do
|
@@ -267,14 +266,14 @@ describe 'Auto Encryption' do
|
|
267
266
|
expect(started_event.command["updates"].first["u"]["ssn"]).to be_ciphertext
|
268
267
|
end
|
269
268
|
|
270
|
-
it_behaves_like 'it has
|
269
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
271
270
|
end
|
272
271
|
|
273
272
|
describe '#update_one' do
|
274
273
|
let(:command_name) { 'update' }
|
275
274
|
|
276
275
|
before do
|
277
|
-
encryption_client['users'].
|
276
|
+
encryption_client['users'].replace_one({ ssn: ssn }, { ssn: '555-555-5555' })
|
278
277
|
end
|
279
278
|
|
280
279
|
it 'has encrypted data in command monitoring' do
|
@@ -284,7 +283,7 @@ describe 'Auto Encryption' do
|
|
284
283
|
expect(started_event.command["updates"].first["u"]["ssn"]).to be_ciphertext
|
285
284
|
end
|
286
285
|
|
287
|
-
it_behaves_like 'it has
|
286
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
288
287
|
end
|
289
288
|
|
290
289
|
describe '#update_many' do
|
@@ -301,6 +300,6 @@ describe 'Auto Encryption' do
|
|
301
300
|
expect(started_event.command["updates"].first["q"]["ssn"]["$eq"]).to be_ciphertext
|
302
301
|
end
|
303
302
|
|
304
|
-
it_behaves_like 'it has
|
303
|
+
it_behaves_like 'it has a non-encrypted key_vault_client'
|
305
304
|
end
|
306
305
|
end
|
@@ -21,6 +21,7 @@ describe 'Client with auto encryption #reconnect' do
|
|
21
21
|
{
|
22
22
|
auto_encryption_options: {
|
23
23
|
kms_providers: kms_providers,
|
24
|
+
kms_tls_options: kms_tls_options,
|
24
25
|
key_vault_namespace: key_vault_namespace,
|
25
26
|
key_vault_client: key_vault_client_option,
|
26
27
|
schema_map: { 'auto_encryption.users': schema_map },
|
@@ -197,6 +198,21 @@ describe 'Client with auto encryption #reconnect' do
|
|
197
198
|
it_behaves_like 'an auto-encryption client that reconnects properly'
|
198
199
|
end
|
199
200
|
|
201
|
+
context 'with Azure KMS providers' do
|
202
|
+
include_context 'with Azure kms_providers'
|
203
|
+
it_behaves_like 'an auto-encryption client that reconnects properly'
|
204
|
+
end
|
205
|
+
|
206
|
+
context 'with GCP KMS providers' do
|
207
|
+
include_context 'with GCP kms_providers'
|
208
|
+
it_behaves_like 'an auto-encryption client that reconnects properly'
|
209
|
+
end
|
210
|
+
|
211
|
+
context 'with KMIP KMS providers' do
|
212
|
+
include_context 'with KMIP kms_providers'
|
213
|
+
it_behaves_like 'an auto-encryption client that reconnects properly'
|
214
|
+
end
|
215
|
+
|
200
216
|
context 'with local KMS providers' do
|
201
217
|
include_context 'with local kms_providers'
|
202
218
|
it_behaves_like 'an auto-encryption client that reconnects properly'
|
@@ -216,6 +232,21 @@ describe 'Client with auto encryption #reconnect' do
|
|
216
232
|
it_behaves_like 'an auto-encryption client that reconnects properly'
|
217
233
|
end
|
218
234
|
|
235
|
+
context 'with Azure KMS providers' do
|
236
|
+
include_context 'with Azure kms_providers'
|
237
|
+
it_behaves_like 'an auto-encryption client that reconnects properly'
|
238
|
+
end
|
239
|
+
|
240
|
+
context 'with GCP KMS providers' do
|
241
|
+
include_context 'with GCP kms_providers'
|
242
|
+
it_behaves_like 'an auto-encryption client that reconnects properly'
|
243
|
+
end
|
244
|
+
|
245
|
+
context 'with KMIP KMS providers' do
|
246
|
+
include_context 'with KMIP kms_providers'
|
247
|
+
it_behaves_like 'an auto-encryption client that reconnects properly'
|
248
|
+
end
|
249
|
+
|
219
250
|
context 'with local KMS providers' do
|
220
251
|
include_context 'with local kms_providers'
|
221
252
|
it_behaves_like 'an auto-encryption client that reconnects properly'
|
@@ -22,6 +22,7 @@ describe 'Auto Encryption' do
|
|
22
22
|
SpecConfig.instance.test_options.merge(
|
23
23
|
auto_encryption_options: {
|
24
24
|
kms_providers: kms_providers,
|
25
|
+
kms_tls_options: kms_tls_options,
|
25
26
|
key_vault_namespace: key_vault_namespace,
|
26
27
|
schema_map: local_schema,
|
27
28
|
bypass_auto_encryption: bypass_auto_encryption,
|
@@ -99,6 +100,48 @@ describe 'Auto Encryption' do
|
|
99
100
|
end
|
100
101
|
end
|
101
102
|
|
103
|
+
context 'with Azure KMS provider' do
|
104
|
+
include_context 'with Azure kms_providers'
|
105
|
+
|
106
|
+
context 'with validator' do
|
107
|
+
include_context 'jsonSchema validator on collection'
|
108
|
+
it_behaves_like 'it performs an encrypted command'
|
109
|
+
end
|
110
|
+
|
111
|
+
context 'with schema map' do
|
112
|
+
include_context 'schema map in client options'
|
113
|
+
it_behaves_like 'it performs an encrypted command'
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'with GCP KMS provider' do
|
118
|
+
include_context 'with GCP kms_providers'
|
119
|
+
|
120
|
+
context 'with validator' do
|
121
|
+
include_context 'jsonSchema validator on collection'
|
122
|
+
it_behaves_like 'it performs an encrypted command'
|
123
|
+
end
|
124
|
+
|
125
|
+
context 'with schema map' do
|
126
|
+
include_context 'schema map in client options'
|
127
|
+
it_behaves_like 'it performs an encrypted command'
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
context 'with KMIP KMS provider' do
|
132
|
+
include_context 'with KMIP kms_providers'
|
133
|
+
|
134
|
+
context 'with validator' do
|
135
|
+
include_context 'jsonSchema validator on collection'
|
136
|
+
it_behaves_like 'it performs an encrypted command'
|
137
|
+
end
|
138
|
+
|
139
|
+
context 'with schema map' do
|
140
|
+
include_context 'schema map in client options'
|
141
|
+
it_behaves_like 'it performs an encrypted command'
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
102
145
|
context 'with local KMS provider' do
|
103
146
|
include_context 'with local kms_providers'
|
104
147
|
|
@@ -446,6 +489,22 @@ describe 'Auto Encryption' do
|
|
446
489
|
it_behaves_like 'it obeys bypass_auto_encryption option'
|
447
490
|
end
|
448
491
|
|
492
|
+
context 'with Azure KMS provider' do
|
493
|
+
include_context 'with Azure kms_providers'
|
494
|
+
it_behaves_like 'it obeys bypass_auto_encryption option'
|
495
|
+
end
|
496
|
+
|
497
|
+
context 'with GCP KMS provider' do
|
498
|
+
include_context 'with GCP kms_providers'
|
499
|
+
it_behaves_like 'it obeys bypass_auto_encryption option'
|
500
|
+
end
|
501
|
+
|
502
|
+
context 'with KMIP KMS provider' do
|
503
|
+
include_context 'with KMIP kms_providers'
|
504
|
+
it_behaves_like 'it obeys bypass_auto_encryption option'
|
505
|
+
end
|
506
|
+
|
507
|
+
|
449
508
|
context 'with local KMS provider and ' do
|
450
509
|
include_context 'with local kms_providers'
|
451
510
|
it_behaves_like 'it obeys bypass_auto_encryption option'
|
@@ -493,6 +552,54 @@ describe 'Auto Encryption' do
|
|
493
552
|
end
|
494
553
|
end
|
495
554
|
|
555
|
+
context 'with Azure KMS provider' do
|
556
|
+
include_context 'with Azure kms_providers and key alt names'
|
557
|
+
it 'encrypts the ssn field' do
|
558
|
+
expect(result).to be_ok
|
559
|
+
expect(result.inserted_ids.length).to eq(1)
|
560
|
+
|
561
|
+
id = result.inserted_ids.first
|
562
|
+
|
563
|
+
document = client['users'].find(_id: id).first
|
564
|
+
document.should_not be_nil
|
565
|
+
# Auto-encryption with key alt names only works with random encryption,
|
566
|
+
# so it will not generate the same result on every test run.
|
567
|
+
expect(document['ssn']).to be_ciphertext
|
568
|
+
end
|
569
|
+
|
570
|
+
context 'with GCP KMS provider' do
|
571
|
+
include_context 'with GCP kms_providers and key alt names'
|
572
|
+
it 'encrypts the ssn field' do
|
573
|
+
expect(result).to be_ok
|
574
|
+
expect(result.inserted_ids.length).to eq(1)
|
575
|
+
|
576
|
+
id = result.inserted_ids.first
|
577
|
+
|
578
|
+
document = client['users'].find(_id: id).first
|
579
|
+
document.should_not be_nil
|
580
|
+
# Auto-encryption with key alt names only works with random encryption,
|
581
|
+
# so it will not generate the same result on every test run.
|
582
|
+
expect(document['ssn']).to be_ciphertext
|
583
|
+
end
|
584
|
+
end
|
585
|
+
|
586
|
+
context 'with KMIP KMS provider' do
|
587
|
+
include_context 'with KMIP kms_providers and key alt names'
|
588
|
+
it 'encrypts the ssn field' do
|
589
|
+
expect(result).to be_ok
|
590
|
+
expect(result.inserted_ids.length).to eq(1)
|
591
|
+
|
592
|
+
id = result.inserted_ids.first
|
593
|
+
|
594
|
+
document = client['users'].find(_id: id).first
|
595
|
+
document.should_not be_nil
|
596
|
+
# Auto-encryption with key alt names only works with random encryption,
|
597
|
+
# so it will not generate the same result on every test run.
|
598
|
+
expect(document['ssn']).to be_ciphertext
|
599
|
+
end
|
600
|
+
end
|
601
|
+
end
|
602
|
+
|
496
603
|
context 'with local KMS provider' do
|
497
604
|
include_context 'with local kms_providers and key alt names'
|
498
605
|
it 'encrypts the ssn field' do
|
@@ -548,7 +655,7 @@ describe 'Auto Encryption' do
|
|
548
655
|
include_context 'encrypted document in collection'
|
549
656
|
|
550
657
|
let(:result) do
|
551
|
-
encryption_client['users'].
|
658
|
+
encryption_client['users'].replace_one({ ssn: ssn }, { ssn: '098-765-4321' })
|
552
659
|
end
|
553
660
|
|
554
661
|
it 'encrypts the ssn field' do
|
@@ -33,7 +33,7 @@ describe 'Client-Side Encryption' do
|
|
33
33
|
kms_providers: {
|
34
34
|
local: { key: local_master_key },
|
35
35
|
},
|
36
|
-
key_vault_namespace: '
|
36
|
+
key_vault_namespace: 'keyvault.datakeys',
|
37
37
|
# Spawn mongocryptd on non-default port for sharded cluster tests
|
38
38
|
extra_options: extra_options,
|
39
39
|
},
|
@@ -52,7 +52,7 @@ describe 'Client-Side Encryption' do
|
|
52
52
|
}
|
53
53
|
].create
|
54
54
|
|
55
|
-
key_vault_collection = client.use('
|
55
|
+
key_vault_collection = client.use('keyvault')['datakeys', write_concern: { w: :majority }]
|
56
56
|
|
57
57
|
key_vault_collection.drop
|
58
58
|
key_vault_collection.insert_one(
|
@@ -26,7 +26,7 @@ describe 'Client-Side Encryption' do
|
|
26
26
|
SpecConfig.instance.test_options.merge(
|
27
27
|
auto_encryption_options: {
|
28
28
|
kms_providers: local_kms_providers,
|
29
|
-
key_vault_namespace: '
|
29
|
+
key_vault_namespace: 'keyvault.datakeys',
|
30
30
|
schema_map: { 'db.coll' => test_schema_map },
|
31
31
|
extra_options: {
|
32
32
|
mongocryptd_bypass_spawn: true,
|
@@ -53,7 +53,7 @@ describe 'Client-Side Encryption' do
|
|
53
53
|
SpecConfig.instance.test_options.merge(
|
54
54
|
auto_encryption_options: {
|
55
55
|
kms_providers: local_kms_providers,
|
56
|
-
key_vault_namespace: '
|
56
|
+
key_vault_namespace: 'keyvault.datakeys',
|
57
57
|
bypass_auto_encryption: true,
|
58
58
|
extra_options: {
|
59
59
|
mongocryptd_spawn_args: [ "--pidfilepath=bypass-spawning-mongocryptd.pid", "--port=#{mongocryptd_port}"],
|
@@ -18,7 +18,7 @@ describe 'Auto encryption client' do
|
|
18
18
|
SpecConfig.instance.test_options.merge(
|
19
19
|
auto_encryption_options: {
|
20
20
|
kms_providers: kms_providers,
|
21
|
-
key_vault_namespace: '
|
21
|
+
key_vault_namespace: 'keyvault.datakeys',
|
22
22
|
schema_map: { 'auto_encryption.users' => schema_map },
|
23
23
|
# Spawn mongocryptd on non-default port for sharded cluster tests
|
24
24
|
extra_options: extra_options,
|