Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Request
4 bytesMagic number 49 47 4E 49, or "IGNI". Helps identifying misconfigured SSL or other apps probing the port.
fixint / uintPayload length
positive fixintVersion major
positive fixintVersion minor
positive fixintVersion patch
positive fixintClient code (1 for JDBC, 2 for general-purpose client)
binFeatures (bitmask)
map (int → any)Extensions (auth, attributes, etc). Server can skip unknown extension data (when client is newer).


Response
4 bytesMagic number 49 47 4E 49, or "IGNI". Helps identifying misconfigured SSL or different server on the port.
fixint / uintPayload length
positive fixintServer version major
positive fixintServer version minor
positive fixintServer version patch
booleanSuccess flag
stringWhen success flag is false: Error message
binWhen success flag is true: Server features (bitmask)
map (int → any)When success flag is true: Extensions (auth, attributes, etc). Client can skip unknown extension data (when server is newer).

Client Operations

 Upon successful handshake client can start performing operations by sending a request with specific op code. Each operation has it's own request and response format, with a common header.

Request
shortOperation code
longRequest id, generated by client and returned as-is in response
...Operation-specific data

TODO: server → client notifications, how do we handle them easier?

Response
longRequest id (see above)
intStatus code (0 for success, otherwise error code)
stringError message (present only when status is not 0)
...Operation-specific data


Operation codes and request ids are omitted everywhere below for brevity.

Risks and Assumptions

TODO

...