summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ydb/core/protos/replication.proto1
-rw-r--r--ydb/core/tx/replication/controller/replication.cpp3
-rw-r--r--ydb/core/tx/replication/ut_helpers/test_env.h8
-rw-r--r--ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp11
4 files changed, 23 insertions, 0 deletions
diff --git a/ydb/core/protos/replication.proto b/ydb/core/protos/replication.proto
index 4a7f21c0080..8d8b254d01c 100644
--- a/ydb/core/protos/replication.proto
+++ b/ydb/core/protos/replication.proto
@@ -28,6 +28,7 @@ message TReplicationConfig {
// credentials
oneof Credentials {
TStaticCredentials StaticCredentials = 3;
+ string OAuthToken = 7;
}
// targets to be replicated
diff --git a/ydb/core/tx/replication/controller/replication.cpp b/ydb/core/tx/replication/controller/replication.cpp
index c5f3155c53d..8651f47181c 100644
--- a/ydb/core/tx/replication/controller/replication.cpp
+++ b/ydb/core/tx/replication/controller/replication.cpp
@@ -92,6 +92,9 @@ public:
case NKikimrReplication::TReplicationConfig::kStaticCredentials:
ydbProxy.Reset(CreateYdbProxy(Config.GetSrcEndpoint(), Config.GetSrcDatabase(), Config.GetStaticCredentials()));
break;
+ case NKikimrReplication::TReplicationConfig::kOAuthToken:
+ ydbProxy.Reset(CreateYdbProxy(Config.GetSrcEndpoint(), Config.GetSrcDatabase(), Config.GetOAuthToken()));
+ break;
default:
ErrorState(TStringBuilder() << "Unexpected credentials: " << Config.GetCredentialsCase());
break;
diff --git a/ydb/core/tx/replication/ut_helpers/test_env.h b/ydb/core/tx/replication/ut_helpers/test_env.h
index 5a4a1b72c14..d5e8310185d 100644
--- a/ydb/core/tx/replication/ut_helpers/test_env.h
+++ b/ydb/core/tx/replication/ut_helpers/test_env.h
@@ -60,6 +60,14 @@ public:
}
}
+ explicit TEnv(const TString& builtin)
+ : TEnv(false)
+ {
+ UNIT_ASSERT_STRING_CONTAINS(builtin, "@builtin");
+ Init(builtin);
+ Client.ModifyOwner("/", DomainName, builtin);
+ }
+
explicit TEnv(const TString& user, const TString& password)
: TEnv(false)
{
diff --git a/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp b/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
index 504d6da3afb..356c5f15792 100644
--- a/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
+++ b/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
@@ -155,6 +155,17 @@ Y_UNIT_TEST_SUITE(YdbProxy) {
}
}
+ Y_UNIT_TEST(OAuthToken) {
+ TEnv<true> env("user@builtin");
+ // make dir
+ {
+ auto ev = env.Send<TEvYdbProxy::TEvMakeDirectoryResponse>(
+ new TEvYdbProxy::TEvMakeDirectoryRequest("/Root/dir", {}));
+ UNIT_ASSERT(ev);
+ UNIT_ASSERT(ev->Get()->Result.IsSuccess());
+ }
+ }
+
Y_UNIT_TEST(CreateTable) {
TEnv<false> env;
// invalid key