{"message":"The provided configuration does not fulfill the specification. Errors: json schema validation failed when comparing the data to the json schema. \nErrors: $.replication_method: should be valid to one and only one of schema, but more than one are valid: {\"title\":\"STANDARD\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"STANDARD\"],\"type\":\"string\",\"const\":\"STANDARD\",\"order\":0,\"default\":\"STANDARD\"}},\"description\":\"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\"}{\"title\":\"Logical Replication (CDC)\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"CDC\"],\"type\":\"string\",\"const\":\"CDC\",\"order\":0,\"default\":\"CDC\"}},\"description\":\"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\"}, $.replication_method: string found, object expected \nSchema: \n{\n \"type\" : \"object\",\n \"title\" : \"MySql Source Spec\",\n \"$schema\" : \"http://json-schema.org/draft-07/schema#\",\n \"required\" : [ \"host\", \"port\", \"database\", \"username\", \"replication_method\" ],\n \"properties\" : {\n \"ssl\" : {\n \"type\" : \"boolean\",\n \"order\" : 6,\n \"title\" : \"SSL Connection\",\n \"default\" : true,\n \"description\" : \"Encrypt data using SSL.\"\n },\n \"host\" : {\n \"type\" : \"string\",\n \"order\" : 0,\n \"title\" : \"Host\",\n \"description\" : \"The host name of the database.\"\n },\n \"port\" : {\n \"type\" : \"integer\",\n \"order\" : 1,\n \"title\" : \"Port\",\n \"default\" : 3306,\n \"maximum\" : 65536,\n \"minimum\" : 0,\n \"examples\" : [ \"3306\" ],\n \"description\" : \"The port to connect to.\"\n },\n \"database\" : {\n \"type\" : \"string\",\n \"order\" : 2,\n \"title\" : \"Database\",\n \"description\" : \"The database name.\"\n },\n \"password\" : {\n \"type\" : \"string\",\n \"order\" : 4,\n \"title\" : \"Password\",\n \"description\" : \"The password associated with the username.\",\n \"airbyte_secret\" : true\n },\n \"ssl_mode\" : {\n \"type\" : \"object\",\n \"oneOf\" : [ {\n \"title\" : \"preferred\",\n \"required\" : [ \"mode\" ],\n \"properties\" : {\n \"mode\" : {\n \"enum\" : [ \"preferred\" ],\n \"type\" : \"string\",\n \"const\" : \"preferred\",\n \"order\" : 0,\n \"default\" : \"preferred\"\n }\n },\n \"description\" : \"Preferred SSL mode.\"\n }, {\n \"title\" : \"required\",\n \"required\" : [ \"mode\" ],\n \"properties\" : {\n \"mode\" : {\n \"enum\" : [ \"required\" ],\n \"type\" : \"string\",\n \"const\" : \"required\",\n \"order\" : 0,\n \"default\" : \"required\"\n }\n },\n \"description\" : \"Require SSL mode.\"\n }, {\n \"title\" : \"Verify CA\",\n \"required\" : [ \"mode\", \"ca_certificate\" ],\n \"properties\" : {\n \"mode\" : {\n \"enum\" : [ \"verify_ca\" ],\n \"type\" : \"string\",\n \"const\" : \"verify_ca\",\n \"order\" : 0,\n \"default\" : \"verify_ca\"\n },\n \"client_key\" : {\n \"type\" : \"string\",\n \"order\" : 3,\n \"title\" : \"Client key\",\n \"multiline\" : true,\n \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\",\n \"airbyte_secret\" : true\n },\n \"ca_certificate\" : {\n \"type\" : \"string\",\n \"order\" : 1,\n \"title\" : \"CA certificate\",\n \"multiline\" : true,\n \"description\" : \"CA certificate\",\n \"airbyte_secret\" : true\n },\n \"client_certificate\" : {\n \"type\" : \"string\",\n \"order\" : 2,\n \"title\" : \"Client certificate\",\n \"multiline\" : true,\n \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\",\n \"airbyte_secret\" : true\n },\n \"client_key_password\" : {\n \"type\" : \"string\",\n \"order\" : 4,\n \"title\" : \"Client key password (Optional)\",\n \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\",\n \"airbyte_secret\" : true\n }\n },\n \"description\" : \"Verify CA SSL mode.\"\n }, {\n \"title\" : \"Verify Identity\",\n \"required\" : [ \"mode\", \"ca_certificate\" ],\n \"properties\" : {\n \"mode\" : {\n \"enum\" : [ \"verify_identity\" ],\n \"type\" : \"string\",\n \"const\" : \"verify_identity\",\n \"order\" : 0,\n \"default\" : \"verify_identity\"\n },\n \"client_key\" : {\n \"type\" : \"string\",\n \"order\" : 3,\n \"title\" : \"Client key\",\n \"multiline\" : true,\n \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\",\n \"airbyte_secret\" : true\n },\n \"ca_certificate\" : {\n \"type\" : \"string\",\n \"order\" : 1,\n \"title\" : \"CA certificate\",\n \"multiline\" : true,\n \"description\" : \"CA certificate\",\n \"airbyte_secret\" : true\n },\n \"client_certificate\" : {\n \"type\" : \"string\",\n \"order\" : 2,\n \"title\" : \"Client certificate\",\n \"multiline\" : true,\n \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\",\n \"airbyte_secret\" : true\n },\n \"client_key_password\" : {\n \"type\" : \"string\",\n \"order\" : 4,\n \"title\" : \"Client key password (Optional)\",\n \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\",\n \"airbyte_secret\" : true\n }\n },\n \"description\" : \"Verify-full SSL mode.\"\n } ],\n \"order\" : 7,\n \"title\" : \"SSL modes\",\n \"description\" : \"SSL connection modes.
  • preferred - Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.
  • required - Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.
  • verify-ca - Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.
  • Verify Identity - Always connect with SSL. Verify both CA and Hostname.
  • Read more in the docs.\"\n },\n \"username\" : {\n \"type\" : \"string\",\n \"order\" : 3,\n \"title\" : \"Username\",\n \"description\" : \"The username which is used to access the database.\"\n },\n \"tunnel_method\" : {\n \"type\" : \"object\",\n \"oneOf\" : [ {\n \"title\" : \"No Tunnel\",\n \"required\" : [ \"tunnel_method\" ],\n \"properties\" : {\n \"tunnel_method\" : {\n \"type\" : \"string\",\n \"const\" : \"NO_TUNNEL\",\n \"order\" : 0,\n \"description\" : \"No ssh tunnel needed to connect to database\"\n }\n }\n }, {\n \"title\" : \"SSH Key Authentication\",\n \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"ssh_key\" ],\n \"properties\" : {\n \"ssh_key\" : {\n \"type\" : \"string\",\n \"order\" : 4,\n \"title\" : \"SSH Private Key\",\n \"multiline\" : true,\n \"description\" : \"OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )\",\n \"airbyte_secret\" : true\n },\n \"tunnel_host\" : {\n \"type\" : \"string\",\n \"order\" : 1,\n \"title\" : \"SSH Tunnel Jump Server Host\",\n \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\"\n },\n \"tunnel_port\" : {\n \"type\" : \"integer\",\n \"order\" : 2,\n \"title\" : \"SSH Connection Port\",\n \"default\" : 22,\n \"maximum\" : 65536,\n \"minimum\" : 0,\n \"examples\" : [ \"22\" ],\n \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\"\n },\n \"tunnel_user\" : {\n \"type\" : \"string\",\n \"order\" : 3,\n \"title\" : \"SSH Login Username\",\n \"description\" : \"OS-level username for logging into the jump server host.\"\n },\n \"tunnel_method\" : {\n \"type\" : \"string\",\n \"const\" : \"SSH_KEY_AUTH\",\n \"order\" : 0,\n \"description\" : \"Connect through a jump server tunnel host using username and ssh key\"\n }\n }\n }, {\n \"title\" : \"Password Authentication\",\n \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"tunnel_user_password\" ],\n \"properties\" : {\n \"tunnel_host\" : {\n \"type\" : \"string\",\n \"order\" : 1,\n \"title\" : \"SSH Tunnel Jump Server Host\",\n \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\"\n },\n \"tunnel_port\" : {\n \"type\" : \"integer\",\n \"order\" : 2,\n \"title\" : \"SSH Connection Port\",\n \"default\" : 22,\n \"maximum\" : 65536,\n \"minimum\" : 0,\n \"examples\" : [ \"22\" ],\n \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\"\n },\n \"tunnel_user\" : {\n \"type\" : \"string\",\n \"order\" : 3,\n \"title\" : \"SSH Login Username\",\n \"description\" : \"OS-level username for logging into the jump server host\"\n },\n \"tunnel_method\" : {\n \"type\" : \"string\",\n \"const\" : \"SSH_PASSWORD_AUTH\",\n \"order\" : 0,\n \"description\" : \"Connect through a jump server tunnel host using username and password authentication\"\n },\n \"tunnel_user_password\" : {\n \"type\" : \"string\",\n \"order\" : 4,\n \"title\" : \"Password\",\n \"description\" : \"OS-level password for logging into the jump server host\",\n \"airbyte_secret\" : true\n }\n }\n } ],\n \"title\" : \"SSH Tunnel Method\",\n \"description\" : \"Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.\"\n },\n \"jdbc_url_params\" : {\n \"type\" : \"string\",\n \"order\" : 5,\n \"title\" : \"JDBC URL Params\",\n \"description\" : \"Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).\"\n },\n \"replication_method\" : {\n \"type\" : \"object\",\n \"oneOf\" : [ {\n \"title\" : \"STANDARD\",\n \"required\" : [ \"method\" ],\n \"properties\" : {\n \"method\" : {\n \"enum\" : [ \"STANDARD\" ],\n \"type\" : \"string\",\n \"const\" : \"STANDARD\",\n \"order\" : 0,\n \"default\" : \"STANDARD\"\n }\n },\n \"description\" : \"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\"\n }, {\n \"title\" : \"Logical Replication (CDC)\",\n \"required\" : [ \"method\" ],\n \"properties\" : {\n \"method\" : {\n \"enum\" : [ \"CDC\" ],\n \"type\" : \"string\",\n \"const\" : \"CDC\",\n \"order\" : 0,\n \"default\" : \"CDC\"\n }\n },\n \"description\" : \"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\"\n } ],\n \"order\" : 8,\n \"title\" : \"Replication Method\",\n \"description\" : \"Replication method to use for extracting data from the database.\"\n }\n }\n}","exceptionClassName":"io.airbyte.server.errors.BadObjectSchemaKnownException","exceptionStack":["io.airbyte.server.errors.BadObjectSchemaKnownException: The provided configuration does not fulfill the specification. Errors: json schema validation failed when comparing the data to the json schema. ","Errors: $.replication_method: should be valid to one and only one of schema, but more than one are valid: {\"title\":\"STANDARD\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"STANDARD\"],\"type\":\"string\",\"const\":\"STANDARD\",\"order\":0,\"default\":\"STANDARD\"}},\"description\":\"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\"}{\"title\":\"Logical Replication (CDC)\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"CDC\"],\"type\":\"string\",\"const\":\"CDC\",\"order\":0,\"default\":\"CDC\"}},\"description\":\"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\"}, $.replication_method: string found, object expected ","Schema: ","{"," \"type\" : \"object\","," \"title\" : \"MySql Source Spec\","," \"$schema\" : \"http://json-schema.org/draft-07/schema#\","," \"required\" : [ \"host\", \"port\", \"database\", \"username\", \"replication_method\" ],"," \"properties\" : {"," \"ssl\" : {"," \"type\" : \"boolean\","," \"order\" : 6,"," \"title\" : \"SSL Connection\","," \"default\" : true,"," \"description\" : \"Encrypt data using SSL.\""," },"," \"host\" : {"," \"type\" : \"string\","," \"order\" : 0,"," \"title\" : \"Host\","," \"description\" : \"The host name of the database.\""," },"," \"port\" : {"," \"type\" : \"integer\","," \"order\" : 1,"," \"title\" : \"Port\","," \"default\" : 3306,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"3306\" ],"," \"description\" : \"The port to connect to.\""," },"," \"database\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Database\","," \"description\" : \"The database name.\""," },"," \"password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Password\","," \"description\" : \"The password associated with the username.\","," \"airbyte_secret\" : true"," },"," \"ssl_mode\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"preferred\","," \"required\" : [ \"mode\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"preferred\" ],"," \"type\" : \"string\","," \"const\" : \"preferred\","," \"order\" : 0,"," \"default\" : \"preferred\""," }"," },"," \"description\" : \"Preferred SSL mode.\""," }, {"," \"title\" : \"required\","," \"required\" : [ \"mode\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"required\" ],"," \"type\" : \"string\","," \"const\" : \"required\","," \"order\" : 0,"," \"default\" : \"required\""," }"," },"," \"description\" : \"Require SSL mode.\""," }, {"," \"title\" : \"Verify CA\","," \"required\" : [ \"mode\", \"ca_certificate\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"verify_ca\" ],"," \"type\" : \"string\","," \"const\" : \"verify_ca\","," \"order\" : 0,"," \"default\" : \"verify_ca\""," },"," \"client_key\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Client key\","," \"multiline\" : true,"," \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\","," \"airbyte_secret\" : true"," },"," \"ca_certificate\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"CA certificate\","," \"multiline\" : true,"," \"description\" : \"CA certificate\","," \"airbyte_secret\" : true"," },"," \"client_certificate\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Client certificate\","," \"multiline\" : true,"," \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\","," \"airbyte_secret\" : true"," },"," \"client_key_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Client key password (Optional)\","," \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\","," \"airbyte_secret\" : true"," }"," },"," \"description\" : \"Verify CA SSL mode.\""," }, {"," \"title\" : \"Verify Identity\","," \"required\" : [ \"mode\", \"ca_certificate\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"verify_identity\" ],"," \"type\" : \"string\","," \"const\" : \"verify_identity\","," \"order\" : 0,"," \"default\" : \"verify_identity\""," },"," \"client_key\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Client key\","," \"multiline\" : true,"," \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\","," \"airbyte_secret\" : true"," },"," \"ca_certificate\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"CA certificate\","," \"multiline\" : true,"," \"description\" : \"CA certificate\","," \"airbyte_secret\" : true"," },"," \"client_certificate\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Client certificate\","," \"multiline\" : true,"," \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\","," \"airbyte_secret\" : true"," },"," \"client_key_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Client key password (Optional)\","," \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\","," \"airbyte_secret\" : true"," }"," },"," \"description\" : \"Verify-full SSL mode.\""," } ],"," \"order\" : 7,"," \"title\" : \"SSL modes\","," \"description\" : \"SSL connection modes.
  • preferred - Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.
  • required - Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.
  • verify-ca - Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.
  • Verify Identity - Always connect with SSL. Verify both CA and Hostname.
  • Read more in the docs.\""," },"," \"username\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Username\","," \"description\" : \"The username which is used to access the database.\""," },"," \"tunnel_method\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"No Tunnel\","," \"required\" : [ \"tunnel_method\" ],"," \"properties\" : {"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"NO_TUNNEL\","," \"order\" : 0,"," \"description\" : \"No ssh tunnel needed to connect to database\""," }"," }"," }, {"," \"title\" : \"SSH Key Authentication\","," \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"ssh_key\" ],"," \"properties\" : {"," \"ssh_key\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"SSH Private Key\","," \"multiline\" : true,"," \"description\" : \"OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )\","," \"airbyte_secret\" : true"," },"," \"tunnel_host\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"SSH Tunnel Jump Server Host\","," \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\""," },"," \"tunnel_port\" : {"," \"type\" : \"integer\","," \"order\" : 2,"," \"title\" : \"SSH Connection Port\","," \"default\" : 22,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"22\" ],"," \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\""," },"," \"tunnel_user\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"SSH Login Username\","," \"description\" : \"OS-level username for logging into the jump server host.\""," },"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"SSH_KEY_AUTH\","," \"order\" : 0,"," \"description\" : \"Connect through a jump server tunnel host using username and ssh key\""," }"," }"," }, {"," \"title\" : \"Password Authentication\","," \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"tunnel_user_password\" ],"," \"properties\" : {"," \"tunnel_host\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"SSH Tunnel Jump Server Host\","," \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\""," },"," \"tunnel_port\" : {"," \"type\" : \"integer\","," \"order\" : 2,"," \"title\" : \"SSH Connection Port\","," \"default\" : 22,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"22\" ],"," \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\""," },"," \"tunnel_user\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"SSH Login Username\","," \"description\" : \"OS-level username for logging into the jump server host\""," },"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"SSH_PASSWORD_AUTH\","," \"order\" : 0,"," \"description\" : \"Connect through a jump server tunnel host using username and password authentication\""," },"," \"tunnel_user_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Password\","," \"description\" : \"OS-level password for logging into the jump server host\","," \"airbyte_secret\" : true"," }"," }"," } ],"," \"title\" : \"SSH Tunnel Method\","," \"description\" : \"Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.\""," },"," \"jdbc_url_params\" : {"," \"type\" : \"string\","," \"order\" : 5,"," \"title\" : \"JDBC URL Params\","," \"description\" : \"Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).\""," },"," \"replication_method\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"STANDARD\","," \"required\" : [ \"method\" ],"," \"properties\" : {"," \"method\" : {"," \"enum\" : [ \"STANDARD\" ],"," \"type\" : \"string\","," \"const\" : \"STANDARD\","," \"order\" : 0,"," \"default\" : \"STANDARD\""," }"," },"," \"description\" : \"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\""," }, {"," \"title\" : \"Logical Replication (CDC)\","," \"required\" : [ \"method\" ],"," \"properties\" : {"," \"method\" : {"," \"enum\" : [ \"CDC\" ],"," \"type\" : \"string\","," \"const\" : \"CDC\","," \"order\" : 0,"," \"default\" : \"CDC\""," }"," },"," \"description\" : \"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\""," } ],"," \"order\" : 8,"," \"title\" : \"Replication Method\","," \"description\" : \"Replication method to use for extracting data from the database.\""," }"," }","}","\tat io.airbyte.server.apis.ConfigurationApi.execute(ConfigurationApi.java:868)","\tat io.airbyte.server.apis.ConfigurationApi.deleteSource(ConfigurationApi.java:473)","\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)","\tat java.base/java.lang.reflect.Method.invoke(Method.java:578)","\tat org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)","\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)","\tat org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)","\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)","\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:292)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:274)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:244)","\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)","\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)","\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)","\tat org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)","\tat org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)","\tat org.eclipse.jetty.server.Server.handle(Server.java:501)","\tat org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)","\tat org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)","\tat org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)","\tat org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)","\tat java.base/java.lang.Thread.run(Thread.java:1589)","Caused by: io.airbyte.validation.json.JsonValidationException: json schema validation failed when comparing the data to the json schema. ","Errors: $.replication_method: should be valid to one and only one of schema, but more than one are valid: {\"title\":\"STANDARD\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"STANDARD\"],\"type\":\"string\",\"const\":\"STANDARD\",\"order\":0,\"default\":\"STANDARD\"}},\"description\":\"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\"}{\"title\":\"Logical Replication (CDC)\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"CDC\"],\"type\":\"string\",\"const\":\"CDC\",\"order\":0,\"default\":\"CDC\"}},\"description\":\"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\"}, $.replication_method: string found, object expected ","Schema: ","{"," \"type\" : \"object\","," \"title\" : \"MySql Source Spec\","," \"$schema\" : \"http://json-schema.org/draft-07/schema#\","," \"required\" : [ \"host\", \"port\", \"database\", \"username\", \"replication_method\" ],"," \"properties\" : {"," \"ssl\" : {"," \"type\" : \"boolean\","," \"order\" : 6,"," \"title\" : \"SSL Connection\","," \"default\" : true,"," \"description\" : \"Encrypt data using SSL.\""," },"," \"host\" : {"," \"type\" : \"string\","," \"order\" : 0,"," \"title\" : \"Host\","," \"description\" : \"The host name of the database.\""," },"," \"port\" : {"," \"type\" : \"integer\","," \"order\" : 1,"," \"title\" : \"Port\","," \"default\" : 3306,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"3306\" ],"," \"description\" : \"The port to connect to.\""," },"," \"database\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Database\","," \"description\" : \"The database name.\""," },"," \"password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Password\","," \"description\" : \"The password associated with the username.\","," \"airbyte_secret\" : true"," },"," \"ssl_mode\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"preferred\","," \"required\" : [ \"mode\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"preferred\" ],"," \"type\" : \"string\","," \"const\" : \"preferred\","," \"order\" : 0,"," \"default\" : \"preferred\""," }"," },"," \"description\" : \"Preferred SSL mode.\""," }, {"," \"title\" : \"required\","," \"required\" : [ \"mode\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"required\" ],"," \"type\" : \"string\","," \"const\" : \"required\","," \"order\" : 0,"," \"default\" : \"required\""," }"," },"," \"description\" : \"Require SSL mode.\""," }, {"," \"title\" : \"Verify CA\","," \"required\" : [ \"mode\", \"ca_certificate\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"verify_ca\" ],"," \"type\" : \"string\","," \"const\" : \"verify_ca\","," \"order\" : 0,"," \"default\" : \"verify_ca\""," },"," \"client_key\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Client key\","," \"multiline\" : true,"," \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\","," \"airbyte_secret\" : true"," },"," \"ca_certificate\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"CA certificate\","," \"multiline\" : true,"," \"description\" : \"CA certificate\","," \"airbyte_secret\" : true"," },"," \"client_certificate\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Client certificate\","," \"multiline\" : true,"," \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\","," \"airbyte_secret\" : true"," },"," \"client_key_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Client key password (Optional)\","," \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\","," \"airbyte_secret\" : true"," }"," },"," \"description\" : \"Verify CA SSL mode.\""," }, {"," \"title\" : \"Verify Identity\","," \"required\" : [ \"mode\", \"ca_certificate\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"verify_identity\" ],"," \"type\" : \"string\","," \"const\" : \"verify_identity\","," \"order\" : 0,"," \"default\" : \"verify_identity\""," },"," \"client_key\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Client key\","," \"multiline\" : true,"," \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\","," \"airbyte_secret\" : true"," },"," \"ca_certificate\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"CA certificate\","," \"multiline\" : true,"," \"description\" : \"CA certificate\","," \"airbyte_secret\" : true"," },"," \"client_certificate\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Client certificate\","," \"multiline\" : true,"," \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\","," \"airbyte_secret\" : true"," },"," \"client_key_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Client key password (Optional)\","," \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\","," \"airbyte_secret\" : true"," }"," },"," \"description\" : \"Verify-full SSL mode.\""," } ],"," \"order\" : 7,"," \"title\" : \"SSL modes\","," \"description\" : \"SSL connection modes.
  • preferred - Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.
  • required - Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.
  • verify-ca - Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.
  • Verify Identity - Always connect with SSL. Verify both CA and Hostname.
  • Read more in the docs.\""," },"," \"username\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Username\","," \"description\" : \"The username which is used to access the database.\""," },"," \"tunnel_method\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"No Tunnel\","," \"required\" : [ \"tunnel_method\" ],"," \"properties\" : {"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"NO_TUNNEL\","," \"order\" : 0,"," \"description\" : \"No ssh tunnel needed to connect to database\""," }"," }"," }, {"," \"title\" : \"SSH Key Authentication\","," \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"ssh_key\" ],"," \"properties\" : {"," \"ssh_key\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"SSH Private Key\","," \"multiline\" : true,"," \"description\" : \"OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )\","," \"airbyte_secret\" : true"," },"," \"tunnel_host\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"SSH Tunnel Jump Server Host\","," \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\""," },"," \"tunnel_port\" : {"," \"type\" : \"integer\","," \"order\" : 2,"," \"title\" : \"SSH Connection Port\","," \"default\" : 22,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"22\" ],"," \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\""," },"," \"tunnel_user\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"SSH Login Username\","," \"description\" : \"OS-level username for logging into the jump server host.\""," },"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"SSH_KEY_AUTH\","," \"order\" : 0,"," \"description\" : \"Connect through a jump server tunnel host using username and ssh key\""," }"," }"," }, {"," \"title\" : \"Password Authentication\","," \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"tunnel_user_password\" ],"," \"properties\" : {"," \"tunnel_host\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"SSH Tunnel Jump Server Host\","," \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\""," },"," \"tunnel_port\" : {"," \"type\" : \"integer\","," \"order\" : 2,"," \"title\" : \"SSH Connection Port\","," \"default\" : 22,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"22\" ],"," \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\""," },"," \"tunnel_user\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"SSH Login Username\","," \"description\" : \"OS-level username for logging into the jump server host\""," },"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"SSH_PASSWORD_AUTH\","," \"order\" : 0,"," \"description\" : \"Connect through a jump server tunnel host using username and password authentication\""," },"," \"tunnel_user_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Password\","," \"description\" : \"OS-level password for logging into the jump server host\","," \"airbyte_secret\" : true"," }"," }"," } ],"," \"title\" : \"SSH Tunnel Method\","," \"description\" : \"Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.\""," },"," \"jdbc_url_params\" : {"," \"type\" : \"string\","," \"order\" : 5,"," \"title\" : \"JDBC URL Params\","," \"description\" : \"Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).\""," },"," \"replication_method\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"STANDARD\","," \"required\" : [ \"method\" ],"," \"properties\" : {"," \"method\" : {"," \"enum\" : [ \"STANDARD\" ],"," \"type\" : \"string\","," \"const\" : \"STANDARD\","," \"order\" : 0,"," \"default\" : \"STANDARD\""," }"," },"," \"description\" : \"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\""," }, {"," \"title\" : \"Logical Replication (CDC)\","," \"required\" : [ \"method\" ],"," \"properties\" : {"," \"method\" : {"," \"enum\" : [ \"CDC\" ],"," \"type\" : \"string\","," \"const\" : \"CDC\","," \"order\" : 0,"," \"default\" : \"CDC\""," }"," },"," \"description\" : \"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\""," } ],"," \"order\" : 8,"," \"title\" : \"Replication Method\","," \"description\" : \"Replication method to use for extracting data from the database.\""," }"," }","}","\tat io.airbyte.validation.json.JsonSchemaValidator.ensure(JsonSchemaValidator.java:83)","\tat io.airbyte.config.persistence.SecretsRepositoryWriter.statefulUpdateSecrets(SecretsRepositoryWriter.java:147)","\tat io.airbyte.config.persistence.SecretsRepositoryWriter.writeSourceConnection(SecretsRepositoryWriter.java:81)","\tat io.airbyte.server.handlers.SourceHandler.persistSourceConnection(SourceHandler.java:309)","\tat io.airbyte.server.handlers.SourceHandler.deleteSource(SourceHandler.java:238)","\tat io.airbyte.server.handlers.SourceHandler.deleteSource(SourceHandler.java:216)","\tat io.airbyte.server.apis.ConfigurationApi.lambda$deleteSource$32(ConfigurationApi.java:474)","\tat io.airbyte.server.apis.ConfigurationApi.execute(ConfigurationApi.java:862)","\t... 51 more"],"rootCauseExceptionClassName":"java.lang.Class","rootCauseExceptionStack":["io.airbyte.validation.json.JsonValidationException: json schema validation failed when comparing the data to the json schema. ","Errors: $.replication_method: should be valid to one and only one of schema, but more than one are valid: {\"title\":\"STANDARD\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"STANDARD\"],\"type\":\"string\",\"const\":\"STANDARD\",\"order\":0,\"default\":\"STANDARD\"}},\"description\":\"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\"}{\"title\":\"Logical Replication (CDC)\",\"required\":[\"method\"],\"properties\":{\"method\":{\"enum\":[\"CDC\"],\"type\":\"string\",\"const\":\"CDC\",\"order\":0,\"default\":\"CDC\"}},\"description\":\"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\"}, $.replication_method: string found, object expected ","Schema: ","{"," \"type\" : \"object\","," \"title\" : \"MySql Source Spec\","," \"$schema\" : \"http://json-schema.org/draft-07/schema#\","," \"required\" : [ \"host\", \"port\", \"database\", \"username\", \"replication_method\" ],"," \"properties\" : {"," \"ssl\" : {"," \"type\" : \"boolean\","," \"order\" : 6,"," \"title\" : \"SSL Connection\","," \"default\" : true,"," \"description\" : \"Encrypt data using SSL.\""," },"," \"host\" : {"," \"type\" : \"string\","," \"order\" : 0,"," \"title\" : \"Host\","," \"description\" : \"The host name of the database.\""," },"," \"port\" : {"," \"type\" : \"integer\","," \"order\" : 1,"," \"title\" : \"Port\","," \"default\" : 3306,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"3306\" ],"," \"description\" : \"The port to connect to.\""," },"," \"database\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Database\","," \"description\" : \"The database name.\""," },"," \"password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Password\","," \"description\" : \"The password associated with the username.\","," \"airbyte_secret\" : true"," },"," \"ssl_mode\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"preferred\","," \"required\" : [ \"mode\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"preferred\" ],"," \"type\" : \"string\","," \"const\" : \"preferred\","," \"order\" : 0,"," \"default\" : \"preferred\""," }"," },"," \"description\" : \"Preferred SSL mode.\""," }, {"," \"title\" : \"required\","," \"required\" : [ \"mode\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"required\" ],"," \"type\" : \"string\","," \"const\" : \"required\","," \"order\" : 0,"," \"default\" : \"required\""," }"," },"," \"description\" : \"Require SSL mode.\""," }, {"," \"title\" : \"Verify CA\","," \"required\" : [ \"mode\", \"ca_certificate\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"verify_ca\" ],"," \"type\" : \"string\","," \"const\" : \"verify_ca\","," \"order\" : 0,"," \"default\" : \"verify_ca\""," },"," \"client_key\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Client key\","," \"multiline\" : true,"," \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\","," \"airbyte_secret\" : true"," },"," \"ca_certificate\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"CA certificate\","," \"multiline\" : true,"," \"description\" : \"CA certificate\","," \"airbyte_secret\" : true"," },"," \"client_certificate\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Client certificate\","," \"multiline\" : true,"," \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\","," \"airbyte_secret\" : true"," },"," \"client_key_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Client key password (Optional)\","," \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\","," \"airbyte_secret\" : true"," }"," },"," \"description\" : \"Verify CA SSL mode.\""," }, {"," \"title\" : \"Verify Identity\","," \"required\" : [ \"mode\", \"ca_certificate\" ],"," \"properties\" : {"," \"mode\" : {"," \"enum\" : [ \"verify_identity\" ],"," \"type\" : \"string\","," \"const\" : \"verify_identity\","," \"order\" : 0,"," \"default\" : \"verify_identity\""," },"," \"client_key\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Client key\","," \"multiline\" : true,"," \"description\" : \"Client key (this is not a required field, but if you want to use it, you will need to add the Client certificate as well)\","," \"airbyte_secret\" : true"," },"," \"ca_certificate\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"CA certificate\","," \"multiline\" : true,"," \"description\" : \"CA certificate\","," \"airbyte_secret\" : true"," },"," \"client_certificate\" : {"," \"type\" : \"string\","," \"order\" : 2,"," \"title\" : \"Client certificate\","," \"multiline\" : true,"," \"description\" : \"Client certificate (this is not a required field, but if you want to use it, you will need to add the Client key as well)\","," \"airbyte_secret\" : true"," },"," \"client_key_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Client key password (Optional)\","," \"description\" : \"Password for keystorage. This field is optional. If you do not add it - the password will be generated automatically.\","," \"airbyte_secret\" : true"," }"," },"," \"description\" : \"Verify-full SSL mode.\""," } ],"," \"order\" : 7,"," \"title\" : \"SSL modes\","," \"description\" : \"SSL connection modes.
  • preferred - Automatically attempt SSL connection. If the MySQL server does not support SSL, continue with a regular connection.
  • required - Always connect with SSL. If the MySQL server doesn’t support SSL, the connection will not be established. Certificate Authority (CA) and Hostname are not verified.
  • verify-ca - Always connect with SSL. Verifies CA, but allows connection even if Hostname does not match.
  • Verify Identity - Always connect with SSL. Verify both CA and Hostname.
  • Read more in the docs.\""," },"," \"username\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"Username\","," \"description\" : \"The username which is used to access the database.\""," },"," \"tunnel_method\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"No Tunnel\","," \"required\" : [ \"tunnel_method\" ],"," \"properties\" : {"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"NO_TUNNEL\","," \"order\" : 0,"," \"description\" : \"No ssh tunnel needed to connect to database\""," }"," }"," }, {"," \"title\" : \"SSH Key Authentication\","," \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"ssh_key\" ],"," \"properties\" : {"," \"ssh_key\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"SSH Private Key\","," \"multiline\" : true,"," \"description\" : \"OS-level user account ssh key credentials in RSA PEM format ( created with ssh-keygen -t rsa -m PEM -f myuser_rsa )\","," \"airbyte_secret\" : true"," },"," \"tunnel_host\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"SSH Tunnel Jump Server Host\","," \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\""," },"," \"tunnel_port\" : {"," \"type\" : \"integer\","," \"order\" : 2,"," \"title\" : \"SSH Connection Port\","," \"default\" : 22,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"22\" ],"," \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\""," },"," \"tunnel_user\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"SSH Login Username\","," \"description\" : \"OS-level username for logging into the jump server host.\""," },"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"SSH_KEY_AUTH\","," \"order\" : 0,"," \"description\" : \"Connect through a jump server tunnel host using username and ssh key\""," }"," }"," }, {"," \"title\" : \"Password Authentication\","," \"required\" : [ \"tunnel_method\", \"tunnel_host\", \"tunnel_port\", \"tunnel_user\", \"tunnel_user_password\" ],"," \"properties\" : {"," \"tunnel_host\" : {"," \"type\" : \"string\","," \"order\" : 1,"," \"title\" : \"SSH Tunnel Jump Server Host\","," \"description\" : \"Hostname of the jump server host that allows inbound ssh tunnel.\""," },"," \"tunnel_port\" : {"," \"type\" : \"integer\","," \"order\" : 2,"," \"title\" : \"SSH Connection Port\","," \"default\" : 22,"," \"maximum\" : 65536,"," \"minimum\" : 0,"," \"examples\" : [ \"22\" ],"," \"description\" : \"Port on the proxy/jump server that accepts inbound ssh connections.\""," },"," \"tunnel_user\" : {"," \"type\" : \"string\","," \"order\" : 3,"," \"title\" : \"SSH Login Username\","," \"description\" : \"OS-level username for logging into the jump server host\""," },"," \"tunnel_method\" : {"," \"type\" : \"string\","," \"const\" : \"SSH_PASSWORD_AUTH\","," \"order\" : 0,"," \"description\" : \"Connect through a jump server tunnel host using username and password authentication\""," },"," \"tunnel_user_password\" : {"," \"type\" : \"string\","," \"order\" : 4,"," \"title\" : \"Password\","," \"description\" : \"OS-level password for logging into the jump server host\","," \"airbyte_secret\" : true"," }"," }"," } ],"," \"title\" : \"SSH Tunnel Method\","," \"description\" : \"Whether to initiate an SSH tunnel before connecting to the database, and if so, which kind of authentication to use.\""," },"," \"jdbc_url_params\" : {"," \"type\" : \"string\","," \"order\" : 5,"," \"title\" : \"JDBC URL Params\","," \"description\" : \"Additional properties to pass to the JDBC URL string when connecting to the database formatted as 'key=value' pairs separated by the symbol '&'. (example: key1=value1&key2=value2&key3=value3).\""," },"," \"replication_method\" : {"," \"type\" : \"object\","," \"oneOf\" : [ {"," \"title\" : \"STANDARD\","," \"required\" : [ \"method\" ],"," \"properties\" : {"," \"method\" : {"," \"enum\" : [ \"STANDARD\" ],"," \"type\" : \"string\","," \"const\" : \"STANDARD\","," \"order\" : 0,"," \"default\" : \"STANDARD\""," }"," },"," \"description\" : \"Standard replication requires no setup on the DB side but will not be able to represent deletions incrementally.\""," }, {"," \"title\" : \"Logical Replication (CDC)\","," \"required\" : [ \"method\" ],"," \"properties\" : {"," \"method\" : {"," \"enum\" : [ \"CDC\" ],"," \"type\" : \"string\","," \"const\" : \"CDC\","," \"order\" : 0,"," \"default\" : \"CDC\""," }"," },"," \"description\" : \"CDC uses the Binlog to detect inserts, updates, and deletes. This needs to be configured on the source database itself.\""," } ],"," \"order\" : 8,"," \"title\" : \"Replication Method\","," \"description\" : \"Replication method to use for extracting data from the database.\""," }"," }","}","\tat io.airbyte.validation.json.JsonSchemaValidator.ensure(JsonSchemaValidator.java:83)","\tat io.airbyte.config.persistence.SecretsRepositoryWriter.statefulUpdateSecrets(SecretsRepositoryWriter.java:147)","\tat io.airbyte.config.persistence.SecretsRepositoryWriter.writeSourceConnection(SecretsRepositoryWriter.java:81)","\tat io.airbyte.server.handlers.SourceHandler.persistSourceConnection(SourceHandler.java:309)","\tat io.airbyte.server.handlers.SourceHandler.deleteSource(SourceHandler.java:238)","\tat io.airbyte.server.handlers.SourceHandler.deleteSource(SourceHandler.java:216)","\tat io.airbyte.server.apis.ConfigurationApi.lambda$deleteSource$32(ConfigurationApi.java:474)","\tat io.airbyte.server.apis.ConfigurationApi.execute(ConfigurationApi.java:862)","\tat io.airbyte.server.apis.ConfigurationApi.deleteSource(ConfigurationApi.java:473)","\tat java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)","\tat java.base/java.lang.reflect.Method.invoke(Method.java:578)","\tat org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)","\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)","\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)","\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)","\tat org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:253)","\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)","\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:292)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:274)","\tat org.glassfish.jersey.internal.Errors.process(Errors.java:244)","\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)","\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:232)","\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)","\tat org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)","\tat org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)","\tat org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)","\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)","\tat org.eclipse.jetty.server.Server.handle(Server.java:501)","\tat org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)","\tat org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)","\tat org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)","\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)","\tat org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)","\tat java.base/java.lang.Thread.run(Thread.java:1589)"]}