Skip to content

Commit e66ee0c

Browse files
authored
Remote address in audit log (#9460)
1 parent ac530bd commit e66ee0c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+121
-28
lines changed

ydb/core/client/server/msgbus_blobstorage_config.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class TMessageBusBlobStorageConfig
2727
{
2828
SetSecurityToken(token);
2929
SetRequireAdminAccess(true);
30+
SetPeerName(msg.GetPeerName());
3031
}
3132

3233
void Handle(TEvBlobStorage::TEvControllerConfigResponse::TPtr &ev, const TActorContext &ctx) {

ydb/core/client/server/msgbus_server.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class TBusMessageContext::TImpl : public TThrRefBase {
1616
virtual void SendReplyMove(NBus::TBusMessageAutoPtr response) = 0;
1717
virtual TVector<TStringBuf> FindClientCert() const = 0;
1818
virtual THolder<TMessageBusSessionIdentHolder::TImpl> CreateSessionIdentHolder() = 0;
19+
virtual TString GetPeerName() const = 0;
1920
};
2021

2122
class TBusMessageContext::TImplMessageBus
@@ -61,6 +62,13 @@ class TBusMessageContext::TImplMessageBus
6162
return {};
6263
}
6364

65+
TString GetPeerName() const override {
66+
TStringBuilder ret;
67+
if (IsConnectionAlive()) {
68+
ret << GetPeerAddrNetAddr();
69+
}
70+
return std::move(ret);
71+
}
6472

6573
THolder<TMessageBusSessionIdentHolder::TImpl> CreateSessionIdentHolder() override;
6674
};
@@ -181,6 +189,10 @@ class TBusMessageContext::TImplGRpc
181189
};
182190

183191
THolder<TMessageBusSessionIdentHolder::TImpl> CreateSessionIdentHolder() override;
192+
193+
TString GetPeerName() const override {
194+
return RequestContext->GetPeer();
195+
}
184196
};
185197

186198
TBusMessageContext::TBusMessageContext()
@@ -227,6 +239,8 @@ void TBusMessageContext::Swap(TBusMessageContext &msg) {
227239

228240
TVector<TStringBuf> TBusMessageContext::FindClientCert() const { return Impl->FindClientCert(); }
229241

242+
TString TBusMessageContext::GetPeerName() const { return Impl->GetPeerName(); }
243+
230244
THolder<TMessageBusSessionIdentHolder::TImpl> TBusMessageContext::CreateSessionIdentHolder() {
231245
Y_ABORT_UNLESS(Impl);
232246
return Impl->CreateSessionIdentHolder();

ydb/core/client/server/msgbus_server.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ class TBusMessageContext {
8787
void SendReplyMove(NBus::TBusMessageAutoPtr response);
8888
void Swap(TBusMessageContext& msg);
8989
TVector<TStringBuf> FindClientCert() const;
90+
TString GetPeerName() const;
9091

9192
private:
9293
friend class TMessageBusSessionIdentHolder;

ydb/core/client/server/msgbus_server_cms.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class TCmsRequestActor : public TMessageBusSecureRequest<TMessageBusServerReques
3131
, Request(request)
3232
{
3333
TBase::SetSecurityToken(request.GetSecurityToken());
34+
TBase::SetPeerName(msg.GetPeerName());
3435
}
3536

3637
void Bootstrap(const TActorContext &ctx)

ydb/core/client/server/msgbus_server_console.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class TConsoleRequestActor : public TMessageBusSecureRequest<TMessageBusServerRe
4444
TBase::SetRequireAdminAccess(true);
4545
}
4646

47+
TBase::SetPeerName(msg.GetPeerName());
4748
}
4849

4950
void Bootstrap(const TActorContext &ctx)

ydb/core/client/server/msgbus_server_drain_node.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class TMessageBusDrainNode : public TMessageBusSecureRequest<TMessageBusTabletRe
2020
{
2121
SetSecurityToken(Request->Record.GetSecurityToken());
2222
SetRequireAdminAccess(true);
23+
SetPeerName(msg.GetPeerName());
2324
}
2425

2526
std::pair<ui64, TAutoPtr<IEventBase>> MakeReqPair(const TActorContext& ctx) {

ydb/core/client/server/msgbus_server_fill_node.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class TMessageBusFillNode : public TMessageBusSecureRequest<TMessageBusTabletReq
2020
{
2121
SetSecurityToken(Request->Record.GetSecurityToken());
2222
SetRequireAdminAccess(true);
23+
SetPeerName(msg.GetPeerName());
2324
}
2425

2526
std::pair<ui64, TAutoPtr<IEventBase>> MakeReqPair(const TActorContext& ctx) {

ydb/core/client/server/msgbus_server_local_minikql.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class TMessageBusLocalMKQL : public TMessageBusSecureRequest<TMessageBusSimpleTa
1717
{
1818
SetSecurityToken(static_cast<TBusTabletLocalMKQL*>(msg.GetMessage())->Record.GetSecurityToken());
1919
SetRequireAdminAccess(true);
20+
SetPeerName(msg.GetPeerName());
2021
}
2122

2223
void Handle(TEvTablet::TEvLocalMKQLResponse::TPtr &ev, const TActorContext &ctx) {

ydb/core/client/server/msgbus_server_local_scheme_tx.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class TMessageBusLocalSchemeTx : public TMessageBusSecureRequest<TMessageBusSimp
2121
Request.Swap(&request);
2222
TBase::SetSecurityToken(Request.GetSecurityToken());
2323
TBase::SetRequireAdminAccess(true);
24+
TBase::SetPeerName(msg.GetPeerName());
2425
}
2526

2627
void Handle(TEvTablet::TEvLocalSchemeTxResponse::TPtr &ev, const TActorContext &ctx) {

ydb/core/client/server/msgbus_server_node_registration.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class TNodeRegistrationActor : public TMessageBusSecureRequest<TMessageBusServer
4040
} else {
4141
TBase::SetSecurityToken(BUILTIN_ACL_ROOT); // NBS compatibility
4242
}
43+
TBase::SetPeerName(msg.GetPeerName());
4344
}
4445

4546
void Bootstrap(const TActorContext &ctx)

ydb/core/client/server/msgbus_server_proxy.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class TMessageBusServerFlatDescribeRequest : public TMessageBusSecureRequest<TMe
6767
, Request(static_cast<TBusSchemeDescribe*>(msg->MsgContext.ReleaseMessage()))
6868
{
6969
TBase::SetSecurityToken(Request->Record.GetSecurityToken());
70+
TBase::SetPeerName(msg->MsgContext.GetPeerName());
7071
}
7172

7273
//STFUNC(StateWork)

ydb/core/client/server/msgbus_server_request.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class TMessageBusServerRequest : public TMessageBusSecureRequest<TMessageBusServ
5555
{
5656
TBase::SetSecurityToken(Request->Record.GetSecurityToken());
5757
TBase::SetRequireAdminAccess(true); // MiniKQL and ReadTable execution required administative access
58+
TBase::SetPeerName(msg->MsgContext.GetPeerName());
5859
}
5960

6061
//STFUNC(StateWork)
@@ -72,6 +73,7 @@ class TMessageBusServerRequest : public TMessageBusSecureRequest<TMessageBusServ
7273
ProposalStatus.Reset(new NKikimrTxUserProxy::TEvProposeTransactionStatus());
7374
Proposal.Reset(new TEvTxUserProxy::TEvProposeTransaction());
7475
NKikimrTxUserProxy::TEvProposeTransaction &record = Proposal->Record;
76+
record.SetPeerName(GetPeerName());
7577

7678
// Transaction protobuf structure might be very heavy (if it has a batch of parameters)
7779
// so we don't want to copy it, just move its contents

ydb/core/client/server/msgbus_server_scheme_initroot.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class TMessageBusSchemeInitRoot : public TMessageBusSecureRequest<TMessageBusSer
5454
{
5555
TBase::SetSecurityToken(Request->Record.GetSecurityToken());
5656
TBase::SetRequireAdminAccess(true);
57+
TBase::SetPeerName(msg->MsgContext.GetPeerName());
5758
}
5859

5960
void Bootstrap(const TActorContext &ctx) {

ydb/core/client/server/msgbus_server_scheme_request.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class TMessageBusServerSchemeRequest : public TMessageBusSecureRequest<TMessageB
7474
{
7575
TBase::SetSecurityToken(Request->Record.GetSecurityToken());
7676
TBase::SetRequireAdminAccess(true);
77+
TBase::SetPeerName(msg->MsgContext.GetPeerName());
7778
}
7879

7980
//STFUNC(StateWork)
@@ -95,6 +96,7 @@ template <>
9596
void TMessageBusServerSchemeRequest<TBusPersQueue>::SendProposeRequest(const TActorContext &ctx) {
9697
TAutoPtr<TEvTxUserProxy::TEvProposeTransaction> req(new TEvTxUserProxy::TEvProposeTransaction());
9798
NKikimrTxUserProxy::TEvProposeTransaction &record = req->Record;
99+
record.SetPeerName(GetPeerName());
98100

99101
if (Request->Record.HasMetaRequest() && Request->Record.GetMetaRequest().HasCmdCreateTopic()) {
100102
const auto& cmd = Request->Record.GetMetaRequest().GetCmdCreateTopic();
@@ -157,6 +159,7 @@ template <>
157159
void TMessageBusServerSchemeRequest<TBusSchemeOperation>::SendProposeRequest(const TActorContext &ctx) {
158160
TAutoPtr<TEvTxUserProxy::TEvProposeTransaction> req(new TEvTxUserProxy::TEvProposeTransaction());
159161
NKikimrTxUserProxy::TEvProposeTransaction &record = req->Record;
162+
record.SetPeerName(GetPeerName());
160163

161164
if (!Request->Record.HasTransaction()) {
162165
return HandleError(MSTATUS_ERROR, TEvTxUserProxy::TResultStatus::Unknown, "Malformed request: no modify scheme transaction provided", ctx);

ydb/core/grpc_services/query/rpc_execute_script.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ class TExecuteScriptRPC : public TRpcRequestActor<TExecuteScriptRPC, TEvExecuteS
137137
SetAuthToken(ev, *Request);
138138
SetDatabase(ev, *Request);
139139
SetRlPath(ev, *Request);
140+
ev->Record.MutableRequest()->SetClientAddress(Request->GetPeerName());
140141

141142
if (traceId) {
142143
ev->Record.SetTraceId(traceId.GetRef());

ydb/core/grpc_services/query/rpc_kqp_tx.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class TBeginTransactionRPC : public TActorBootstrapped<TBeginTransactionRPC> {
6868
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
6969
SetAuthToken(ev, *Request);
7070
SetDatabase(ev, *Request);
71+
ev->Record.MutableRequest()->SetClientAddress(Request->GetPeerName());
7172

7273
if (CheckSession(req->session_id(), Request.get())) {
7374
ev->Record.MutableRequest()->SetSessionId(req->session_id());
@@ -189,6 +190,7 @@ class TFinishTransactionRPC : public TActorBootstrapped<TFinishTransactionRPC>
189190
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
190191
SetAuthToken(ev, *Request);
191192
SetDatabase(ev, *Request);
193+
ev->Record.MutableRequest()->SetClientAddress(Request->GetPeerName());
192194

193195
const auto& [sessionId, txId] = GetReqData();
194196

ydb/core/grpc_services/rpc_begin_transaction.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class TBeginTransactionRPC : public TRpcKqpRequestActor<TBeginTransactionRPC, TE
5656
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
5757
SetAuthToken(ev, *Request_);
5858
SetDatabase(ev, *Request_);
59+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
5960

6061
if (CheckSession(req->session_id(), Request_.get())) {
6162
ev->Record.MutableRequest()->SetSessionId(req->session_id());

ydb/core/grpc_services/rpc_commit_transaction.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class TCommitTransactionRPC : public TRpcKqpRequestActor<TCommitTransactionRPC,
5454
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
5555
SetAuthToken(ev, *Request_);
5656
SetDatabase(ev, *Request_);
57+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
5758

5859
if (CheckSession(req->session_id(), Request_.get())) {
5960
ev->Record.MutableRequest()->SetSessionId(req->session_id());

ydb/core/grpc_services/rpc_dynamic_config.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ class TDynamicConfigRPC : public TRpcOperationRequestActor<TDynamicConfigRPC<TRe
205205
auto request = MakeHolder<TConsoleRequest>();
206206
request->Record.MutableRequest()->CopyFrom(*this->GetProtoRequest());
207207
request->Record.SetUserToken(this->Request_->GetSerializedToken());
208+
request->Record.SetPeerName(this->Request_->GetPeerName());
208209
NTabletPipe::SendData(IActor::SelfId(), ConsolePipe, request.Release());
209210
}
210211
};

ydb/core/grpc_services/rpc_execute_scheme_query.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class TExecuteSchemeQueryRPC : public TRpcKqpRequestActor<TExecuteSchemeQueryRPC
5050
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
5151
SetAuthToken(ev, *Request_);
5252
SetDatabase(ev, *Request_);
53+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
5354

5455
if (CheckSession(req->session_id(), Request_.get())) {
5556
ev->Record.MutableRequest()->SetSessionId(req->session_id());

ydb/core/grpc_services/rpc_explain_data_query.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class TExplainDataQueryRPC : public TRpcKqpRequestActor<TExplainDataQueryRPC, TE
5050
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
5151
SetAuthToken(ev, *Request_);
5252
SetDatabase(ev, *Request_);
53+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
5354

5455
if (traceId) {
5556
ev->Record.SetTraceId(traceId.GetRef());

ydb/core/grpc_services/rpc_explain_yql_script.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class TExplainYqlScriptRPC : public TRpcKqpRequestActor<TExplainYqlScriptRPC, TE
4242
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
4343
SetAuthToken(ev, *Request_);
4444
SetDatabase(ev, *Request_);
45+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
4546

4647
if (traceId) {
4748
ev->Record.SetTraceId(traceId.GetRef());

ydb/core/grpc_services/rpc_prepare_data_query.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class TPrepareDataQueryRPC : public TRpcKqpRequestActor<TPrepareDataQueryRPC, TE
5454
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
5555
SetAuthToken(ev, *Request_);
5656
SetDatabase(ev, *Request_);
57+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
5758

5859
AuditContextAppend(Request_.get(), *req);
5960

ydb/core/grpc_services/rpc_rollback_transaction.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class TRollbackTransactionRPC : public TRpcKqpRequestActor<TRollbackTransactionR
5353
auto ev = MakeHolder<NKqp::TEvKqp::TEvQueryRequest>();
5454
SetAuthToken(ev, *Request_);
5555
SetDatabase(ev, *Request_);
56+
ev->Record.MutableRequest()->SetClientAddress(Request_->GetPeerName());
5657

5758
if (CheckSession(req->session_id(), Request_.get())) {
5859
ev->Record.MutableRequest()->SetSessionId(req->session_id());

ydb/core/kqp/common/compilation/events.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@
1414
namespace NKikimr::NKqp::NPrivateEvents {
1515

1616
struct TEvCompileRequest: public TEventLocal<TEvCompileRequest, TKqpEvents::EvCompileRequest> {
17-
TEvCompileRequest(const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, const TMaybe<TString>& uid,
17+
TEvCompileRequest(const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, const TString& clientAddress, const TMaybe<TString>& uid,
1818
TMaybe<TKqpQueryId>&& query, bool keepInCache, bool isQueryActionPrepare, bool perStatementResult, TInstant deadline,
1919
TKqpDbCountersPtr dbCounters, const TGUCSettings::TPtr& gUCSettings, const TMaybe<TString>& applicationName,
2020
std::shared_ptr<std::atomic<bool>> intrestedInResult, const TIntrusivePtr<TUserRequestContext>& userRequestContext, NLWTrace::TOrbit orbit = {},
2121
TKqpTempTablesState::TConstPtr tempTablesState = nullptr, bool collectDiagnostics = false, TMaybe<TQueryAst> queryAst = Nothing(),
2222
bool split = false, NYql::TExprContext* splitCtx = nullptr, NYql::TExprNode::TPtr splitExpr = nullptr)
2323
: UserToken(userToken)
24+
, ClientAddress(clientAddress)
2425
, Uid(uid)
2526
, Query(std::move(query))
2627
, KeepInCache(keepInCache)
@@ -44,6 +45,7 @@ struct TEvCompileRequest: public TEventLocal<TEvCompileRequest, TKqpEvents::EvCo
4445
}
4546

4647
TIntrusiveConstPtr<NACLib::TUserToken> UserToken;
48+
TString ClientAddress;
4749
TMaybe<TString> Uid;
4850
TMaybe<TKqpQueryId> Query;
4951
bool KeepInCache = false;
@@ -72,13 +74,14 @@ struct TEvCompileRequest: public TEventLocal<TEvCompileRequest, TKqpEvents::EvCo
7274
};
7375

7476
struct TEvRecompileRequest: public TEventLocal<TEvRecompileRequest, TKqpEvents::EvRecompileRequest> {
75-
TEvRecompileRequest(const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, const TString& uid,
77+
TEvRecompileRequest(const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, const TString& clientAddress, const TString& uid,
7678
const TMaybe<TKqpQueryId>& query, bool isQueryActionPrepare, TInstant deadline,
7779
TKqpDbCountersPtr dbCounters, const TGUCSettings::TPtr& gUCSettings, const TMaybe<TString>& applicationName,
7880
std::shared_ptr<std::atomic<bool>> intrestedInResult, const TIntrusivePtr<TUserRequestContext>& userRequestContext,
7981
NLWTrace::TOrbit orbit = {}, TKqpTempTablesState::TConstPtr tempTablesState = nullptr, TMaybe<TQueryAst> queryAst = Nothing(),
8082
bool split = false, NYql::TExprContext* splitCtx = nullptr, NYql::TExprNode::TPtr splitExpr = nullptr)
8183
: UserToken(userToken)
84+
, ClientAddress(clientAddress)
8285
, Uid(uid)
8386
, Query(query)
8487
, IsQueryActionPrepare(isQueryActionPrepare)
@@ -98,6 +101,7 @@ struct TEvRecompileRequest: public TEventLocal<TEvRecompileRequest, TKqpEvents::
98101
}
99102

100103
TIntrusiveConstPtr<NACLib::TUserToken> UserToken;
104+
TString ClientAddress;
101105
TString Uid;
102106
TMaybe<TKqpQueryId> Query;
103107
bool IsQueryActionPrepare = false;

ydb/core/kqp/common/events/query.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,14 @@ struct TEvQueryRequest: public NActors::TEventLocal<TEvQueryRequest, TKqpEvents:
228228
return Token_;
229229
}
230230

231+
TString GetClientAddress() const {
232+
if (RequestCtx) {
233+
return RequestCtx->GetPeerName();
234+
}
235+
236+
return Record.GetRequest().GetClientAddress();
237+
}
238+
231239
const ::google::protobuf::Map<TProtoStringType, ::Ydb::TypedValue>& GetYdbParameters() const {
232240
if (YdbParameters) {
233241
return *YdbParameters;

ydb/core/kqp/common/kqp_event_impl.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ void TEvKqp::TEvQueryRequest::PrepareRemote() const {
4949
if (RequestCtx->GetSerializedToken()) {
5050
Record.SetUserToken(RequestCtx->GetSerializedToken());
5151
}
52+
Record.MutableRequest()->SetClientAddress(RequestCtx->GetPeerName());
5253

5354
Record.MutableRequest()->SetDatabase(Database);
5455
ActorIdToProto(RequestActorId, Record.MutableCancelationActor());

ydb/core/kqp/compile_service/kqp_compile_actor.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
4848
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
4949
const TGUCSettings::TPtr& gUCSettings,
5050
const TMaybe<TString>& applicationName, const TString& uid, const TKqpQueryId& queryId,
51-
const TIntrusiveConstPtr<NACLib::TUserToken>& userToken,
51+
const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, const TString& clientAddress,
5252
TKqpDbCountersPtr dbCounters, std::optional<TKqpFederatedQuerySetup> federatedQuerySetup,
5353
const TIntrusivePtr<TUserRequestContext>& userRequestContext,
5454
NWilson::TTraceId traceId, TKqpTempTablesState::TConstPtr tempTablesState, bool collectFullDiagnostics,
@@ -66,6 +66,7 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
6666
, QueryId(queryId)
6767
, QueryRef(QueryId.Text, QueryId.QueryParameterTypes, queryAst)
6868
, UserToken(userToken)
69+
, ClientAddress(clientAddress)
6970
, DbCounters(dbCounters)
7071
, Config(MakeIntrusive<TKikimrConfiguration>())
7172
, QueryServiceConfig(queryServiceConfig)
@@ -269,6 +270,7 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
269270
Gateway = CreateKikimrIcGateway(QueryId.Cluster, QueryId.Settings.QueryType, QueryId.Database, QueryId.DatabaseId, std::move(loader),
270271
ctx.ExecutorThread.ActorSystem, ctx.SelfID.NodeId(), counters, QueryServiceConfig);
271272
Gateway->SetToken(QueryId.Cluster, UserToken);
273+
Gateway->SetClientAddress(ClientAddress);
272274

273275
Config->FeatureFlags = AppData(ctx)->FeatureFlags;
274276

@@ -544,6 +546,7 @@ class TKqpCompileActor : public TActorBootstrapped<TKqpCompileActor> {
544546
TKqpQueryId QueryId;
545547
TKqpQueryRef QueryRef;
546548
TIntrusiveConstPtr<NACLib::TUserToken> UserToken;
549+
TString ClientAddress;
547550
TKqpDbCountersPtr DbCounters;
548551
TKikimrConfiguration::TPtr Config;
549552
TQueryServiceConfig QueryServiceConfig;
@@ -614,7 +617,7 @@ IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstP
614617
const TTableServiceConfig& tableServiceConfig,
615618
const TQueryServiceConfig& queryServiceConfig,
616619
TIntrusivePtr<TModuleResolverState> moduleResolverState, TIntrusivePtr<TKqpCounters> counters,
617-
const TString& uid, const TKqpQueryId& query, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken,
620+
const TString& uid, const TKqpQueryId& query, const TIntrusiveConstPtr<NACLib::TUserToken>& userToken, const TString& clientAddress,
618621
std::optional<TKqpFederatedQuerySetup> federatedQuerySetup, TKqpDbCountersPtr dbCounters, const TGUCSettings::TPtr& gUCSettings,
619622
const TMaybe<TString>& applicationName, const TIntrusivePtr<TUserRequestContext>& userRequestContext,
620623
NWilson::TTraceId traceId, TKqpTempTablesState::TConstPtr tempTablesState,
@@ -623,7 +626,7 @@ IActor* CreateKqpCompileActor(const TActorId& owner, const TKqpSettings::TConstP
623626
{
624627
return new TKqpCompileActor(owner, kqpSettings, tableServiceConfig, queryServiceConfig,
625628
moduleResolverState, counters, gUCSettings, applicationName,
626-
uid, query, userToken, dbCounters,
629+
uid, query, userToken, clientAddress, dbCounters,
627630
federatedQuerySetup, userRequestContext,
628631
std::move(traceId), std::move(tempTablesState), collectFullDiagnostics,
629632
perStatementResult, compileAction, std::move(queryAst),

0 commit comments

Comments
 (0)