# Script Langs - Which are enabled by default?

**URL:** <https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642>\
**Category:** Elasticsearch\
**Created:** [February 27, 2017, 3:11pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642 "2017-02-27T15:11:50Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jdmac](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jdmac](https://discuss.elastic.co/u/jdmac)\
**Post date:** [February 27, 2017, 3:11pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642/1 "2017-02-27T15:11:50Z")

</div>

Hi All,

ES 2.x - None?  
ES 5.x - Painless?

What is the best way to tell which scripting languages are enabled?

Many thanks,

jdmac

---

<div class="post-metadata">

**Author:** ![spinscale](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/spinscale/32/25011_2.png) [@spinscale](https://discuss.elastic.co/u/spinscale)\
**Post date:** [February 27, 2017, 3:18pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642/2 "2017-02-27T15:18:49Z")

</div>

Hey,

how about

[https://www.elastic.co/guide/en/elasticsearch/reference/5.2/modules-scripting.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/modules-scripting.html)  
[https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-scripting.html)

--Alex

---

<div class="post-metadata">

**Author:** ![jdmac](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jdmac](https://discuss.elastic.co/u/jdmac)\
**Post date:** [February 27, 2017, 3:22pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642/3 "2017-02-27T15:22:54Z")

</div>

@spinscale Already read through those, they simply say what languages are available in total.

But say you have a live cluster and quickly want to know what is **enabled**... How would you best tell?

The best I get from that documentation, in summary, is:

- Groovy replaced by Painless in 5.x.
- Groovy disabled by default from 1.4.3.

What about mustache, expression?

---

<div class="post-metadata">

**Author:** ![spinscale](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/spinscale/32/25011_2.png) [@spinscale](https://discuss.elastic.co/u/spinscale)\
**Post date:** [February 27, 2017, 4:20pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642/4 "2017-02-27T16:20:36Z")

</div>

You can use the `GET _nodes/plugins` endpoint to check which plugins are installed. mustache is always installed in 2.4, thus it is not mentioned.

In 5.x all lang plugins are returned as modules from the above API endpoint.

---

<div class="post-metadata">

**Author:** ![jdmac](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jdmac](https://discuss.elastic.co/u/jdmac)\
**Post date:** [February 27, 2017, 4:44pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642/5 "2017-02-27T16:44:39Z")

</div>

Thanks again for the reply.

I had a further look at that API, I had checked \_nodes/ and saw the plugins previously but paid less attention to it than I am doing on the back of your response.

I feel like the \_nodes/plugins API isn't giving me the specific information I'm looking for, however it does achieve the fact of seeing what 'lang' modules are there. [Thank you]

Further to this information, I'm still trying to figure out how I'd have confidence of what capabilities of these modules are presented via the API.

i.e. "Groovy" is deemed unsafe enough to have disabled it by default from v1.4.3 because it wasn't sandboxed and could be used maliciously. I believe what I'm trying to make sure, is that nothing else by default in 2.x or 5.x could be used in malicious intent.  
This is why I want a quick method of seeing "Oh, lang XXXX is available for API inline calls... I don't think I actually want that to be".

Hope this makes more sense.

Thanks,

jdmac

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 27, 2017, 4:44pm UTC](https://discuss.elastic.co/t/script-langs-which-are-enabled-by-default/76642/6 "2017-03-27T16:44:59Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
