You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The REST request objects currently contain two client identification-related fields:
mode which can be explicitly one of: CLI, JDBC, ODBC or PLAIN (=default, if nothing else specified);
client_id which can be one of CANVAS, CLI, JDBC, ODBC32, ODBC64 or REST (=default, if nothing else specified); as well as a now historical ODBC.
While the two fields came to be with gradual evolution and have technically different purposes - former, for response generation, latter, for telemetry purposes - there is an injective relationship between them and thus a redundancy.
With the advent of version compatibility effort, there is the possibility of simplifying the code processing[2] them and harmonising their usage in the client[1].
The proposal is to simply extract the mode from the client_id, as the simplest change, since all the clients populate that field already.
An alternative to that would be to drop them both and replace the source of information from a (new to add) HTTP header (potentially usable in conjunction with another versioning header).
[1] Usage by client:
Kibana/Canvas: client_id
Kibana/Console: none
JDBC, CLI: mode
ODBC: both.
[2] Telemetry client identification, currently:
if mode==ODBC : client_id
else if mode==PLAIN (i.e. mode absent, in practice) : client_id
else: "toString"(mode).
and that resolves either to an enum'ed client_id or defaults to REST, if no match.
The text was updated successfully, but these errors were encountered:
The REST request objects currently contain two client identification-related fields:
mode
which can be explicitly one of:CLI
,JDBC
,ODBC
orPLAIN
(=default, if nothing else specified);client_id
which can be one ofCANVAS
,CLI
,JDBC
,ODBC32
,ODBC64
orREST
(=default, if nothing else specified); as well as a now historicalODBC
.While the two fields came to be with gradual evolution and have technically different purposes - former, for response generation, latter, for telemetry purposes - there is an injective relationship between them and thus a redundancy.
With the advent of version compatibility effort, there is the possibility of simplifying the code processing[2] them and harmonising their usage in the client[1].
The proposal is to simply extract the mode from the client_id, as the simplest change, since all the clients populate that field already.
An alternative to that would be to drop them both and replace the source of information from a (new to add) HTTP header (potentially usable in conjunction with another versioning header).
[1] Usage by client:
client_id
mode
[2] Telemetry client identification, currently:
mode
absent, in practice) : client_idmode
).and that resolves either to an enum'ed
client_id
or defaults to REST, if no match.The text was updated successfully, but these errors were encountered: