diff --git a/ydb/library/yql/providers/solomon/provider/yql_solomon_config.cpp b/ydb/library/yql/providers/solomon/provider/yql_solomon_config.cpp index 3cb7e646688c..9485f423bde2 100644 --- a/ydb/library/yql/providers/solomon/provider/yql_solomon_config.cpp +++ b/ydb/library/yql/providers/solomon/provider/yql_solomon_config.cpp @@ -7,6 +7,7 @@ using namespace NCommon; TSolomonConfiguration::TSolomonConfiguration() { REGISTER_SETTING(*this, _EnableReading); + REGISTER_SETTING(*this, _EnableRuntimeListing); REGISTER_SETTING(*this, MetricsQueuePageSize); REGISTER_SETTING(*this, MetricsQueuePrefetchSize); REGISTER_SETTING(*this, MetricsQueueBatchCountLimit); diff --git a/ydb/library/yql/providers/solomon/provider/yql_solomon_config.h b/ydb/library/yql/providers/solomon/provider/yql_solomon_config.h index c4d7f12916aa..01d3de901c36 100644 --- a/ydb/library/yql/providers/solomon/provider/yql_solomon_config.h +++ b/ydb/library/yql/providers/solomon/provider/yql_solomon_config.h @@ -17,6 +17,7 @@ struct TSolomonSettings { #endif public: NCommon::TConfSetting _EnableReading; + NCommon::TConfSetting _EnableRuntimeListing; NCommon::TConfSetting MetricsQueuePageSize; NCommon::TConfSetting MetricsQueuePrefetchSize; NCommon::TConfSetting MetricsQueueBatchCountLimit; diff --git a/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource_type_ann.cpp b/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource_type_ann.cpp index 62fdbc211abd..6cf6e144e7ab 100644 --- a/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource_type_ann.cpp +++ b/ydb/library/yql/providers/solomon/provider/yql_solomon_datasource_type_ann.cpp @@ -91,6 +91,11 @@ class TSolomonDataSourceTypeAnnotationTransformer : public TVisitorTransformerBa } bool hasSelectors = !selectors.Content().empty(); + if (hasSelectors && !State_->Configuration->_EnableRuntimeListing.Get().GetOrElse(false)) { + ctx.AddError(TIssue(ctx.GetPosition(selectors.Pos()), "runtime listing is disabled, use `program` parameter")); + return TStatus::Error; + } + auto& program = *input->Child(TSoSourceSettings::idx_Program); if (!EnsureAtom(program, ctx)) { return TStatus::Error; diff --git a/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp b/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp index 51f40b52a7d7..57672f19996e 100644 --- a/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp +++ b/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp @@ -367,6 +367,7 @@ class TSolomonDqIntegration: public TDqIntegrationBase { NDq::TDqSolomonReadParams readParams{ .Source = source }; + YQL_ENSURE(NActors::TlsActivationContext); auto metricsQueueActor = NActors::TActivationContext::ActorSystem()->Register( NDq::CreateSolomonMetricsQueueActor( std::min(maxTasksPerStage, totalMetricsCount),