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

Change streams support for user-facing PIT pre- and post-images

    • Needed
    • Show
      A summary of downstream visible behavioral changes can be found at https://docs.google.com/document/d/1OCCcnUvjcT5lvh8A21qBdpz9suad6qsNjkTUanWGvyY/edit#bookmark=id.2mzcqwg403ed .
    • Hide

      Change stream watch helpers now accept "whenAvailable" and "required" for the fullDocument option. Additionally, a new fullDocumentBeforeChange option is introduced, which accepts "whenAvailable" and "required". Change events may now include a fullDocumentBeforeChange response field.

      The create and collMod commands now support a changeStreamPreAndPostImages option that accepts: {enabled: <boolean>}. The listCollections command will also report changeStreamPreAndPostImages (if set) when returning full collection info.

      Drivers should sync unified change stream tests with 8978899.

      Note: testing may require starting mongod with --setParameter featureFlagChangeStreamPreAndPostImages=true if the "latest" server build does not include SERVER-52282.

      Show
      Change stream watch helpers now accept "whenAvailable" and "required" for the fullDocument option. Additionally, a new fullDocumentBeforeChange option is introduced, which accepts "whenAvailable" and "required". Change events may now include a fullDocumentBeforeChange response field. The create and collMod commands now support a changeStreamPreAndPostImages option that accepts: { enabled: <boolean> }. The listCollections command will also report changeStreamPreAndPostImages (if set) when returning full collection info. Drivers should sync unified change stream tests with 8978899 . Note: testing may require starting mongod with --setParameter featureFlagChangeStreamPreAndPostImages=true if the "latest" server build does not include SERVER-52282 .
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4277 Done 1.22.0, 1.22.0-beta0
      CXX-2438 Fixed 3.7.0
      CSHARP-4034 Done 2.16.0
      GODRIVER-2294 Fixed 1.10.0, 1.10.0-beta1
      JAVA-4468 Fixed 4.7.0
      NODE-3938 Done 4.7.0
      MOTOR-878 Fixed 3.1
      PYTHON-3093 Fixed 4.2
      PHPLIB-814 Fixed 1.13.0-beta1, 1.13.0
      RUBY-2891 Fixed 2.18.0
      RUST-1166 Fixed 2.3.0
      SWIFT-1472 Won't Do
      $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-4277 Done 1.22.0, 1.22.0-beta0 CXX-2438 Fixed 3.7.0 CSHARP-4034 Done 2.16.0 GODRIVER-2294 Fixed 1.10.0, 1.10.0-beta1 JAVA-4468 Fixed 4.7.0 NODE-3938 Done 4.7.0 MOTOR-878 Fixed 3.1 PYTHON-3093 Fixed 4.2 PHPLIB-814 Fixed 1.13.0-beta1, 1.13.0 RUBY-2891 Fixed 2.18.0 RUST-1166 Fixed 2.3.0 SWIFT-1472 Won't Do

      Downstream Change Summary

      https://docs.google.com/document/d/1VD0BL60sK233Yk2WLgb9MFoK5A0FrEIrr7iumMAzEOU/edit.

      • Add new permitted values to option fullDocument: "whenAvailable" and "required"
      • Expose previously private option fullDocumentBeforeChange, with permitted values: "whenAvailable", "required" and "off"
      • The structure of change events will change, adding the "fullDocumentBeforeChange" field
      • The create and collmod commands get a new option - "changeStreamPreAndPostImages".

      Description of Linked Ticket

      Epic Summary

      Summary

      In the change streams users can get before and after images of the document at the time of the change event

      Motivation

      This has been a user request and will allow us to offer change streams for more use cases while increasing client side debugability.

      Cast of Characters

      • Product Owner: Katya Kamenieva
      • Project Lead: TBD
      • Program Manager: Ana Meza
      • Drivers Contact: TBD

      Documentation

      Scope Document
      Technical Design Document
      Product Description

            Assignee:
            jmikola@mongodb.com Jeremy Mikola
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Jeremy Mikola Jeremy Mikola
            Rachelle Palmer Rachelle Palmer
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: