Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2865

Allow drivers to set bypassDocumentValidation: false on write commands

    • Type: Icon: Spec Change Spec Change
    • Resolution: Unresolved
    • Priority: Icon: Unknown Unknown
    • None
    • Component/s: CRUD
    • Needed
    • Hide

      Summary of necessary driver changes

      •  Drivers will need to change handling of the bypassDocumentValidation to all write commands (insert, update, findAndModify, aggregate with $out or $merge, as well as bulk writes. Note that the new client bulk write API does not need changing.

      Commits for syncing spec/prose tests
      (and/or refer to an existing language POC if needed)

      Context for other referenced/linked tickets

      •  The original change to only send the flag if it was specified with a true value was made in DRIVERS-450. This change brings handling of this option in line with all other options.
      Show
      Summary of necessary driver changes  Drivers will need to change handling of the bypassDocumentValidation to all write commands ( insert , update , findAndModify , aggregate with $out or $merge , as well as bulk writes. Note that the new client bulk write API does not need changing. Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)  A new test file testing the affected behaviour was added to the CRUD spec in commit b1b5a7f4209ba4a0fd3dca31a7b34378ac5ce6c1 . Context for other referenced/linked tickets  The original change to only send the flag if it was specified with a true value was made in DRIVERS-450 . This change brings handling of this option in line with all other options.
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-5784 Backlog
      CXX-3149 Backlog
      CSHARP-5388 Backlog
      GODRIVER-3407 Backlog
      JAVA-5679 Backlog
      NODE-6484 Needs Triage
      MOTOR-1399 Duplicate
      PYTHON-4933 Backlog
      PHPLIB-1576 Blocked
      RUBY-3579 Backlog
      RUST-2082 Backlog
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-5784 Backlog CXX-3149 Backlog CSHARP-5388 Backlog GODRIVER-3407 Backlog JAVA-5679 Backlog NODE-6484 Needs Triage MOTOR-1399 Duplicate PYTHON-4933 Backlog PHPLIB-1576 Blocked RUBY-3579 Backlog RUST-2082 Backlog

      DRIVERS-450 introduced a requirement that drivers only send a value for bypassDocumentValidation if it is set to true. This is out of line with most other CRUD options, which have the following guidance: "This option is sent only if the caller explicitly provides a value."

      Checking values that users set and omitting them if they match server defaults creates additional work for drivers. We should relax this requirement and send any value that a user explicitly specifies.

            Assignee:
            andreas.braun@mongodb.com Andreas Braun
            Reporter:
            isabel.atkinson@mongodb.com Isabel Atkinson
            Andreas Braun Andreas Braun
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: