fix(agent): clarify protocol capability contract
This commit is contained in:
parent
954dba1e13
commit
4186c94dd4
|
|
@ -1,8 +1,39 @@
|
|||
{
|
||||
"protocolVersion": 1,
|
||||
"handshakeMethod": "handshake",
|
||||
"handshakeResponseFields": ["protocolVersion", "agentProtocolVersion", "capabilities"],
|
||||
"capabilities": ["connect", "test_connection", "metadata", "query", "paged_query", "transaction", "ddl", "kv"],
|
||||
"handshakeResponseFields": [
|
||||
"protocolVersion",
|
||||
"agentProtocolVersion",
|
||||
"capabilities"
|
||||
],
|
||||
"allCapabilities": [
|
||||
"connect",
|
||||
"test_connection",
|
||||
"metadata",
|
||||
"query",
|
||||
"paged_query",
|
||||
"transaction",
|
||||
"ddl",
|
||||
"kv"
|
||||
],
|
||||
"capabilities": [
|
||||
"connect",
|
||||
"test_connection",
|
||||
"metadata",
|
||||
"query",
|
||||
"paged_query",
|
||||
"transaction",
|
||||
"ddl"
|
||||
],
|
||||
"defaultSqlCapabilities": [
|
||||
"connect",
|
||||
"test_connection",
|
||||
"metadata",
|
||||
"query",
|
||||
"paged_query",
|
||||
"transaction",
|
||||
"ddl"
|
||||
],
|
||||
"commonMethods": [
|
||||
"handshake",
|
||||
"connect",
|
||||
|
|
@ -26,6 +57,18 @@
|
|||
"disconnect",
|
||||
"shutdown"
|
||||
],
|
||||
"mongoLegacyMethods": ["list_databases", "list_collections", "find_documents", "insert_document", "update_document", "delete_document"],
|
||||
"kvMethods": ["kv_list_prefix", "kv_get", "kv_put", "kv_delete"]
|
||||
"mongoLegacyMethods": [
|
||||
"list_databases",
|
||||
"list_collections",
|
||||
"find_documents",
|
||||
"insert_document",
|
||||
"update_document",
|
||||
"delete_document"
|
||||
],
|
||||
"kvMethods": [
|
||||
"kv_list_prefix",
|
||||
"kv_get",
|
||||
"kv_put",
|
||||
"kv_delete"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1243,9 +1243,11 @@ mod tests {
|
|||
vec!["protocolVersion", "agentProtocolVersion", "capabilities"]
|
||||
);
|
||||
assert_eq!(
|
||||
string_array(&contract["capabilities"]),
|
||||
string_array(&contract["allCapabilities"]),
|
||||
AgentCapability::ALL.iter().map(|method| method.as_str()).collect::<Vec<_>>()
|
||||
);
|
||||
assert_eq!(string_array(&contract["capabilities"]), default_sql_capabilities());
|
||||
assert_eq!(string_array(&contract["defaultSqlCapabilities"]), default_sql_capabilities());
|
||||
assert_eq!(
|
||||
string_array(&contract["commonMethods"]),
|
||||
AgentMethod::ALL.iter().map(|method| method.as_str()).collect::<Vec<_>>()
|
||||
|
|
@ -1298,4 +1300,19 @@ mod tests {
|
|||
fn string_array(value: &serde_json::Value) -> Vec<&str> {
|
||||
value.as_array().unwrap().iter().map(|item| item.as_str().unwrap()).collect()
|
||||
}
|
||||
|
||||
fn default_sql_capabilities() -> Vec<&'static str> {
|
||||
[
|
||||
AgentCapability::Connect,
|
||||
AgentCapability::TestConnection,
|
||||
AgentCapability::Metadata,
|
||||
AgentCapability::Query,
|
||||
AgentCapability::PagedQuery,
|
||||
AgentCapability::Transaction,
|
||||
AgentCapability::Ddl,
|
||||
]
|
||||
.iter()
|
||||
.map(|capability| capability.as_str())
|
||||
.collect()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue