[DRIVERS-304] MongoDB Handshake protocol Created: 04/Jun/16  Updated: 27/May/22  Resolved: 11/Oct/16

Status: Closed
Project: Drivers
Component/s: None
Fix Version/s: None

Type: New Feature Priority: Major - P3
Reporter: Rathi Gnanasekaran Assignee: Hannes Magnusson
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on CSHARP-1730 Implement The MongoDB Handshake Protocol Closed
depends on CXX-981 Implement The MongoDB Handshake Protocol Closed
depends on JAVA-2266 Implement The MongoDB Handshake Protocol Closed
depends on MOTOR-227 Implement The MongoDB Handshake Protocol Closed
depends on NODE-765 Implement The MongoDB Handshake Protocol Closed
depends on PHPC-757 Implement The MongoDB Handshake Protocol Closed
depends on PYTHON-1119 Implement The MongoDB Handshake Protocol Closed
depends on RUBY-1136 Implement The MongoDB Handshake Protocol Closed
depends on SERVER-72 handshake optional parameters for dri... Closed
depends on RUST-1 Implement The MongoDB Handshake Protocol Closed
Related
related to CDRIVER-1325 Implement The MongoDB Handshake Protocol Closed
related to DOCS-9865 [Server] Document MongoDB handshake p... Closed
is related to CXX-978 Add application name and driver versi... Closed
is related to SERVER-24611 Implement ClientMetadata class Closed
Server Compat: 3.3
Driver Compliance:
Key Status/Resolution FixVersion
NODE-765 Done 2.2.5
PYTHON-1119 Done 3.4
PHPC-757 Done 1.2.0-alpha2, 1.2.0
PERL-649 Done 1.6.0
CXX-981 Won't Fix
JAVA-2266 Done 3.4.0
SCALA-252 Done
RUBY-1136 Done 2.4.0
CSHARP-1730 Done 2.4
RUST-1 Fixed 0.9.0-alpha
MOTOR-227 Fixed 2.0

 Description   

https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst

TL;DR: Every socket connecting to MongoDB MUST issue isMaster announcing itself to the server with the following pseudo document.
There is also new connection URI field appname the user can provide (client.application.name) which the server will write out in its logs and profile entries, making correlating server log entries to respective applications trivial.

isMaster({
    client: {
        /* OPTIONAL. If present, the "name" is REQUIRED */
        application: {
            name: "<string>"
        },
        /* REQUIRED, including all sub fields */
        driver: {
            name: "<string>",
            version: "<string>"
        },
        /* REQUIRED */
        os: {
            type: "<string>",         /* REQUIRED */
            name: "<string>",         /* OPTIONAL */
            architecture: "<string>", /* OPTIONAL */
            version: "<string>"       /* OPTIONAL */
        },
        /* OPTIONAL */
        platform: "<string>"
    }
})



 Comments   
Comment by Rathi Gnanasekaran [ 11/Oct/16 ]

Resolving issue as all linked tickets have been implemented.

Comment by Jeremy Mikola [ 11/Oct/16 ]

Implemented in PHPC and HHVM, which satisfies PHPLIB.

Will not be implemented for legacy PHP.

Comment by Githook User [ 30/Jul/16 ]

Author:

{u'username': u'bjori', u'name': u'Hannes Magnusson', u'email': u'bjori@php.net'}

Message: DRIVERS-304: MongoDB Handshake protocol
Branch: master
https://github.com/mongodb/specifications/commit/47c43c8d2d8f992a559aafc4050b6417816c9367

Generated at Thu Feb 08 08:21:13 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.