From 392777ff3b87412810bed2bc04da6cfb5a8edc9b Mon Sep 17 00:00:00 2001 From: "data-plane-api(CircleCI)" Date: Thu, 17 Jan 2019 21:33:35 +0000 Subject: [PATCH] Mysql proxy filter (#4975) This filter contains the logic to decode the mysql wire protocol and SQL queries (SQL99 only). The code is based on our internal version at VMware. The SQL parser can be found at https://github.com/rshriram/sql-parser. Its a cleaned up version of Hyrise SQL parser. I am keeping the code as a separate library as importing the sources into envoy will cause a lot of changes to the code. Signed-off-by: Giorgio Valentini Signed-off-by: Deepa Kalani Signed-off-by: Shriram Rajagopalan Signed-off-by: Venil Noronha Mirrored from https://github.com/envoyproxy/envoy @ b3be5713f2100ab5c40316e73ce34581245bd26a --- .../filter/network/mysql_proxy/v1alpha1/BUILD | 8 ++++++++ .../mysql_proxy/v1alpha1/mysql_proxy.proto | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 envoy/config/filter/network/mysql_proxy/v1alpha1/BUILD create mode 100644 envoy/config/filter/network/mysql_proxy/v1alpha1/mysql_proxy.proto diff --git a/envoy/config/filter/network/mysql_proxy/v1alpha1/BUILD b/envoy/config/filter/network/mysql_proxy/v1alpha1/BUILD new file mode 100644 index 00000000..7c6eef81 --- /dev/null +++ b/envoy/config/filter/network/mysql_proxy/v1alpha1/BUILD @@ -0,0 +1,8 @@ +load("//bazel:api_build_system.bzl", "api_proto_library_internal") + +licenses(["notice"]) # Apache 2 + +api_proto_library_internal( + name = "mysql_proxy", + srcs = ["mysql_proxy.proto"], +) diff --git a/envoy/config/filter/network/mysql_proxy/v1alpha1/mysql_proxy.proto b/envoy/config/filter/network/mysql_proxy/v1alpha1/mysql_proxy.proto new file mode 100644 index 00000000..b43c176d --- /dev/null +++ b/envoy/config/filter/network/mysql_proxy/v1alpha1/mysql_proxy.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package envoy.config.filter.network.mysql_proxy.v1alpha1; +option java_package = "io.envoyproxy.envoy.config.filter.network.mysql_proxy.v1alpha1"; +option java_multiple_files = true; +option go_package = "v1alpha1"; + +import "validate/validate.proto"; + +// [#protodoc-title: MySQL proxy] +// MySQL Proxy :ref:`configuration overview `. +message MySQLProxy { + // The human readable prefix to use when emitting :ref:`statistics + // `. + string stat_prefix = 1 [(validate.rules).string.min_bytes = 1]; + + // [#not-implemented-hide:] The optional path to use for writing MySQL access logs. + // If the access log field is empty, access logs will not be written. + string access_log = 2; +}