Class EsqlResolveDatasetAction
FROM <dataset>: narrows the dataset names a query would read to the subset
the caller may read. Mirrors EsqlResolveViewAction — the EsqlResolveDatasetAction.Request is an
IndicesRequest.Replaceable with resolveDatasets(true), so the security filter drops unauthorized
names (hiding their existence) and the DLS/FLS interceptor rejects restricted datasets. Read access is governed by
the index read privilege on the dataset name, exactly as for indices and views; the parent datasource's
credentials are an admin concern settled when the dataset is created (PUT), not re-checked per query.
The request carries one relation's raw FROM patterns (split on comma, not pre-expanded). Wildcard
expansion against the authorized abstractions happens in the authorization engine (the security filter replaces
EsqlResolveDatasetAction.Request.indices() in flight with the authorized concrete names) rather than client-side. The original raw
patterns are preserved separately (EsqlResolveDatasetAction.Request.rawPatterns()) so the action body can still classify whether the
relation also targets non-dataset abstractions — see localClusterStateOperation(org.elasticsearch.tasks.Task, org.elasticsearch.xpack.esql.action.EsqlResolveDatasetAction.Request, org.elasticsearch.cluster.ProjectState, org.elasticsearch.action.ActionListener<org.elasticsearch.xpack.esql.action.EsqlResolveDatasetAction.Response>).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classUnlike the view sibling, deliberately carries no remote/CPS plumbing (allowsRemoteIndices, project routing): datasets are local-only and remote-prefixed relations never reach this action.static class -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final ActionType<EsqlResolveDatasetAction.Response> Fields inherited from class org.elasticsearch.action.support.local.TransportLocalClusterStateAction
clusterService, executorFields inherited from class org.elasticsearch.action.support.TransportAction
actionName, taskManager -
Constructor Summary
ConstructorsConstructorDescriptionEsqlResolveDatasetAction(TransportService transportService, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, ClusterService clusterService, ProjectResolver projectResolver) -
Method Summary
Modifier and TypeMethodDescriptionprotected ClusterBlockExceptioncheckBlock(EsqlResolveDatasetAction.Request request, ProjectState state) protected voidlocalClusterStateOperation(Task task, EsqlResolveDatasetAction.Request request, ProjectState project, ActionListener<EsqlResolveDatasetAction.Response> listener) Methods inherited from class org.elasticsearch.action.support.local.TransportLocalProjectMetadataAction
checkBlock, localClusterStateOperationMethods inherited from class org.elasticsearch.action.support.local.TransportLocalClusterStateAction
doExecuteMethods inherited from class org.elasticsearch.action.support.TransportAction
execute, executeDirect, localOnly
-
Field Details
-
NAME
- See Also:
-
TYPE
-
-
Constructor Details
-
EsqlResolveDatasetAction
@Inject public EsqlResolveDatasetAction(TransportService transportService, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, ClusterService clusterService, ProjectResolver projectResolver)
-
-
Method Details
-
checkBlock
protected ClusterBlockException checkBlock(EsqlResolveDatasetAction.Request request, ProjectState state) -
localClusterStateOperation
protected void localClusterStateOperation(Task task, EsqlResolveDatasetAction.Request request, ProjectState project, ActionListener<EsqlResolveDatasetAction.Response> listener)
-