<commit_before>[role="xpack"]
[[transform-setup]]
=== Set up {transforms}
++++
<titleabbrev>Setup</titleabbrev>
++++

To use the {transforms}, you must have the
{subscriptions}[appropriate license] and at least one
<<transform-setup-nodes,{transform} node>> in your {es} cluster. If {stack}
{security-features} are enabled, you must also ensure your users have the
<<transform-privileges,necessary privileges>>.

[discrete]
[[transform-setup-nodes]]
==== {transform-cap} nodes

To use {transforms}, there must be at least one node in your cluster with
`xpack.transform.enabled` and `node.transform` set to `true`. By default, all
nodes are {transform} nodes unless you explicitly change these settings or set 
`node.data` to `false`.

If you want to control which nodes run {transforms}, set `node.transform` to
`false` on some nodes.

For more information, see <<transform-settings>> and <<modules-node>>.

[discrete]
[[transform-privileges]]
==== Security privileges

The {es} {security-features} provide <<built-in-roles,built-in roles>>
and <<security-privileges,privileges>> that make it easier to control
which users can manage or view {transforms}. 

For example, you need `manage_transform` cluster privileges to preview and
create {transforms}. Members of the built-in `transform_admin` role have these 
privileges. You also need `read` and `view_index_metadata` index privileges on
the source index and `read`, `create_index`, and `index` privileges on the
destination index.<commit_msg>[DOCS] Adds transform security privileges (#53908)<commit_after>[role="xpack"]
[[transform-setup]]
=== Set up {transforms}
++++
<titleabbrev>Setup</titleabbrev>
++++

To use the {transforms}, you must have the
{subscriptions}[appropriate license] and at least one
<<transform-setup-nodes,{transform} node>> in your {es} cluster. If {stack}
{security-features} are enabled, you must also ensure your users have the
<<transform-privileges,necessary privileges>>.

[discrete]
[[transform-setup-nodes]]
==== {transform-cap} nodes

To use {transforms}, there must be at least one node in your cluster with
`xpack.transform.enabled` and `node.transform` set to `true`. By default, all
nodes are {transform} nodes unless you explicitly change these settings or set 
`node.data` to `false`.

If you want to control which nodes run {transforms}, set `node.transform` to
`false` on some nodes.

For more information, see <<transform-settings>> and <<modules-node>>.

[discrete]
[[transform-privileges]]
==== Security privileges

The {es} {security-features} provide <<built-in-roles,built-in roles>>
and <<security-privileges,privileges>> that make it easier to control
which users can manage or view {transforms}.

To _view_ the configuration and status of {transforms}, you must have:

* `transform_user` built-in role or `monitor_transform` 
cluster privileges

To _manage_ {transforms}, you must have:

* `transform_admin` built-in role or `manage_transform` 
cluster privileges
* `read` and `view_index_metadata` index privileges on source indices
* `read`, `create_index`, and `index` index privileges on destination indices
  
For more information, see <<security-privileges>> and <<built-in-roles>>.
{'fraction_non_alphanumeric': 0.11991233562930495, 'fraction_numerical': 0.0015654351909830933, 'mean_word_length': 5.7405063291139244, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3091505', 'n_tokens_mistral': 929, 'n_tokens_neox': 896, 'n_words': 364}